@react-native-motion-kit/text-motion 0.0.0-stage → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/LICENSE +20 -0
- package/README.ko.md +698 -0
- package/README.md +696 -2
- package/lib/module/accessibility/index.js +4 -0
- package/lib/module/accessibility/index.js.map +1 -0
- package/lib/module/accessibility/policies.js +39 -0
- package/lib/module/accessibility/policies.js.map +1 -0
- package/lib/module/controls/brand.js +4 -0
- package/lib/module/controls/brand.js.map +1 -0
- package/lib/module/controls/controls.js +28 -0
- package/lib/module/controls/controls.js.map +1 -0
- package/lib/module/controls/descriptors.js +55 -0
- package/lib/module/controls/descriptors.js.map +1 -0
- package/lib/module/controls/index.js +4 -0
- package/lib/module/controls/index.js.map +1 -0
- package/lib/module/effects/compose.js +48 -0
- package/lib/module/effects/compose.js.map +1 -0
- package/lib/module/effects/fade.js +15 -0
- package/lib/module/effects/fade.js.map +1 -0
- package/lib/module/effects/index.js +12 -0
- package/lib/module/effects/index.js.map +1 -0
- package/lib/module/effects/lineReveal.js +17 -0
- package/lib/module/effects/lineReveal.js.map +1 -0
- package/lib/module/effects/pulse.js +14 -0
- package/lib/module/effects/pulse.js.map +1 -0
- package/lib/module/effects/rise.js +14 -0
- package/lib/module/effects/rise.js.map +1 -0
- package/lib/module/effects/scale.js +15 -0
- package/lib/module/effects/scale.js.map +1 -0
- package/lib/module/effects/shake.js +14 -0
- package/lib/module/effects/shake.js.map +1 -0
- package/lib/module/effects/slide.js +15 -0
- package/lib/module/effects/slide.js.map +1 -0
- package/lib/module/effects/typewriter.js +19 -0
- package/lib/module/effects/typewriter.js.map +1 -0
- package/lib/module/effects/validation.js +10 -0
- package/lib/module/effects/validation.js.map +1 -0
- package/lib/module/index.js +10 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/presets/index.js +35 -0
- package/lib/module/presets/index.js.map +1 -0
- package/lib/module/recipe/component.js +60 -0
- package/lib/module/recipe/component.js.map +1 -0
- package/lib/module/recipe/defineTextMotion.js +9 -0
- package/lib/module/recipe/defineTextMotion.js.map +1 -0
- package/lib/module/recipe/descriptors.js +60 -0
- package/lib/module/recipe/descriptors.js.map +1 -0
- package/lib/module/recipe/index.js +5 -0
- package/lib/module/recipe/index.js.map +1 -0
- package/lib/module/recipe/recipe.js +163 -0
- package/lib/module/recipe/recipe.js.map +1 -0
- package/lib/module/renderers/index.js +5 -0
- package/lib/module/renderers/index.js.map +1 -0
- package/lib/module/renderers/nativeText.js +494 -0
- package/lib/module/renderers/nativeText.js.map +1 -0
- package/lib/module/renderers/nativeTextControls.js +96 -0
- package/lib/module/renderers/nativeTextControls.js.map +1 -0
- package/lib/module/renderers/nativeTextLineLayout.js +290 -0
- package/lib/module/renderers/nativeTextLineLayout.js.map +1 -0
- package/lib/module/renderers/nativeTextPlayback.js +91 -0
- package/lib/module/renderers/nativeTextPlayback.js.map +1 -0
- package/lib/module/renderers/overlayText.js +543 -0
- package/lib/module/renderers/overlayText.js.map +1 -0
- package/lib/module/renderers/overlayTextLayout.js +182 -0
- package/lib/module/renderers/overlayTextLayout.js.map +1 -0
- package/lib/module/renderers/rendererMotion.js +264 -0
- package/lib/module/renderers/rendererMotion.js.map +1 -0
- package/lib/module/split/createToken.js +19 -0
- package/lib/module/split/createToken.js.map +1 -0
- package/lib/module/split/custom.js +57 -0
- package/lib/module/split/custom.js.map +1 -0
- package/lib/module/split/graphemes.js +25 -0
- package/lib/module/split/graphemes.js.map +1 -0
- package/lib/module/split/index.js +7 -0
- package/lib/module/split/index.js.map +1 -0
- package/lib/module/split/lines.js +43 -0
- package/lib/module/split/lines.js.map +1 -0
- package/lib/module/split/segmenter.js +74 -0
- package/lib/module/split/segmenter.js.map +1 -0
- package/lib/module/split/words.js +28 -0
- package/lib/module/split/words.js.map +1 -0
- package/lib/module/timeline/index.js +7 -0
- package/lib/module/timeline/index.js.map +1 -0
- package/lib/module/timeline/parallel.js +21 -0
- package/lib/module/timeline/parallel.js.map +1 -0
- package/lib/module/timeline/sequence.js +18 -0
- package/lib/module/timeline/sequence.js.map +1 -0
- package/lib/module/timeline/stagger.js +43 -0
- package/lib/module/timeline/stagger.js.map +1 -0
- package/lib/module/timeline/validation.js +24 -0
- package/lib/module/timeline/validation.js.map +1 -0
- package/lib/module/timeline/wave.js +25 -0
- package/lib/module/timeline/wave.js.map +1 -0
- package/lib/module/types/index.js +4 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/types/recipe.js +4 -0
- package/lib/module/types/recipe.js.map +1 -0
- package/lib/module/types/renderer.js +27 -0
- package/lib/module/types/renderer.js.map +1 -0
- package/lib/module/types/token.js +2 -0
- package/lib/module/types/token.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/accessibility/index.d.ts +2 -0
- package/lib/typescript/src/accessibility/index.d.ts.map +1 -0
- package/lib/typescript/src/accessibility/policies.d.ts +13 -0
- package/lib/typescript/src/accessibility/policies.d.ts.map +1 -0
- package/lib/typescript/src/controls/brand.d.ts +2 -0
- package/lib/typescript/src/controls/brand.d.ts.map +1 -0
- package/lib/typescript/src/controls/controls.d.ts +28 -0
- package/lib/typescript/src/controls/controls.d.ts.map +1 -0
- package/lib/typescript/src/controls/descriptors.d.ts +14 -0
- package/lib/typescript/src/controls/descriptors.d.ts.map +1 -0
- package/lib/typescript/src/controls/index.d.ts +3 -0
- package/lib/typescript/src/controls/index.d.ts.map +1 -0
- package/lib/typescript/src/effects/compose.d.ts +11 -0
- package/lib/typescript/src/effects/compose.d.ts.map +1 -0
- package/lib/typescript/src/effects/fade.d.ts +10 -0
- package/lib/typescript/src/effects/fade.d.ts.map +1 -0
- package/lib/typescript/src/effects/index.d.ts +10 -0
- package/lib/typescript/src/effects/index.d.ts.map +1 -0
- package/lib/typescript/src/effects/lineReveal.d.ts +11 -0
- package/lib/typescript/src/effects/lineReveal.d.ts.map +1 -0
- package/lib/typescript/src/effects/pulse.d.ts +8 -0
- package/lib/typescript/src/effects/pulse.d.ts.map +1 -0
- package/lib/typescript/src/effects/rise.d.ts +8 -0
- package/lib/typescript/src/effects/rise.d.ts.map +1 -0
- package/lib/typescript/src/effects/scale.d.ts +10 -0
- package/lib/typescript/src/effects/scale.d.ts.map +1 -0
- package/lib/typescript/src/effects/shake.d.ts +8 -0
- package/lib/typescript/src/effects/shake.d.ts.map +1 -0
- package/lib/typescript/src/effects/slide.d.ts +10 -0
- package/lib/typescript/src/effects/slide.d.ts.map +1 -0
- package/lib/typescript/src/effects/typewriter.d.ts +13 -0
- package/lib/typescript/src/effects/typewriter.d.ts.map +1 -0
- package/lib/typescript/src/effects/validation.d.ts +2 -0
- package/lib/typescript/src/effects/validation.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +15 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/presets/index.d.ts +10 -0
- package/lib/typescript/src/presets/index.d.ts.map +1 -0
- package/lib/typescript/src/recipe/component.d.ts +3 -0
- package/lib/typescript/src/recipe/component.d.ts.map +1 -0
- package/lib/typescript/src/recipe/defineTextMotion.d.ts +4 -0
- package/lib/typescript/src/recipe/defineTextMotion.d.ts.map +1 -0
- package/lib/typescript/src/recipe/descriptors.d.ts +15 -0
- package/lib/typescript/src/recipe/descriptors.d.ts.map +1 -0
- package/lib/typescript/src/recipe/index.d.ts +4 -0
- package/lib/typescript/src/recipe/index.d.ts.map +1 -0
- package/lib/typescript/src/recipe/recipe.d.ts +67 -0
- package/lib/typescript/src/recipe/recipe.d.ts.map +1 -0
- package/lib/typescript/src/renderers/index.d.ts +3 -0
- package/lib/typescript/src/renderers/index.d.ts.map +1 -0
- package/lib/typescript/src/renderers/nativeText.d.ts +13 -0
- package/lib/typescript/src/renderers/nativeText.d.ts.map +1 -0
- package/lib/typescript/src/renderers/nativeTextControls.d.ts +16 -0
- package/lib/typescript/src/renderers/nativeTextControls.d.ts.map +1 -0
- package/lib/typescript/src/renderers/nativeTextLineLayout.d.ts +84 -0
- package/lib/typescript/src/renderers/nativeTextLineLayout.d.ts.map +1 -0
- package/lib/typescript/src/renderers/nativeTextPlayback.d.ts +21 -0
- package/lib/typescript/src/renderers/nativeTextPlayback.d.ts.map +1 -0
- package/lib/typescript/src/renderers/overlayText.d.ts +13 -0
- package/lib/typescript/src/renderers/overlayText.d.ts.map +1 -0
- package/lib/typescript/src/renderers/overlayTextLayout.d.ts +36 -0
- package/lib/typescript/src/renderers/overlayTextLayout.d.ts.map +1 -0
- package/lib/typescript/src/renderers/rendererMotion.d.ts +53 -0
- package/lib/typescript/src/renderers/rendererMotion.d.ts.map +1 -0
- package/lib/typescript/src/split/createToken.d.ts +11 -0
- package/lib/typescript/src/split/createToken.d.ts.map +1 -0
- package/lib/typescript/src/split/custom.d.ts +17 -0
- package/lib/typescript/src/split/custom.d.ts.map +1 -0
- package/lib/typescript/src/split/graphemes.d.ts +4 -0
- package/lib/typescript/src/split/graphemes.d.ts.map +1 -0
- package/lib/typescript/src/split/index.d.ts +5 -0
- package/lib/typescript/src/split/index.d.ts.map +1 -0
- package/lib/typescript/src/split/lines.d.ts +4 -0
- package/lib/typescript/src/split/lines.d.ts.map +1 -0
- package/lib/typescript/src/split/segmenter.d.ts +18 -0
- package/lib/typescript/src/split/segmenter.d.ts.map +1 -0
- package/lib/typescript/src/split/words.d.ts +4 -0
- package/lib/typescript/src/split/words.d.ts.map +1 -0
- package/lib/typescript/src/timeline/index.d.ts +5 -0
- package/lib/typescript/src/timeline/index.d.ts.map +1 -0
- package/lib/typescript/src/timeline/parallel.d.ts +4 -0
- package/lib/typescript/src/timeline/parallel.d.ts.map +1 -0
- package/lib/typescript/src/timeline/sequence.d.ts +4 -0
- package/lib/typescript/src/timeline/sequence.d.ts.map +1 -0
- package/lib/typescript/src/timeline/stagger.d.ts +11 -0
- package/lib/typescript/src/timeline/stagger.d.ts.map +1 -0
- package/lib/typescript/src/timeline/validation.d.ts +4 -0
- package/lib/typescript/src/timeline/validation.d.ts.map +1 -0
- package/lib/typescript/src/timeline/wave.d.ts +11 -0
- package/lib/typescript/src/timeline/wave.d.ts.map +1 -0
- package/lib/typescript/src/types/index.d.ts +6 -0
- package/lib/typescript/src/types/index.d.ts.map +1 -0
- package/lib/typescript/src/types/recipe.d.ts +123 -0
- package/lib/typescript/src/types/recipe.d.ts.map +1 -0
- package/lib/typescript/src/types/renderer.d.ts +51 -0
- package/lib/typescript/src/types/renderer.d.ts.map +1 -0
- package/lib/typescript/src/types/token.d.ts +35 -0
- package/lib/typescript/src/types/token.d.ts.map +1 -0
- package/package.json +116 -3
- package/src/accessibility/index.ts +7 -0
- package/src/accessibility/policies.ts +60 -0
- package/src/controls/brand.ts +3 -0
- package/src/controls/controls.ts +41 -0
- package/src/controls/descriptors.ts +83 -0
- package/src/controls/index.ts +2 -0
- package/src/effects/compose.ts +98 -0
- package/src/effects/fade.ts +22 -0
- package/src/effects/index.ts +9 -0
- package/src/effects/lineReveal.ts +28 -0
- package/src/effects/pulse.ts +19 -0
- package/src/effects/rise.ts +19 -0
- package/src/effects/scale.ts +22 -0
- package/src/effects/shake.ts +19 -0
- package/src/effects/slide.ts +22 -0
- package/src/effects/typewriter.ts +16 -0
- package/src/effects/validation.ts +9 -0
- package/src/index.tsx +46 -0
- package/src/presets/index.ts +42 -0
- package/src/recipe/component.tsx +88 -0
- package/src/recipe/defineTextMotion.ts +6 -0
- package/src/recipe/descriptors.ts +158 -0
- package/src/recipe/index.ts +3 -0
- package/src/recipe/recipe.ts +359 -0
- package/src/renderers/index.ts +2 -0
- package/src/renderers/nativeText.tsx +813 -0
- package/src/renderers/nativeTextControls.ts +131 -0
- package/src/renderers/nativeTextLineLayout.ts +495 -0
- package/src/renderers/nativeTextPlayback.ts +204 -0
- package/src/renderers/overlayText.tsx +945 -0
- package/src/renderers/overlayTextLayout.ts +312 -0
- package/src/renderers/rendererMotion.ts +483 -0
- package/src/split/createToken.ts +26 -0
- package/src/split/custom.ts +92 -0
- package/src/split/graphemes.ts +27 -0
- package/src/split/index.ts +9 -0
- package/src/split/lines.ts +35 -0
- package/src/split/segmenter.ts +111 -0
- package/src/split/words.ts +28 -0
- package/src/timeline/index.ts +4 -0
- package/src/timeline/parallel.ts +30 -0
- package/src/timeline/sequence.ts +29 -0
- package/src/timeline/stagger.ts +60 -0
- package/src/timeline/validation.ts +29 -0
- package/src/timeline/wave.ts +34 -0
- package/src/types/index.ts +34 -0
- package/src/types/recipe.ts +195 -0
- package/src/types/renderer.ts +91 -0
- package/src/types/token.ts +39 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useLayoutEffect","useRef","createElement","_createElement","StyleSheet","Text","View","createAnimatedComponent","useAnimatedStyle","useReducedMotion","useSharedValue","createHiddenTokenAccessibilityProps","createParentAccessibilityProps","parentLabelPolicy","resolveAccessibleText","createTextMotionRendererHandle","useNativeTextControlsPlayback","areNativeTextPlaybackRunsEqual","createNativeTextPlaybackRun","clampTextMotionProgress","createTextMotionControlledProgressPlan","createTextMotionControlledTimelineSpan","createTextMotionDelaySecondsByItemIndex","createTextMotionItemMotion","createTextMotionProgressAnimation","createTextMotionStyleTransformStatePair","readTextMotionProgressForAnimatedStyle","shouldRenderTextMotionFinalState","jsx","_jsx","AnimatedView","TEXT_ALIGN_TO_JUSTIFY_CONTENT","auto","center","justify","left","right","NATIVE_TEXT_LINE_BREAK_PATTERN","NATIVE_TEXT_LINE_BREAK_MARKER_STYLE","flexBasis","height","width","NATIVE_TEXT_BLANK_LINE_SPACER_STYLE","opacity","NATIVE_TEXT_BLANK_LINE_SPACER_TEXT","NATIVE_TEXT_ANIMATED_TOKEN_CONTAINER_STYLE","overflow","shouldAnimateToken","token","text","trim","length","createMotionIndexByTokenId","tokens","motionTokens","filter","motionIndexByTokenId","Map","map","motionIndex","id","motionCount","createTokenDelaySecondsByMotionIndex","recipe","count","createTokenMotion","styleState","delaySecondsByMotionIndex","createControlledProgressPlan","totalTimelineSpan","createNativeTextTextFragment","textFragmentIndex","kind","key","createNativeTextLineBreakFragment","lineBreakIndex","preservesLineHeight","hasNativeTextLineContent","replace","hasNativeTextLineContentAfter","sourceText","sourceIndex","slice","createNativeTextTokenRenderFragments","currentLineHasText","includes","fragments","lineBreaks","Array","from","matchAll","initialAccumulator","cursor","result","reduce","accumulator","lineBreak","start","index","lineBreakEnd","textBeforeLineBreak","textFragment","lineHasText","hasTextAfterLineBreak","sourceRange","trailingText","createNativeTextRenderFragments","tokenResult","fragment","renderIndex","createNativeTextFragmentTestID","prefix","undefined","createNativeTextLineBreakTestID","StaticNativeTextToken","children","style","tokenProps","splitAnimatedTokenProps","accessibilityElementsHidden","accessible","importantForAccessibility","testID","textProps","containerProps","AnimatedNativeTextTokenContent","useNativeTextAnimatedStyle","options","controlled","progress","renderFinalState","tokenMotion","initialOpacity","initial","initialScale","scale","initialTranslateX","translateX","initialTranslateY","translateY","targetOpacity","target","targetScale","targetTranslateX","targetTranslateY","pulseScale","revealOnStart","itemDelaySeconds","controlledProgressPlan","current","clampedCurrent","baseScale","pulseProgress","Math","abs","pulseMultiplier","transform","ControlledAnimatedNativeTextToken","controlledProgress","reducedMotion","reducedMotionEnabled","animatedStyle","UncontrolledAnimatedNativeTextToken","controls","playbackText","playbackRun","previousPlaybackRun","value","createProgressAnimation","NativeTextToken","props","_tokenMotion","NativeTextLineBreak","textStyle","tokenTextProps","resolveJustifyContent","textAlign","flatten","createContainerStyle","flexDirection","flexWrap","justifyContent","createContainerProps","parentAccessibilityProps","accessibilityActions","accessibilityHint","accessibilityLabel","accessibilityLanguage","accessibilityRole","accessibilityState","accessibilityValue","nativeID","onAccessibilityAction","createTokenTextProps","allowFontScaling","maxFontSizeMultiplier","createNativeTextRendererComponent","NativeTextRenderer","policy","accessibility","tokenAccessibilityProps","effects","externalProgress","Error","testIDPrefix","get","commonTokenProps","displayName","nativeText","capabilities","motionUnit","Component"],"sourceRoot":"../../../src","sources":["renderers/nativeText.tsx"],"mappings":";;AAAA,SAASA,eAAe,EAAEC,MAAM,EAAAC,aAAA,IAAAC,cAAA,QAA4C,OAAO;AACnF,SACEC,UAAU,EACVC,IAAI,EACJC,IAAI,QAKC,cAAc;AACrB,SACEC,uBAAuB,EACvBC,gBAAgB,EAChBC,gBAAgB,EAChBC,cAAc,QAET,yBAAyB;AAOhC,SACEC,mCAAmC,EACnCC,8BAA8B,EAC9BC,iBAAiB,EACjBC,qBAAqB,QAChB,2BAAkB;AACzB,SAASC,8BAA8B,QAAQ,0BAAuB;AACtE,SAASC,6BAA6B,QAAQ,yBAAsB;AACpE,SACEC,8BAA8B,EAC9BC,2BAA2B,QAEtB,yBAAsB;AAC7B,SACEC,uBAAuB,EACvBC,sCAAsC,EACtCC,sCAAsC,EACtCC,uCAAuC,EACvCC,0BAA0B,EAC1BC,iCAAiC,EACjCC,uCAAuC,EACvCC,sCAAsC,EACtCC,gCAAgC,QAI3B,qBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAkH1B,MAAMC,YAAY,GAAGvB,uBAAuB,CAACD,IAAI,CAAC;AAElD,MAAMyB,6BAA6B,GAAG;EACpCC,IAAI,EAAE,YAAY;EAClBC,MAAM,EAAE,QAAQ;EAChBC,OAAO,EAAE,YAAY;EACrBC,IAAI,EAAE,YAAY;EAClBC,KAAK,EAAE;AACT,CAA6F;AAE7F,MAAMC,8BAA8B,GAAG,UAAU;AACjD,MAAMC,mCAAmC,GAAG;EAC1CC,SAAS,EAAE,MAAM;EACjBC,MAAM,EAAE,CAAC;EACTC,KAAK,EAAE;AACT,CAA8B;AAC9B,MAAMC,mCAAmC,GAAG;EAC1CH,SAAS,EAAE,MAAM;EACjBI,OAAO,EAAE,CAAC;EACVF,KAAK,EAAE;AACT,CAA8B;AAC9B,MAAMG,kCAAkC,GAAG,GAAG;AAC9C,MAAMC,0CAA0C,GAAG;EACjDC,QAAQ,EAAE;AACZ,CAA8B;AAE9B,SAASC,kBAAkBA,CAACC,KAAsB,EAAW;EAC3D,OAAOA,KAAK,CAACC,IAAI,CAACC,IAAI,CAAC,CAAC,CAACC,MAAM,GAAG,CAAC;AACrC;AAEA,SAASC,0BAA0BA,CAACC,MAAkC,EAAE;EACtE,MAAMC,YAAY,GAAGD,MAAM,CAACE,MAAM,CAACR,kBAAkB,CAAC;EACtD,MAAMS,oBAAoB,GAAG,IAAIC,GAAG,CAClCH,YAAY,CAACI,GAAG,CAAmB,CAACV,KAAK,EAAEW,WAAW,KAAK,CAACX,KAAK,CAACY,EAAE,EAAED,WAAW,CAAC,CACpF,CAAC;EAED,OAAO;IACLE,WAAW,EAAEP,YAAY,CAACH,MAAM;IAChCK;EACF,CAAC;AACH;AAEA,SAASM,oCAAoCA,CAC3CC,MAAyC,EACzCC,KAAa,EACM;EACnB,OAAO1C,uCAAuC,CAACyC,MAAM,EAAEC,KAAK,CAAC;AAC/D;AAEA,SAASC,iBAAiBA,CACxBF,MAAyC,EACzCJ,WAAmB,EACnBO,UAA6C,EAC7CC,yBAA4C,EACtB;EACtB,OAAO5C,0BAA0B,CAC/BwC,MAAM,EACNG,UAAU,EACVC,yBAAyB,CAACR,WAAW,CAAC,IAAI,CAC5C,CAAC;AACH;AAEA,SAASS,4BAA4BA,CACnCT,WAAmB,EACnBQ,yBAA4C,EAC5CE,iBAAyB,EACS;EAClC,OAAOjD,sCAAsC,CAC3CuC,WAAW,EACXQ,yBAAyB,EACzBE,iBACF,CAAC;AACH;AAEA,SAASC,4BAA4BA,CACnCtB,KAAsB,EACtBC,IAAY,EACZsB,iBAAyB,EACU;EACnC,OAAO;IACLC,IAAI,EAAE,MAAM;IACZC,GAAG,EAAEF,iBAAiB,KAAK,CAAC,GAAGvB,KAAK,CAACY,EAAE,GAAG,GAAGZ,KAAK,CAACY,EAAE,SAASW,iBAAiB,EAAE;IACjFtB,IAAI;IACJsB,iBAAiB;IACjBvB;EACF,CAAC;AACH;AAEA,SAAS0B,iCAAiCA,CACxC1B,KAAsB,EACtB2B,cAAsB,EACtBC,mBAA4B,EACY;EACxC,OAAO;IACLJ,IAAI,EAAE,YAAY;IAClBC,GAAG,EAAE,GAAGzB,KAAK,CAACY,EAAE,eAAee,cAAc,EAAE;IAC/CC;EACF,CAAC;AACH;AAEA,SAASC,wBAAwBA,CAAC5B,IAAY,EAAW;EACvD,OAAOA,IAAI,CAAC6B,OAAO,CAACzC,8BAA8B,EAAE,EAAE,CAAC,CAACc,MAAM,GAAG,CAAC;AACpE;AAEA,SAAS4B,6BAA6BA,CAACC,UAAkB,EAAEC,WAAmB,EAAW;EACvF,OAAOJ,wBAAwB,CAACG,UAAU,CAACE,KAAK,CAACD,WAAW,CAAC,CAAC;AAChE;AAEA,SAASE,oCAAoCA,CAC3CnC,KAAsB,EACtBgC,UAAkB,EAClBI,kBAA2B,EAI3B;EACA,IAAI,CAACpC,KAAK,CAACC,IAAI,CAACoC,QAAQ,CAAC,IAAI,CAAC,EAAE;IAC9B,OAAO;MACLD,kBAAkB,EAAEA,kBAAkB,IAAIpC,KAAK,CAACC,IAAI,CAACE,MAAM,GAAG,CAAC;MAC/DmC,SAAS,EAAE,CAAChB,4BAA4B,CAACtB,KAAK,EAAEA,KAAK,CAACC,IAAI,EAAE,CAAC,CAAC;IAChE,CAAC;EACH;EAEA,MAAMsC,UAAU,GAAGC,KAAK,CAACC,IAAI,CAACzC,KAAK,CAACC,IAAI,CAACyC,QAAQ,CAACrD,8BAA8B,CAAC,CAAC;EAElF,MAAMsD,kBAAkB,GAAG;IACzBC,MAAM,EAAE,CAAC;IACTR,kBAAkB;IAClBE,SAAS,EAAE,EAAqC;IAChDf,iBAAiB,EAAE;EACrB,CAAC;EACD,MAAMsB,MAAM,GAAGN,UAAU,CAACO,MAAM,CAAC,CAACC,WAAW,EAAEC,SAAS,EAAErB,cAAc,KAAK;IAC3E,MAAMsB,KAAK,GAAGD,SAAS,CAACE,KAAK,IAAIH,WAAW,CAACH,MAAM;IACnD,MAAMO,YAAY,GAAGF,KAAK,GAAGD,SAAS,CAAC,CAAC,CAAC,CAAC7C,MAAM;IAChD,MAAMiD,mBAAmB,GAAGpD,KAAK,CAACC,IAAI,CAACiC,KAAK,CAACa,WAAW,CAACH,MAAM,EAAEK,KAAK,CAAC;IACvE,MAAMI,YAAY,GAChBD,mBAAmB,CAACjD,MAAM,GAAG,CAAC,GAC1B,CAACmB,4BAA4B,CAACtB,KAAK,EAAEoD,mBAAmB,EAAEL,WAAW,CAACxB,iBAAiB,CAAC,CAAC,GACzF,EAAE;IACR,MAAM+B,WAAW,GAAGP,WAAW,CAACX,kBAAkB,IAAIgB,mBAAmB,CAACjD,MAAM,GAAG,CAAC;IACpF,MAAMoD,qBAAqB,GAAGxB,6BAA6B,CACzDC,UAAU,EACVhC,KAAK,CAACwD,WAAW,CAACP,KAAK,GAAGE,YAC5B,CAAC;IAED,OAAO;MACLP,MAAM,EAAEO,YAAY;MACpBf,kBAAkB,EAAE,KAAK;MACzBE,SAAS,EAAE,CACT,GAAGS,WAAW,CAACT,SAAS,EACxB,GAAGe,YAAY,EACf3B,iCAAiC,CAC/B1B,KAAK,EACL2B,cAAc,EACd,CAAC2B,WAAW,IAAI,CAACC,qBACnB,CAAC,CACF;MACDhC,iBAAiB,EAAEwB,WAAW,CAACxB,iBAAiB,GAAG8B,YAAY,CAAClD;IAClE,CAAC;EACH,CAAC,EAAEwC,kBAAkB,CAAC;EACtB,MAAMc,YAAY,GAAGzD,KAAK,CAACC,IAAI,CAACiC,KAAK,CAACW,MAAM,CAACD,MAAM,CAAC;EAEpD,IAAIa,YAAY,CAACtD,MAAM,KAAK,CAAC,EAAE;IAC7B,OAAO;MACLiC,kBAAkB,EAAES,MAAM,CAACT,kBAAkB;MAC7CE,SAAS,EAAEO,MAAM,CAACP;IACpB,CAAC;EACH;EAEA,OAAO;IACLF,kBAAkB,EAAE,IAAI;IACxBE,SAAS,EAAE,CACT,GAAGO,MAAM,CAACP,SAAS,EACnBhB,4BAA4B,CAACtB,KAAK,EAAEyD,YAAY,EAAEZ,MAAM,CAACtB,iBAAiB,CAAC;EAE/E,CAAC;AACH;AAEA,SAASmC,+BAA+BA,CACtCrD,MAAkC,EAClC2B,UAAkB,EACmB;EACrC,MAAMa,MAAM,GAAGxC,MAAM,CAACyC,MAAM,CAC1B,CAACC,WAAW,EAAE/C,KAAK,KAAK;IACtB,MAAM2D,WAAW,GAAGxB,oCAAoC,CACtDnC,KAAK,EACLgC,UAAU,EACVe,WAAW,CAACX,kBACd,CAAC;IAED,OAAO;MACLA,kBAAkB,EAAEuB,WAAW,CAACvB,kBAAkB;MAClDE,SAAS,EAAE,CAAC,GAAGS,WAAW,CAACT,SAAS,EAAE,GAAGqB,WAAW,CAACrB,SAAS;IAChE,CAAC;EACH,CAAC,EACD;IACEF,kBAAkB,EAAE,KAAK;IACzBE,SAAS,EAAE;EACb,CACF,CAAC;EAED,OAAOO,MAAM,CAACP,SAAS,CAAC5B,GAAG,CAAC,CAACkD,QAAQ,EAAEC,WAAW,MAAM;IACtD,GAAGD,QAAQ;IACXC;EACF,CAAC,CAAC,CAAC;AACL;AAEA,SAASC,8BAA8BA,CACrCC,MAA0B,EAC1BH,QAAsC,EAClB;EACpB,IAAI,CAACG,MAAM,EAAE;IACX,OAAOC,SAAS;EAClB;EAEA,IAAIJ,QAAQ,CAACrC,iBAAiB,KAAK,CAAC,EAAE;IACpC,OAAO,GAAGwC,MAAM,IAAIH,QAAQ,CAAC5D,KAAK,CAACkD,KAAK,EAAE;EAC5C;EAEA,OAAO,GAAGa,MAAM,IAAIH,QAAQ,CAAC5D,KAAK,CAACkD,KAAK,IAAIU,QAAQ,CAACrC,iBAAiB,EAAE;AAC1E;AAEA,SAAS0C,+BAA+BA,CACtCF,MAA0B,EAC1BH,QAA2C,EACvB;EACpB,OAAOG,MAAM,GAAG,GAAGA,MAAM,eAAeH,QAAQ,CAACC,WAAW,EAAE,GAAGG,SAAS;AAC5E;AAEA,SAASE,qBAAqBA,CAAC;EAAEC,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAA8B,CAAC,EAAE;EACpF,oBACExF,IAAA,CAACxB,IAAI;IAAA,GAAKgH,UAAU;IAAED,KAAK,EAAEA,KAAM;IAAAD,QAAA,EAChCA;EAAQ,CACL,CAAC;AAEX;AAEA,SAASG,uBAAuBA,CAAC;EAC/BC,2BAA2B;EAC3BC,UAAU;EACVC,yBAAyB;EACzBC,MAAM;EACN,GAAGC;AACc,CAAC,EAAE;EACpB,OAAO;IACLC,cAAc,EAAE;MACdL,2BAA2B;MAC3BC,UAAU;MACVC,yBAAyB;MACzBC;IACF,CAAiD;IACjDC;EACF,CAAC;AACH;AAEA,SAASE,8BAA8BA,CAAC;EAAEV,QAAQ;EAAEC,KAAK;EAAE,GAAGC;AAA8B,CAAC,EAAE;EAC7F,oBACExF,IAAA,CAACxB,IAAI;IAAA,GAAKgH,UAAU;IAAED,KAAK,EAAEA,KAAM;IAAAD,QAAA,EAChCA;EAAQ,CACL,CAAC;AAEX;AAEA,SAASW,0BAA0BA,CAACC,OAAuC,EAAE;EAC3E,MAAM;IAAEC,UAAU;IAAEC,QAAQ;IAAEC,gBAAgB;IAAEC;EAAY,CAAC,GAAGJ,OAAO;EACvE,MAAMK,cAAc,GAAGD,WAAW,CAACE,OAAO,CAAC1F,OAAO;EAClD,MAAM2F,YAAY,GAAGH,WAAW,CAACE,OAAO,CAACE,KAAK;EAC9C,MAAMC,iBAAiB,GAAGL,WAAW,CAACE,OAAO,CAACI,UAAU;EACxD,MAAMC,iBAAiB,GAAGP,WAAW,CAACE,OAAO,CAACM,UAAU;EACxD,MAAMC,aAAa,GAAGT,WAAW,CAACU,MAAM,CAAClG,OAAO;EAChD,MAAMmG,WAAW,GAAGX,WAAW,CAACU,MAAM,CAACN,KAAK;EAC5C,MAAMQ,gBAAgB,GAAGZ,WAAW,CAACU,MAAM,CAACJ,UAAU;EACtD,MAAMO,gBAAgB,GAAGb,WAAW,CAACU,MAAM,CAACF,UAAU;EACtD,MAAMM,UAAU,GAAGd,WAAW,CAACc,UAAU;EACzC,MAAMC,aAAa,GAAGf,WAAW,CAACe,aAAa,KAAK,IAAI;EACxD,MAAMC,gBAAgB,GAAGnB,UAAU,GAAGD,OAAO,CAACqB,sBAAsB,CAACD,gBAAgB,GAAG,CAAC;EACzF,MAAM9E,iBAAiB,GAAG2D,UAAU,GAAGD,OAAO,CAACqB,sBAAsB,CAAC/E,iBAAiB,GAAG,CAAC;EAE3F,OAAO7D,gBAAgB,CAAC,MAAM;IAC5B,MAAM6I,OAAO,GAAG3H,sCAAsC,CAAC;MACrD0H,sBAAsB,EAAEpB,UAAU,GAC9B;QACEmB,gBAAgB;QAChB9E;MACF,CAAC,GACD2C,SAAS;MACbiB,QAAQ;MACRC;IACF,CAAC,CAAC;IACF,MAAMoB,cAAc,GAAGnI,uBAAuB,CAACkI,OAAO,CAAC;IACvD,MAAME,SAAS,GAAGjB,YAAY,GAAG,CAACQ,WAAW,GAAGR,YAAY,IAAIe,OAAO;IACvE,MAAMG,aAAa,GAAG,CAAC,GAAGC,IAAI,CAACC,GAAG,CAACJ,cAAc,GAAG,CAAC,GAAG,CAAC,CAAC;IAC1D,MAAMK,eAAe,GAAG,CAAC,GAAG,CAACV,UAAU,GAAG,CAAC,IAAIO,aAAa;IAE5D,OAAO;MACL7G,OAAO,EACLuG,aAAa,IAAIG,OAAO,IAAI,CAAC,GACzB,CAAC,GACDjB,cAAc,GAAG,CAACQ,aAAa,GAAGR,cAAc,IAAIiB,OAAO;MACjEO,SAAS,EAAE,CACT;QACEnB,UAAU,EAAED,iBAAiB,GAAG,CAACO,gBAAgB,GAAGP,iBAAiB,IAAIa;MAC3E,CAAC,EACD;QACEV,UAAU,EAAED,iBAAiB,GAAG,CAACM,gBAAgB,GAAGN,iBAAiB,IAAIW;MAC3E,CAAC,EACD;QACEd,KAAK,EAAEgB,SAAS,GAAGI;MACrB,CAAC;IAEL,CAAC;EACH,CAAC,EAAE,CACDvB,cAAc,EACdE,YAAY,EACZE,iBAAiB,EACjBE,iBAAiB,EACjBV,UAAU,EACVC,QAAQ,EACRgB,UAAU,EACVf,gBAAgB,EAChBgB,aAAa,EACbN,aAAa,EACbE,WAAW,EACXC,gBAAgB,EAChBC,gBAAgB,EAChBG,gBAAgB,EAChB9E,iBAAiB,CAClB,CAAC;AACJ;AAEA,SAASwF,iCAAiCA,CAAC;EACzC1C,QAAQ;EACR2C,kBAAkB;EAClBV,sBAAsB;EACtBhC,KAAK;EACLe,WAAW;EACX,GAAGd;AACmC,CAAC,EAAE;EACzC,MAAM0C,aAAa,GAAG5B,WAAW,CAAC4B,aAAa;EAC/C,MAAMC,oBAAoB,GAAGvJ,gBAAgB,CAAC,CAAC;EAC/C,MAAMyH,gBAAgB,GAAGvG,gCAAgC,CAACqI,oBAAoB,EAAED,aAAa,CAAC;EAC9F,MAAM;IAAEnC,cAAc;IAAED;EAAU,CAAC,GAAGL,uBAAuB,CAACD,UAAU,CAAC;EACzE,MAAM4C,aAAa,GAAGnC,0BAA0B,CAAC;IAC/CE,UAAU,EAAE,IAAI;IAChBoB,sBAAsB;IACtBnB,QAAQ,EAAE6B,kBAAkB;IAC5B5B,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEF,oBACEtG,IAAA,CAACC,YAAY;IAAA,GACP8F,cAAc;IAClBR,KAAK,EAAE,CAACvE,0CAA0C,EAAEoH,aAAa,CAA0B;IAAA9C,QAAA,eAE3FtF,IAAA,CAACgG,8BAA8B;MAAA,GAAKF,SAAS;MAAEP,KAAK,EAAEA,KAAM;MAAAD,QAAA,EACzDA;IAAQ,CACqB;EAAC,CACrB,CAAC;AAEnB;AAEA,SAAS+C,mCAAmCA,CAAC;EAC3C/C,QAAQ;EACRgD,QAAQ;EACRC,YAAY;EACZhD,KAAK;EACLe,WAAW;EACX,GAAGd;AACqC,CAAC,EAAE;EAC3C,MAAM0C,aAAa,GAAG5B,WAAW,CAAC4B,aAAa;EAC/C,MAAMC,oBAAoB,GAAGvJ,gBAAgB,CAAC,CAAC;EAC/C,MAAMyH,gBAAgB,GAAGvG,gCAAgC,CAACqI,oBAAoB,EAAED,aAAa,CAAC;EAC9F,MAAM9B,QAAQ,GAAGvH,cAAc,CAACwH,gBAAgB,GAAG,CAAC,GAAG,CAAC,CAAC;EACzD,MAAMmC,WAAW,GAAGnJ,2BAA2B,CAACiH,WAAW,EAAED,gBAAgB,EAAEkC,YAAY,CAAC;EAC5F,MAAME,mBAAmB,GAAGrK,MAAM,CAAoC+G,SAAS,CAAC;EAChF,MAAM;IAAEY,cAAc;IAAED;EAAU,CAAC,GAAGL,uBAAuB,CAACD,UAAU,CAAC;EACzE,MAAM4C,aAAa,GAAGnC,0BAA0B,CAAC;IAC/CE,UAAU,EAAE,KAAK;IACjBC,QAAQ;IACRC,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEFnI,eAAe,CAAC,MAAM;IACpB,IAAIiB,8BAA8B,CAACqJ,mBAAmB,CAACjB,OAAO,EAAEgB,WAAW,CAAC,EAAE;MAC5E;IACF;IAEAC,mBAAmB,CAACjB,OAAO,GAAGgB,WAAW;IAEzC,IAAIA,WAAW,CAACnC,gBAAgB,EAAE;MAChCD,QAAQ,CAACsC,KAAK,GAAG,CAAC;MAClB;IACF;IAEAtC,QAAQ,CAACsC,KAAK,GAAG,CAAC;IAClBtC,QAAQ,CAACsC,KAAK,GAAG/I,iCAAiC,CAAC6I,WAAW,CAAC;EACjE,CAAC,CAAC;EAEFrJ,6BAA6B,CAAC;IAC5BmJ,QAAQ;IACRK,uBAAuB,EAAEhJ,iCAAiC;IAC1DyG,QAAQ;IACRC,gBAAgB;IAChBC;EACF,CAAC,CAAC;EAEF,oBACEtG,IAAA,CAACC,YAAY;IAAA,GACP8F,cAAc;IAClBR,KAAK,EAAE,CAACvE,0CAA0C,EAAEoH,aAAa,CAA0B;IAAA9C,QAAA,eAE3FtF,IAAA,CAACgG,8BAA8B;MAAA,GAAKF,SAAS;MAAEP,KAAK,EAAEA,KAAM;MAAAD,QAAA,EACzDA;IAAQ,CACqB;EAAC,CACrB,CAAC;AAEnB;AAEA,SAASsD,eAAeA,CAACC,KAA2B,EAAE;EACpD,IAAI,CAACA,KAAK,CAACvC,WAAW,EAAE;IACtB,MAAM;MAAEA,WAAW,EAAEwC,YAAY;MAAE,GAAGtD;IAAW,CAAC,GAAGqD,KAAK;IAE1D,oBAAO7I,IAAA,CAACqF,qBAAqB;MAAA,GAAKG;IAAU,CAAG,CAAC;EAClD;EAEA,IAAI,oBAAoB,IAAIqD,KAAK,EAAE;IACjC,MAAM;MAAEZ,kBAAkB;MAAEV,sBAAsB;MAAEjB,WAAW;MAAE,GAAGd;IAAW,CAAC,GAAGqD,KAAK;IAExF,oBACE7I,IAAA,CAACgI,iCAAiC;MAAA,GAC5BxC,UAAU;MACdyC,kBAAkB,EAAEA,kBAAmB;MACvCV,sBAAsB,EAAEA,sBAAuB;MAC/CjB,WAAW,EAAEA;IAAY,CAC1B,CAAC;EAEN;EAEA,MAAM;IAAEgC,QAAQ;IAAEC,YAAY;IAAEjC,WAAW;IAAE,GAAGd;EAAW,CAAC,GAAGqD,KAAK;EAEpE,oBACE7I,IAAA,CAACqI,mCAAmC;IAAA,GAC9B7C,UAAU;IACd8C,QAAQ,EAAEA,QAAS;IACnBC,YAAY,EAAEA,YAAa;IAC3BjC,WAAW,EAAEA;EAAY,CAC1B,CAAC;AAEN;AAEA,SAASyC,mBAAmBA,CAAC;EAC3BhG,mBAAmB;EACnB8C,MAAM;EACNmD,SAAS;EACTC;AAMF,CAAC,EAAE;EACD,IAAIlG,mBAAmB,EAAE;IACvB,oBACE/C,IAAA,CAACxB,IAAI;MAAA,GACCyK,cAAc;MAClBvD,2BAA2B;MAC3BC,UAAU,EAAE,KAAM;MAClBC,yBAAyB,EAAC,qBAAqB;MAC/CL,KAAK,EAAE,CAACyD,SAAS,EAAEnI,mCAAmC,CAAE;MACxDgF,MAAM,EAAEA,MAAO;MAAAP,QAAA,EAEdvE;IAAkC,CAC/B,CAAC;EAEX;EAEA,oBACEf,IAAA,CAACvB,IAAI;IACHiH,2BAA2B;IAC3BC,UAAU,EAAE,KAAM;IAClBC,yBAAyB,EAAC,qBAAqB;IAC/CL,KAAK,EAAE9E,mCAAoC;IAC3CoF,MAAM,EAAEA;EAAO,CAChB,CAAC;AAEN;AAEA,SAASqD,qBAAqBA,CAAC3D,KAA2B,EAA+B;EACvF,MAAM4D,SAAS,GAAG5K,UAAU,CAAC6K,OAAO,CAAC7D,KAAK,CAAC,EAAE4D,SAAS;EAEtD,OAAOA,SAAS,GAAGjJ,6BAA6B,CAACiJ,SAAS,CAAC,GAAG,YAAY;AAC5E;AAEA,SAASE,oBAAoBA,CAAC9D,KAA2B,EAAwB;EAC/E,OAAO;IACL+D,aAAa,EAAE,KAAK;IACpBC,QAAQ,EAAE,MAAM;IAChBC,cAAc,EAAEN,qBAAqB,CAAC3D,KAAK;EAC7C,CAAC;AACH;AAEA,SAASkE,oBAAoBA,CAC3B3D,SAAmD,EACnD4D,wBAA2E,EACjD;EAC1B,OAAO;IACLC,oBAAoB,EAAE7D,SAAS,EAAE6D,oBAAoB;IACrDC,iBAAiB,EAAE9D,SAAS,EAAE8D,iBAAiB;IAC/CC,kBAAkB,EAChB/D,SAAS,EAAE+D,kBAAkB,IAAIH,wBAAwB,CAACG,kBAAkB;IAC9EC,qBAAqB,EAAEhE,SAAS,EAAEgE,qBAAqB;IACvDC,iBAAiB,EAAEjE,SAAS,EAAEiE,iBAAiB;IAC/CC,kBAAkB,EAAElE,SAAS,EAAEkE,kBAAkB;IACjDC,kBAAkB,EAAEnE,SAAS,EAAEmE,kBAAkB;IACjDtE,UAAU,EAAE+D,wBAAwB,CAAC/D,UAAU;IAC/CuE,QAAQ,EAAEpE,SAAS,EAAEoE,QAAQ;IAC7BC,qBAAqB,EAAErE,SAAS,EAAEqE,qBAAqB;IACvDtE,MAAM,EAAEC,SAAS,EAAED;EACrB,CAAC;AACH;AAEA,SAASuE,oBAAoBA,CAC3BtE,SAAmD,EACzB;EAC1B,OAAO;IACLuE,gBAAgB,EAAEvE,SAAS,EAAEuE,gBAAgB;IAC7CC,qBAAqB,EAAExE,SAAS,EAAEwE;EACpC,CAAC;AACH;AAEA,SAASC,iCAAiCA,CACxCrE,OAAkC,EACM;EACxC,SAASsE,kBAAkBA,CAAC;IAAElF,QAAQ;IAAEpD,MAAM;IAAE4D,SAAS;IAAEtE;EAAgC,CAAC,EAAE;IAC5F,MAAMJ,IAAI,GAAG,OAAOkE,QAAQ,KAAK,QAAQ,GAAGA,QAAQ,GAAG,EAAE;IACzD,MAAM0D,SAAS,GAAGlD,SAAS,EAAEP,KAAK;IAClC,MAAMkF,MAAM,GAAGvI,MAAM,CAACwI,aAAa,IAAI1L,iBAAiB,CAAC,CAAC;IAC1D,MAAM6K,kBAAkB,GAAG5K,qBAAqB,CAACmC,IAAI,EAAEI,MAAM,CAAC;IAC9D,MAAMkI,wBAAwB,GAAG3K,8BAA8B,CAAC0L,MAAM,EAAEZ,kBAAkB,CAAC;IAC3F,MAAMc,uBAAuB,GAAG7L,mCAAmC,CAAC2L,MAAM,CAAC;IAC3E,MAAM1E,cAAc,GAAG0D,oBAAoB,CAAC3D,SAAS,EAAE4D,wBAAwB,CAAC;IAChF,MAAMT,cAAc,GAAGmB,oBAAoB,CAACtE,SAAS,CAAC;IACtD,MAAMzD,UAAU,GAAGzC,uCAAuC,CAACsC,MAAM,CAAC0I,OAAO,EAAE,cAAc,CAAC;IAC1F,MAAM;MAAE5I,WAAW;MAAEL;IAAqB,CAAC,GAAGJ,0BAA0B,CAACC,MAAM,CAAC;IAChF,MAAMc,yBAAyB,GAAGL,oCAAoC,CAACC,MAAM,EAAEF,WAAW,CAAC;IAC3F,MAAMQ,iBAAiB,GAAGhD,sCAAsC,CAAC8C,yBAAyB,CAAC;IAC3F,MAAMuI,gBAAgB,GAAG/E,SAAS,EAAEM,QAAQ;IAC5C,MAAMkC,QAAQ,GAAGxC,SAAS,EAAEwC,QAAQ;IACpC,MAAM7E,SAAS,GAAGoB,+BAA+B,CAACrD,MAAM,EAAEJ,IAAI,CAAC;IAE/D,IAAIyJ,gBAAgB,IAAIvC,QAAQ,EAAE;MAChC,MAAM,IAAIwC,KAAK,CACb,+JACF,CAAC;IACH;IAEA,oBACE9K,IAAA,CAACvB,IAAI;MAAA,GAAKsH,cAAc;MAAER,KAAK,EAAE8D,oBAAoB,CAACL,SAAS,CAAE;MAAA1D,QAAA,EAC9D7B,SAAS,CAAC5B,GAAG,CAAEkD,QAAQ,IAAK;QAC3B,IAAIA,QAAQ,CAACpC,IAAI,KAAK,YAAY,EAAE;UAClC,oBACE3C,IAAA,CAAC+I,mBAAmB;YAElBhG,mBAAmB,EAAEgC,QAAQ,CAAChC,mBAAoB;YAClD8C,MAAM,EAAET,+BAA+B,CAACc,OAAO,CAAC6E,YAAY,EAAEhG,QAAQ,CAAE;YACxEiE,SAAS,EAAEA,SAAU;YACrBC,cAAc,EAAEA;UAAe,GAJ1BlE,QAAQ,CAACnC,GAKf,CAAC;QAEN;QAEA,MAAMzB,KAAK,GAAG4D,QAAQ,CAAC5D,KAAK;QAC5B,MAAMW,WAAW,GAAGH,oBAAoB,CAACqJ,GAAG,CAAC7J,KAAK,CAACY,EAAE,CAAC;QACtD,MAAMkJ,gBAAgB,GAAG;UACvB,GAAGN,uBAAuB;UAC1B,GAAG1B,cAAc;UACjB1D,KAAK,EAAEyD,SAAS;UAChBnD,MAAM,EAAEZ,8BAA8B,CAACiB,OAAO,CAAC6E,YAAY,EAAEhG,QAAQ;QACvE,CAAC;QAED,IAAI,OAAOjD,WAAW,KAAK,QAAQ,EAAE;UACnC,oBACExD,cAAA,CAACsK,eAAe;YAAA,GAAKqC,gBAAgB;YAAErI,GAAG,EAAEmC,QAAQ,CAACnC;UAAI,GACtDmC,QAAQ,CAAC3D,IACK,CAAC;QAEtB;QAEA,MAAMkF,WAAW,GAAGlE,iBAAiB,CACnCF,MAAM,EACNJ,WAAW,EACXO,UAAU,EACVC,yBACF,CAAC;QAED,IAAI,CAACuI,gBAAgB,EAAE;UACrB,oBACEvM,cAAA,CAACsK,eAAe;YAAA,GACVqC,gBAAgB;YACpB3C,QAAQ,EAAEA,QAAS;YACnB1F,GAAG,EAAEmC,QAAQ,CAACnC,GAAI;YAClB2F,YAAY,EAAExD,QAAQ,CAAC3D,IAAK;YAC5BkF,WAAW,EAAEA;UAAY,GAExBvB,QAAQ,CAAC3D,IACK,CAAC;QAEtB;QAEA,oBACE9C,cAAA,CAACsK,eAAe;UAAA,GACVqC,gBAAgB;UACpBhD,kBAAkB,EAAE4C,gBAAiB;UACrCtD,sBAAsB,EAAEhF,4BAA4B,CAClDT,WAAW,EACXQ,yBAAyB,EACzBE,iBACF,CAAE;UACFI,GAAG,EAAEmC,QAAQ,CAACnC,GAAI;UAClB0D,WAAW,EAAEA;QAAY,GAExBvB,QAAQ,CAAC3D,IACK,CAAC;MAEtB,CAAC;IAAC,CACE,CAAC;EAEX;EAEAoJ,kBAAkB,CAACU,WAAW,GAAG,oBAAoB;EAErD,OAAOV,kBAAkB;AAC3B;;AAEA;AACA,OAAO,SAASW,UAAUA,CACxBjF,OAAkC,GAAG,CAAC,CAAC,EAIvC;EACA,OAAOhH,8BAA8B,CAAC;IACpCyD,IAAI,EAAE,YAAY;IAClByI,YAAY,EAAE,CAAC,aAAa,EAAE,iBAAiB,CAAC;IAChDC,UAAU,EAAE,cAAc;IAC1BC,SAAS,EAAEf,iCAAiC,CAACrE,OAAO;EACtD,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useLayoutEffect, useRef } from 'react';
|
|
4
|
+
import { cancelAnimation } from 'react-native-reanimated';
|
|
5
|
+
import { readTextMotionControlsDescriptor } from "../controls/descriptors.js";
|
|
6
|
+
import { clampTextMotionProgress } from "./rendererMotion.js";
|
|
7
|
+
function resetOwnedProgress(progress, renderFinalState) {
|
|
8
|
+
cancelAnimation(progress);
|
|
9
|
+
progress.value = renderFinalState ? 1 : 0;
|
|
10
|
+
}
|
|
11
|
+
function stopOwnedProgress(progress, renderFinalState) {
|
|
12
|
+
cancelAnimation(progress);
|
|
13
|
+
if (renderFinalState) {
|
|
14
|
+
progress.value = 1;
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
function replayOwnedProgress({
|
|
18
|
+
createProgressAnimation,
|
|
19
|
+
progress,
|
|
20
|
+
renderFinalState,
|
|
21
|
+
tokenMotion
|
|
22
|
+
}) {
|
|
23
|
+
resetOwnedProgress(progress, renderFinalState);
|
|
24
|
+
if (renderFinalState) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
progress.value = createProgressAnimation(tokenMotion);
|
|
28
|
+
}
|
|
29
|
+
function playOwnedProgress({
|
|
30
|
+
createProgressAnimation,
|
|
31
|
+
progress,
|
|
32
|
+
renderFinalState,
|
|
33
|
+
tokenMotion
|
|
34
|
+
}) {
|
|
35
|
+
stopOwnedProgress(progress, renderFinalState);
|
|
36
|
+
if (renderFinalState) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
const currentProgress = clampTextMotionProgress(progress.value);
|
|
40
|
+
const delayMs = currentProgress <= 0 ? tokenMotion.delayMs : 0;
|
|
41
|
+
progress.value = createProgressAnimation({
|
|
42
|
+
...tokenMotion,
|
|
43
|
+
delayMs
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
const playbackCommandHandlers = {
|
|
47
|
+
play: playOwnedProgress,
|
|
48
|
+
replay: replayOwnedProgress,
|
|
49
|
+
reset({
|
|
50
|
+
progress,
|
|
51
|
+
renderFinalState
|
|
52
|
+
}) {
|
|
53
|
+
resetOwnedProgress(progress, renderFinalState);
|
|
54
|
+
},
|
|
55
|
+
stop({
|
|
56
|
+
progress,
|
|
57
|
+
renderFinalState
|
|
58
|
+
}) {
|
|
59
|
+
stopOwnedProgress(progress, renderFinalState);
|
|
60
|
+
}
|
|
61
|
+
};
|
|
62
|
+
function applyNativeTextOwnedPlaybackCommand(command, options) {
|
|
63
|
+
playbackCommandHandlers[command.kind](options);
|
|
64
|
+
}
|
|
65
|
+
export function useNativeTextControlsPlayback({
|
|
66
|
+
controls,
|
|
67
|
+
createProgressAnimation,
|
|
68
|
+
progress,
|
|
69
|
+
renderFinalState,
|
|
70
|
+
tokenMotion
|
|
71
|
+
}) {
|
|
72
|
+
const playbackState = useRef({
|
|
73
|
+
createProgressAnimation,
|
|
74
|
+
progress,
|
|
75
|
+
renderFinalState,
|
|
76
|
+
tokenMotion
|
|
77
|
+
});
|
|
78
|
+
useLayoutEffect(() => {
|
|
79
|
+
playbackState.current = {
|
|
80
|
+
createProgressAnimation,
|
|
81
|
+
progress,
|
|
82
|
+
renderFinalState,
|
|
83
|
+
tokenMotion
|
|
84
|
+
};
|
|
85
|
+
}, [createProgressAnimation, progress, renderFinalState, tokenMotion]);
|
|
86
|
+
useLayoutEffect(() => {
|
|
87
|
+
if (!controls) {
|
|
88
|
+
return undefined;
|
|
89
|
+
}
|
|
90
|
+
const descriptor = readTextMotionControlsDescriptor(controls);
|
|
91
|
+
return descriptor.subscribe(command => {
|
|
92
|
+
applyNativeTextOwnedPlaybackCommand(command, playbackState.current);
|
|
93
|
+
});
|
|
94
|
+
}, [controls]);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=nativeTextControls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useLayoutEffect","useRef","cancelAnimation","readTextMotionControlsDescriptor","clampTextMotionProgress","resetOwnedProgress","progress","renderFinalState","value","stopOwnedProgress","replayOwnedProgress","createProgressAnimation","tokenMotion","playOwnedProgress","currentProgress","delayMs","playbackCommandHandlers","play","replay","reset","stop","applyNativeTextOwnedPlaybackCommand","command","options","kind","useNativeTextControlsPlayback","controls","playbackState","current","undefined","descriptor","subscribe"],"sourceRoot":"../../../src","sources":["renderers/nativeTextControls.ts"],"mappings":";;AAAA,SAASA,eAAe,EAAEC,MAAM,QAAQ,OAAO;AAC/C,SAASC,eAAe,QAA0B,yBAAyB;AAI3E,SACEC,gCAAgC,QAG3B,4BAAyB;AAChC,SAASC,uBAAuB,QAAmC,qBAAkB;AAmBrF,SAASC,kBAAkBA,CAACC,QAA6B,EAAEC,gBAAyB,EAAE;EACpFL,eAAe,CAACI,QAAQ,CAAC;EACzBA,QAAQ,CAACE,KAAK,GAAGD,gBAAgB,GAAG,CAAC,GAAG,CAAC;AAC3C;AAEA,SAASE,iBAAiBA,CAACH,QAA6B,EAAEC,gBAAyB,EAAE;EACnFL,eAAe,CAACI,QAAQ,CAAC;EAEzB,IAAIC,gBAAgB,EAAE;IACpBD,QAAQ,CAACE,KAAK,GAAG,CAAC;EACpB;AACF;AAEA,SAASE,mBAAmBA,CAAC;EAC3BC,uBAAuB;EACvBL,QAAQ;EACRC,gBAAgB;EAChBK;AACqC,CAAC,EAAE;EACxCP,kBAAkB,CAACC,QAAQ,EAAEC,gBAAgB,CAAC;EAE9C,IAAIA,gBAAgB,EAAE;IACpB;EACF;EAEAD,QAAQ,CAACE,KAAK,GAAGG,uBAAuB,CAACC,WAAW,CAAC;AACvD;AAEA,SAASC,iBAAiBA,CAAC;EACzBF,uBAAuB;EACvBL,QAAQ;EACRC,gBAAgB;EAChBK;AACqC,CAAC,EAAE;EACxCH,iBAAiB,CAACH,QAAQ,EAAEC,gBAAgB,CAAC;EAE7C,IAAIA,gBAAgB,EAAE;IACpB;EACF;EAEA,MAAMO,eAAe,GAAGV,uBAAuB,CAACE,QAAQ,CAACE,KAAK,CAAC;EAC/D,MAAMO,OAAO,GAAGD,eAAe,IAAI,CAAC,GAAGF,WAAW,CAACG,OAAO,GAAG,CAAC;EAE9DT,QAAQ,CAACE,KAAK,GAAGG,uBAAuB,CAAC;IACvC,GAAGC,WAAW;IACdG;EACF,CAAC,CAAC;AACJ;AAEA,MAAMC,uBAAuB,GAAG;EAC9BC,IAAI,EAAEJ,iBAAiB;EACvBK,MAAM,EAAER,mBAAmB;EAC3BS,KAAKA,CAAC;IAAEb,QAAQ;IAAEC;EAAiB,CAAC,EAAE;IACpCF,kBAAkB,CAACC,QAAQ,EAAEC,gBAAgB,CAAC;EAChD,CAAC;EACDa,IAAIA,CAAC;IAAEd,QAAQ;IAAEC;EAAiB,CAAC,EAAE;IACnCE,iBAAiB,CAACH,QAAQ,EAAEC,gBAAgB,CAAC;EAC/C;AACF,CAA2F;AAE3F,SAASc,mCAAmCA,CAC1CC,OAAiC,EACjCC,OAA8C,EAC9C;EACAP,uBAAuB,CAACM,OAAO,CAACE,IAAI,CAAC,CAACD,OAAO,CAAC;AAChD;AAEA,OAAO,SAASE,6BAA6BA,CAAC;EAC5CC,QAAQ;EACRf,uBAAuB;EACvBL,QAAQ;EACRC,gBAAgB;EAChBK;AACiC,CAAC,EAAE;EACpC,MAAMe,aAAa,GAAG1B,MAAM,CAAkC;IAC5DU,uBAAuB;IACvBL,QAAQ;IACRC,gBAAgB;IAChBK;EACF,CAAC,CAAC;EAEFZ,eAAe,CAAC,MAAM;IACpB2B,aAAa,CAACC,OAAO,GAAG;MACtBjB,uBAAuB;MACvBL,QAAQ;MACRC,gBAAgB;MAChBK;IACF,CAAC;EACH,CAAC,EAAE,CAACD,uBAAuB,EAAEL,QAAQ,EAAEC,gBAAgB,EAAEK,WAAW,CAAC,CAAC;EAEtEZ,eAAe,CAAC,MAAM;IACpB,IAAI,CAAC0B,QAAQ,EAAE;MACb,OAAOG,SAAS;IAClB;IAEA,MAAMC,UAAU,GAAG3B,gCAAgC,CAACuB,QAAQ,CAAC;IAE7D,OAAOI,UAAU,CAACC,SAAS,CAAET,OAAO,IAAK;MACvCD,mCAAmC,CAACC,OAAO,EAAEK,aAAa,CAACC,OAAO,CAAC;IACrE,CAAC,CAAC;EACJ,CAAC,EAAE,CAACF,QAAQ,CAAC,CAAC;AAChB","ignoreList":[]}
|
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
|
+
const LAYOUT_TEXT_STYLE_KEYS = ['fontFamily', 'fontSize', 'fontStyle', 'fontVariant', 'fontWeight', 'includeFontPadding', 'letterSpacing', 'lineHeight', 'textAlign', 'textTransform', 'writingDirection'];
|
|
5
|
+
const NATIVE_TEXT_LINE_LAYOUT_INVALIDATION_REASONS = ['font-scale', 'initial', 'line-text', 'style', 'text', 'width'];
|
|
6
|
+
function createNativeTextLineLayoutFailure(reason, message, details = {}) {
|
|
7
|
+
return {
|
|
8
|
+
ok: false,
|
|
9
|
+
reason,
|
|
10
|
+
message,
|
|
11
|
+
...details
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
function createNativeTextLineRange(text, lineText, lineIndex, cursor) {
|
|
15
|
+
if (lineText.length === 0 && text.length === 0 && cursor === 0) {
|
|
16
|
+
return {
|
|
17
|
+
ok: true,
|
|
18
|
+
value: {
|
|
19
|
+
index: lineIndex,
|
|
20
|
+
sourceRange: {
|
|
21
|
+
end: 0,
|
|
22
|
+
start: 0
|
|
23
|
+
},
|
|
24
|
+
text: lineText
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
if (lineText.length === 0) {
|
|
29
|
+
return createNativeTextLineLayoutFailure('empty-line-text-unsupported', 'nativeText line layout cannot map an empty rendered line to a stable source range yet.', {
|
|
30
|
+
lineIndex,
|
|
31
|
+
sourceRange: {
|
|
32
|
+
end: cursor,
|
|
33
|
+
start: cursor
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
const start = text.indexOf(lineText, cursor);
|
|
38
|
+
if (start < 0) {
|
|
39
|
+
return createNativeTextLineLayoutFailure('line-text-not-found', 'nativeText line layout could not find the rendered line text after the previous source range.', {
|
|
40
|
+
lineIndex,
|
|
41
|
+
sourceRange: {
|
|
42
|
+
end: cursor,
|
|
43
|
+
start: cursor
|
|
44
|
+
}
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return {
|
|
48
|
+
ok: true,
|
|
49
|
+
value: {
|
|
50
|
+
index: lineIndex,
|
|
51
|
+
sourceRange: {
|
|
52
|
+
end: start + lineText.length,
|
|
53
|
+
start
|
|
54
|
+
},
|
|
55
|
+
text: lineText
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function rangesIntersect(first, second) {
|
|
60
|
+
return first.start < second.end && second.start < first.end;
|
|
61
|
+
}
|
|
62
|
+
function rangeContainsRange(outer, inner) {
|
|
63
|
+
return inner.start >= outer.start && inner.end <= outer.end;
|
|
64
|
+
}
|
|
65
|
+
function findWhitespaceSeparatorLineIndex(sourceRange, lineRanges) {
|
|
66
|
+
const previousIndex = lineRanges.reduce((match, lineRange, index) => lineRange.sourceRange.end <= sourceRange.start ? index : match, undefined);
|
|
67
|
+
if (typeof previousIndex === 'number') {
|
|
68
|
+
return previousIndex;
|
|
69
|
+
}
|
|
70
|
+
const firstLine = lineRanges[0];
|
|
71
|
+
if (firstLine && sourceRange.end <= firstLine.sourceRange.start) {
|
|
72
|
+
return 0;
|
|
73
|
+
}
|
|
74
|
+
return undefined;
|
|
75
|
+
}
|
|
76
|
+
function findLineIndexForToken(token, lineRanges) {
|
|
77
|
+
if (token.sourceRange.start === token.sourceRange.end) {
|
|
78
|
+
return {
|
|
79
|
+
ok: true,
|
|
80
|
+
value: undefined
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
const intersectingIndexes = lineRanges.flatMap((lineRange, index) => rangesIntersect(token.sourceRange, lineRange.sourceRange) ? [index] : []);
|
|
84
|
+
if (intersectingIndexes.length > 1) {
|
|
85
|
+
return createNativeTextLineLayoutFailure('token-crosses-line', 'nativeText line layout cannot silently assign one token to multiple rendered lines.', {
|
|
86
|
+
sourceRange: token.sourceRange,
|
|
87
|
+
tokenId: token.id
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
const lineIndex = intersectingIndexes[0];
|
|
91
|
+
if (typeof lineIndex === 'number') {
|
|
92
|
+
const lineRange = lineRanges[lineIndex];
|
|
93
|
+
if (lineRange && rangeContainsRange(lineRange.sourceRange, token.sourceRange)) {
|
|
94
|
+
return {
|
|
95
|
+
ok: true,
|
|
96
|
+
value: lineIndex
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
return createNativeTextLineLayoutFailure('token-crosses-line', 'nativeText line layout found a partial token and requires deterministic handling before stable line support.', {
|
|
100
|
+
lineIndex,
|
|
101
|
+
sourceRange: token.sourceRange,
|
|
102
|
+
tokenId: token.id
|
|
103
|
+
});
|
|
104
|
+
}
|
|
105
|
+
if (token.text.trim().length === 0) {
|
|
106
|
+
return {
|
|
107
|
+
ok: true,
|
|
108
|
+
value: findWhitespaceSeparatorLineIndex(token.sourceRange, lineRanges)
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
return createNativeTextLineLayoutFailure('token-outside-lines', 'nativeText line layout found a non-whitespace token outside all rendered line ranges.', {
|
|
112
|
+
sourceRange: token.sourceRange,
|
|
113
|
+
tokenId: token.id
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
function createStyleSnapshot(style) {
|
|
117
|
+
const flattenedStyle = StyleSheet.flatten(style) ?? {};
|
|
118
|
+
return LAYOUT_TEXT_STYLE_KEYS.reduce((snapshot, key) => {
|
|
119
|
+
const value = flattenedStyle[key];
|
|
120
|
+
if (value === undefined) {
|
|
121
|
+
return snapshot;
|
|
122
|
+
}
|
|
123
|
+
return {
|
|
124
|
+
...snapshot,
|
|
125
|
+
[key]: value
|
|
126
|
+
};
|
|
127
|
+
}, {});
|
|
128
|
+
}
|
|
129
|
+
function normalizeFiniteNumber(value) {
|
|
130
|
+
return Number.isFinite(value) ? value : null;
|
|
131
|
+
}
|
|
132
|
+
function createInitialInvalidationsByReason() {
|
|
133
|
+
return NATIVE_TEXT_LINE_LAYOUT_INVALIDATION_REASONS.reduce((invalidations, reason) => ({
|
|
134
|
+
...invalidations,
|
|
135
|
+
[reason]: 0
|
|
136
|
+
}), {
|
|
137
|
+
'font-scale': 0,
|
|
138
|
+
initial: 0,
|
|
139
|
+
'line-text': 0,
|
|
140
|
+
style: 0,
|
|
141
|
+
text: 0,
|
|
142
|
+
width: 0
|
|
143
|
+
});
|
|
144
|
+
}
|
|
145
|
+
export function createNativeTextLineRanges(text, renderedLines) {
|
|
146
|
+
const result = {
|
|
147
|
+
cursor: 0,
|
|
148
|
+
lines: [],
|
|
149
|
+
ok: true
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
// Keep this accumulator mutable so source mapping stays linear for stress probes.
|
|
153
|
+
for (const [lineIndex, renderedLine] of renderedLines.entries()) {
|
|
154
|
+
const lineRange = createNativeTextLineRange(text, renderedLine.text, lineIndex, result.cursor);
|
|
155
|
+
if (!lineRange.ok) {
|
|
156
|
+
return lineRange;
|
|
157
|
+
}
|
|
158
|
+
result.cursor = lineRange.value.sourceRange.end;
|
|
159
|
+
result.lines.push(lineRange.value);
|
|
160
|
+
}
|
|
161
|
+
if (text.length > 0 && result.lines.length === 0) {
|
|
162
|
+
return createNativeTextLineLayoutFailure('line-text-not-found', 'nativeText line layout needs rendered line data for non-empty text.', {
|
|
163
|
+
sourceRange: {
|
|
164
|
+
end: 0,
|
|
165
|
+
start: 0
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
return {
|
|
170
|
+
ok: true,
|
|
171
|
+
value: result.lines
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
export function groupNativeTextTokensByLineRanges(tokens, lineRanges) {
|
|
175
|
+
const groups = lineRanges.map(line => ({
|
|
176
|
+
line,
|
|
177
|
+
tokens: []
|
|
178
|
+
}));
|
|
179
|
+
for (const token of tokens) {
|
|
180
|
+
const lineIndex = findLineIndexForToken(token, lineRanges);
|
|
181
|
+
if (!lineIndex.ok) {
|
|
182
|
+
return lineIndex;
|
|
183
|
+
}
|
|
184
|
+
if (typeof lineIndex.value !== 'number') {
|
|
185
|
+
continue;
|
|
186
|
+
}
|
|
187
|
+
const group = groups[lineIndex.value];
|
|
188
|
+
if (!group) {
|
|
189
|
+
return createNativeTextLineLayoutFailure('token-outside-lines', 'nativeText line layout resolved a token to a missing line group.', {
|
|
190
|
+
sourceRange: token.sourceRange,
|
|
191
|
+
tokenId: token.id
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
group.tokens.push(token);
|
|
195
|
+
}
|
|
196
|
+
return {
|
|
197
|
+
ok: true,
|
|
198
|
+
value: groups.map(({
|
|
199
|
+
line,
|
|
200
|
+
tokens: groupTokens
|
|
201
|
+
}) => ({
|
|
202
|
+
line,
|
|
203
|
+
text: groupTokens.map(token => token.text).join(''),
|
|
204
|
+
tokens: groupTokens
|
|
205
|
+
}))
|
|
206
|
+
};
|
|
207
|
+
}
|
|
208
|
+
export function evaluateNativeTextLineLayoutCompatibility(groups) {
|
|
209
|
+
const mismatch = groups.find(group => group.text !== group.line.text);
|
|
210
|
+
if (mismatch) {
|
|
211
|
+
return {
|
|
212
|
+
actualText: mismatch.text,
|
|
213
|
+
expectedText: mismatch.line.text,
|
|
214
|
+
lineIndex: mismatch.line.index,
|
|
215
|
+
reason: 'line-group-text-mismatch',
|
|
216
|
+
status: 'no-go'
|
|
217
|
+
};
|
|
218
|
+
}
|
|
219
|
+
return {
|
|
220
|
+
lineCount: groups.length,
|
|
221
|
+
status: 'go',
|
|
222
|
+
tokenCount: groups.reduce((count, group) => count + group.tokens.length, 0)
|
|
223
|
+
};
|
|
224
|
+
}
|
|
225
|
+
export function createNativeTextLineLayoutSignature({
|
|
226
|
+
allowFontScaling,
|
|
227
|
+
maxFontSizeMultiplier,
|
|
228
|
+
measuredWidth,
|
|
229
|
+
renderedLines,
|
|
230
|
+
style,
|
|
231
|
+
text
|
|
232
|
+
}) {
|
|
233
|
+
return JSON.stringify({
|
|
234
|
+
allowFontScaling,
|
|
235
|
+
maxFontSizeMultiplier,
|
|
236
|
+
measuredWidth: normalizeFiniteNumber(measuredWidth),
|
|
237
|
+
renderedLines: renderedLines.map(line => ({
|
|
238
|
+
height: normalizeFiniteNumber(line.height),
|
|
239
|
+
text: line.text,
|
|
240
|
+
width: normalizeFiniteNumber(line.width),
|
|
241
|
+
x: normalizeFiniteNumber(line.x),
|
|
242
|
+
y: normalizeFiniteNumber(line.y)
|
|
243
|
+
})),
|
|
244
|
+
style: createStyleSnapshot(style),
|
|
245
|
+
text
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
export function createNativeTextLineLayoutProbeSnapshot(initial) {
|
|
249
|
+
return {
|
|
250
|
+
acceptedMappingUpdates: initial?.acceptedMappingUpdates ?? 0,
|
|
251
|
+
invalidationsByReason: createInitialInvalidationsByReason(),
|
|
252
|
+
lineCount: initial?.lineCount ?? 0,
|
|
253
|
+
mappingComputations: initial?.mappingComputations ?? 0,
|
|
254
|
+
onTextLayoutCalls: initial?.onTextLayoutCalls ?? 0,
|
|
255
|
+
rejectedIdenticalPayloads: initial?.rejectedIdenticalPayloads ?? 0,
|
|
256
|
+
signature: initial?.signature,
|
|
257
|
+
tokenCount: initial?.tokenCount ?? 0
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
export function recordNativeTextLineLayoutMeasurement(snapshot, measurement) {
|
|
261
|
+
if (snapshot.signature === measurement.signature) {
|
|
262
|
+
return {
|
|
263
|
+
accepted: false,
|
|
264
|
+
snapshot: {
|
|
265
|
+
...snapshot,
|
|
266
|
+
lineCount: measurement.lineCount,
|
|
267
|
+
onTextLayoutCalls: snapshot.onTextLayoutCalls + 1,
|
|
268
|
+
rejectedIdenticalPayloads: snapshot.rejectedIdenticalPayloads + 1,
|
|
269
|
+
tokenCount: measurement.tokenCount
|
|
270
|
+
}
|
|
271
|
+
};
|
|
272
|
+
}
|
|
273
|
+
return {
|
|
274
|
+
accepted: true,
|
|
275
|
+
snapshot: {
|
|
276
|
+
...snapshot,
|
|
277
|
+
acceptedMappingUpdates: snapshot.acceptedMappingUpdates + 1,
|
|
278
|
+
invalidationsByReason: {
|
|
279
|
+
...snapshot.invalidationsByReason,
|
|
280
|
+
[measurement.invalidationReason]: snapshot.invalidationsByReason[measurement.invalidationReason] + 1
|
|
281
|
+
},
|
|
282
|
+
lineCount: measurement.lineCount,
|
|
283
|
+
mappingComputations: snapshot.mappingComputations + 1,
|
|
284
|
+
onTextLayoutCalls: snapshot.onTextLayoutCalls + 1,
|
|
285
|
+
signature: measurement.signature,
|
|
286
|
+
tokenCount: measurement.tokenCount
|
|
287
|
+
}
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
//# sourceMappingURL=nativeTextLineLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["StyleSheet","LAYOUT_TEXT_STYLE_KEYS","NATIVE_TEXT_LINE_LAYOUT_INVALIDATION_REASONS","createNativeTextLineLayoutFailure","reason","message","details","ok","createNativeTextLineRange","text","lineText","lineIndex","cursor","length","value","index","sourceRange","end","start","indexOf","rangesIntersect","first","second","rangeContainsRange","outer","inner","findWhitespaceSeparatorLineIndex","lineRanges","previousIndex","reduce","match","lineRange","undefined","firstLine","findLineIndexForToken","token","intersectingIndexes","flatMap","tokenId","id","trim","createStyleSnapshot","style","flattenedStyle","flatten","snapshot","key","normalizeFiniteNumber","Number","isFinite","createInitialInvalidationsByReason","invalidations","initial","width","createNativeTextLineRanges","renderedLines","result","lines","renderedLine","entries","push","groupNativeTextTokensByLineRanges","tokens","groups","map","line","group","groupTokens","join","evaluateNativeTextLineLayoutCompatibility","mismatch","find","actualText","expectedText","status","lineCount","tokenCount","count","createNativeTextLineLayoutSignature","allowFontScaling","maxFontSizeMultiplier","measuredWidth","JSON","stringify","height","x","y","createNativeTextLineLayoutProbeSnapshot","acceptedMappingUpdates","invalidationsByReason","mappingComputations","onTextLayoutCalls","rejectedIdenticalPayloads","signature","recordNativeTextLineLayoutMeasurement","measurement","accepted","invalidationReason"],"sourceRoot":"../../../src","sources":["renderers/nativeTextLineLayout.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function isNativeTextMotionOptionRecord(value) {
|
|
4
|
+
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
5
|
+
}
|
|
6
|
+
function createMotionOptionSnapshotValue(value) {
|
|
7
|
+
// Reanimated config objects are compared structurally; function-valued options stay reference-sensitive.
|
|
8
|
+
if (Array.isArray(value)) {
|
|
9
|
+
return value.map(createMotionOptionSnapshotValue);
|
|
10
|
+
}
|
|
11
|
+
if (isNativeTextMotionOptionRecord(value)) {
|
|
12
|
+
return Object.fromEntries(Object.entries(value).map(([key, nestedValue]) => [key, createMotionOptionSnapshotValue(nestedValue)]));
|
|
13
|
+
}
|
|
14
|
+
return value;
|
|
15
|
+
}
|
|
16
|
+
function createMotionOptionsSnapshot(options) {
|
|
17
|
+
if (!options) {
|
|
18
|
+
return undefined;
|
|
19
|
+
}
|
|
20
|
+
return Object.fromEntries(Object.entries(options).map(([key, value]) => [key, createMotionOptionSnapshotValue(value)]));
|
|
21
|
+
}
|
|
22
|
+
function createMotionSnapshot(motion) {
|
|
23
|
+
if (!motion) {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
return {
|
|
27
|
+
kind: motion.kind,
|
|
28
|
+
options: createMotionOptionsSnapshot(motion.options)
|
|
29
|
+
};
|
|
30
|
+
}
|
|
31
|
+
export function createNativeTextPlaybackRun(tokenMotion, renderFinalState, text) {
|
|
32
|
+
return {
|
|
33
|
+
...tokenMotion,
|
|
34
|
+
motionSnapshot: createMotionSnapshot(tokenMotion.motion),
|
|
35
|
+
renderFinalState,
|
|
36
|
+
text
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
function areNativeTextStyleStatesEqual(left, right) {
|
|
40
|
+
return Object.is(left.opacity, right.opacity) && Object.is(left.scale, right.scale) && Object.is(left.translateX, right.translateX) && Object.is(left.translateY, right.translateY);
|
|
41
|
+
}
|
|
42
|
+
function areMotionOptionsSnapshotsEqual(left, right) {
|
|
43
|
+
if (!left || !right) {
|
|
44
|
+
return left === right;
|
|
45
|
+
}
|
|
46
|
+
const leftKeys = Object.keys(left);
|
|
47
|
+
const rightKeys = Object.keys(right);
|
|
48
|
+
if (leftKeys.length !== rightKeys.length) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
return leftKeys.every(key => Object.prototype.hasOwnProperty.call(right, key) && areMotionOptionSnapshotValuesEqual(left[key], right[key]));
|
|
52
|
+
}
|
|
53
|
+
function areMotionOptionArraysEqual(left, right) {
|
|
54
|
+
if (left.length !== right.length) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
return left.every((value, index) => areMotionOptionSnapshotValuesEqual(value, right[index]));
|
|
58
|
+
}
|
|
59
|
+
function areMotionOptionRecordsEqual(left, right) {
|
|
60
|
+
const leftKeys = Object.keys(left);
|
|
61
|
+
const rightKeys = Object.keys(right);
|
|
62
|
+
if (leftKeys.length !== rightKeys.length) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
return leftKeys.every(key => Object.prototype.hasOwnProperty.call(right, key) && areMotionOptionSnapshotValuesEqual(left[key], right[key]));
|
|
66
|
+
}
|
|
67
|
+
function areMotionOptionSnapshotValuesEqual(left, right) {
|
|
68
|
+
if (Object.is(left, right)) {
|
|
69
|
+
return true;
|
|
70
|
+
}
|
|
71
|
+
if (Array.isArray(left) && Array.isArray(right)) {
|
|
72
|
+
return areMotionOptionArraysEqual(left, right);
|
|
73
|
+
}
|
|
74
|
+
if (isNativeTextMotionOptionRecord(left) && isNativeTextMotionOptionRecord(right)) {
|
|
75
|
+
return areMotionOptionRecordsEqual(left, right);
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
function areMotionSnapshotsEqual(left, right) {
|
|
80
|
+
if (!left || !right) {
|
|
81
|
+
return left === right;
|
|
82
|
+
}
|
|
83
|
+
return left.kind === right.kind && areMotionOptionsSnapshotsEqual(left.options, right.options);
|
|
84
|
+
}
|
|
85
|
+
export function areNativeTextPlaybackRunsEqual(left, right) {
|
|
86
|
+
if (!left) {
|
|
87
|
+
return false;
|
|
88
|
+
}
|
|
89
|
+
return Object.is(left.delayMs, right.delayMs) && Object.is(left.pulseScale, right.pulseScale) && left.reducedMotion === right.reducedMotion && left.revealOnStart === right.revealOnStart && left.renderFinalState === right.renderFinalState && left.text === right.text && areNativeTextStyleStatesEqual(left.initial, right.initial) && areNativeTextStyleStatesEqual(left.target, right.target) && areMotionSnapshotsEqual(left.motionSnapshot, right.motionSnapshot);
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=nativeTextPlayback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isNativeTextMotionOptionRecord","value","Array","isArray","createMotionOptionSnapshotValue","map","Object","fromEntries","entries","key","nestedValue","createMotionOptionsSnapshot","options","undefined","createMotionSnapshot","motion","kind","createNativeTextPlaybackRun","tokenMotion","renderFinalState","text","motionSnapshot","areNativeTextStyleStatesEqual","left","right","is","opacity","scale","translateX","translateY","areMotionOptionsSnapshotsEqual","leftKeys","keys","rightKeys","length","every","prototype","hasOwnProperty","call","areMotionOptionSnapshotValuesEqual","areMotionOptionArraysEqual","index","areMotionOptionRecordsEqual","areMotionSnapshotsEqual","areNativeTextPlaybackRunsEqual","delayMs","pulseScale","reducedMotion","revealOnStart","initial","target"],"sourceRoot":"../../../src","sources":["renderers/nativeTextPlayback.ts"],"mappings":"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","ignoreList":[]}
|