Socket
Socket
Sign inDemoInstall

windups

Package Overview
Dependencies
5
Maintainers
1
Versions
25
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 1.2.0-alpha.5 to 1.2.0-alpha.6

3

dist/react/useRewindupString.d.ts
import { WindupOptions } from "./useWindupString";
export declare type RewindupOptions = {
reversePace?: (char: string) => number;
onRewindStart?: () => void;
} & WindupOptions;
export default function useRewindupString(text: string, options?: WindupOptions): [string, {
export default function useRewindupString(text: string, options?: RewindupOptions): [string, {
skip: () => void;

@@ -7,0 +8,0 @@ rewind: () => void;

@@ -1906,3 +1906,4 @@ 'use strict';

toRewind: toRewind,
toResume: toResume
toResume: toResume,
didFinishOnce: false
};

@@ -1919,2 +1920,3 @@ }

return {
didFinishOnce: false,
toPlay: next$1(state.toPlay)

@@ -1940,2 +1942,3 @@ };

return {
didFinishOnce: false,
toPlay: fastForward$1(getActiveWindup(state))

@@ -1945,2 +1948,9 @@ };

case 'finish':
{
return _extends({}, state, {
didFinishOnce: true
});
}
default:

@@ -1953,3 +1963,4 @@ return state;

var _React$useReducer = React.useReducer(rewindupReducer, {
toPlay: isPlayedWindup(windupInit) ? playedWindupToSuffixed(windupInit) : windupToSuffixed(windupInit)
toPlay: isPlayedWindup(windupInit) ? playedWindupToSuffixed(windupInit) : windupToSuffixed(windupInit),
didFinishOnce: false
}),

@@ -1978,6 +1989,5 @@ state = _React$useReducer[0],

var windupIsFinished = isPlayedSuffixedWindup(getActiveWindup(state));
var didFinishOnce = React.useRef(false);
React.useEffect(function () {
// Put this in a new context so that the windup finishes visually before firing this
if (windupIsFinished && !didFinishOnce.current) {
if (windupIsFinished && !state.didFinishOnce && !isRewinding(state)) {
var timeout = setTimeout(function () {

@@ -1988,3 +1998,5 @@ if (options.onFinished) {

didFinishOnce.current = true;
dispatch({
type: 'finish'
});
}, 0);

@@ -1995,3 +2007,3 @@ return function () {

}
}, [windupIsFinished, options.onFinished]); // Proceed the windup
}, [windupIsFinished, state]); // Proceed the windup

@@ -2024,4 +2036,2 @@ React.useEffect(function () {

React.useEffect(function () {
didFinishOnce.current = false;
if (prevWindupInit === undefined) {

@@ -2056,3 +2066,2 @@ return;

});
didFinishOnce.current = false;
}, []);

@@ -2059,0 +2068,0 @@ return {

@@ -1,2 +0,2 @@

"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n,r=require("react"),t=e(require("fast-deep-equal")),i=e(require("break-styled-lines"));function u(e){return!!Array.isArray(e)&&2===e.length&&!!Array.isArray(e[0])}function c(e){return!!Array.isArray(e)&&3===e.length&&!(!Array.isArray(e[0])||!Array.isArray(e[1]))}function o(e){return!!Array.isArray(e)&&2===e.length&&!!Array.isArray(e[0])}function a(e,n){return[[],e.split(""),n]}function s(e,n){return[[],e,n]}function f(e){return!u(e)&&!(e[0].length>0)&&e[1].reduce((function(n,r){return c(r)&&c(e)&&n?f(r):n}),!0)}function p(e){if(u(e))return e;var n=y(e);return u(n)?n:p(n)}function d(e){if(!u(e)&&f(e))return e;var n=e[0],r=u(e)?e[1]:e[2],t=function(e){return o(e)?d(e):e};if(u(e))return[[],n.map(t),r];var i=e[1];return[[],[].concat(n.map(t),i.map((function(e){return c(e)?d(e):e}))),r]}function l(e){if(u(e)){var n=e[0];return n[n.length-1]}var r=e[0];return e[1].reduce((function(e,n){return c(n)&&!f(n)?m(n):e}),void 0)||r[r.length-1]}function m(e){var n=l(e);return o(n)?m(n):n}function h(e){if(u(e))return e[0];var n=e[0],r=e[1][0];if(c(r)&&!f(r)){var t=r[2];return[].concat(n,[[h(r),t]])}return n}function y(e){if(u(e))return e;var n=e[0],r=e[1],t=e[2],i=r[0],o=r.slice(1);if(!i)return[n,t];if(c(i)){var a=y(i);return u(a)?0===o.length?[[].concat(n,[a]),t]:[[].concat(n,[a]),o,t]:[n,[a].concat(o),t]}return 0===o.length?[[].concat(n,[i]),t]:[[].concat(n,[i]),o,t]}function v(){return(v=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}function g(e){return!!Array.isArray(e)&&4===e.length&&!(!Array.isArray(e[0])||!Array.isArray(e[1]))}function b(e){return!!Array.isArray(e)&&3===e.length&&!(!Array.isArray(e[0])||!Array.isArray(e[1]))}function k(e){var n=e[0],r=e[1];return!b(e)&&!(n.length>0)&&r.reduce((function(n,r){return g(r)&&g(e)&&n?k(r):n}),!0)}function w(e){var n=e[1],r=e[0].reduce((function(e,n){return b(n)?e+w(n):e+1}),0),t=n[0];return t&&g(t)?r+w(t):r}function P(e){if(b(e))return[].concat(e[0],e[1].map((function(e){return o(e)?A(e):e})));var n=e[0],r=e[2],t=e[1].reduce((function(e,n){if(g(n)){var r=n[3],t=[[],P(n),r];return[].concat(e,[t])}return e}),[]);return[].concat(n,t,r.map((function(e){return o(e)?A(e):e})))}function E(e){if(b(e)){var n=e[0],r=e[1],t=e[2],i=n.slice(0,-1),u=n[n.length-1];return u?b(u)?[i,[E(u)],r,t]:[i,[u],r,t]:[n,[],r,t]}var c=e[0],o=e[1],a=e[2],s=e[3],f=o[0],p=o.slice(1);if(!f){var d=c.slice(0,-1),l=c[c.length-1];return l?b(l)?[d,[E(l)],a,s]:[d,[l],a,s]:[c,[],a,s]}if(g(f)&&!k(f))return[c,[E(f)].concat(p),a,s];var m=c.slice(0,-1),h=c[c.length-1];return b(h)?[m,[E(h)].concat(o),a,s]:[m,[h].concat(o),a,s]}function W(e){if(b(e))return e;var n=e[0],r=e[1],t=e[2],i=e[3],u=r[0],c=r.slice(1);if(!u)return[n,t,i];if(g(u)){var o=W(u);return b(o)?0===c.length?[[].concat(n,[o]),t,i]:[[].concat(n,[o]),c,t,i]:[n,[o].concat(c),t,i]}return 0===c.length?[[].concat(n,[u]),t,i]:[[].concat(n,[u]),c,t,i]}function F(e){var n=W(e);return b(n)?n:F(n)}function R(e){var n=e[1],r=e[2];return[e[0].map((function(e){return o(e)?A(e):e})),n.map((function(e){return c(e)?R(e):e})),[],r]}function A(e){var n=e[1];return[e[0].map((function(e){return o(e)?A(e):e})),[],n]}function C(e){var r=(u(e),e[0]),t=u(e)?[]:e[1];return[].concat(r.map((function(e){return o(e)?{member:e,kind:n.Played,isWindup:!0}:{member:e,kind:n.Played,isWindup:!1}})),t.map((function(e){return c(e)?{member:e,kind:n.InProgress,isWindup:!0}:{member:e,kind:n.InProgress,isWindup:!1}})))}function x(e,n){if(!e.isWindup&&n.isWindup||e.isWindup&&!n.isWindup)return!1;if(e.isWindup&&n.isWindup){var r=G(e.member),i=G(n.member);if(!t(r,i))return!1;var u=C(e.member),c=C(n.member);return u.length===c.length&&S(u,c).every((function(e){var n=e[1];return!!n&&x(e[0],n)}))}return t(e.member,n.member)}function O(e){return e.reduce((function(e,n){var r=n[0],t=n[1];return t&&x(r,t)&&0===e.unmatched.length?v({},e,{matched:[].concat(e.matched,[r])}):v({},e,{unmatched:[].concat(e.unmatched,[[r,t]])})}),{matched:[],unmatched:[]})}function j(e){return e.reduce((function(e,n){var r=n[0],t=n[1];return t&&x(r,t)&&0===e.unmatched.length?v({},e,{matched:[r].concat(e.matched)}):v({},e,{unmatched:[[r,t]].concat(e.unmatched)})}),{matched:[],unmatched:[]})}function S(e,n){return e.map((function(e,r){return[e,n[r]]}))}function T(e,n){for(var r=[],t=0;t<=e.length-1;t++)r.push([e[e.length-1-t],n[n.length-1-t]]);return r}function M(e){var r=e[0],t=e[1];if(r.isWindup&&null!=t&&t.isWindup){var i=G(r.member),u=O(S(C(r.member),C(t.member))),c=u.unmatched,o=u.matched.map((function(e){return e.kind===n.InProgress&&e.isWindup?A(p(e.member)):e.kind===n.Played&&e.isWindup?A(e.member):e.member})),a=M(c[0]),s=c.map((function(e){return e[0]})).map(V);if(a){var f=s.slice(1,0);return[o,[a].concat(f),[],i]}return[o,s,[],i]}}function I(e){var n=e[0],r=e[1];if(n.isWindup&&null!=r&&r.isWindup){var t=G(n.member),i=C(n.member),u=j(T(i,C(r.member))),c=u.matched,o=u.unmatched,a=M(o[o.length-1]),s=c.map(q);if(a){var f=i.slice(0,o.length-1).map(V);return[[],[].concat(f,[a]),s,t]}return[[],[].concat(o).map((function(e){return e[0]})).map(V),s,t]}}function V(e){return e.isWindup&&e.kind===n.Played?E(A(e.member)):e.isWindup?R(e.member):e.member}function q(e){return e.isWindup&&e.kind===n.InProgress?p(e.member):e.member}function D(e,r){var t=G(e),i=C(e),u=C(r),c=O(S(i,u)),o=c.unmatched,a=c.matched.map((function(e){return e.kind===n.InProgress&&e.isWindup?A(p(e.member)):e.kind===n.Played&&e.isWindup?A(e.member):e.member})),s=i.length-a.length,f=j(T(i,u).slice(0,s)),d=f.matched,l=f.unmatched,m=function(e,r){if(0===e.length||0===r.length)return{played:[],remaining:[]};var t=e[0],i=t[0],u=t[1],c=r[r.length-1],o=c[0],a=c[1];if(1===e.length&&1===r.length&&i.isWindup&&null!=u&&u.isWindup){var s=D(i.member,u.member);return b(s)?{played:[s],remaining:[]}:{played:[],remaining:[s]}}var f=e.filter((function(e){return e[0].kind===n.Played})),p=f.map((function(e){return e[0]})).map((function(e){return e.isWindup&&e.kind===n.InProgress?F(R(e.member)):e.isWindup?A(e.member):e.member})),d=e.slice(p.length);if(0===d.length&&0===f.length)return{played:p,remaining:[]};if(0===d.length){var l=r.slice(0,f.length),m=l[l.length-1],h=I([m[0],m[1]]);if(h){var y=p.slice(0,-1);return{played:[].concat(y,[F(h)]),remaining:[]}}return{played:p,remaining:[]}}var v=d[0],g=M([v[0],v[1]]),k=I([o,a]),w=d.map((function(e){return e[0]})).map(V);if(g&&k){var P=w.slice(1,-1);return{played:p,remaining:[g].concat(P,[k])}}if(!g&&k){var E=w.slice(0,-1);return{played:p,remaining:[].concat(E,[k])}}if(g&&!k){var W=w.slice(1);return{played:p,remaining:[g].concat(W)}}return{played:p,remaining:w}}(o.slice(0,l.length),l),h=m.played,y=m.remaining,v=d.map((function(e){return e.kind===n.InProgress&&e.isWindup?p(e.member):e.member}));return 0===y.length?[[].concat(a,h),v,t]:[[].concat(a,h),y,v,t]}function G(e){return u(e)?e[1]:e[2]}function _(e){if(b(e)){var n=e[0];return n[n.length-1]}var r=e[0];return e[1].reduce((function(e,n){return g(n)&&!k(n)?L(n):e}),void 0)||r[r.length-1]}function L(e){var n=_(e);return b(n)?L(n):n}function z(e){var n=e[1],r=e[2],t=e[3],i=e[0].map((function(e){return b(e)?B(e):e})),u=n.map((function(e){return g(e)?z(e):e})),c=r.map((function(e){return o(e)?d(e):e}));return[i,[].concat(u,c),t]}function B(e){var n=e[1],r=e[2],t=e[0].map((function(e){return b(e)?B(e):e}));return[[].concat(t,n),r]}function H(e,n){switch(e){case"—":case"…":return 200;case".":case",":return 150;case"?":case"!":return"!"!==n&&"?"!==n?150:20;case"-":case" ":case"\n":return 0;default:return 20}}!function(e){e[e.Played=0]="Played",e[e.InProgress=1]="InProgress"}(n||(n={}));var J=function(e){return r.createElement(r.Fragment,null,e.children)},K=function(e){return r.createElement(r.Fragment,null,e.children)};function N(e){return{windup:e,didFinishOnce:!1}}function Q(e,n){switch(n.type){case"replace":return N(n.windup);case"next":return u(e.windup)?e:v({},e,{windup:y(e.windup)});case"rewind":return{windup:d(e.windup),didFinishOnce:!1};case"fast-forward":return u(e.windup)?e:v({},e,{windup:p(e.windup)});case"finish":return v({},e,{didFinishOnce:!0});default:return e}}function U(e,n){var t=r.useReducer(Q,e,N),i=t[0],a=i.windup,s=i.didFinishOnce,p=t[1],d=r.useRef(null),h=function(e){return!!u(e)||0===e[1].length}(a),y=r.useCallback((function(){h||(d.current&&clearTimeout(d.current),p({type:"fast-forward"}))}),[h]),v=r.useCallback((function(){d.current&&clearTimeout(d.current),p({type:"rewind"})}),[]);return r.useEffect((function(){p({type:"replace",windup:e})}),[e]),r.useEffect((function(){var e=function e(n){if(u(n))return[];var r=n[1],t=n[2],i=l(n),a=r[0],s=[];return i&&o(i)&&s.push.apply(s,e(i)),a&&c(a)&&!f(a)&&s.push.apply(s,e(a)),t.onChar&&s.push(t.onChar),s}(a),n=m(a);e.length>0&&n&&e.forEach((function(e){e(n,!1)}))}),[a]),r.useEffect((function(){if(!1===s&&h){var e=setTimeout((function(){n.onFinished&&n.onFinished(),p({type:"finish"})}),0);return function(){clearTimeout(e)}}}),[s,h,n]),r.useEffect((function(){if(!h){var e=function e(n,r){if(!u(n)){var t=n[2],i=n[1][0];return i&&c(i)?e(i,t.pace||r):t.pace||r}}(a)||H,n=m(a),r=function e(n){if(!u(n)){var r=n[1][0];return c(r)?e(r):r}}(a);return d.current=setTimeout((function(){p({type:"next"})}),n?e(n,r):0),function(){d.current&&clearTimeout(d.current)}}}),[a,h]),{windup:a,skip:y,rewind:v,isFinished:h}}var X=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],Y=function(){return null},Z=r.createContext({skip:function(){console.warn("Tried to use the useSkip hook outside of a WindupChildren component!!")},rewind:function(){console.warn("Tried to use the useRewind hook outside of a WindupChildren component!")},isFinished:!1});function $(e,n){if("string"==typeof n)return[].concat(e,n.split(""));if("number"==typeof n)return[].concat(e,n.toString().split(""));if(!r.isValidElement(n))return e;var t=n.props,i=t.children,u=function(e,n){if(null==e)return{};var r,t,i={},u=Object.keys(e);for(t=0;t<u.length;t++)n.indexOf(r=u[t])>=0||(i[r]=e[r]);return i}(t,["children"]),o=n.type===J?function(e){if(function(e){return"ms"in e}(e)){var n=e.ms,r=e.reverseMs;return v({pace:function(){return n}},r?{reversePace:function(){return r}}:{})}if(function(e){return"reverseMs"in e}(e)){var t=e.ms,i=e.reverseMs;return v({reversePace:function(){return i}},t?{pace:function(){return t}}:{})}return function(e){return"reverseGetPace"in e}(e)?v({reversePace:e.getReversePace},e.getPace?{pace:e.getPace}:{}):v({pace:e.getPace},e.getReversePace?{reversePace:e.getReversePace}:{})}(n.props):{},f=function(e){return e.type===K}(n)?{onChar:n.props.fn}:{},p=n.key?{key:n.key}:{};if(function(e){return e.type===Y}(n))return[].concat(e,[a(" ",v({element:r.Fragment},p,{props:{children:void 0},pace:function(){return n.props.ms}}))]);if(void 0===i)return[].concat(e,[a(" ",v({element:n.type,props:v({},u,{children:void 0})},p,o,f))]);if("string"==typeof i)return[].concat(e,[a(i,v({element:n.type,props:u},p,o,f))]);if(i instanceof Function)return[].concat(e,[a(" ",v({element:n.type,props:v({children:i},u)},p,o,f))]);var d=r.Children.toArray(i).reduce($,[]).map((function(e){return c(e)?[e[0],e[1],v({},o,f,e[2])]:e}));return[].concat(e,[s(d,v({element:n.type,props:u},p,o,f))])}function ee(e){if(null==e)return"";var n=r.Children.map(e,(function(e){return"string"==typeof e?e:"number"==typeof e?e.toString():r.isValidElement(e)?"#"+(e.key||"")+"<"+ee(e.props.children)+">":""}));return n?n.join(","):""}function ne(e,n){return r.useMemo(e,[ee(n)])}function re(e,n){var t=e[0],i=e[1];if("string"==typeof n||"number"==typeof n){var u=i[0],c=i.slice(1);return[[].concat(t,[u]),c]}if(!r.isValidElement(n))return[t,i];var o=r.Children.toArray(n.props.children).reduce(re,[[],i]),a=o[1];return[[].concat(t,[r.cloneElement(n,{children:o[0]})]),a]}function te(e){return e.type===ie}function ie(e){return r.createElement(r.Fragment,null,e.children)}function ue(e){return"toRewind"in e}function ce(e){return!!ue(e)&&w(e.toRewind)>w(e.toResume)}function oe(e){return ue(e)?ce(e)?e.toRewind:e.toResume:e.toPlay}function ae(e){return ue(e)?ce(e)?b(e.toRewind)?B(e.toRewind):z(e.toRewind):b(e.toResume)?B(e.toResume):z(e.toResume):b(e.toPlay)?B(e.toPlay):z(e.toPlay)}function se(e,n){switch(n.type){case"start-rewindup":return{toRewind:D(n.baseWindup,n.againstWindup),toResume:D(n.againstWindup,n.baseWindup)};case"proceed":return ue(e)?ce(e)?v({},e,{toRewind:E(e.toRewind)}):v({},e,{toResume:W(e.toResume)}):b(e.toPlay)?e:{toPlay:W(e.toPlay)};case"fast-forward":return{toPlay:F(oe(e))};default:return e}}function fe(e,n){var t=r.useReducer(se,{toPlay:u(e)?A(e):R(e)}),i=t[0],c=t[1];r.useEffect((function(){if(i){var e=oe(i),n=function e(n){if(b(n))return[];var r=n[1],t=n[3],i=_(n),u=r[0],c=[];return i&&b(i)&&c.push.apply(c,e(i)),u&&g(u)&&!k(u)&&c.push.apply(c,e(u)),t.onChar&&c.push(t.onChar),c}(e),r=L(e);n.length>0&&r&&n.forEach((function(e){e(r,ue(i))}))}}),[i]);var o=r.useRef(null),a=b(oe(i)),f=r.useRef(!1);r.useEffect((function(){if(a&&!f.current){var e=setTimeout((function(){n.onFinished&&n.onFinished(),f.current=!0}),0);return function(){clearTimeout(e)}}}),[a,n.onFinished]),r.useEffect((function(){var e=b(ue(i)?i.toResume:i.toPlay),n=!ue(i)||w(i.toResume)>=w(i.toRewind);if(!(!i||e&&n)){var r=oe(i),t=function e(n,r,t){if(!b(n)){var i=n[3],u=n[1][0],c=r?i.reversePace:i.pace;return u&&g(u)?e(u,r,c||t):c||t}}(r,ce(i))||H,u=L(r),a=function e(n){if(!b(n)){var r=n[1][0];return g(r)?e(r):r}}(r),s=u?t(u,a):0;return o.current=setTimeout((function(){c({type:"proceed"})}),s),function(){o.current&&clearTimeout(o.current)}}}),[i]);var p,d,l=(p=e,d=r.useRef(),r.useEffect((function(){d.current=p}),[p]),d.current);r.useEffect((function(){f.current=!1,void 0!==l&&l!==e&&(n.onRewindStart&&n.onRewindStart(),c({type:"start-rewindup",baseWindup:ae(i),againstWindup:e}))}),[e,l]);var m=r.useCallback((function(){c({type:"fast-forward"})}),[]),h=r.useCallback((function(){c({type:"start-rewindup",baseWindup:s([],{}),againstWindup:e}),f.current=!1}),[]);return{windup:oe(i),skip:m,rewind:h,isFinished:a}}exports.CharWrapper=function(e){var n=e.element;return r.createElement(r.Fragment,null,r.Children.map(e.children,(function(e){return function e(n,t){if("string"==typeof n)return n.split("").map((function(e,n){return"\n"===e?e:r.createElement(t,{key:e+"-"+n},e)}));if("number"==typeof n)return n.toString().split("").map((function(e){return r.createElement(t,null,e)}));if(!r.isValidElement(n))return r.createElement(r.Fragment,null);if(n.props.children){var i=n.type;return n.props.children instanceof Function?r.createElement(i,Object.assign({key:n.key},n.props)):r.createElement(i,Object.assign({key:n.key},n.props),r.Children.map(n.props.children,(function(n){return e(n,t)})))}return n}(e,n)})))},exports.Effect=function(e){var n=e.fn;return r.useEffect((function(){n()}),[]),null},exports.Linebreaker=function(e){var n=e.fontStyle,t=e.width,u=r.Children.toArray(e.children),c=u.reduce(function e(n){return function(t,i){return"string"==typeof i?[].concat(t,[{text:i,font:n}]):"number"==typeof i?[].concat(t,[{text:i.toString(),font:n}]):r.isValidElement(i)?te(i)&&"string"==typeof i.props.children?[].concat(t,[{text:i.props.children,font:i.props.fontStyle}]):te(i)?[].concat(t,r.Children.toArray(i.props.children).reduce(e(i.props.fontStyle),[])):[].concat(t,r.Children.toArray(i.props.children).reduce(e(n),[])):t}}(n),[]),o=i(c,t,n),a=u.reduce(re,[[],o]);return r.createElement("div",{style:{whiteSpace:"pre"}},a[0])},exports.OnChar=K,exports.Pace=J,exports.Pause=Y,exports.RewindupChildren=function(e){var n=e.children,t=e.onFinished,i=e.onRewindStart,u=e.skipped,c=ne((function(){return s(void 0===n?[]:r.Children.toArray(n).reduce($,[]),{element:void 0})}),n),o=fe(r.useMemo((function(){return u?p(c):c}),[c,u]),{onFinished:t,onRewindStart:i});return r.createElement(Z.Provider,{value:{skip:o.skip,rewind:o.rewind,isFinished:o.isFinished}},function e(n){var t=b(n)?n[2]:n[3],i=P(n),u=t.element||r.Fragment;if(t.props&&Object.keys(t.props).includes("children"))return r.createElement(u,Object.assign({key:t.key},t.props));var c=i.reduce((function(n,r){return[].concat(n,"string"==typeof r?[r]:[e(r)])}),[]);return"string"==typeof t.element&&X.includes(t.element)?r.createElement(u,Object.assign({key:t.key},t.props)):c.every((function(e){return"string"==typeof e}))?r.createElement(u,Object.assign({key:t.key},t.props),c.join("")):r.createElement(u,Object.assign({key:t.key},t.props),c)}(o.windup))},exports.StyledText=ie,exports.WindupChildren=function(e){var n=e.children,t=e.onFinished,i=e.skipped,c=ne((function(){return s(r.Children.toArray(n).reduce($,[]),{element:void 0})}),n),o=U(r.useMemo((function(){return i?p(c):c}),[c,i]),{onFinished:t});return r.createElement(Z.Provider,{value:{skip:o.skip,rewind:o.rewind,isFinished:o.isFinished}},function e(n){var t=u(n)?n[1]:n[2],i=h(n),c=t.element||r.Fragment;if(t.props&&Object.keys(t.props).includes("children"))return r.createElement(c,Object.assign({key:t.key},t.props));var o=i.reduce((function(n,r){if("string"==typeof r){var t=n.slice(0,n.length-1),i=n[n.length-1];return i&&"string"==typeof i?[].concat(t,[i+r]):[].concat(n,[r])}return[].concat(n,[e(r)])}),[]);return"string"==typeof t.element&&X.includes(t.element)?r.createElement(c,Object.assign({key:t.key},t.props)):o.every((function(e){return"string"==typeof e}))?r.createElement(c,Object.assign({key:t.key},t.props),o.join("")):r.createElement(c,Object.assign({key:t.key},t.props),o)}(o.windup))},exports.defaultGetPace=H,exports.textFromChildren=function e(n){var t=r.Children.map(n,(function(n){return"string"==typeof n?n:"number"==typeof n?n.toString():r.isValidElement(n)&&n.props.children?e(n.props.children):""}));return t?t.join(""):""},exports.useIsFinished=function(){return r.useContext(Z).isFinished},exports.useRewind=function(){return r.useContext(Z).rewind},exports.useRewindupString=function(e,n){void 0===n&&(n={});var t=r.useMemo((function(){return a(e,n)}),[e]),i=fe(r.useMemo((function(){return n.skipped?p(t):t}),[t,n.skipped]),n),u=i.skip,c=i.rewind,o=i.isFinished,s=function e(n){return P(n).reduce((function(n,r){return"string"==typeof r?n+r:n+e(r)}),"")}(i.windup);return r.useDebugValue(s),[s,{skip:u,rewind:c,isFinished:o}]},exports.useSkip=function(){return r.useContext(Z).skip},exports.useWindupString=function(e,n){void 0===n&&(n={});var t=r.useMemo((function(){return a(e,n)}),[e]),i=U(r.useMemo((function(){return n.skipped?p(t):t}),[t,n.skipped]),n),u=i.skip,c=i.rewind,o=i.isFinished,s=function e(n){return h(n).reduce((function(n,r){return"string"==typeof r?n+r:n+e(r)}),"")}(i.windup);return r.useDebugValue(s),[s,{skip:u,rewind:c,isFinished:o}]};
"use strict";function e(e){return e&&"object"==typeof e&&"default"in e?e.default:e}Object.defineProperty(exports,"__esModule",{value:!0});var n,r=require("react"),t=e(require("fast-deep-equal")),i=e(require("break-styled-lines"));function u(e){return!!Array.isArray(e)&&2===e.length&&!!Array.isArray(e[0])}function c(e){return!!Array.isArray(e)&&3===e.length&&!(!Array.isArray(e[0])||!Array.isArray(e[1]))}function o(e){return!!Array.isArray(e)&&2===e.length&&!!Array.isArray(e[0])}function a(e,n){return[[],e.split(""),n]}function s(e,n){return[[],e,n]}function f(e){return!u(e)&&!(e[0].length>0)&&e[1].reduce((function(n,r){return c(r)&&c(e)&&n?f(r):n}),!0)}function p(e){if(u(e))return e;var n=y(e);return u(n)?n:p(n)}function d(e){if(!u(e)&&f(e))return e;var n=e[0],r=u(e)?e[1]:e[2],t=function(e){return o(e)?d(e):e};if(u(e))return[[],n.map(t),r];var i=e[1];return[[],[].concat(n.map(t),i.map((function(e){return c(e)?d(e):e}))),r]}function l(e){if(u(e)){var n=e[0];return n[n.length-1]}var r=e[0];return e[1].reduce((function(e,n){return c(n)&&!f(n)?m(n):e}),void 0)||r[r.length-1]}function m(e){var n=l(e);return o(n)?m(n):n}function h(e){if(u(e))return e[0];var n=e[0],r=e[1][0];if(c(r)&&!f(r)){var t=r[2];return[].concat(n,[[h(r),t]])}return n}function y(e){if(u(e))return e;var n=e[0],r=e[1],t=e[2],i=r[0],o=r.slice(1);if(!i)return[n,t];if(c(i)){var a=y(i);return u(a)?0===o.length?[[].concat(n,[a]),t]:[[].concat(n,[a]),o,t]:[n,[a].concat(o),t]}return 0===o.length?[[].concat(n,[i]),t]:[[].concat(n,[i]),o,t]}function v(){return(v=Object.assign||function(e){for(var n=1;n<arguments.length;n++){var r=arguments[n];for(var t in r)Object.prototype.hasOwnProperty.call(r,t)&&(e[t]=r[t])}return e}).apply(this,arguments)}function g(e){return!!Array.isArray(e)&&4===e.length&&!(!Array.isArray(e[0])||!Array.isArray(e[1]))}function b(e){return!!Array.isArray(e)&&3===e.length&&!(!Array.isArray(e[0])||!Array.isArray(e[1]))}function k(e){var n=e[0],r=e[1];return!b(e)&&!(n.length>0)&&r.reduce((function(n,r){return g(r)&&g(e)&&n?k(r):n}),!0)}function w(e){var n=e[1],r=e[0].reduce((function(e,n){return b(n)?e+w(n):e+1}),0),t=n[0];return t&&g(t)?r+w(t):r}function P(e){if(b(e))return[].concat(e[0],e[1].map((function(e){return o(e)?A(e):e})));var n=e[0],r=e[2],t=e[1].reduce((function(e,n){if(g(n)){var r=n[3],t=[[],P(n),r];return[].concat(e,[t])}return e}),[]);return[].concat(n,t,r.map((function(e){return o(e)?A(e):e})))}function F(e){if(b(e)){var n=e[0],r=e[1],t=e[2],i=n.slice(0,-1),u=n[n.length-1];return u?b(u)?[i,[F(u)],r,t]:[i,[u],r,t]:[n,[],r,t]}var c=e[0],o=e[1],a=e[2],s=e[3],f=o[0],p=o.slice(1);if(!f){var d=c.slice(0,-1),l=c[c.length-1];return l?b(l)?[d,[F(l)],a,s]:[d,[l],a,s]:[c,[],a,s]}if(g(f)&&!k(f))return[c,[F(f)].concat(p),a,s];var m=c.slice(0,-1),h=c[c.length-1];return b(h)?[m,[F(h)].concat(o),a,s]:[m,[h].concat(o),a,s]}function E(e){if(b(e))return e;var n=e[0],r=e[1],t=e[2],i=e[3],u=r[0],c=r.slice(1);if(!u)return[n,t,i];if(g(u)){var o=E(u);return b(o)?0===c.length?[[].concat(n,[o]),t,i]:[[].concat(n,[o]),c,t,i]:[n,[o].concat(c),t,i]}return 0===c.length?[[].concat(n,[u]),t,i]:[[].concat(n,[u]),c,t,i]}function W(e){var n=E(e);return b(n)?n:W(n)}function R(e){var n=e[1],r=e[2];return[e[0].map((function(e){return o(e)?A(e):e})),n.map((function(e){return c(e)?R(e):e})),[],r]}function A(e){var n=e[1];return[e[0].map((function(e){return o(e)?A(e):e})),[],n]}function C(e){var r=(u(e),e[0]),t=u(e)?[]:e[1];return[].concat(r.map((function(e){return o(e)?{member:e,kind:n.Played,isWindup:!0}:{member:e,kind:n.Played,isWindup:!1}})),t.map((function(e){return c(e)?{member:e,kind:n.InProgress,isWindup:!0}:{member:e,kind:n.InProgress,isWindup:!1}})))}function x(e,n){if(!e.isWindup&&n.isWindup||e.isWindup&&!n.isWindup)return!1;if(e.isWindup&&n.isWindup){var r=G(e.member),i=G(n.member);if(!t(r,i))return!1;var u=C(e.member),c=C(n.member);return u.length===c.length&&S(u,c).every((function(e){var n=e[1];return!!n&&x(e[0],n)}))}return t(e.member,n.member)}function O(e){return e.reduce((function(e,n){var r=n[0],t=n[1];return t&&x(r,t)&&0===e.unmatched.length?v({},e,{matched:[].concat(e.matched,[r])}):v({},e,{unmatched:[].concat(e.unmatched,[[r,t]])})}),{matched:[],unmatched:[]})}function j(e){return e.reduce((function(e,n){var r=n[0],t=n[1];return t&&x(r,t)&&0===e.unmatched.length?v({},e,{matched:[r].concat(e.matched)}):v({},e,{unmatched:[[r,t]].concat(e.unmatched)})}),{matched:[],unmatched:[]})}function S(e,n){return e.map((function(e,r){return[e,n[r]]}))}function T(e,n){for(var r=[],t=0;t<=e.length-1;t++)r.push([e[e.length-1-t],n[n.length-1-t]]);return r}function M(e){var r=e[0],t=e[1];if(r.isWindup&&null!=t&&t.isWindup){var i=G(r.member),u=O(S(C(r.member),C(t.member))),c=u.unmatched,o=u.matched.map((function(e){return e.kind===n.InProgress&&e.isWindup?A(p(e.member)):e.kind===n.Played&&e.isWindup?A(e.member):e.member})),a=M(c[0]),s=c.map((function(e){return e[0]})).map(V);if(a){var f=s.slice(1,0);return[o,[a].concat(f),[],i]}return[o,s,[],i]}}function I(e){var n=e[0],r=e[1];if(n.isWindup&&null!=r&&r.isWindup){var t=G(n.member),i=C(n.member),u=j(T(i,C(r.member))),c=u.matched,o=u.unmatched,a=M(o[o.length-1]),s=c.map(q);if(a){var f=i.slice(0,o.length-1).map(V);return[[],[].concat(f,[a]),s,t]}return[[],[].concat(o).map((function(e){return e[0]})).map(V),s,t]}}function V(e){return e.isWindup&&e.kind===n.Played?F(A(e.member)):e.isWindup?R(e.member):e.member}function q(e){return e.isWindup&&e.kind===n.InProgress?p(e.member):e.member}function D(e,r){var t=G(e),i=C(e),u=C(r),c=O(S(i,u)),o=c.unmatched,a=c.matched.map((function(e){return e.kind===n.InProgress&&e.isWindup?A(p(e.member)):e.kind===n.Played&&e.isWindup?A(e.member):e.member})),s=i.length-a.length,f=j(T(i,u).slice(0,s)),d=f.matched,l=f.unmatched,m=function(e,r){if(0===e.length||0===r.length)return{played:[],remaining:[]};var t=e[0],i=t[0],u=t[1],c=r[r.length-1],o=c[0],a=c[1];if(1===e.length&&1===r.length&&i.isWindup&&null!=u&&u.isWindup){var s=D(i.member,u.member);return b(s)?{played:[s],remaining:[]}:{played:[],remaining:[s]}}var f=e.filter((function(e){return e[0].kind===n.Played})),p=f.map((function(e){return e[0]})).map((function(e){return e.isWindup&&e.kind===n.InProgress?W(R(e.member)):e.isWindup?A(e.member):e.member})),d=e.slice(p.length);if(0===d.length&&0===f.length)return{played:p,remaining:[]};if(0===d.length){var l=r.slice(0,f.length),m=l[l.length-1],h=I([m[0],m[1]]);if(h){var y=p.slice(0,-1);return{played:[].concat(y,[W(h)]),remaining:[]}}return{played:p,remaining:[]}}var v=d[0],g=M([v[0],v[1]]),k=I([o,a]),w=d.map((function(e){return e[0]})).map(V);if(g&&k){var P=w.slice(1,-1);return{played:p,remaining:[g].concat(P,[k])}}if(!g&&k){var F=w.slice(0,-1);return{played:p,remaining:[].concat(F,[k])}}if(g&&!k){var E=w.slice(1);return{played:p,remaining:[g].concat(E)}}return{played:p,remaining:w}}(o.slice(0,l.length),l),h=m.played,y=m.remaining,v=d.map((function(e){return e.kind===n.InProgress&&e.isWindup?p(e.member):e.member}));return 0===y.length?[[].concat(a,h),v,t]:[[].concat(a,h),y,v,t]}function G(e){return u(e)?e[1]:e[2]}function _(e){if(b(e)){var n=e[0];return n[n.length-1]}var r=e[0];return e[1].reduce((function(e,n){return g(n)&&!k(n)?L(n):e}),void 0)||r[r.length-1]}function L(e){var n=_(e);return b(n)?L(n):n}function z(e){var n=e[1],r=e[2],t=e[3],i=e[0].map((function(e){return b(e)?B(e):e})),u=n.map((function(e){return g(e)?z(e):e})),c=r.map((function(e){return o(e)?d(e):e}));return[i,[].concat(u,c),t]}function B(e){var n=e[1],r=e[2],t=e[0].map((function(e){return b(e)?B(e):e}));return[[].concat(t,n),r]}function H(e,n){switch(e){case"—":case"…":return 200;case".":case",":return 150;case"?":case"!":return"!"!==n&&"?"!==n?150:20;case"-":case" ":case"\n":return 0;default:return 20}}!function(e){e[e.Played=0]="Played",e[e.InProgress=1]="InProgress"}(n||(n={}));var J=function(e){return r.createElement(r.Fragment,null,e.children)},K=function(e){return r.createElement(r.Fragment,null,e.children)};function N(e){return{windup:e,didFinishOnce:!1}}function Q(e,n){switch(n.type){case"replace":return N(n.windup);case"next":return u(e.windup)?e:v({},e,{windup:y(e.windup)});case"rewind":return{windup:d(e.windup),didFinishOnce:!1};case"fast-forward":return u(e.windup)?e:v({},e,{windup:p(e.windup)});case"finish":return v({},e,{didFinishOnce:!0});default:return e}}function U(e,n){var t=r.useReducer(Q,e,N),i=t[0],a=i.windup,s=i.didFinishOnce,p=t[1],d=r.useRef(null),h=function(e){return!!u(e)||0===e[1].length}(a),y=r.useCallback((function(){h||(d.current&&clearTimeout(d.current),p({type:"fast-forward"}))}),[h]),v=r.useCallback((function(){d.current&&clearTimeout(d.current),p({type:"rewind"})}),[]);return r.useEffect((function(){p({type:"replace",windup:e})}),[e]),r.useEffect((function(){var e=function e(n){if(u(n))return[];var r=n[1],t=n[2],i=l(n),a=r[0],s=[];return i&&o(i)&&s.push.apply(s,e(i)),a&&c(a)&&!f(a)&&s.push.apply(s,e(a)),t.onChar&&s.push(t.onChar),s}(a),n=m(a);e.length>0&&n&&e.forEach((function(e){e(n,!1)}))}),[a]),r.useEffect((function(){if(!1===s&&h){var e=setTimeout((function(){n.onFinished&&n.onFinished(),p({type:"finish"})}),0);return function(){clearTimeout(e)}}}),[s,h,n]),r.useEffect((function(){if(!h){var e=function e(n,r){if(!u(n)){var t=n[2],i=n[1][0];return i&&c(i)?e(i,t.pace||r):t.pace||r}}(a)||H,n=m(a),r=function e(n){if(!u(n)){var r=n[1][0];return c(r)?e(r):r}}(a);return d.current=setTimeout((function(){p({type:"next"})}),n?e(n,r):0),function(){d.current&&clearTimeout(d.current)}}}),[a,h]),{windup:a,skip:y,rewind:v,isFinished:h}}var X=["area","base","br","col","command","embed","hr","img","input","keygen","link","meta","param","source","track","wbr"],Y=function(){return null},Z=r.createContext({skip:function(){console.warn("Tried to use the useSkip hook outside of a WindupChildren component!!")},rewind:function(){console.warn("Tried to use the useRewind hook outside of a WindupChildren component!")},isFinished:!1});function $(e,n){if("string"==typeof n)return[].concat(e,n.split(""));if("number"==typeof n)return[].concat(e,n.toString().split(""));if(!r.isValidElement(n))return e;var t=n.props,i=t.children,u=function(e,n){if(null==e)return{};var r,t,i={},u=Object.keys(e);for(t=0;t<u.length;t++)n.indexOf(r=u[t])>=0||(i[r]=e[r]);return i}(t,["children"]),o=n.type===J?function(e){if(function(e){return"ms"in e}(e)){var n=e.ms,r=e.reverseMs;return v({pace:function(){return n}},r?{reversePace:function(){return r}}:{})}if(function(e){return"reverseMs"in e}(e)){var t=e.ms,i=e.reverseMs;return v({reversePace:function(){return i}},t?{pace:function(){return t}}:{})}return function(e){return"reverseGetPace"in e}(e)?v({reversePace:e.getReversePace},e.getPace?{pace:e.getPace}:{}):v({pace:e.getPace},e.getReversePace?{reversePace:e.getReversePace}:{})}(n.props):{},f=function(e){return e.type===K}(n)?{onChar:n.props.fn}:{},p=n.key?{key:n.key}:{};if(function(e){return e.type===Y}(n))return[].concat(e,[a(" ",v({element:r.Fragment},p,{props:{children:void 0},pace:function(){return n.props.ms}}))]);if(void 0===i)return[].concat(e,[a(" ",v({element:n.type,props:v({},u,{children:void 0})},p,o,f))]);if("string"==typeof i)return[].concat(e,[a(i,v({element:n.type,props:u},p,o,f))]);if(i instanceof Function)return[].concat(e,[a(" ",v({element:n.type,props:v({children:i},u)},p,o,f))]);var d=r.Children.toArray(i).reduce($,[]).map((function(e){return c(e)?[e[0],e[1],v({},o,f,e[2])]:e}));return[].concat(e,[s(d,v({element:n.type,props:u},p,o,f))])}function ee(e){if(null==e)return"";var n=r.Children.map(e,(function(e){return"string"==typeof e?e:"number"==typeof e?e.toString():r.isValidElement(e)?"#"+(e.key||"")+"<"+ee(e.props.children)+">":""}));return n?n.join(","):""}function ne(e,n){return r.useMemo(e,[ee(n)])}function re(e,n){var t=e[0],i=e[1];if("string"==typeof n||"number"==typeof n){var u=i[0],c=i.slice(1);return[[].concat(t,[u]),c]}if(!r.isValidElement(n))return[t,i];var o=r.Children.toArray(n.props.children).reduce(re,[[],i]),a=o[1];return[[].concat(t,[r.cloneElement(n,{children:o[0]})]),a]}function te(e){return e.type===ie}function ie(e){return r.createElement(r.Fragment,null,e.children)}function ue(e){return"toRewind"in e}function ce(e){return!!ue(e)&&w(e.toRewind)>w(e.toResume)}function oe(e){return ue(e)?ce(e)?e.toRewind:e.toResume:e.toPlay}function ae(e){return ue(e)?ce(e)?b(e.toRewind)?B(e.toRewind):z(e.toRewind):b(e.toResume)?B(e.toResume):z(e.toResume):b(e.toPlay)?B(e.toPlay):z(e.toPlay)}function se(e,n){switch(n.type){case"start-rewindup":return{toRewind:D(n.baseWindup,n.againstWindup),toResume:D(n.againstWindup,n.baseWindup),didFinishOnce:!1};case"proceed":return ue(e)?ce(e)?v({},e,{toRewind:F(e.toRewind)}):v({},e,{toResume:E(e.toResume)}):b(e.toPlay)?e:{didFinishOnce:!1,toPlay:E(e.toPlay)};case"fast-forward":return{didFinishOnce:!1,toPlay:W(oe(e))};case"finish":return v({},e,{didFinishOnce:!0});default:return e}}function fe(e,n){var t=r.useReducer(se,{toPlay:u(e)?A(e):R(e),didFinishOnce:!1}),i=t[0],c=t[1];r.useEffect((function(){if(i){var e=oe(i),n=function e(n){if(b(n))return[];var r=n[1],t=n[3],i=_(n),u=r[0],c=[];return i&&b(i)&&c.push.apply(c,e(i)),u&&g(u)&&!k(u)&&c.push.apply(c,e(u)),t.onChar&&c.push(t.onChar),c}(e),r=L(e);n.length>0&&r&&n.forEach((function(e){e(r,ue(i))}))}}),[i]);var o=r.useRef(null),a=b(oe(i));r.useEffect((function(){if(a&&!i.didFinishOnce&&!ce(i)){var e=setTimeout((function(){n.onFinished&&n.onFinished(),c({type:"finish"})}),0);return function(){clearTimeout(e)}}}),[a,i]),r.useEffect((function(){var e=b(ue(i)?i.toResume:i.toPlay),n=!ue(i)||w(i.toResume)>=w(i.toRewind);if(!(!i||e&&n)){var r=oe(i),t=function e(n,r,t){if(!b(n)){var i=n[3],u=n[1][0],c=r?i.reversePace:i.pace;return u&&g(u)?e(u,r,c||t):c||t}}(r,ce(i))||H,u=L(r),a=function e(n){if(!b(n)){var r=n[1][0];return g(r)?e(r):r}}(r),s=u?t(u,a):0;return o.current=setTimeout((function(){c({type:"proceed"})}),s),function(){o.current&&clearTimeout(o.current)}}}),[i]);var f,p,d=(f=e,p=r.useRef(),r.useEffect((function(){p.current=f}),[f]),p.current);r.useEffect((function(){void 0!==d&&d!==e&&(n.onRewindStart&&n.onRewindStart(),c({type:"start-rewindup",baseWindup:ae(i),againstWindup:e}))}),[e,d]);var l=r.useCallback((function(){c({type:"fast-forward"})}),[]),m=r.useCallback((function(){c({type:"start-rewindup",baseWindup:s([],{}),againstWindup:e})}),[]);return{windup:oe(i),skip:l,rewind:m,isFinished:a}}exports.CharWrapper=function(e){var n=e.element;return r.createElement(r.Fragment,null,r.Children.map(e.children,(function(e){return function e(n,t){if("string"==typeof n)return n.split("").map((function(e,n){return"\n"===e?e:r.createElement(t,{key:e+"-"+n},e)}));if("number"==typeof n)return n.toString().split("").map((function(e){return r.createElement(t,null,e)}));if(!r.isValidElement(n))return r.createElement(r.Fragment,null);if(n.props.children){var i=n.type;return n.props.children instanceof Function?r.createElement(i,Object.assign({key:n.key},n.props)):r.createElement(i,Object.assign({key:n.key},n.props),r.Children.map(n.props.children,(function(n){return e(n,t)})))}return n}(e,n)})))},exports.Effect=function(e){var n=e.fn;return r.useEffect((function(){n()}),[]),null},exports.Linebreaker=function(e){var n=e.fontStyle,t=e.width,u=r.Children.toArray(e.children),c=u.reduce(function e(n){return function(t,i){return"string"==typeof i?[].concat(t,[{text:i,font:n}]):"number"==typeof i?[].concat(t,[{text:i.toString(),font:n}]):r.isValidElement(i)?te(i)&&"string"==typeof i.props.children?[].concat(t,[{text:i.props.children,font:i.props.fontStyle}]):te(i)?[].concat(t,r.Children.toArray(i.props.children).reduce(e(i.props.fontStyle),[])):[].concat(t,r.Children.toArray(i.props.children).reduce(e(n),[])):t}}(n),[]),o=i(c,t,n),a=u.reduce(re,[[],o]);return r.createElement("div",{style:{whiteSpace:"pre"}},a[0])},exports.OnChar=K,exports.Pace=J,exports.Pause=Y,exports.RewindupChildren=function(e){var n=e.children,t=e.onFinished,i=e.onRewindStart,u=e.skipped,c=ne((function(){return s(void 0===n?[]:r.Children.toArray(n).reduce($,[]),{element:void 0})}),n),o=fe(r.useMemo((function(){return u?p(c):c}),[c,u]),{onFinished:t,onRewindStart:i});return r.createElement(Z.Provider,{value:{skip:o.skip,rewind:o.rewind,isFinished:o.isFinished}},function e(n){var t=b(n)?n[2]:n[3],i=P(n),u=t.element||r.Fragment;if(t.props&&Object.keys(t.props).includes("children"))return r.createElement(u,Object.assign({key:t.key},t.props));var c=i.reduce((function(n,r){return[].concat(n,"string"==typeof r?[r]:[e(r)])}),[]);return"string"==typeof t.element&&X.includes(t.element)?r.createElement(u,Object.assign({key:t.key},t.props)):c.every((function(e){return"string"==typeof e}))?r.createElement(u,Object.assign({key:t.key},t.props),c.join("")):r.createElement(u,Object.assign({key:t.key},t.props),c)}(o.windup))},exports.StyledText=ie,exports.WindupChildren=function(e){var n=e.children,t=e.onFinished,i=e.skipped,c=ne((function(){return s(r.Children.toArray(n).reduce($,[]),{element:void 0})}),n),o=U(r.useMemo((function(){return i?p(c):c}),[c,i]),{onFinished:t});return r.createElement(Z.Provider,{value:{skip:o.skip,rewind:o.rewind,isFinished:o.isFinished}},function e(n){var t=u(n)?n[1]:n[2],i=h(n),c=t.element||r.Fragment;if(t.props&&Object.keys(t.props).includes("children"))return r.createElement(c,Object.assign({key:t.key},t.props));var o=i.reduce((function(n,r){if("string"==typeof r){var t=n.slice(0,n.length-1),i=n[n.length-1];return i&&"string"==typeof i?[].concat(t,[i+r]):[].concat(n,[r])}return[].concat(n,[e(r)])}),[]);return"string"==typeof t.element&&X.includes(t.element)?r.createElement(c,Object.assign({key:t.key},t.props)):o.every((function(e){return"string"==typeof e}))?r.createElement(c,Object.assign({key:t.key},t.props),o.join("")):r.createElement(c,Object.assign({key:t.key},t.props),o)}(o.windup))},exports.defaultGetPace=H,exports.textFromChildren=function e(n){var t=r.Children.map(n,(function(n){return"string"==typeof n?n:"number"==typeof n?n.toString():r.isValidElement(n)&&n.props.children?e(n.props.children):""}));return t?t.join(""):""},exports.useIsFinished=function(){return r.useContext(Z).isFinished},exports.useRewind=function(){return r.useContext(Z).rewind},exports.useRewindupString=function(e,n){void 0===n&&(n={});var t=r.useMemo((function(){return a(e,n)}),[e]),i=fe(r.useMemo((function(){return n.skipped?p(t):t}),[t,n.skipped]),n),u=i.skip,c=i.rewind,o=i.isFinished,s=function e(n){return P(n).reduce((function(n,r){return"string"==typeof r?n+r:n+e(r)}),"")}(i.windup);return r.useDebugValue(s),[s,{skip:u,rewind:c,isFinished:o}]},exports.useSkip=function(){return r.useContext(Z).skip},exports.useWindupString=function(e,n){void 0===n&&(n={});var t=r.useMemo((function(){return a(e,n)}),[e]),i=U(r.useMemo((function(){return n.skipped?p(t):t}),[t,n.skipped]),n),u=i.skip,c=i.rewind,o=i.isFinished,s=function e(n){return h(n).reduce((function(n,r){return"string"==typeof r?n+r:n+e(r)}),"")}(i.windup);return r.useDebugValue(s),[s,{skip:u,rewind:c,isFinished:o}]};
//# sourceMappingURL=windups.cjs.production.min.js.map

@@ -1900,3 +1900,4 @@ import { createElement, Fragment, useReducer, useRef, useCallback, useEffect, useMemo, useDebugValue, createContext, useContext, Children, isValidElement, cloneElement } from 'react';

toRewind: toRewind,
toResume: toResume
toResume: toResume,
didFinishOnce: false
};

@@ -1913,2 +1914,3 @@ }

return {
didFinishOnce: false,
toPlay: next$1(state.toPlay)

@@ -1934,2 +1936,3 @@ };

return {
didFinishOnce: false,
toPlay: fastForward$1(getActiveWindup(state))

@@ -1939,2 +1942,9 @@ };

case 'finish':
{
return _extends({}, state, {
didFinishOnce: true
});
}
default:

@@ -1947,3 +1957,4 @@ return state;

var _React$useReducer = useReducer(rewindupReducer, {
toPlay: isPlayedWindup(windupInit) ? playedWindupToSuffixed(windupInit) : windupToSuffixed(windupInit)
toPlay: isPlayedWindup(windupInit) ? playedWindupToSuffixed(windupInit) : windupToSuffixed(windupInit),
didFinishOnce: false
}),

@@ -1972,6 +1983,5 @@ state = _React$useReducer[0],

var windupIsFinished = isPlayedSuffixedWindup(getActiveWindup(state));
var didFinishOnce = useRef(false);
useEffect(function () {
// Put this in a new context so that the windup finishes visually before firing this
if (windupIsFinished && !didFinishOnce.current) {
if (windupIsFinished && !state.didFinishOnce && !isRewinding(state)) {
var timeout = setTimeout(function () {

@@ -1982,3 +1992,5 @@ if (options.onFinished) {

didFinishOnce.current = true;
dispatch({
type: 'finish'
});
}, 0);

@@ -1989,3 +2001,3 @@ return function () {

}
}, [windupIsFinished, options.onFinished]); // Proceed the windup
}, [windupIsFinished, state]); // Proceed the windup

@@ -2018,4 +2030,2 @@ useEffect(function () {

useEffect(function () {
didFinishOnce.current = false;
if (prevWindupInit === undefined) {

@@ -2050,3 +2060,2 @@ return;

});
didFinishOnce.current = false;
}, []);

@@ -2053,0 +2062,0 @@ return {

{
"name": "windups",
"version": "1.2.0-alpha.5",
"version": "1.2.0-alpha.6",
"description": "A unique typewriter effect library for React.",

@@ -5,0 +5,0 @@ "author": "Sam Gwilym <gwilym@me.com>",

@@ -41,2 +41,3 @@ import * as React from "react";

| PlayedSuffixedWindup<string, MetadataType>;
didFinishOnce: boolean
};

@@ -51,2 +52,3 @@

| PlayedSuffixedWindup<string, MetadataType>;
didFinishOnce: boolean
};

@@ -122,3 +124,3 @@

}
| { type: "fast-forward" };
| { type: "fast-forward" } | { type: 'finish' };

@@ -142,4 +144,4 @@ function rewindupReducer<M>(

toRewind,
toResume,
didFinishOnce: false
};

@@ -155,2 +157,3 @@ }

return {
didFinishOnce: false,
toPlay: next(state.toPlay),

@@ -177,4 +180,10 @@ };

case "fast-forward": {
return { toPlay: fastForward(getActiveWindup(state)) };
return { didFinishOnce: false, toPlay: fastForward(getActiveWindup(state)) };
}
case 'finish': {
return {
...state,
didFinishOnce: true
}
}

@@ -206,2 +215,3 @@ default:

: windupToSuffixed(windupInit),
didFinishOnce: false
}

@@ -232,7 +242,6 @@ );

const windupIsFinished = isPlayedSuffixedWindup(getActiveWindup(state));
const didFinishOnce = React.useRef(false);
React.useEffect(() => {
// Put this in a new context so that the windup finishes visually before firing this
if (windupIsFinished && !didFinishOnce.current) {
if (windupIsFinished && !state.didFinishOnce && !isRewinding(state)) {
const timeout = setTimeout(() => {

@@ -242,3 +251,3 @@ if (options.onFinished) {

}
didFinishOnce.current = true;
dispatch({type: 'finish'})
}, 0);

@@ -249,3 +258,3 @@ return () => {

}
}, [windupIsFinished, options.onFinished]);
}, [windupIsFinished, state]);

@@ -288,5 +297,3 @@ // Proceed the windup

React.useEffect(() => {
didFinishOnce.current = false
React.useEffect(() => {
if (prevWindupInit === undefined) {

@@ -321,3 +328,2 @@ return;

});
didFinishOnce.current = false
}, []);

@@ -324,0 +330,0 @@

@@ -9,2 +9,3 @@ import * as React from "react";

reversePace?: (char: string) => number;
onRewindStart?: () => void;
} & WindupOptions;

@@ -14,3 +15,3 @@

text: string,
options: WindupOptions = {}
options: RewindupOptions = {}
): [

@@ -17,0 +18,0 @@ string,

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc