@dso-toolkit/core 58.3.1 → 59.0.1-ghi-2408.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.
Files changed (178) hide show
  1. package/dist/cjs/_commonjsHelpers-68cdf74f.js +7 -0
  2. package/dist/cjs/_commonjsHelpers-68cdf74f.js.map +1 -0
  3. package/dist/cjs/dso-accordion-section.cjs.entry.js +16 -7
  4. package/dist/cjs/dso-accordion-section.cjs.entry.js.map +1 -1
  5. package/dist/cjs/dso-alert_5.cjs.entry.js +497 -46
  6. package/dist/cjs/dso-alert_5.cjs.entry.js.map +1 -1
  7. package/dist/cjs/dso-annotation-output_3.cjs.entry.js +6 -2
  8. package/dist/cjs/dso-annotation-output_3.cjs.entry.js.map +1 -1
  9. package/dist/cjs/dso-dropdown-menu.cjs.entry.js +4 -2
  10. package/dist/cjs/dso-dropdown-menu.cjs.entry.js.map +1 -1
  11. package/dist/cjs/dso-expandable.cjs.entry.js +4 -0
  12. package/dist/cjs/dso-expandable.cjs.entry.js.map +1 -1
  13. package/dist/cjs/dso-header.cjs.entry.js +1 -1
  14. package/dist/cjs/dso-header.cjs.entry.js.map +1 -1
  15. package/dist/cjs/dso-modal.cjs.entry.js +1 -1
  16. package/dist/cjs/dso-modal.cjs.entry.js.map +1 -1
  17. package/dist/cjs/dso-table.cjs.entry.js +1 -1
  18. package/dist/cjs/dso-table.cjs.entry.js.map +1 -1
  19. package/dist/cjs/dso-toolkit.cjs.js +1 -1
  20. package/dist/cjs/dso-tooltip.cjs.entry.js +1 -1
  21. package/dist/cjs/dso-tooltip.cjs.entry.js.map +1 -1
  22. package/dist/cjs/dsot-document-component-demo.cjs.entry.js +1688 -41
  23. package/dist/cjs/dsot-document-component-demo.cjs.entry.js.map +1 -1
  24. package/dist/cjs/loader.cjs.js +1 -1
  25. package/dist/collection/collection-manifest.json +1 -1
  26. package/dist/collection/components/accordion/components/accordion-section.interfaces.js.map +1 -1
  27. package/dist/collection/components/accordion/components/accordion-section.js +54 -8
  28. package/dist/collection/components/accordion/components/accordion-section.js.map +1 -1
  29. package/dist/collection/components/annotation-button/annotation-button.js +1 -1
  30. package/dist/collection/components/annotation-output/annotation-output.js +1 -1
  31. package/dist/collection/components/document-component/document-component.css +687 -13
  32. package/dist/collection/components/document-component/document-component.js +31 -7
  33. package/dist/collection/components/document-component/document-component.js.map +1 -1
  34. package/dist/collection/components/document-component/document-component.models.js +2 -0
  35. package/dist/collection/components/document-component/document-component.models.js.map +1 -0
  36. package/dist/collection/components/document-component-demo/document-component.demo.css +11 -0
  37. package/dist/collection/components/document-component-demo/document-component.demo.js +235 -0
  38. package/dist/collection/components/document-component-demo/document-component.demo.js.map +1 -0
  39. package/dist/collection/components/dropdown-menu/dropdown-menu.js +29 -2
  40. package/dist/collection/components/dropdown-menu/dropdown-menu.js.map +1 -1
  41. package/dist/collection/components/expandable/expandable.js +26 -2
  42. package/dist/collection/components/expandable/expandable.js.map +1 -1
  43. package/dist/collection/components/header/header.js +1 -1
  44. package/dist/collection/components/header/header.js.map +1 -1
  45. package/dist/collection/components/modal/modal.css +3 -3
  46. package/dist/collection/components/ozon-content/nodes/al.node.js +24 -7
  47. package/dist/collection/components/ozon-content/nodes/al.node.js.map +1 -1
  48. package/dist/collection/components/ozon-content/nodes/ext-ref.node.js +3 -1
  49. package/dist/collection/components/ozon-content/nodes/ext-ref.node.js.map +1 -1
  50. package/dist/collection/components/ozon-content/nodes/nieuwe-tekst.node.js +1 -1
  51. package/dist/collection/components/ozon-content/nodes/nieuwe-tekst.node.js.map +1 -1
  52. package/dist/collection/components/ozon-content/nodes/opschrift.node.js +9 -1
  53. package/dist/collection/components/ozon-content/nodes/opschrift.node.js.map +1 -1
  54. package/dist/collection/components/ozon-content/nodes/table.node/table.node.js +1 -2
  55. package/dist/collection/components/ozon-content/nodes/table.node/table.node.js.map +1 -1
  56. package/dist/collection/components/ozon-content/nodes/verwijderde-tekst.node.js +1 -1
  57. package/dist/collection/components/ozon-content/nodes/verwijderde-tekst.node.js.map +1 -1
  58. package/dist/collection/components/ozon-content/ozon-content-context.interface.js.map +1 -1
  59. package/dist/collection/components/ozon-content/ozon-content-mapper.js +11 -9
  60. package/dist/collection/components/ozon-content/ozon-content-mapper.js.map +1 -1
  61. package/dist/collection/components/ozon-content/ozon-content-node-context.interface.js.map +1 -1
  62. package/dist/collection/components/ozon-content/ozon-content.css +1100 -35
  63. package/dist/collection/components/ozon-content/ozon-content.interfaces.js.map +1 -1
  64. package/dist/collection/components/ozon-content/ozon-content.js +17 -83
  65. package/dist/collection/components/ozon-content/ozon-content.js.map +1 -1
  66. package/dist/collection/components/table/table.css +669 -97
  67. package/dist/collection/components/tooltip/tooltip.css +0 -8
  68. package/dist/components/document-component.js +6 -2
  69. package/dist/components/document-component.js.map +1 -1
  70. package/dist/components/dropdown-menu.js +5 -2
  71. package/dist/components/dropdown-menu.js.map +1 -1
  72. package/dist/components/dso-accordion-section.js +17 -8
  73. package/dist/components/dso-accordion-section.js.map +1 -1
  74. package/dist/components/dso-header.js +1 -1
  75. package/dist/components/dso-header.js.map +1 -1
  76. package/dist/components/dso-modal.js +1 -1
  77. package/dist/components/dso-modal.js.map +1 -1
  78. package/dist/components/dso-table.js +1 -1
  79. package/dist/components/dso-table.js.map +1 -1
  80. package/dist/components/dsot-document-component-demo.js +1694 -45
  81. package/dist/components/dsot-document-component-demo.js.map +1 -1
  82. package/dist/components/expandable.js +4 -0
  83. package/dist/components/expandable.js.map +1 -1
  84. package/dist/components/index.d.ts +1 -1
  85. package/dist/components/ozon-content.js +500 -50
  86. package/dist/components/ozon-content.js.map +1 -1
  87. package/dist/components/tooltip.js +1 -1
  88. package/dist/components/tooltip.js.map +1 -1
  89. package/dist/dso-toolkit/dso-toolkit.esm.js +1 -1
  90. package/dist/dso-toolkit/dso-toolkit.esm.js.map +1 -1
  91. package/dist/dso-toolkit/{p-298453a9.entry.js → p-0e876e64.entry.js} +2 -2
  92. package/dist/dso-toolkit/p-0e876e64.entry.js.map +1 -0
  93. package/dist/dso-toolkit/p-2401e7f9.entry.js +2 -0
  94. package/dist/dso-toolkit/p-2401e7f9.entry.js.map +1 -0
  95. package/dist/dso-toolkit/p-2ab99812.entry.js +2 -0
  96. package/dist/dso-toolkit/{p-a63c82a4.entry.js.map → p-2ab99812.entry.js.map} +1 -1
  97. package/dist/dso-toolkit/p-432df09a.entry.js +2 -0
  98. package/dist/dso-toolkit/p-432df09a.entry.js.map +1 -0
  99. package/dist/dso-toolkit/p-4573c419.js +2 -0
  100. package/dist/dso-toolkit/p-4573c419.js.map +1 -0
  101. package/dist/dso-toolkit/p-47e77e24.entry.js +2 -0
  102. package/dist/dso-toolkit/p-47e77e24.entry.js.map +1 -0
  103. package/dist/dso-toolkit/p-4e2407bf.entry.js +2 -0
  104. package/dist/dso-toolkit/p-4e2407bf.entry.js.map +1 -0
  105. package/dist/dso-toolkit/{p-dc6e37dd.entry.js → p-51cfeed4.entry.js} +2 -2
  106. package/dist/dso-toolkit/p-51cfeed4.entry.js.map +1 -0
  107. package/dist/dso-toolkit/{p-a3dc08f4.entry.js → p-6658d684.entry.js} +2 -2
  108. package/dist/dso-toolkit/p-6658d684.entry.js.map +1 -0
  109. package/dist/dso-toolkit/p-ab1f0511.entry.js +2 -0
  110. package/dist/dso-toolkit/p-ab1f0511.entry.js.map +1 -0
  111. package/dist/dso-toolkit/p-ad44136d.entry.js +2 -0
  112. package/dist/dso-toolkit/p-ad44136d.entry.js.map +1 -0
  113. package/dist/esm/_commonjsHelpers-1c8beb5f.js +5 -0
  114. package/dist/esm/_commonjsHelpers-1c8beb5f.js.map +1 -0
  115. package/dist/esm/dso-accordion-section.entry.js +16 -7
  116. package/dist/esm/dso-accordion-section.entry.js.map +1 -1
  117. package/dist/esm/dso-alert_5.entry.js +498 -47
  118. package/dist/esm/dso-alert_5.entry.js.map +1 -1
  119. package/dist/esm/dso-annotation-output_3.entry.js +6 -2
  120. package/dist/esm/dso-annotation-output_3.entry.js.map +1 -1
  121. package/dist/esm/dso-dropdown-menu.entry.js +4 -2
  122. package/dist/esm/dso-dropdown-menu.entry.js.map +1 -1
  123. package/dist/esm/dso-expandable.entry.js +4 -0
  124. package/dist/esm/dso-expandable.entry.js.map +1 -1
  125. package/dist/esm/dso-header.entry.js +1 -1
  126. package/dist/esm/dso-header.entry.js.map +1 -1
  127. package/dist/esm/dso-modal.entry.js +1 -1
  128. package/dist/esm/dso-modal.entry.js.map +1 -1
  129. package/dist/esm/dso-table.entry.js +1 -1
  130. package/dist/esm/dso-table.entry.js.map +1 -1
  131. package/dist/esm/dso-toolkit.js +1 -1
  132. package/dist/esm/dso-tooltip.entry.js +1 -1
  133. package/dist/esm/dso-tooltip.entry.js.map +1 -1
  134. package/dist/esm/dsot-document-component-demo.entry.js +1689 -42
  135. package/dist/esm/dsot-document-component-demo.entry.js.map +1 -1
  136. package/dist/esm/loader.js +1 -1
  137. package/dist/types/components/accordion/components/accordion-section.d.ts +10 -1
  138. package/dist/types/components/accordion/components/accordion-section.interfaces.d.ts +11 -1
  139. package/dist/types/components/document-component/document-component.d.ts +6 -1
  140. package/dist/types/components/document-component/document-component.models.d.ts +14 -0
  141. package/dist/types/components/document-component-demo/document-component.demo.d.ts +64 -0
  142. package/dist/types/components/dropdown-menu/dropdown-menu.d.ts +7 -0
  143. package/dist/types/components/expandable/expandable.d.ts +7 -1
  144. package/dist/types/components/ozon-content/nodes/al.node.d.ts +1 -1
  145. package/dist/types/components/ozon-content/ozon-content-context.interface.d.ts +3 -2
  146. package/dist/types/components/ozon-content/ozon-content-mapper.d.ts +0 -1
  147. package/dist/types/components/ozon-content/ozon-content-node-context.interface.d.ts +3 -2
  148. package/dist/types/components/ozon-content/ozon-content.d.ts +4 -25
  149. package/dist/types/components/ozon-content/ozon-content.interfaces.d.ts +1 -4
  150. package/dist/types/components.d.ts +72 -30
  151. package/package.json +8 -2
  152. package/dist/collection/components/document-component/document-component.demo.js +0 -112
  153. package/dist/collection/components/document-component/document-component.demo.js.map +0 -1
  154. package/dist/collection/components/document-component/document-component.types.js +0 -2
  155. package/dist/collection/components/document-component/document-component.types.js.map +0 -1
  156. package/dist/dso-toolkit/p-298453a9.entry.js.map +0 -1
  157. package/dist/dso-toolkit/p-41066f6f.entry.js +0 -2
  158. package/dist/dso-toolkit/p-41066f6f.entry.js.map +0 -1
  159. package/dist/dso-toolkit/p-42ba2c81.entry.js +0 -2
  160. package/dist/dso-toolkit/p-42ba2c81.entry.js.map +0 -1
  161. package/dist/dso-toolkit/p-48d76094.entry.js +0 -2
  162. package/dist/dso-toolkit/p-48d76094.entry.js.map +0 -1
  163. package/dist/dso-toolkit/p-5c5e43d3.entry.js +0 -2
  164. package/dist/dso-toolkit/p-5c5e43d3.entry.js.map +0 -1
  165. package/dist/dso-toolkit/p-8af61320.entry.js +0 -2
  166. package/dist/dso-toolkit/p-8af61320.entry.js.map +0 -1
  167. package/dist/dso-toolkit/p-9a3f154b.entry.js +0 -2
  168. package/dist/dso-toolkit/p-9a3f154b.entry.js.map +0 -1
  169. package/dist/dso-toolkit/p-a3dc08f4.entry.js.map +0 -1
  170. package/dist/dso-toolkit/p-a63c82a4.entry.js +0 -2
  171. package/dist/dso-toolkit/p-dc6e37dd.entry.js.map +0 -1
  172. package/dist/esm/polyfills/core-js.js +0 -11
  173. package/dist/esm/polyfills/dom.js +0 -79
  174. package/dist/esm/polyfills/es5-html-element.js +0 -1
  175. package/dist/esm/polyfills/index.js +0 -34
  176. package/dist/esm/polyfills/system.js +0 -6
  177. package/dist/types/components/document-component/document-component.demo.d.ts +0 -40
  178. package/dist/types/components/document-component/document-component.types.d.ts +0 -8
@@ -1 +0,0 @@
1
- {"version":3,"names":["defaultInstanceSettings","update","begin","loopBegin","changeBegin","change","changeComplete","loopComplete","complete","loop","direction","autoplay","timelineOffset","defaultTweenSettings","duration","delay","endDelay","easing","round","validTransforms","cache","CSS","springs","minMax","val","min","max","Math","stringContains","str","text","indexOf","applyArguments","func","args","apply","is","arr","a","Array","isArray","obj","Object","prototype","toString","call","pth","hasOwnProperty","svg","SVGElement","inp","HTMLInputElement","dom","nodeType","fnc","und","nil","hex","test","rgb","hsl","col","key","parseEasingParameters","string","match","exec","split","map","p","parseFloat","spring","params","mass","stiffness","damping","velocity","w0","sqrt","zeta","wd","b","solver","t","progress","exp","cos","sin","getDuration","cached","frame","elapsed","rest","steps","ceil","bezier","kSplineTableSize","kSampleStepSize","A","aA1","aA2","B","C","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentX","currentT","i","abs","newtonRaphsonIterate","aGuessT","currentSlope","mY1","mY2","sampleValues","Float32Array","getTForX","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","x","penner","eases","linear","functionEasings","Sine","PI","Circ","Back","Bounce","pow2","pow","Elastic","amplitude","period","asin","baseEasings","forEach","name","keys","easeIn","parseEasings","ease","selectString","nodes","document","querySelectorAll","e","filterArray","callback","len","length","thisArg","arguments","result","push","flattenArray","reduce","concat","toArray","o","NodeList","HTMLCollection","slice","arrayContains","some","cloneObject","clone","replaceObjectProps","o1","o2","mergeObjects","rgbToRgba","rgbValue","hexToRgba","hexValue","rgx","replace","m","r","g","parseInt","hslToRgba","hslValue","h","s","l","hue2rgb","q","colorToRgb","getUnit","getTransformUnit","propName","getFunctionValue","animatable","target","id","total","getAttribute","el","prop","convertPxToUnit","value","unit","valueUnit","baseline","tempEl","createElement","tagName","parentEl","parentNode","body","appendChild","style","position","width","factor","offsetWidth","removeChild","convertedUnit","getCSSValue","uppercasePropName","toLowerCase","getComputedStyle","getPropertyValue","getAnimationType","getElementTransforms","transform","reg","transforms","Map","set","getTransformValue","defaultVal","get","list","getOriginalTargetValue","getRelativeValue","to","from","operator","u","y","validateValue","originalUnit","unitLess","substr","getDistance","p1","p2","getCircleLength","getRectLength","getLineLength","getPolylineLength","points","totalLength","previousPos","numberOfItems","currentPos","getItem","getPolygonLength","getTotalLength","setDashoffset","pathLength","setAttribute","getParentSvgEl","getParentSvg","pathEl","svgData","parentSvgEl","rect","getBoundingClientRect","viewBoxAttr","height","viewBox","w","vW","vH","getPath","path","percent","property","getPathProgress","isPathTargetInsideSVG","point","offset","getPointAtLength","p0","scaleX","scaleY","atan2","decomposeValue","original","numbers","Number","strings","parseTargets","targets","targetsArray","item","pos","self","getAnimatables","parsed","normalizePropertyTweens","tweenSettings","settings","isFromTo","propArray","v","k","flattenKeyframes","keyframes","propertyNames","properties","newKey","getProperties","tweens","normalizeTweenValues","tween","normalizeTweens","previousTween","tweenValue","toUnit","originalValue","previousValue","fromUnit","start","end","isPath","isColor","setProgressValue","css","attribute","object","manual","last","setTargetsValue","animatables","animType","createAnimation","lastTween","type","getAnimations","getInstanceTimings","animations","animLength","getTlOffset","anim","timings","instanceID","createNewInstance","instanceSettings","children","activeInstances","engine","raf","play","isDocumentHidden","anime","suspendWhenDocumentHidden","requestAnimationFrame","step","activeInstancesLength","activeInstance","paused","tick","splice","undefined","handleVisibilityChange","cancelAnimationFrame","instance","_onDocumentVisibility","addEventListener","hidden","startTime","lastTime","now","childrenLength","resolve","makePromise","promise","window","Promise","_resolve","finished","toggleInstanceDirection","reversed","child","adjustTime","time","resetTime","currentTime","speed","seekChild","seek","syncInstanceChildren","reversePlayback","i$1","setAnimationsProgress","insTime","animationsLength","tweenLength","eased","isNaN","toNumbersLength","n","toNumber","fromNumber","stringsLength","n$1","currentValue","setCallback","cb","passThrough","countIteration","remaining","setInstanceProgress","engineTime","insDuration","insDelay","insEndDelay","began","loopBegan","changeBegan","changeCompleted","completed","reset","pause","reverse","restart","remove","removeTargetsFromInstance","removeTargetsFromAnimations","c","childAnimations","removeTargetsFromActiveInstances","stagger","grid","axis","fromIndex","fromFirst","fromCenter","fromLast","isRange","val1","val2","values","maxValue","index","fromX","fromY","floor","toX","toY","distanceX","distanceY","spacing","timeline","tl","add","instanceParams","tlIndex","ins","insParams","tlDuration","version","running","convertPx","random","expandableCss","Expandable","toggleOpen","this","enableAnimation","activateAnimation","toggleEnableAnimation","prepareAnimationResizeObserver","activateObserver","_a","resizeObserver","disconnect","animeInstance","host","removeAttribute","componentDidLoad","observe","disconnectedCallback","render","Host","open","class","clsx","animationReady","ResizeObserver","debounce","entry","Error","bodyHeight","instantiateAnimation","minimumHeight","visibility","bottom","dsoExpandableAnimationEnd","emit"],"sources":["../../node_modules/animejs/lib/anime.es.js","src/components/expandable/expandable.scss?tag=dso-expandable&encapsulation=shadow","src/components/expandable/expandable.tsx"],"sourcesContent":["/*\n * anime.js v3.2.1\n * (c) 2020 Julian Garnier\n * Released under the MIT license\n * animejs.com\n */\n\n// Defaults\n\nvar defaultInstanceSettings = {\n update: null,\n begin: null,\n loopBegin: null,\n changeBegin: null,\n change: null,\n changeComplete: null,\n loopComplete: null,\n complete: null,\n loop: 1,\n direction: 'normal',\n autoplay: true,\n timelineOffset: 0\n};\n\nvar defaultTweenSettings = {\n duration: 1000,\n delay: 0,\n endDelay: 0,\n easing: 'easeOutElastic(1, .5)',\n round: 0\n};\n\nvar validTransforms = ['translateX', 'translateY', 'translateZ', 'rotate', 'rotateX', 'rotateY', 'rotateZ', 'scale', 'scaleX', 'scaleY', 'scaleZ', 'skew', 'skewX', 'skewY', 'perspective', 'matrix', 'matrix3d'];\n\n// Caching\n\nvar cache = {\n CSS: {},\n springs: {}\n};\n\n// Utils\n\nfunction minMax(val, min, max) {\n return Math.min(Math.max(val, min), max);\n}\n\nfunction stringContains(str, text) {\n return str.indexOf(text) > -1;\n}\n\nfunction applyArguments(func, args) {\n return func.apply(null, args);\n}\n\nvar is = {\n arr: function (a) { return Array.isArray(a); },\n obj: function (a) { return stringContains(Object.prototype.toString.call(a), 'Object'); },\n pth: function (a) { return is.obj(a) && a.hasOwnProperty('totalLength'); },\n svg: function (a) { return a instanceof SVGElement; },\n inp: function (a) { return a instanceof HTMLInputElement; },\n dom: function (a) { return a.nodeType || is.svg(a); },\n str: function (a) { return typeof a === 'string'; },\n fnc: function (a) { return typeof a === 'function'; },\n und: function (a) { return typeof a === 'undefined'; },\n nil: function (a) { return is.und(a) || a === null; },\n hex: function (a) { return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(a); },\n rgb: function (a) { return /^rgb/.test(a); },\n hsl: function (a) { return /^hsl/.test(a); },\n col: function (a) { return (is.hex(a) || is.rgb(a) || is.hsl(a)); },\n key: function (a) { return !defaultInstanceSettings.hasOwnProperty(a) && !defaultTweenSettings.hasOwnProperty(a) && a !== 'targets' && a !== 'keyframes'; },\n};\n\n// Easings\n\nfunction parseEasingParameters(string) {\n var match = /\\(([^)]+)\\)/.exec(string);\n return match ? match[1].split(',').map(function (p) { return parseFloat(p); }) : [];\n}\n\n// Spring solver inspired by Webkit Copyright © 2016 Apple Inc. All rights reserved. https://webkit.org/demos/spring/spring.js\n\nfunction spring(string, duration) {\n\n var params = parseEasingParameters(string);\n var mass = minMax(is.und(params[0]) ? 1 : params[0], .1, 100);\n var stiffness = minMax(is.und(params[1]) ? 100 : params[1], .1, 100);\n var damping = minMax(is.und(params[2]) ? 10 : params[2], .1, 100);\n var velocity = minMax(is.und(params[3]) ? 0 : params[3], .1, 100);\n var w0 = Math.sqrt(stiffness / mass);\n var zeta = damping / (2 * Math.sqrt(stiffness * mass));\n var wd = zeta < 1 ? w0 * Math.sqrt(1 - zeta * zeta) : 0;\n var a = 1;\n var b = zeta < 1 ? (zeta * w0 + -velocity) / wd : -velocity + w0;\n\n function solver(t) {\n var progress = duration ? (duration * t) / 1000 : t;\n if (zeta < 1) {\n progress = Math.exp(-progress * zeta * w0) * (a * Math.cos(wd * progress) + b * Math.sin(wd * progress));\n } else {\n progress = (a + b * progress) * Math.exp(-progress * w0);\n }\n if (t === 0 || t === 1) { return t; }\n return 1 - progress;\n }\n\n function getDuration() {\n var cached = cache.springs[string];\n if (cached) { return cached; }\n var frame = 1/6;\n var elapsed = 0;\n var rest = 0;\n while(true) {\n elapsed += frame;\n if (solver(elapsed) === 1) {\n rest++;\n if (rest >= 16) { break; }\n } else {\n rest = 0;\n }\n }\n var duration = elapsed * frame * 1000;\n cache.springs[string] = duration;\n return duration;\n }\n\n return duration ? solver : getDuration;\n\n}\n\n// Basic steps easing implementation https://developer.mozilla.org/fr/docs/Web/CSS/transition-timing-function\n\nfunction steps(steps) {\n if ( steps === void 0 ) steps = 10;\n\n return function (t) { return Math.ceil((minMax(t, 0.000001, 1)) * steps) * (1 / steps); };\n}\n\n// BezierEasing https://github.com/gre/bezier-easing\n\nvar bezier = (function () {\n\n var kSplineTableSize = 11;\n var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\n function A(aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1 }\n function B(aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1 }\n function C(aA1) { return 3.0 * aA1 }\n\n function calcBezier(aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT }\n function getSlope(aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1) }\n\n function binarySubdivide(aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) { aB = currentT; } else { aA = currentT; }\n } while (Math.abs(currentX) > 0.0000001 && ++i < 10);\n return currentT;\n }\n\n function newtonRaphsonIterate(aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < 4; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) { return aGuessT; }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n }\n\n function bezier(mX1, mY1, mX2, mY2) {\n\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { return; }\n var sampleValues = new Float32Array(kSplineTableSize);\n\n if (mX1 !== mY1 || mX2 !== mY2) {\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n }\n\n function getTForX(aX) {\n\n var intervalStart = 0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n\n --currentSample;\n\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n var initialSlope = getSlope(guessForT, mX1, mX2);\n\n if (initialSlope >= 0.001) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n\n }\n\n return function (x) {\n if (mX1 === mY1 && mX2 === mY2) { return x; }\n if (x === 0 || x === 1) { return x; }\n return calcBezier(getTForX(x), mY1, mY2);\n }\n\n }\n\n return bezier;\n\n})();\n\nvar penner = (function () {\n\n // Based on jQuery UI's implemenation of easing equations from Robert Penner (http://www.robertpenner.com/easing)\n\n var eases = { linear: function () { return function (t) { return t; }; } };\n\n var functionEasings = {\n Sine: function () { return function (t) { return 1 - Math.cos(t * Math.PI / 2); }; },\n Circ: function () { return function (t) { return 1 - Math.sqrt(1 - t * t); }; },\n Back: function () { return function (t) { return t * t * (3 * t - 2); }; },\n Bounce: function () { return function (t) {\n var pow2, b = 4;\n while (t < (( pow2 = Math.pow(2, --b)) - 1) / 11) {}\n return 1 / Math.pow(4, 3 - b) - 7.5625 * Math.pow(( pow2 * 3 - 2 ) / 22 - t, 2)\n }; },\n Elastic: function (amplitude, period) {\n if ( amplitude === void 0 ) amplitude = 1;\n if ( period === void 0 ) period = .5;\n\n var a = minMax(amplitude, 1, 10);\n var p = minMax(period, .1, 2);\n return function (t) {\n return (t === 0 || t === 1) ? t : \n -a * Math.pow(2, 10 * (t - 1)) * Math.sin((((t - 1) - (p / (Math.PI * 2) * Math.asin(1 / a))) * (Math.PI * 2)) / p);\n }\n }\n };\n\n var baseEasings = ['Quad', 'Cubic', 'Quart', 'Quint', 'Expo'];\n\n baseEasings.forEach(function (name, i) {\n functionEasings[name] = function () { return function (t) { return Math.pow(t, i + 2); }; };\n });\n\n Object.keys(functionEasings).forEach(function (name) {\n var easeIn = functionEasings[name];\n eases['easeIn' + name] = easeIn;\n eases['easeOut' + name] = function (a, b) { return function (t) { return 1 - easeIn(a, b)(1 - t); }; };\n eases['easeInOut' + name] = function (a, b) { return function (t) { return t < 0.5 ? easeIn(a, b)(t * 2) / 2 : \n 1 - easeIn(a, b)(t * -2 + 2) / 2; }; };\n eases['easeOutIn' + name] = function (a, b) { return function (t) { return t < 0.5 ? (1 - easeIn(a, b)(1 - t * 2)) / 2 : \n (easeIn(a, b)(t * 2 - 1) + 1) / 2; }; };\n });\n\n return eases;\n\n})();\n\nfunction parseEasings(easing, duration) {\n if (is.fnc(easing)) { return easing; }\n var name = easing.split('(')[0];\n var ease = penner[name];\n var args = parseEasingParameters(easing);\n switch (name) {\n case 'spring' : return spring(easing, duration);\n case 'cubicBezier' : return applyArguments(bezier, args);\n case 'steps' : return applyArguments(steps, args);\n default : return applyArguments(ease, args);\n }\n}\n\n// Strings\n\nfunction selectString(str) {\n try {\n var nodes = document.querySelectorAll(str);\n return nodes;\n } catch(e) {\n return;\n }\n}\n\n// Arrays\n\nfunction filterArray(arr, callback) {\n var len = arr.length;\n var thisArg = arguments.length >= 2 ? arguments[1] : void 0;\n var result = [];\n for (var i = 0; i < len; i++) {\n if (i in arr) {\n var val = arr[i];\n if (callback.call(thisArg, val, i, arr)) {\n result.push(val);\n }\n }\n }\n return result;\n}\n\nfunction flattenArray(arr) {\n return arr.reduce(function (a, b) { return a.concat(is.arr(b) ? flattenArray(b) : b); }, []);\n}\n\nfunction toArray(o) {\n if (is.arr(o)) { return o; }\n if (is.str(o)) { o = selectString(o) || o; }\n if (o instanceof NodeList || o instanceof HTMLCollection) { return [].slice.call(o); }\n return [o];\n}\n\nfunction arrayContains(arr, val) {\n return arr.some(function (a) { return a === val; });\n}\n\n// Objects\n\nfunction cloneObject(o) {\n var clone = {};\n for (var p in o) { clone[p] = o[p]; }\n return clone;\n}\n\nfunction replaceObjectProps(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o1) { o[p] = o2.hasOwnProperty(p) ? o2[p] : o1[p]; }\n return o;\n}\n\nfunction mergeObjects(o1, o2) {\n var o = cloneObject(o1);\n for (var p in o2) { o[p] = is.und(o1[p]) ? o2[p] : o1[p]; }\n return o;\n}\n\n// Colors\n\nfunction rgbToRgba(rgbValue) {\n var rgb = /rgb\\((\\d+,\\s*[\\d]+,\\s*[\\d]+)\\)/g.exec(rgbValue);\n return rgb ? (\"rgba(\" + (rgb[1]) + \",1)\") : rgbValue;\n}\n\nfunction hexToRgba(hexValue) {\n var rgx = /^#?([a-f\\d])([a-f\\d])([a-f\\d])$/i;\n var hex = hexValue.replace(rgx, function (m, r, g, b) { return r + r + g + g + b + b; } );\n var rgb = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n var r = parseInt(rgb[1], 16);\n var g = parseInt(rgb[2], 16);\n var b = parseInt(rgb[3], 16);\n return (\"rgba(\" + r + \",\" + g + \",\" + b + \",1)\");\n}\n\nfunction hslToRgba(hslValue) {\n var hsl = /hsl\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%\\)/g.exec(hslValue) || /hsla\\((\\d+),\\s*([\\d.]+)%,\\s*([\\d.]+)%,\\s*([\\d.]+)\\)/g.exec(hslValue);\n var h = parseInt(hsl[1], 10) / 360;\n var s = parseInt(hsl[2], 10) / 100;\n var l = parseInt(hsl[3], 10) / 100;\n var a = hsl[4] || 1;\n function hue2rgb(p, q, t) {\n if (t < 0) { t += 1; }\n if (t > 1) { t -= 1; }\n if (t < 1/6) { return p + (q - p) * 6 * t; }\n if (t < 1/2) { return q; }\n if (t < 2/3) { return p + (q - p) * (2/3 - t) * 6; }\n return p;\n }\n var r, g, b;\n if (s == 0) {\n r = g = b = l;\n } else {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n r = hue2rgb(p, q, h + 1/3);\n g = hue2rgb(p, q, h);\n b = hue2rgb(p, q, h - 1/3);\n }\n return (\"rgba(\" + (r * 255) + \",\" + (g * 255) + \",\" + (b * 255) + \",\" + a + \")\");\n}\n\nfunction colorToRgb(val) {\n if (is.rgb(val)) { return rgbToRgba(val); }\n if (is.hex(val)) { return hexToRgba(val); }\n if (is.hsl(val)) { return hslToRgba(val); }\n}\n\n// Units\n\nfunction getUnit(val) {\n var split = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?(%|px|pt|em|rem|in|cm|mm|ex|ch|pc|vw|vh|vmin|vmax|deg|rad|turn)?$/.exec(val);\n if (split) { return split[1]; }\n}\n\nfunction getTransformUnit(propName) {\n if (stringContains(propName, 'translate') || propName === 'perspective') { return 'px'; }\n if (stringContains(propName, 'rotate') || stringContains(propName, 'skew')) { return 'deg'; }\n}\n\n// Values\n\nfunction getFunctionValue(val, animatable) {\n if (!is.fnc(val)) { return val; }\n return val(animatable.target, animatable.id, animatable.total);\n}\n\nfunction getAttribute(el, prop) {\n return el.getAttribute(prop);\n}\n\nfunction convertPxToUnit(el, value, unit) {\n var valueUnit = getUnit(value);\n if (arrayContains([unit, 'deg', 'rad', 'turn'], valueUnit)) { return value; }\n var cached = cache.CSS[value + unit];\n if (!is.und(cached)) { return cached; }\n var baseline = 100;\n var tempEl = document.createElement(el.tagName);\n var parentEl = (el.parentNode && (el.parentNode !== document)) ? el.parentNode : document.body;\n parentEl.appendChild(tempEl);\n tempEl.style.position = 'absolute';\n tempEl.style.width = baseline + unit;\n var factor = baseline / tempEl.offsetWidth;\n parentEl.removeChild(tempEl);\n var convertedUnit = factor * parseFloat(value);\n cache.CSS[value + unit] = convertedUnit;\n return convertedUnit;\n}\n\nfunction getCSSValue(el, prop, unit) {\n if (prop in el.style) {\n var uppercasePropName = prop.replace(/([a-z])([A-Z])/g, '$1-$2').toLowerCase();\n var value = el.style[prop] || getComputedStyle(el).getPropertyValue(uppercasePropName) || '0';\n return unit ? convertPxToUnit(el, value, unit) : value;\n }\n}\n\nfunction getAnimationType(el, prop) {\n if (is.dom(el) && !is.inp(el) && (!is.nil(getAttribute(el, prop)) || (is.svg(el) && el[prop]))) { return 'attribute'; }\n if (is.dom(el) && arrayContains(validTransforms, prop)) { return 'transform'; }\n if (is.dom(el) && (prop !== 'transform' && getCSSValue(el, prop))) { return 'css'; }\n if (el[prop] != null) { return 'object'; }\n}\n\nfunction getElementTransforms(el) {\n if (!is.dom(el)) { return; }\n var str = el.style.transform || '';\n var reg = /(\\w+)\\(([^)]*)\\)/g;\n var transforms = new Map();\n var m; while (m = reg.exec(str)) { transforms.set(m[1], m[2]); }\n return transforms;\n}\n\nfunction getTransformValue(el, propName, animatable, unit) {\n var defaultVal = stringContains(propName, 'scale') ? 1 : 0 + getTransformUnit(propName);\n var value = getElementTransforms(el).get(propName) || defaultVal;\n if (animatable) {\n animatable.transforms.list.set(propName, value);\n animatable.transforms['last'] = propName;\n }\n return unit ? convertPxToUnit(el, value, unit) : value;\n}\n\nfunction getOriginalTargetValue(target, propName, unit, animatable) {\n switch (getAnimationType(target, propName)) {\n case 'transform': return getTransformValue(target, propName, animatable, unit);\n case 'css': return getCSSValue(target, propName, unit);\n case 'attribute': return getAttribute(target, propName);\n default: return target[propName] || 0;\n }\n}\n\nfunction getRelativeValue(to, from) {\n var operator = /^(\\*=|\\+=|-=)/.exec(to);\n if (!operator) { return to; }\n var u = getUnit(to) || 0;\n var x = parseFloat(from);\n var y = parseFloat(to.replace(operator[0], ''));\n switch (operator[0][0]) {\n case '+': return x + y + u;\n case '-': return x - y + u;\n case '*': return x * y + u;\n }\n}\n\nfunction validateValue(val, unit) {\n if (is.col(val)) { return colorToRgb(val); }\n if (/\\s/g.test(val)) { return val; }\n var originalUnit = getUnit(val);\n var unitLess = originalUnit ? val.substr(0, val.length - originalUnit.length) : val;\n if (unit) { return unitLess + unit; }\n return unitLess;\n}\n\n// getTotalLength() equivalent for circle, rect, polyline, polygon and line shapes\n// adapted from https://gist.github.com/SebLambla/3e0550c496c236709744\n\nfunction getDistance(p1, p2) {\n return Math.sqrt(Math.pow(p2.x - p1.x, 2) + Math.pow(p2.y - p1.y, 2));\n}\n\nfunction getCircleLength(el) {\n return Math.PI * 2 * getAttribute(el, 'r');\n}\n\nfunction getRectLength(el) {\n return (getAttribute(el, 'width') * 2) + (getAttribute(el, 'height') * 2);\n}\n\nfunction getLineLength(el) {\n return getDistance(\n {x: getAttribute(el, 'x1'), y: getAttribute(el, 'y1')}, \n {x: getAttribute(el, 'x2'), y: getAttribute(el, 'y2')}\n );\n}\n\nfunction getPolylineLength(el) {\n var points = el.points;\n var totalLength = 0;\n var previousPos;\n for (var i = 0 ; i < points.numberOfItems; i++) {\n var currentPos = points.getItem(i);\n if (i > 0) { totalLength += getDistance(previousPos, currentPos); }\n previousPos = currentPos;\n }\n return totalLength;\n}\n\nfunction getPolygonLength(el) {\n var points = el.points;\n return getPolylineLength(el) + getDistance(points.getItem(points.numberOfItems - 1), points.getItem(0));\n}\n\n// Path animation\n\nfunction getTotalLength(el) {\n if (el.getTotalLength) { return el.getTotalLength(); }\n switch(el.tagName.toLowerCase()) {\n case 'circle': return getCircleLength(el);\n case 'rect': return getRectLength(el);\n case 'line': return getLineLength(el);\n case 'polyline': return getPolylineLength(el);\n case 'polygon': return getPolygonLength(el);\n }\n}\n\nfunction setDashoffset(el) {\n var pathLength = getTotalLength(el);\n el.setAttribute('stroke-dasharray', pathLength);\n return pathLength;\n}\n\n// Motion path\n\nfunction getParentSvgEl(el) {\n var parentEl = el.parentNode;\n while (is.svg(parentEl)) {\n if (!is.svg(parentEl.parentNode)) { break; }\n parentEl = parentEl.parentNode;\n }\n return parentEl;\n}\n\nfunction getParentSvg(pathEl, svgData) {\n var svg = svgData || {};\n var parentSvgEl = svg.el || getParentSvgEl(pathEl);\n var rect = parentSvgEl.getBoundingClientRect();\n var viewBoxAttr = getAttribute(parentSvgEl, 'viewBox');\n var width = rect.width;\n var height = rect.height;\n var viewBox = svg.viewBox || (viewBoxAttr ? viewBoxAttr.split(' ') : [0, 0, width, height]);\n return {\n el: parentSvgEl,\n viewBox: viewBox,\n x: viewBox[0] / 1,\n y: viewBox[1] / 1,\n w: width,\n h: height,\n vW: viewBox[2],\n vH: viewBox[3]\n }\n}\n\nfunction getPath(path, percent) {\n var pathEl = is.str(path) ? selectString(path)[0] : path;\n var p = percent || 100;\n return function(property) {\n return {\n property: property,\n el: pathEl,\n svg: getParentSvg(pathEl),\n totalLength: getTotalLength(pathEl) * (p / 100)\n }\n }\n}\n\nfunction getPathProgress(path, progress, isPathTargetInsideSVG) {\n function point(offset) {\n if ( offset === void 0 ) offset = 0;\n\n var l = progress + offset >= 1 ? progress + offset : 0;\n return path.el.getPointAtLength(l);\n }\n var svg = getParentSvg(path.el, path.svg);\n var p = point();\n var p0 = point(-1);\n var p1 = point(+1);\n var scaleX = isPathTargetInsideSVG ? 1 : svg.w / svg.vW;\n var scaleY = isPathTargetInsideSVG ? 1 : svg.h / svg.vH;\n switch (path.property) {\n case 'x': return (p.x - svg.x) * scaleX;\n case 'y': return (p.y - svg.y) * scaleY;\n case 'angle': return Math.atan2(p1.y - p0.y, p1.x - p0.x) * 180 / Math.PI;\n }\n}\n\n// Decompose value\n\nfunction decomposeValue(val, unit) {\n // const rgx = /-?\\d*\\.?\\d+/g; // handles basic numbers\n // const rgx = /[+-]?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var rgx = /[+-]?\\d*\\.?\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?/g; // handles exponents notation\n var value = validateValue((is.pth(val) ? val.totalLength : val), unit) + '';\n return {\n original: value,\n numbers: value.match(rgx) ? value.match(rgx).map(Number) : [0],\n strings: (is.str(val) || unit) ? value.split(rgx) : []\n }\n}\n\n// Animatables\n\nfunction parseTargets(targets) {\n var targetsArray = targets ? (flattenArray(is.arr(targets) ? targets.map(toArray) : toArray(targets))) : [];\n return filterArray(targetsArray, function (item, pos, self) { return self.indexOf(item) === pos; });\n}\n\nfunction getAnimatables(targets) {\n var parsed = parseTargets(targets);\n return parsed.map(function (t, i) {\n return {target: t, id: i, total: parsed.length, transforms: { list: getElementTransforms(t) } };\n });\n}\n\n// Properties\n\nfunction normalizePropertyTweens(prop, tweenSettings) {\n var settings = cloneObject(tweenSettings);\n // Override duration if easing is a spring\n if (/^spring/.test(settings.easing)) { settings.duration = spring(settings.easing); }\n if (is.arr(prop)) {\n var l = prop.length;\n var isFromTo = (l === 2 && !is.obj(prop[0]));\n if (!isFromTo) {\n // Duration divided by the number of tweens\n if (!is.fnc(tweenSettings.duration)) { settings.duration = tweenSettings.duration / l; }\n } else {\n // Transform [from, to] values shorthand to a valid tween value\n prop = {value: prop};\n }\n }\n var propArray = is.arr(prop) ? prop : [prop];\n return propArray.map(function (v, i) {\n var obj = (is.obj(v) && !is.pth(v)) ? v : {value: v};\n // Default delay value should only be applied to the first tween\n if (is.und(obj.delay)) { obj.delay = !i ? tweenSettings.delay : 0; }\n // Default endDelay value should only be applied to the last tween\n if (is.und(obj.endDelay)) { obj.endDelay = i === propArray.length - 1 ? tweenSettings.endDelay : 0; }\n return obj;\n }).map(function (k) { return mergeObjects(k, settings); });\n}\n\n\nfunction flattenKeyframes(keyframes) {\n var propertyNames = filterArray(flattenArray(keyframes.map(function (key) { return Object.keys(key); })), function (p) { return is.key(p); })\n .reduce(function (a,b) { if (a.indexOf(b) < 0) { a.push(b); } return a; }, []);\n var properties = {};\n var loop = function ( i ) {\n var propName = propertyNames[i];\n properties[propName] = keyframes.map(function (key) {\n var newKey = {};\n for (var p in key) {\n if (is.key(p)) {\n if (p == propName) { newKey.value = key[p]; }\n } else {\n newKey[p] = key[p];\n }\n }\n return newKey;\n });\n };\n\n for (var i = 0; i < propertyNames.length; i++) loop( i );\n return properties;\n}\n\nfunction getProperties(tweenSettings, params) {\n var properties = [];\n var keyframes = params.keyframes;\n if (keyframes) { params = mergeObjects(flattenKeyframes(keyframes), params); }\n for (var p in params) {\n if (is.key(p)) {\n properties.push({\n name: p,\n tweens: normalizePropertyTweens(params[p], tweenSettings)\n });\n }\n }\n return properties;\n}\n\n// Tweens\n\nfunction normalizeTweenValues(tween, animatable) {\n var t = {};\n for (var p in tween) {\n var value = getFunctionValue(tween[p], animatable);\n if (is.arr(value)) {\n value = value.map(function (v) { return getFunctionValue(v, animatable); });\n if (value.length === 1) { value = value[0]; }\n }\n t[p] = value;\n }\n t.duration = parseFloat(t.duration);\n t.delay = parseFloat(t.delay);\n return t;\n}\n\nfunction normalizeTweens(prop, animatable) {\n var previousTween;\n return prop.tweens.map(function (t) {\n var tween = normalizeTweenValues(t, animatable);\n var tweenValue = tween.value;\n var to = is.arr(tweenValue) ? tweenValue[1] : tweenValue;\n var toUnit = getUnit(to);\n var originalValue = getOriginalTargetValue(animatable.target, prop.name, toUnit, animatable);\n var previousValue = previousTween ? previousTween.to.original : originalValue;\n var from = is.arr(tweenValue) ? tweenValue[0] : previousValue;\n var fromUnit = getUnit(from) || getUnit(originalValue);\n var unit = toUnit || fromUnit;\n if (is.und(to)) { to = previousValue; }\n tween.from = decomposeValue(from, unit);\n tween.to = decomposeValue(getRelativeValue(to, from), unit);\n tween.start = previousTween ? previousTween.end : 0;\n tween.end = tween.start + tween.delay + tween.duration + tween.endDelay;\n tween.easing = parseEasings(tween.easing, tween.duration);\n tween.isPath = is.pth(tweenValue);\n tween.isPathTargetInsideSVG = tween.isPath && is.svg(animatable.target);\n tween.isColor = is.col(tween.from.original);\n if (tween.isColor) { tween.round = 1; }\n previousTween = tween;\n return tween;\n });\n}\n\n// Tween progress\n\nvar setProgressValue = {\n css: function (t, p, v) { return t.style[p] = v; },\n attribute: function (t, p, v) { return t.setAttribute(p, v); },\n object: function (t, p, v) { return t[p] = v; },\n transform: function (t, p, v, transforms, manual) {\n transforms.list.set(p, v);\n if (p === transforms.last || manual) {\n var str = '';\n transforms.list.forEach(function (value, prop) { str += prop + \"(\" + value + \") \"; });\n t.style.transform = str;\n }\n }\n};\n\n// Set Value helper\n\nfunction setTargetsValue(targets, properties) {\n var animatables = getAnimatables(targets);\n animatables.forEach(function (animatable) {\n for (var property in properties) {\n var value = getFunctionValue(properties[property], animatable);\n var target = animatable.target;\n var valueUnit = getUnit(value);\n var originalValue = getOriginalTargetValue(target, property, valueUnit, animatable);\n var unit = valueUnit || getUnit(originalValue);\n var to = getRelativeValue(validateValue(value, unit), originalValue);\n var animType = getAnimationType(target, property);\n setProgressValue[animType](target, property, to, animatable.transforms, true);\n }\n });\n}\n\n// Animations\n\nfunction createAnimation(animatable, prop) {\n var animType = getAnimationType(animatable.target, prop.name);\n if (animType) {\n var tweens = normalizeTweens(prop, animatable);\n var lastTween = tweens[tweens.length - 1];\n return {\n type: animType,\n property: prop.name,\n animatable: animatable,\n tweens: tweens,\n duration: lastTween.end,\n delay: tweens[0].delay,\n endDelay: lastTween.endDelay\n }\n }\n}\n\nfunction getAnimations(animatables, properties) {\n return filterArray(flattenArray(animatables.map(function (animatable) {\n return properties.map(function (prop) {\n return createAnimation(animatable, prop);\n });\n })), function (a) { return !is.und(a); });\n}\n\n// Create Instance\n\nfunction getInstanceTimings(animations, tweenSettings) {\n var animLength = animations.length;\n var getTlOffset = function (anim) { return anim.timelineOffset ? anim.timelineOffset : 0; };\n var timings = {};\n timings.duration = animLength ? Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration; })) : tweenSettings.duration;\n timings.delay = animLength ? Math.min.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.delay; })) : tweenSettings.delay;\n timings.endDelay = animLength ? timings.duration - Math.max.apply(Math, animations.map(function (anim) { return getTlOffset(anim) + anim.duration - anim.endDelay; })) : tweenSettings.endDelay;\n return timings;\n}\n\nvar instanceID = 0;\n\nfunction createNewInstance(params) {\n var instanceSettings = replaceObjectProps(defaultInstanceSettings, params);\n var tweenSettings = replaceObjectProps(defaultTweenSettings, params);\n var properties = getProperties(tweenSettings, params);\n var animatables = getAnimatables(params.targets);\n var animations = getAnimations(animatables, properties);\n var timings = getInstanceTimings(animations, tweenSettings);\n var id = instanceID;\n instanceID++;\n return mergeObjects(instanceSettings, {\n id: id,\n children: [],\n animatables: animatables,\n animations: animations,\n duration: timings.duration,\n delay: timings.delay,\n endDelay: timings.endDelay\n });\n}\n\n// Core\n\nvar activeInstances = [];\n\nvar engine = (function () {\n var raf;\n\n function play() {\n if (!raf && (!isDocumentHidden() || !anime.suspendWhenDocumentHidden) && activeInstances.length > 0) {\n raf = requestAnimationFrame(step);\n }\n }\n function step(t) {\n // memo on algorithm issue:\n // dangerous iteration over mutable `activeInstances`\n // (that collection may be updated from within callbacks of `tick`-ed animation instances)\n var activeInstancesLength = activeInstances.length;\n var i = 0;\n while (i < activeInstancesLength) {\n var activeInstance = activeInstances[i];\n if (!activeInstance.paused) {\n activeInstance.tick(t);\n i++;\n } else {\n activeInstances.splice(i, 1);\n activeInstancesLength--;\n }\n }\n raf = i > 0 ? requestAnimationFrame(step) : undefined;\n }\n\n function handleVisibilityChange() {\n if (!anime.suspendWhenDocumentHidden) { return; }\n\n if (isDocumentHidden()) {\n // suspend ticks\n raf = cancelAnimationFrame(raf);\n } else { // is back to active tab\n // first adjust animations to consider the time that ticks were suspended\n activeInstances.forEach(\n function (instance) { return instance ._onDocumentVisibility(); }\n );\n engine();\n }\n }\n if (typeof document !== 'undefined') {\n document.addEventListener('visibilitychange', handleVisibilityChange);\n }\n\n return play;\n})();\n\nfunction isDocumentHidden() {\n return !!document && document.hidden;\n}\n\n// Public Instance\n\nfunction anime(params) {\n if ( params === void 0 ) params = {};\n\n\n var startTime = 0, lastTime = 0, now = 0;\n var children, childrenLength = 0;\n var resolve = null;\n\n function makePromise(instance) {\n var promise = window.Promise && new Promise(function (_resolve) { return resolve = _resolve; });\n instance.finished = promise;\n return promise;\n }\n\n var instance = createNewInstance(params);\n var promise = makePromise(instance);\n\n function toggleInstanceDirection() {\n var direction = instance.direction;\n if (direction !== 'alternate') {\n instance.direction = direction !== 'normal' ? 'normal' : 'reverse';\n }\n instance.reversed = !instance.reversed;\n children.forEach(function (child) { return child.reversed = instance.reversed; });\n }\n\n function adjustTime(time) {\n return instance.reversed ? instance.duration - time : time;\n }\n\n function resetTime() {\n startTime = 0;\n lastTime = adjustTime(instance.currentTime) * (1 / anime.speed);\n }\n\n function seekChild(time, child) {\n if (child) { child.seek(time - child.timelineOffset); }\n }\n\n function syncInstanceChildren(time) {\n if (!instance.reversePlayback) {\n for (var i = 0; i < childrenLength; i++) { seekChild(time, children[i]); }\n } else {\n for (var i$1 = childrenLength; i$1--;) { seekChild(time, children[i$1]); }\n }\n }\n\n function setAnimationsProgress(insTime) {\n var i = 0;\n var animations = instance.animations;\n var animationsLength = animations.length;\n while (i < animationsLength) {\n var anim = animations[i];\n var animatable = anim.animatable;\n var tweens = anim.tweens;\n var tweenLength = tweens.length - 1;\n var tween = tweens[tweenLength];\n // Only check for keyframes if there is more than one tween\n if (tweenLength) { tween = filterArray(tweens, function (t) { return (insTime < t.end); })[0] || tween; }\n var elapsed = minMax(insTime - tween.start - tween.delay, 0, tween.duration) / tween.duration;\n var eased = isNaN(elapsed) ? 1 : tween.easing(elapsed);\n var strings = tween.to.strings;\n var round = tween.round;\n var numbers = [];\n var toNumbersLength = tween.to.numbers.length;\n var progress = (void 0);\n for (var n = 0; n < toNumbersLength; n++) {\n var value = (void 0);\n var toNumber = tween.to.numbers[n];\n var fromNumber = tween.from.numbers[n] || 0;\n if (!tween.isPath) {\n value = fromNumber + (eased * (toNumber - fromNumber));\n } else {\n value = getPathProgress(tween.value, eased * toNumber, tween.isPathTargetInsideSVG);\n }\n if (round) {\n if (!(tween.isColor && n > 2)) {\n value = Math.round(value * round) / round;\n }\n }\n numbers.push(value);\n }\n // Manual Array.reduce for better performances\n var stringsLength = strings.length;\n if (!stringsLength) {\n progress = numbers[0];\n } else {\n progress = strings[0];\n for (var s = 0; s < stringsLength; s++) {\n var a = strings[s];\n var b = strings[s + 1];\n var n$1 = numbers[s];\n if (!isNaN(n$1)) {\n if (!b) {\n progress += n$1 + ' ';\n } else {\n progress += n$1 + b;\n }\n }\n }\n }\n setProgressValue[anim.type](animatable.target, anim.property, progress, animatable.transforms);\n anim.currentValue = progress;\n i++;\n }\n }\n\n function setCallback(cb) {\n if (instance[cb] && !instance.passThrough) { instance[cb](instance); }\n }\n\n function countIteration() {\n if (instance.remaining && instance.remaining !== true) {\n instance.remaining--;\n }\n }\n\n function setInstanceProgress(engineTime) {\n var insDuration = instance.duration;\n var insDelay = instance.delay;\n var insEndDelay = insDuration - instance.endDelay;\n var insTime = adjustTime(engineTime);\n instance.progress = minMax((insTime / insDuration) * 100, 0, 100);\n instance.reversePlayback = insTime < instance.currentTime;\n if (children) { syncInstanceChildren(insTime); }\n if (!instance.began && instance.currentTime > 0) {\n instance.began = true;\n setCallback('begin');\n }\n if (!instance.loopBegan && instance.currentTime > 0) {\n instance.loopBegan = true;\n setCallback('loopBegin');\n }\n if (insTime <= insDelay && instance.currentTime !== 0) {\n setAnimationsProgress(0);\n }\n if ((insTime >= insEndDelay && instance.currentTime !== insDuration) || !insDuration) {\n setAnimationsProgress(insDuration);\n }\n if (insTime > insDelay && insTime < insEndDelay) {\n if (!instance.changeBegan) {\n instance.changeBegan = true;\n instance.changeCompleted = false;\n setCallback('changeBegin');\n }\n setCallback('change');\n setAnimationsProgress(insTime);\n } else {\n if (instance.changeBegan) {\n instance.changeCompleted = true;\n instance.changeBegan = false;\n setCallback('changeComplete');\n }\n }\n instance.currentTime = minMax(insTime, 0, insDuration);\n if (instance.began) { setCallback('update'); }\n if (engineTime >= insDuration) {\n lastTime = 0;\n countIteration();\n if (!instance.remaining) {\n instance.paused = true;\n if (!instance.completed) {\n instance.completed = true;\n setCallback('loopComplete');\n setCallback('complete');\n if (!instance.passThrough && 'Promise' in window) {\n resolve();\n promise = makePromise(instance);\n }\n }\n } else {\n startTime = now;\n setCallback('loopComplete');\n instance.loopBegan = false;\n if (instance.direction === 'alternate') {\n toggleInstanceDirection();\n }\n }\n }\n }\n\n instance.reset = function() {\n var direction = instance.direction;\n instance.passThrough = false;\n instance.currentTime = 0;\n instance.progress = 0;\n instance.paused = true;\n instance.began = false;\n instance.loopBegan = false;\n instance.changeBegan = false;\n instance.completed = false;\n instance.changeCompleted = false;\n instance.reversePlayback = false;\n instance.reversed = direction === 'reverse';\n instance.remaining = instance.loop;\n children = instance.children;\n childrenLength = children.length;\n for (var i = childrenLength; i--;) { instance.children[i].reset(); }\n if (instance.reversed && instance.loop !== true || (direction === 'alternate' && instance.loop === 1)) { instance.remaining++; }\n setAnimationsProgress(instance.reversed ? instance.duration : 0);\n };\n\n // internal method (for engine) to adjust animation timings before restoring engine ticks (rAF)\n instance._onDocumentVisibility = resetTime;\n\n // Set Value helper\n\n instance.set = function(targets, properties) {\n setTargetsValue(targets, properties);\n return instance;\n };\n\n instance.tick = function(t) {\n now = t;\n if (!startTime) { startTime = now; }\n setInstanceProgress((now + (lastTime - startTime)) * anime.speed);\n };\n\n instance.seek = function(time) {\n setInstanceProgress(adjustTime(time));\n };\n\n instance.pause = function() {\n instance.paused = true;\n resetTime();\n };\n\n instance.play = function() {\n if (!instance.paused) { return; }\n if (instance.completed) { instance.reset(); }\n instance.paused = false;\n activeInstances.push(instance);\n resetTime();\n engine();\n };\n\n instance.reverse = function() {\n toggleInstanceDirection();\n instance.completed = instance.reversed ? false : true;\n resetTime();\n };\n\n instance.restart = function() {\n instance.reset();\n instance.play();\n };\n\n instance.remove = function(targets) {\n var targetsArray = parseTargets(targets);\n removeTargetsFromInstance(targetsArray, instance);\n };\n\n instance.reset();\n\n if (instance.autoplay) { instance.play(); }\n\n return instance;\n\n}\n\n// Remove targets from animation\n\nfunction removeTargetsFromAnimations(targetsArray, animations) {\n for (var a = animations.length; a--;) {\n if (arrayContains(targetsArray, animations[a].animatable.target)) {\n animations.splice(a, 1);\n }\n }\n}\n\nfunction removeTargetsFromInstance(targetsArray, instance) {\n var animations = instance.animations;\n var children = instance.children;\n removeTargetsFromAnimations(targetsArray, animations);\n for (var c = children.length; c--;) {\n var child = children[c];\n var childAnimations = child.animations;\n removeTargetsFromAnimations(targetsArray, childAnimations);\n if (!childAnimations.length && !child.children.length) { children.splice(c, 1); }\n }\n if (!animations.length && !children.length) { instance.pause(); }\n}\n\nfunction removeTargetsFromActiveInstances(targets) {\n var targetsArray = parseTargets(targets);\n for (var i = activeInstances.length; i--;) {\n var instance = activeInstances[i];\n removeTargetsFromInstance(targetsArray, instance);\n }\n}\n\n// Stagger helpers\n\nfunction stagger(val, params) {\n if ( params === void 0 ) params = {};\n\n var direction = params.direction || 'normal';\n var easing = params.easing ? parseEasings(params.easing) : null;\n var grid = params.grid;\n var axis = params.axis;\n var fromIndex = params.from || 0;\n var fromFirst = fromIndex === 'first';\n var fromCenter = fromIndex === 'center';\n var fromLast = fromIndex === 'last';\n var isRange = is.arr(val);\n var val1 = isRange ? parseFloat(val[0]) : parseFloat(val);\n var val2 = isRange ? parseFloat(val[1]) : 0;\n var unit = getUnit(isRange ? val[1] : val) || 0;\n var start = params.start || 0 + (isRange ? val1 : 0);\n var values = [];\n var maxValue = 0;\n return function (el, i, t) {\n if (fromFirst) { fromIndex = 0; }\n if (fromCenter) { fromIndex = (t - 1) / 2; }\n if (fromLast) { fromIndex = t - 1; }\n if (!values.length) {\n for (var index = 0; index < t; index++) {\n if (!grid) {\n values.push(Math.abs(fromIndex - index));\n } else {\n var fromX = !fromCenter ? fromIndex%grid[0] : (grid[0]-1)/2;\n var fromY = !fromCenter ? Math.floor(fromIndex/grid[0]) : (grid[1]-1)/2;\n var toX = index%grid[0];\n var toY = Math.floor(index/grid[0]);\n var distanceX = fromX - toX;\n var distanceY = fromY - toY;\n var value = Math.sqrt(distanceX * distanceX + distanceY * distanceY);\n if (axis === 'x') { value = -distanceX; }\n if (axis === 'y') { value = -distanceY; }\n values.push(value);\n }\n maxValue = Math.max.apply(Math, values);\n }\n if (easing) { values = values.map(function (val) { return easing(val / maxValue) * maxValue; }); }\n if (direction === 'reverse') { values = values.map(function (val) { return axis ? (val < 0) ? val * -1 : -val : Math.abs(maxValue - val); }); }\n }\n var spacing = isRange ? (val2 - val1) / maxValue : val1;\n return start + (spacing * (Math.round(values[i] * 100) / 100)) + unit;\n }\n}\n\n// Timeline\n\nfunction timeline(params) {\n if ( params === void 0 ) params = {};\n\n var tl = anime(params);\n tl.duration = 0;\n tl.add = function(instanceParams, timelineOffset) {\n var tlIndex = activeInstances.indexOf(tl);\n var children = tl.children;\n if (tlIndex > -1) { activeInstances.splice(tlIndex, 1); }\n function passThrough(ins) { ins.passThrough = true; }\n for (var i = 0; i < children.length; i++) { passThrough(children[i]); }\n var insParams = mergeObjects(instanceParams, replaceObjectProps(defaultTweenSettings, params));\n insParams.targets = insParams.targets || params.targets;\n var tlDuration = tl.duration;\n insParams.autoplay = false;\n insParams.direction = tl.direction;\n insParams.timelineOffset = is.und(timelineOffset) ? tlDuration : getRelativeValue(timelineOffset, tlDuration);\n passThrough(tl);\n tl.seek(insParams.timelineOffset);\n var ins = anime(insParams);\n passThrough(ins);\n children.push(ins);\n var timings = getInstanceTimings(children, params);\n tl.delay = timings.delay;\n tl.endDelay = timings.endDelay;\n tl.duration = timings.duration;\n tl.seek(0);\n tl.reset();\n if (tl.autoplay) { tl.play(); }\n return tl;\n };\n return tl;\n}\n\nanime.version = '3.2.1';\nanime.speed = 1;\n// TODO:#review: naming, documentation\nanime.suspendWhenDocumentHidden = true;\nanime.running = activeInstances;\nanime.remove = removeTargetsFromActiveInstances;\nanime.get = getOriginalTargetValue;\nanime.set = setTargetsValue;\nanime.convertPx = convertPxToUnit;\nanime.path = getPath;\nanime.setDashoffset = setDashoffset;\nanime.stagger = stagger;\nanime.timeline = timeline;\nanime.easing = parseEasings;\nanime.penner = penner;\nanime.random = function (min, max) { return Math.floor(Math.random() * (max - min + 1)) + min; };\n\nexport default anime;\n","@use \"~dso-toolkit/src/utilities\";\r\n\r\n:host {\r\n display: block;\r\n overflow-y: hidden;\r\n}\r\n\r\n:host(.dso-hide) {\r\n display: none;\r\n}\r\n\r\n:host(:not(.dso-animate-ready)) {\r\n position: absolute;\r\n visibility: hidden;\r\n}\r\n\r\n:host([open]) {\r\n position: inherit;\r\n visibility: inherit;\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n","import {\r\n Component,\r\n ComponentInterface,\r\n Element,\r\n Event,\r\n EventEmitter,\r\n h,\r\n Host,\r\n Prop,\r\n State,\r\n Watch,\r\n} from \"@stencil/core\";\r\nimport anime, { AnimeInstance } from \"animejs\";\r\nimport clsx from \"clsx\";\r\nimport debounce from \"debounce\";\r\n\r\nexport interface ExpandableAnimationEndEvent {\r\n bodyHeight: number | undefined;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-expandable\",\r\n styleUrl: \"expandable.scss\",\r\n shadow: true,\r\n})\r\nexport class Expandable implements ComponentInterface {\r\n private resizeObserver?: ResizeObserver;\r\n\r\n private bodyHeight?: number;\r\n\r\n private animeInstance?: AnimeInstance;\r\n\r\n @Element()\r\n host!: HTMLDsoExpandableElement;\r\n\r\n /**\r\n * Set to `true` to expand the content.\r\n */\r\n @Prop({ reflect: true })\r\n open?: boolean;\r\n\r\n /**\r\n * Set to `true` to show the content animated.\r\n */\r\n @Prop()\r\n enableAnimation = false;\r\n\r\n /**\r\n * When enableAnimation is set to `true`, this property specifies the height of this element at which the animation will expand from / collapse to\r\n */\r\n @Prop()\r\n minimumHeight?: number;\r\n\r\n @State()\r\n animationReady = false;\r\n\r\n @Watch(\"open\")\r\n toggleOpen() {\r\n if (this.enableAnimation) {\r\n this.activateAnimation();\r\n }\r\n }\r\n\r\n @Watch(\"enableAnimation\")\r\n toggleEnableAnimation(enableAnimation: boolean) {\r\n if (enableAnimation) {\r\n this.prepareAnimationResizeObserver();\r\n this.activateObserver();\r\n } else {\r\n this.resizeObserver?.disconnect();\r\n delete this.animeInstance;\r\n this.host.removeAttribute(\"style\");\r\n }\r\n }\r\n\r\n /**\r\n * Fired when the animation ends. Only when `enableAnimation = true`.\r\n */\r\n @Event({ bubbles: false })\r\n dsoExpandableAnimationEnd!: EventEmitter<ExpandableAnimationEndEvent>;\r\n\r\n componentDidLoad(): void {\r\n if (this.enableAnimation) {\r\n this.prepareAnimationResizeObserver();\r\n }\r\n\r\n this.activateObserver();\r\n }\r\n\r\n private activateObserver() {\r\n this.resizeObserver?.observe(this.host);\r\n }\r\n\r\n disconnectedCallback() {\r\n this.resizeObserver?.disconnect();\r\n }\r\n\r\n render() {\r\n return (\r\n <Host\r\n aria-hidden={this.open ? \"false\" : \"true\"}\r\n class={clsx({\r\n \"dso-animate-ready\": this.enableAnimation && this.animationReady,\r\n \"dso-hide\": !this.enableAnimation && !this.open,\r\n })}\r\n >\r\n <slot />\r\n </Host>\r\n );\r\n }\r\n\r\n private prepareAnimationResizeObserver(): void {\r\n this.resizeObserver = new ResizeObserver(\r\n debounce(([entry]) => {\r\n if (!entry) {\r\n throw new Error(\"No entry found\");\r\n }\r\n\r\n // entry.contentRect does not include padding, so we use getBoundingClientRect.\r\n const height = entry.target.getBoundingClientRect().height;\r\n\r\n if (this.bodyHeight !== height) {\r\n this.bodyHeight = height;\r\n }\r\n\r\n this.instantiateAnimation();\r\n }, 150)\r\n );\r\n }\r\n\r\n private instantiateAnimation(): void {\r\n this.animeInstance = anime({\r\n targets: this.host,\r\n height: this.minimumHeight ?? 0,\r\n easing: \"cubicBezier(0.4, 0, 0.2, 1)\",\r\n duration: 260,\r\n autoplay: false,\r\n direction: \"normal\",\r\n begin: () => {\r\n if (this.open) {\r\n this.host.style.visibility = \"\";\r\n this.host.style.position = \"\";\r\n this.host.style.bottom = \"\";\r\n }\r\n },\r\n complete: () => {\r\n this.host.style.height = \"\";\r\n\r\n if (!this.open) {\r\n this.host.style.visibility = \"hidden\";\r\n this.host.style.position = \"absolute\";\r\n this.host.style.bottom = \"100%\";\r\n }\r\n },\r\n changeComplete: () => {\r\n this.dsoExpandableAnimationEnd.emit({ bodyHeight: this.bodyHeight });\r\n },\r\n });\r\n\r\n if (!this.open) {\r\n this.animeInstance.reverse();\r\n this.animeInstance.play();\r\n }\r\n\r\n if (this.host) {\r\n this.host.style.height = \"\";\r\n }\r\n\r\n this.animationReady = !!this.animeInstance;\r\n }\r\n\r\n private activateAnimation(): void {\r\n if (this.animeInstance) {\r\n if (this.animeInstance.progress > 0 && this.animeInstance.progress < 100) {\r\n this.animeInstance.reverse();\r\n } else {\r\n if (this.open) {\r\n this.animeInstance.direction = \"reverse\";\r\n this.animeInstance.play();\r\n } else {\r\n this.animeInstance.direction = \"normal\";\r\n this.animeInstance.play();\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"],"mappings":"mIASA,IAAIA,EAA0B,CAC5BC,OAAQ,KACRC,MAAO,KACPC,UAAW,KACXC,YAAa,KACbC,OAAQ,KACRC,eAAgB,KAChBC,aAAc,KACdC,SAAU,KACVC,KAAM,EACNC,UAAW,SACXC,SAAU,KACVC,eAAgB,GAGlB,IAAIC,EAAuB,CACzBC,SAAU,IACVC,MAAO,EACPC,SAAU,EACVC,OAAQ,wBACRC,MAAO,GAGT,IAAIC,EAAkB,CAAC,aAAc,aAAc,aAAc,SAAU,UAAW,UAAW,UAAW,QAAS,SAAU,SAAU,SAAU,OAAQ,QAAS,QAAS,cAAe,SAAU,YAItM,IAAIC,EAAQ,CACVC,IAAK,GACLC,QAAS,IAKX,SAASC,EAAOC,EAAKC,EAAKC,GACxB,OAAOC,KAAKF,IAAIE,KAAKD,IAAIF,EAAKC,GAAMC,EACtC,CAEA,SAASE,EAAeC,EAAKC,GAC3B,OAAOD,EAAIE,QAAQD,IAAS,CAC9B,CAEA,SAASE,EAAeC,EAAMC,GAC5B,OAAOD,EAAKE,MAAM,KAAMD,EAC1B,CAEA,IAAIE,EAAK,CACPC,IAAK,SAAUC,GAAK,OAAOC,MAAMC,QAAQF,EAAG,EAC5CG,IAAK,SAAUH,GAAK,OAAOV,EAAec,OAAOC,UAAUC,SAASC,KAAKP,GAAI,SAAU,EACvFQ,IAAK,SAAUR,GAAK,OAAOF,EAAGK,IAAIH,IAAMA,EAAES,eAAe,cAAe,EACxEC,IAAK,SAAUV,GAAK,OAAOA,aAAaW,UAAW,EACnDC,IAAK,SAAUZ,GAAK,OAAOA,aAAaa,gBAAiB,EACzDC,IAAK,SAAUd,GAAK,OAAOA,EAAEe,UAAYjB,EAAGY,IAAIV,EAAG,EACnDT,IAAK,SAAUS,GAAK,cAAcA,IAAM,QAAS,EACjDgB,IAAK,SAAUhB,GAAK,cAAcA,IAAM,UAAW,EACnDiB,IAAK,SAAUjB,GAAK,cAAcA,IAAM,WAAY,EACpDkB,IAAK,SAAUlB,GAAK,OAAOF,EAAGmB,IAAIjB,IAAMA,IAAM,IAAK,EACnDmB,IAAK,SAAUnB,GAAK,MAAO,qCAAqCoB,KAAKpB,EAAG,EACxEqB,IAAK,SAAUrB,GAAK,MAAO,OAAOoB,KAAKpB,EAAG,EAC1CsB,IAAK,SAAUtB,GAAK,MAAO,OAAOoB,KAAKpB,EAAG,EAC1CuB,IAAK,SAAUvB,GAAK,OAAQF,EAAGqB,IAAInB,IAAMF,EAAGuB,IAAIrB,IAAMF,EAAGwB,IAAItB,EAAI,EACjEwB,IAAK,SAAUxB,GAAK,OAAQtC,EAAwB+C,eAAeT,KAAOzB,EAAqBkC,eAAeT,IAAMA,IAAM,WAAaA,IAAM,WAAY,GAK3J,SAASyB,EAAsBC,GAC7B,IAAIC,EAAQ,cAAcC,KAAKF,GAC/B,OAAOC,EAAQA,EAAM,GAAGE,MAAM,KAAKC,KAAI,SAAUC,GAAK,OAAOC,WAAWD,EAAG,IAAM,EACnF,CAIA,SAASE,EAAOP,EAAQlD,GAEtB,IAAI0D,EAAST,EAAsBC,GACnC,IAAIS,EAAOlD,EAAOa,EAAGmB,IAAIiB,EAAO,IAAM,EAAIA,EAAO,GAAI,GAAI,KACzD,IAAIE,EAAYnD,EAAOa,EAAGmB,IAAIiB,EAAO,IAAM,IAAMA,EAAO,GAAI,GAAI,KAChE,IAAIG,EAAUpD,EAAOa,EAAGmB,IAAIiB,EAAO,IAAM,GAAKA,EAAO,GAAI,GAAI,KAC7D,IAAII,EAAYrD,EAAOa,EAAGmB,IAAIiB,EAAO,IAAM,EAAIA,EAAO,GAAI,GAAI,KAC9D,IAAIK,EAAKlD,KAAKmD,KAAKJ,EAAYD,GAC/B,IAAIM,EAAOJ,GAAW,EAAIhD,KAAKmD,KAAKJ,EAAYD,IAChD,IAAIO,EAAKD,EAAO,EAAIF,EAAKlD,KAAKmD,KAAK,EAAIC,EAAOA,GAAQ,EACtD,IAAIzC,EAAI,EACR,IAAI2C,EAAIF,EAAO,GAAKA,EAAOF,GAAMD,GAAYI,GAAMJ,EAAWC,EAE9D,SAASK,EAAOC,GACd,IAAIC,EAAWtE,EAAYA,EAAWqE,EAAK,IAAOA,EAClD,GAAIJ,EAAO,EAAG,CACZK,EAAWzD,KAAK0D,KAAKD,EAAWL,EAAOF,IAAOvC,EAAIX,KAAK2D,IAAIN,EAAKI,GAAYH,EAAItD,KAAK4D,IAAIP,EAAKI,GACpG,KAAW,CACLA,GAAY9C,EAAI2C,EAAIG,GAAYzD,KAAK0D,KAAKD,EAAWP,EAC3D,CACI,GAAIM,IAAM,GAAKA,IAAM,EAAG,CAAE,OAAOA,CAAE,CACnC,OAAO,EAAIC,CACf,CAEE,SAASI,IACP,IAAIC,EAASrE,EAAME,QAAQ0C,GAC3B,GAAIyB,EAAQ,CAAE,OAAOA,CAAO,CAC5B,IAAIC,EAAQ,EAAE,EACd,IAAIC,EAAU,EACd,IAAIC,EAAO,EACX,MAAM,KAAM,CACVD,GAAWD,EACX,GAAIR,EAAOS,KAAa,EAAG,CACzBC,IACA,GAAIA,GAAQ,GAAI,CAAE,KAAM,CAChC,KAAa,CACLA,EAAO,CACf,CACA,CACI,IAAI9E,EAAW6E,EAAUD,EAAQ,IACjCtE,EAAME,QAAQ0C,GAAUlD,EACxB,OAAOA,CACX,CAEE,OAAOA,EAAWoE,EAASM,CAE7B,CAIA,SAASK,EAAMA,GACb,GAAKA,SAAe,EAAIA,EAAQ,GAEhC,OAAO,SAAUV,GAAK,OAAOxD,KAAKmE,KAAMvE,EAAO4D,EAAG,KAAU,GAAMU,IAAU,EAAIA,EAAO,CACzF,CAIA,IAAIE,EAAS,WAEX,IAAIC,EAAmB,GACvB,IAAIC,EAAkB,GAAOD,EAAmB,GAEhD,SAASE,EAAEC,EAAKC,GAAO,OAAO,EAAM,EAAMA,EAAM,EAAMD,CAAG,CACzD,SAASE,EAAEF,EAAKC,GAAO,OAAO,EAAMA,EAAM,EAAMD,CAAG,CACnD,SAASG,EAAEH,GAAY,OAAO,EAAMA,CAAG,CAEvC,SAASI,EAAWC,EAAIL,EAAKC,GAAO,QAASF,EAAEC,EAAKC,GAAOI,EAAKH,EAAEF,EAAKC,IAAQI,EAAKF,EAAEH,IAAQK,CAAE,CAChG,SAASC,EAASD,EAAIL,EAAKC,GAAO,OAAO,EAAMF,EAAEC,EAAKC,GAAOI,EAAKA,EAAK,EAAMH,EAAEF,EAAKC,GAAOI,EAAKF,EAAEH,EAAI,CAEtG,SAASO,EAAgBC,EAAIC,EAAIC,EAAIC,EAAKC,GACxC,IAAIC,EAAUC,EAAUC,EAAI,EAC5B,EAAG,CACDD,EAAWL,GAAMC,EAAKD,GAAM,EAC5BI,EAAWT,EAAWU,EAAUH,EAAKC,GAAOJ,EAC5C,GAAIK,EAAW,EAAK,CAAEH,EAAKI,CAAS,KAAQ,CAAEL,EAAKK,CAAS,CAClE,OAAatF,KAAKwF,IAAIH,GAAY,QAAeE,EAAI,IACjD,OAAOD,CACX,CAEE,SAASG,EAAqBT,EAAIU,EAASP,EAAKC,GAC9C,IAAK,IAAIG,EAAI,EAAGA,EAAI,IAAKA,EAAG,CAC1B,IAAII,EAAeb,EAASY,EAASP,EAAKC,GAC1C,GAAIO,IAAiB,EAAK,CAAE,OAAOD,CAAQ,CAC3C,IAAIL,EAAWT,EAAWc,EAASP,EAAKC,GAAOJ,EAC/CU,GAAWL,EAAWM,CAC5B,CACI,OAAOD,CACX,CAEE,SAAStB,EAAOe,EAAKS,EAAKR,EAAKS,GAE7B,KAAM,GAAKV,GAAOA,GAAO,GAAK,GAAKC,GAAOA,GAAO,GAAI,CAAE,MAAO,CAC9D,IAAIU,EAAe,IAAIC,aAAa1B,GAEpC,GAAIc,IAAQS,GAAOR,IAAQS,EAAK,CAC9B,IAAK,IAAIN,EAAI,EAAGA,EAAIlB,IAAoBkB,EAAG,CACzCO,EAAaP,GAAKX,EAAWW,EAAIjB,EAAiBa,EAAKC,EAC/D,CACA,CAEI,SAASY,EAAShB,GAEhB,IAAIiB,EAAgB,EACpB,IAAIC,EAAgB,EACpB,IAAIC,EAAa9B,EAAmB,EAEpC,KAAO6B,IAAkBC,GAAcL,EAAaI,IAAkBlB,IAAMkB,EAAe,CACzFD,GAAiB3B,CACzB,GAEQ4B,EAEF,IAAIE,GAAQpB,EAAKc,EAAaI,KAAmBJ,EAAaI,EAAgB,GAAKJ,EAAaI,IAChG,IAAIG,EAAYJ,EAAgBG,EAAO9B,EACvC,IAAIgC,EAAexB,EAASuB,EAAWlB,EAAKC,GAE5C,GAAIkB,GAAgB,KAAO,CACzB,OAAOb,EAAqBT,EAAIqB,EAAWlB,EAAKC,EACxD,MAAa,GAAIkB,IAAiB,EAAK,CAC/B,OAAOD,CACf,KAAa,CACL,OAAOtB,EAAgBC,EAAIiB,EAAeA,EAAgB3B,EAAiBa,EAAKC,EACxF,CAEA,CAEI,OAAO,SAAUmB,GACf,GAAIpB,IAAQS,GAAOR,IAAQS,EAAK,CAAE,OAAOU,CAAE,CAC3C,GAAIA,IAAM,GAAKA,IAAM,EAAG,CAAE,OAAOA,CAAE,CACnC,OAAO3B,EAAWoB,EAASO,GAAIX,EAAKC,EAC1C,CAEA,CAEE,OAAOzB,CAER,CA/EY,GAiFb,IAAIoC,EAAS,WAIX,IAAIC,EAAQ,CAAEC,OAAQ,WAAc,OAAO,SAAUlD,GAAK,OAAOA,CAAE,CAAG,GAEtE,IAAImD,EAAkB,CACpBC,KAAM,WAAc,OAAO,SAAUpD,GAAK,OAAO,EAAIxD,KAAK2D,IAAIH,EAAIxD,KAAK6G,GAAK,EAAG,CAAG,EAClFC,KAAM,WAAc,OAAO,SAAUtD,GAAK,OAAO,EAAIxD,KAAKmD,KAAK,EAAIK,EAAIA,EAAG,CAAG,EAC7EuD,KAAM,WAAc,OAAO,SAAUvD,GAAK,OAAOA,EAAIA,GAAK,EAAIA,EAAI,EAAG,CAAG,EACxEwD,OAAQ,WAAc,OAAO,SAAUxD,GACrC,IAAIyD,EAAM3D,EAAI,EACd,MAAOE,IAAOyD,EAAOjH,KAAKkH,IAAI,IAAK5D,IAAM,GAAK,GAAI,EAClD,OAAO,EAAItD,KAAKkH,IAAI,EAAG,EAAI5D,GAAK,OAAStD,KAAKkH,KAAMD,EAAO,EAAI,GAAM,GAAKzD,EAAG,EACnF,CAAM,EACF2D,QAAS,SAAUC,EAAWC,GAC5B,GAAKD,SAAmB,EAAIA,EAAY,EACxC,GAAKC,SAAgB,EAAIA,EAAS,GAElC,IAAI1G,EAAIf,EAAOwH,EAAW,EAAG,IAC7B,IAAI1E,EAAI9C,EAAOyH,EAAQ,GAAI,GAC3B,OAAO,SAAU7D,GACf,OAAQA,IAAM,GAAKA,IAAM,EAAKA,GAC3B7C,EAAIX,KAAKkH,IAAI,EAAG,IAAM1D,EAAI,IAAMxD,KAAK4D,KAAOJ,EAAI,EAAMd,GAAK1C,KAAK6G,GAAK,GAAK7G,KAAKsH,KAAK,EAAI3G,KAAQX,KAAK6G,GAAK,GAAMnE,EAC3H,CACA,GAGE,IAAI6E,EAAc,CAAC,OAAQ,QAAS,QAAS,QAAS,QAEtDA,EAAYC,SAAQ,SAAUC,EAAMlC,GAClCoB,EAAgBc,GAAQ,WAAc,OAAO,SAAUjE,GAAK,OAAOxD,KAAKkH,IAAI1D,EAAG+B,EAAI,EAAG,CAAG,CAC7F,IAEExE,OAAO2G,KAAKf,GAAiBa,SAAQ,SAAUC,GAC7C,IAAIE,EAAShB,EAAgBc,GAC7BhB,EAAM,SAAWgB,GAAQE,EACzBlB,EAAM,UAAYgB,GAAQ,SAAU9G,EAAG2C,GAAK,OAAO,SAAUE,GAAK,OAAO,EAAImE,EAAOhH,EAAG2C,EAAVqE,CAAa,EAAInE,EAAG,CAAG,EACpGiD,EAAM,YAAcgB,GAAQ,SAAU9G,EAAG2C,GAAK,OAAO,SAAUE,GAAK,OAAOA,EAAI,GAAMmE,EAAOhH,EAAG2C,EAAVqE,CAAanE,EAAI,GAAK,EACzG,EAAImE,EAAOhH,EAAG2C,EAAVqE,CAAanE,GAAK,EAAI,GAAK,CAAE,CAAG,EACtCiD,EAAM,YAAcgB,GAAQ,SAAU9G,EAAG2C,GAAK,OAAO,SAAUE,GAAK,OAAOA,EAAI,IAAO,EAAImE,EAAOhH,EAAG2C,EAAVqE,CAAa,EAAInE,EAAI,IAAM,GAClHmE,EAAOhH,EAAG2C,EAAVqE,CAAanE,EAAI,EAAI,GAAK,GAAK,CAAE,CAAG,CAC3C,IAEE,OAAOiD,CAER,CA9CY,GAgDb,SAASmB,EAAatI,EAAQH,GAC5B,GAAIsB,EAAGkB,IAAIrC,GAAS,CAAE,OAAOA,CAAO,CACpC,IAAImI,EAAOnI,EAAOkD,MAAM,KAAK,GAC7B,IAAIqF,EAAOrB,EAAOiB,GAClB,IAAIlH,EAAO6B,EAAsB9C,GACjC,OAAQmI,GACN,IAAK,SAAW,OAAO7E,EAAOtD,EAAQH,GACtC,IAAK,cAAgB,OAAOkB,EAAe+D,EAAQ7D,GACnD,IAAK,QAAU,OAAOF,EAAe6D,EAAO3D,GAC5C,QAAU,OAAOF,EAAewH,EAAMtH,GAE1C,CAIA,SAASuH,EAAa5H,GACpB,IACE,IAAI6H,EAAQC,SAASC,iBAAiB/H,GACtC,OAAO6H,CACX,CAAI,MAAMG,GACN,MACJ,CACA,CAIA,SAASC,EAAYzH,EAAK0H,GACxB,IAAIC,EAAM3H,EAAI4H,OACd,IAAIC,EAAUC,UAAUF,QAAU,EAAIE,UAAU,QAAU,EAC1D,IAAIC,EAAS,GACb,IAAK,IAAIlD,EAAI,EAAGA,EAAI8C,EAAK9C,IAAK,CAC5B,GAAIA,KAAK7E,EAAK,CACZ,IAAIb,EAAMa,EAAI6E,GACd,GAAI6C,EAASlH,KAAKqH,EAAS1I,EAAK0F,EAAG7E,GAAM,CACvC+H,EAAOC,KAAK7I,EACpB,CACA,CACA,CACE,OAAO4I,CACT,CAEA,SAASE,EAAajI,GACpB,OAAOA,EAAIkI,QAAO,SAAUjI,EAAG2C,GAAK,OAAO3C,EAAEkI,OAAOpI,EAAGC,IAAI4C,GAAKqF,EAAarF,GAAKA,EAAG,GAAI,GAC3F,CAEA,SAASwF,EAAQC,GACf,GAAItI,EAAGC,IAAIqI,GAAI,CAAE,OAAOA,CAAE,CAC1B,GAAItI,EAAGP,IAAI6I,GAAI,CAAEA,EAAIjB,EAAaiB,IAAMA,CAAE,CAC1C,GAAIA,aAAaC,UAAYD,aAAaE,eAAgB,CAAE,MAAO,GAAGC,MAAMhI,KAAK6H,EAAG,CACpF,MAAO,CAACA,EACV,CAEA,SAASI,EAAczI,EAAKb,GAC1B,OAAOa,EAAI0I,MAAK,SAAUzI,GAAK,OAAOA,IAAMd,CAAI,GAClD,CAIA,SAASwJ,EAAYN,GACnB,IAAIO,EAAQ,GACZ,IAAK,IAAI5G,KAAKqG,EAAG,CAAEO,EAAM5G,GAAKqG,EAAErG,EAAG,CACnC,OAAO4G,CACT,CAEA,SAASC,EAAmBC,EAAIC,GAC9B,IAAIV,EAAIM,EAAYG,GACpB,IAAK,IAAI9G,KAAK8G,EAAI,CAAET,EAAErG,GAAK+G,EAAGrI,eAAesB,GAAK+G,EAAG/G,GAAK8G,EAAG9G,EAAG,CAChE,OAAOqG,CACT,CAEA,SAASW,EAAaF,EAAIC,GACxB,IAAIV,EAAIM,EAAYG,GACpB,IAAK,IAAI9G,KAAK+G,EAAI,CAAEV,EAAErG,GAAKjC,EAAGmB,IAAI4H,EAAG9G,IAAM+G,EAAG/G,GAAK8G,EAAG9G,EAAG,CACzD,OAAOqG,CACT,CAIA,SAASY,EAAUC,GACjB,IAAI5H,EAAM,kCAAkCO,KAAKqH,GACjD,OAAO5H,EAAO,QAAWA,EAAI,GAAM,MAAS4H,CAC9C,CAEA,SAASC,EAAUC,GACjB,IAAIC,EAAM,mCACV,IAAIjI,EAAMgI,EAASE,QAAQD,GAAK,SAAUE,EAAGC,EAAGC,EAAG7G,GAAK,OAAO4G,EAAIA,EAAIC,EAAIA,EAAI7G,EAAIA,CAAE,IACrF,IAAItB,EAAM,4CAA4CO,KAAKT,GAC3D,IAAIoI,EAAIE,SAASpI,EAAI,GAAI,IACzB,IAAImI,EAAIC,SAASpI,EAAI,GAAI,IACzB,IAAIsB,EAAI8G,SAASpI,EAAI,GAAI,IACzB,MAAQ,QAAUkI,EAAI,IAAMC,EAAI,IAAM7G,EAAI,KAC5C,CAEA,SAAS+G,EAAUC,GACjB,IAAIrI,EAAM,0CAA0CM,KAAK+H,IAAa,uDAAuD/H,KAAK+H,GAClI,IAAIC,EAAIH,SAASnI,EAAI,GAAI,IAAM,IAC/B,IAAIuI,EAAIJ,SAASnI,EAAI,GAAI,IAAM,IAC/B,IAAIwI,EAAIL,SAASnI,EAAI,GAAI,IAAM,IAC/B,IAAItB,EAAIsB,EAAI,IAAM,EAClB,SAASyI,EAAQhI,EAAGiI,EAAGnH,GACrB,GAAIA,EAAI,EAAG,CAAEA,GAAK,CAAE,CACpB,GAAIA,EAAI,EAAG,CAAEA,GAAK,CAAE,CACpB,GAAIA,EAAI,EAAE,EAAG,CAAE,OAAOd,GAAKiI,EAAIjI,GAAK,EAAIc,CAAE,CAC1C,GAAIA,EAAI,EAAE,EAAG,CAAE,OAAOmH,CAAE,CACxB,GAAInH,EAAI,EAAE,EAAG,CAAE,OAAOd,GAAKiI,EAAIjI,IAAM,EAAE,EAAIc,GAAK,CAAE,CAClD,OAAOd,CACX,CACE,IAAIwH,EAAGC,EAAG7G,EACV,GAAIkH,GAAK,EAAG,CACVN,EAAIC,EAAI7G,EAAImH,CAChB,KAAS,CACL,IAAIE,EAAIF,EAAI,GAAMA,GAAK,EAAID,GAAKC,EAAID,EAAIC,EAAID,EAC5C,IAAI9H,EAAI,EAAI+H,EAAIE,EAChBT,EAAIQ,EAAQhI,EAAGiI,EAAGJ,EAAI,EAAE,GACxBJ,EAAIO,EAAQhI,EAAGiI,EAAGJ,GAClBjH,EAAIoH,EAAQhI,EAAGiI,EAAGJ,EAAI,EAAE,EAC5B,CACE,MAAQ,QAAWL,EAAI,IAAO,IAAOC,EAAI,IAAO,IAAO7G,EAAI,IAAO,IAAM3C,EAAI,GAC9E,CAEA,SAASiK,EAAW/K,GAClB,GAAIY,EAAGuB,IAAInC,GAAM,CAAE,OAAO8J,EAAU9J,EAAK,CACzC,GAAIY,EAAGqB,IAAIjC,GAAM,CAAE,OAAOgK,EAAUhK,EAAK,CACzC,GAAIY,EAAGwB,IAAIpC,GAAM,CAAE,OAAOwK,EAAUxK,EAAK,CAC3C,CAIA,SAASgL,EAAQhL,GACf,IAAI2C,EAAQ,6GAA6GD,KAAK1C,GAC9H,GAAI2C,EAAO,CAAE,OAAOA,EAAM,EAAG,CAC/B,CAEA,SAASsI,EAAiBC,GACxB,GAAI9K,EAAe8K,EAAU,cAAgBA,IAAa,cAAe,CAAE,MAAO,IAAK,CACvF,GAAI9K,EAAe8K,EAAU,WAAa9K,EAAe8K,EAAU,QAAS,CAAE,MAAO,KAAM,CAC7F,CAIA,SAASC,EAAiBnL,EAAKoL,GAC7B,IAAKxK,EAAGkB,IAAI9B,GAAM,CAAE,OAAOA,CAAI,CAC/B,OAAOA,EAAIoL,EAAWC,OAAQD,EAAWE,GAAIF,EAAWG,MAC1D,CAEA,SAASC,EAAaC,EAAIC,GACxB,OAAOD,EAAGD,aAAaE,EACzB,CAEA,SAASC,EAAgBF,EAAIG,EAAOC,GAClC,IAAIC,EAAYd,EAAQY,GACxB,GAAItC,EAAc,CAACuC,EAAM,MAAO,MAAO,QAASC,GAAY,CAAE,OAAOF,CAAM,CAC3E,IAAI3H,EAASrE,EAAMC,IAAI+L,EAAQC,GAC/B,IAAKjL,EAAGmB,IAAIkC,GAAS,CAAE,OAAOA,CAAO,CACrC,IAAI8H,EAAW,IACf,IAAIC,EAAS7D,SAAS8D,cAAcR,EAAGS,SACvC,IAAIC,EAAYV,EAAGW,YAAeX,EAAGW,aAAejE,SAAasD,EAAGW,WAAajE,SAASkE,KAC1FF,EAASG,YAAYN,GACrBA,EAAOO,MAAMC,SAAW,WACxBR,EAAOO,MAAME,MAAQV,EAAWF,EAChC,IAAIa,EAASX,EAAWC,EAAOW,YAC/BR,EAASS,YAAYZ,GACrB,IAAIa,EAAgBH,EAAS5J,WAAW8I,GACxChM,EAAMC,IAAI+L,EAAQC,GAAQgB,EAC1B,OAAOA,CACT,CAEA,SAASC,EAAYrB,EAAIC,EAAMG,GAC7B,GAAIH,KAAQD,EAAGc,MAAO,CACpB,IAAIQ,EAAoBrB,EAAKvB,QAAQ,kBAAmB,SAAS6C,cACjE,IAAIpB,EAAQH,EAAGc,MAAMb,IAASuB,iBAAiBxB,GAAIyB,iBAAiBH,IAAsB,IAC1F,OAAOlB,EAAOF,EAAgBF,EAAIG,EAAOC,GAAQD,CACrD,CACA,CAEA,SAASuB,EAAiB1B,EAAIC,GAC5B,GAAI9K,EAAGgB,IAAI6J,KAAQ7K,EAAGc,IAAI+J,MAAS7K,EAAGoB,IAAIwJ,EAAaC,EAAIC,KAAW9K,EAAGY,IAAIiK,IAAOA,EAAGC,IAAS,CAAE,MAAO,WAAY,CACrH,GAAI9K,EAAGgB,IAAI6J,IAAOnC,EAAc3J,EAAiB+L,GAAO,CAAE,MAAO,WAAY,CAC7E,GAAI9K,EAAGgB,IAAI6J,KAAQC,IAAS,aAAeoB,EAAYrB,EAAIC,IAAQ,CAAE,MAAO,KAAM,CAClF,GAAID,EAAGC,IAAS,KAAM,CAAE,MAAO,QAAS,CAC1C,CAEA,SAAS0B,EAAqB3B,GAC5B,IAAK7K,EAAGgB,IAAI6J,GAAK,CAAE,MAAO,CAC1B,IAAIpL,EAAMoL,EAAGc,MAAMc,WAAa,GAChC,IAAIC,EAAO,oBACX,IAAIC,EAAa,IAAIC,IACrB,IAAIpD,EAAG,MAAOA,EAAIkD,EAAI5K,KAAKrC,GAAM,CAAEkN,EAAWE,IAAIrD,EAAE,GAAIA,EAAE,GAAI,CAC9D,OAAOmD,CACT,CAEA,SAASG,EAAkBjC,EAAIP,EAAUE,EAAYS,GACnD,IAAI8B,EAAavN,EAAe8K,EAAU,SAAW,EAAI,EAAID,EAAiBC,GAC9E,IAAIU,EAAQwB,EAAqB3B,GAAImC,IAAI1C,IAAayC,EACtD,GAAIvC,EAAY,CACdA,EAAWmC,WAAWM,KAAKJ,IAAIvC,EAAUU,GACzCR,EAAWmC,WAAW,QAAUrC,CACpC,CACE,OAAOW,EAAOF,EAAgBF,EAAIG,EAAOC,GAAQD,CACnD,CAEA,SAASkC,EAAuBzC,EAAQH,EAAUW,EAAMT,GACtD,OAAQ+B,EAAiB9B,EAAQH,IAC/B,IAAK,YAAa,OAAOwC,EAAkBrC,EAAQH,EAAUE,EAAYS,GACzE,IAAK,MAAO,OAAOiB,EAAYzB,EAAQH,EAAUW,GACjD,IAAK,YAAa,OAAOL,EAAaH,EAAQH,GAC9C,QAAS,OAAOG,EAAOH,IAAa,EAExC,CAEA,SAAS6C,EAAiBC,EAAIC,GAC5B,IAAIC,EAAW,gBAAgBxL,KAAKsL,GACpC,IAAKE,EAAU,CAAE,OAAOF,CAAG,CAC3B,IAAIG,EAAInD,EAAQgD,IAAO,EACvB,IAAItH,EAAI5D,WAAWmL,GACnB,IAAIG,EAAItL,WAAWkL,EAAG7D,QAAQ+D,EAAS,GAAI,KAC3C,OAAQA,EAAS,GAAG,IAClB,IAAK,IAAK,OAAOxH,EAAI0H,EAAID,EACzB,IAAK,IAAK,OAAOzH,EAAI0H,EAAID,EACzB,IAAK,IAAK,OAAOzH,EAAI0H,EAAID,EAE7B,CAEA,SAASE,EAAcrO,EAAK6L,GAC1B,GAAIjL,EAAGyB,IAAIrC,GAAM,CAAE,OAAO+K,EAAW/K,EAAK,CAC1C,GAAI,MAAMkC,KAAKlC,GAAM,CAAE,OAAOA,CAAI,CAClC,IAAIsO,EAAetD,EAAQhL,GAC3B,IAAIuO,EAAWD,EAAetO,EAAIwO,OAAO,EAAGxO,EAAIyI,OAAS6F,EAAa7F,QAAUzI,EAChF,GAAI6L,EAAM,CAAE,OAAO0C,EAAW1C,CAAK,CACnC,OAAO0C,CACT,CAKA,SAASE,EAAYC,EAAIC,GACvB,OAAOxO,KAAKmD,KAAKnD,KAAKkH,IAAIsH,EAAGjI,EAAIgI,EAAGhI,EAAG,GAAKvG,KAAKkH,IAAIsH,EAAGP,EAAIM,EAAGN,EAAG,GACpE,CAEA,SAASQ,EAAgBnD,GACvB,OAAOtL,KAAK6G,GAAK,EAAIwE,EAAaC,EAAI,IACxC,CAEA,SAASoD,EAAcpD,GACrB,OAAQD,EAAaC,EAAI,SAAW,EAAMD,EAAaC,EAAI,UAAY,CACzE,CAEA,SAASqD,EAAcrD,GACrB,OAAOgD,EACL,CAAC/H,EAAG8E,EAAaC,EAAI,MAAO2C,EAAG5C,EAAaC,EAAI,OAChD,CAAC/E,EAAG8E,EAAaC,EAAI,MAAO2C,EAAG5C,EAAaC,EAAI,OAEpD,CAEA,SAASsD,EAAkBtD,GACzB,IAAIuD,EAASvD,EAAGuD,OAChB,IAAIC,EAAc,EAClB,IAAIC,EACJ,IAAK,IAAIxJ,EAAI,EAAIA,EAAIsJ,EAAOG,cAAezJ,IAAK,CAC9C,IAAI0J,EAAaJ,EAAOK,QAAQ3J,GAChC,GAAIA,EAAI,EAAG,CAAEuJ,GAAeR,EAAYS,EAAaE,EAAY,CACjEF,EAAcE,CAClB,CACE,OAAOH,CACT,CAEA,SAASK,EAAiB7D,GACxB,IAAIuD,EAASvD,EAAGuD,OAChB,OAAOD,EAAkBtD,GAAMgD,EAAYO,EAAOK,QAAQL,EAAOG,cAAgB,GAAIH,EAAOK,QAAQ,GACtG,CAIA,SAASE,EAAe9D,GACtB,GAAIA,EAAG8D,eAAgB,CAAE,OAAO9D,EAAG8D,gBAAiB,CACpD,OAAO9D,EAAGS,QAAQc,eAChB,IAAK,SAAU,OAAO4B,EAAgBnD,GACtC,IAAK,OAAQ,OAAOoD,EAAcpD,GAClC,IAAK,OAAQ,OAAOqD,EAAcrD,GAClC,IAAK,WAAY,OAAOsD,EAAkBtD,GAC1C,IAAK,UAAW,OAAO6D,EAAiB7D,GAE5C,CAEA,SAAS+D,EAAc/D,GACrB,IAAIgE,EAAaF,EAAe9D,GAChCA,EAAGiE,aAAa,mBAAoBD,GACpC,OAAOA,CACT,CAIA,SAASE,EAAelE,GACtB,IAAIU,EAAWV,EAAGW,WAClB,MAAOxL,EAAGY,IAAI2K,GAAW,CACvB,IAAKvL,EAAGY,IAAI2K,EAASC,YAAa,CAAE,KAAM,CAC1CD,EAAWA,EAASC,UACxB,CACE,OAAOD,CACT,CAEA,SAASyD,GAAaC,EAAQC,GAC5B,IAAItO,EAAMsO,GAAW,GACrB,IAAIC,EAAcvO,EAAIiK,IAAMkE,EAAeE,GAC3C,IAAIG,EAAOD,EAAYE,wBACvB,IAAIC,EAAc1E,EAAauE,EAAa,WAC5C,IAAItD,EAAQuD,EAAKvD,MACjB,IAAI0D,EAASH,EAAKG,OAClB,IAAIC,EAAU5O,EAAI4O,UAAYF,EAAcA,EAAYvN,MAAM,KAAO,CAAC,EAAG,EAAG8J,EAAO0D,IACnF,MAAO,CACL1E,GAAIsE,EACJK,QAASA,EACT1J,EAAG0J,EAAQ,GAAK,EAChBhC,EAAGgC,EAAQ,GAAK,EAChBC,EAAG5D,EACH/B,EAAGyF,EACHG,GAAIF,EAAQ,GACZG,GAAIH,EAAQ,GAEhB,CAEA,SAASI,GAAQC,EAAMC,GACrB,IAAIb,EAASjP,EAAGP,IAAIoQ,GAAQxI,EAAawI,GAAM,GAAKA,EACpD,IAAI5N,EAAI6N,GAAW,IACnB,OAAO,SAASC,GACd,MAAO,CACLA,SAAUA,EACVlF,GAAIoE,EACJrO,IAAKoO,GAAaC,GAClBZ,YAAaM,EAAeM,IAAWhN,EAAI,KAEjD,CACA,CAEA,SAAS+N,GAAgBH,EAAM7M,EAAUiN,GACvC,SAASC,EAAMC,GACb,GAAKA,SAAgB,EAAIA,EAAS,EAElC,IAAInG,EAAIhH,EAAWmN,GAAU,EAAInN,EAAWmN,EAAS,EACrD,OAAON,EAAKhF,GAAGuF,iBAAiBpG,EACpC,CACE,IAAIpJ,EAAMoO,GAAaa,EAAKhF,GAAIgF,EAAKjP,KACrC,IAAIqB,EAAIiO,IACR,IAAIG,EAAKH,GAAO,GAChB,IAAIpC,EAAKoC,GAAO,GAChB,IAAII,EAASL,EAAwB,EAAIrP,EAAI6O,EAAI7O,EAAI8O,GACrD,IAAIa,EAASN,EAAwB,EAAIrP,EAAIkJ,EAAIlJ,EAAI+O,GACrD,OAAQE,EAAKE,UACX,IAAK,IAAK,OAAQ9N,EAAE6D,EAAIlF,EAAIkF,GAAKwK,EACjC,IAAK,IAAK,OAAQrO,EAAEuL,EAAI5M,EAAI4M,GAAK+C,EACjC,IAAK,QAAS,OAAOhR,KAAKiR,MAAM1C,EAAGN,EAAI6C,EAAG7C,EAAGM,EAAGhI,EAAIuK,EAAGvK,GAAK,IAAMvG,KAAK6G,GAE3E,CAIA,SAASqK,GAAerR,EAAK6L,GAG3B,IAAI3B,EAAM,6CACV,IAAI0B,EAAQyC,EAAezN,EAAGU,IAAItB,GAAOA,EAAIiP,YAAcjP,EAAM6L,GAAQ,GACzE,MAAO,CACLyF,SAAU1F,EACV2F,QAAS3F,EAAMnJ,MAAMyH,GAAO0B,EAAMnJ,MAAMyH,GAAKtH,IAAI4O,QAAU,CAAC,GAC5DC,QAAU7Q,EAAGP,IAAIL,IAAQ6L,EAAQD,EAAMjJ,MAAMuH,GAAO,GAExD,CAIA,SAASwH,GAAaC,GACpB,IAAIC,EAAeD,EAAW7I,EAAalI,EAAGC,IAAI8Q,GAAWA,EAAQ/O,IAAIqG,GAAWA,EAAQ0I,IAAa,GACzG,OAAOrJ,EAAYsJ,GAAc,SAAUC,EAAMC,EAAKC,GAAQ,OAAOA,EAAKxR,QAAQsR,KAAUC,CAAI,GAClG,CAEA,SAASE,GAAeL,GACtB,IAAIM,EAASP,GAAaC,GAC1B,OAAOM,EAAOrP,KAAI,SAAUe,EAAG+B,GAC7B,MAAO,CAAC2F,OAAQ1H,EAAG2H,GAAI5F,EAAG6F,MAAO0G,EAAOxJ,OAAQ8E,WAAY,CAAEM,KAAMT,EAAqBzJ,IAC7F,GACA,CAIA,SAASuO,GAAwBxG,EAAMyG,GACrC,IAAIC,EAAW5I,EAAY2I,GAE3B,GAAI,UAAUjQ,KAAKkQ,EAAS3S,QAAS,CAAE2S,EAAS9S,SAAWyD,EAAOqP,EAAS3S,OAAQ,CACnF,GAAImB,EAAGC,IAAI6K,GAAO,CAChB,IAAId,EAAIc,EAAKjD,OACb,IAAI4J,EAAYzH,IAAM,IAAMhK,EAAGK,IAAIyK,EAAK,IACxC,IAAK2G,EAAU,CAEb,IAAKzR,EAAGkB,IAAIqQ,EAAc7S,UAAW,CAAE8S,EAAS9S,SAAW6S,EAAc7S,SAAWsL,CAAE,CAC5F,KAAW,CAELc,EAAO,CAACE,MAAOF,EACrB,CACA,CACE,IAAI4G,EAAY1R,EAAGC,IAAI6K,GAAQA,EAAO,CAACA,GACvC,OAAO4G,EAAU1P,KAAI,SAAU2P,EAAG7M,GAChC,IAAIzE,EAAOL,EAAGK,IAAIsR,KAAO3R,EAAGU,IAAIiR,GAAMA,EAAI,CAAC3G,MAAO2G,GAElD,GAAI3R,EAAGmB,IAAId,EAAI1B,OAAQ,CAAE0B,EAAI1B,OAASmG,EAAIyM,EAAc5S,MAAQ,CAAE,CAElE,GAAIqB,EAAGmB,IAAId,EAAIzB,UAAW,CAAEyB,EAAIzB,SAAWkG,IAAM4M,EAAU7J,OAAS,EAAI0J,EAAc3S,SAAW,CAAE,CACnG,OAAOyB,CACX,IAAK2B,KAAI,SAAU4P,GAAK,OAAO3I,EAAa2I,EAAGJ,EAAU,GACzD,CAGA,SAASK,GAAiBC,GACxB,IAAIC,EAAgBrK,EAAYQ,EAAa4J,EAAU9P,KAAI,SAAUN,GAAO,OAAOpB,OAAO2G,KAAKvF,EAAK,MAAM,SAAUO,GAAK,OAAOjC,EAAG0B,IAAIO,EAAG,IACzIkG,QAAO,SAAUjI,EAAE2C,GAAK,GAAI3C,EAAEP,QAAQkD,GAAK,EAAG,CAAE3C,EAAE+H,KAAKpF,EAAG,CAAG,OAAO3C,CAAE,GAAI,IAC3E,IAAI8R,EAAa,GACjB,IAAI3T,EAAO,SAAWyG,GACpB,IAAIwF,EAAWyH,EAAcjN,GAC7BkN,EAAW1H,GAAYwH,EAAU9P,KAAI,SAAUN,GAC7C,IAAIuQ,EAAS,GACb,IAAK,IAAIhQ,KAAKP,EAAK,CACjB,GAAI1B,EAAG0B,IAAIO,GAAI,CACb,GAAIA,GAAKqI,EAAU,CAAE2H,EAAOjH,MAAQtJ,EAAIO,EAAG,CACrD,KAAe,CACLgQ,EAAOhQ,GAAKP,EAAIO,EAC1B,CACA,CACM,OAAOgQ,CACb,GACA,EAEE,IAAK,IAAInN,EAAI,EAAGA,EAAIiN,EAAclK,OAAQ/C,IAAKzG,EAAMyG,GACrD,OAAOkN,CACT,CAEA,SAASE,GAAcX,EAAenP,GACpC,IAAI4P,EAAa,GACjB,IAAIF,EAAY1P,EAAO0P,UACvB,GAAIA,EAAW,CAAE1P,EAAS6G,EAAa4I,GAAiBC,GAAY1P,EAAQ,CAC5E,IAAK,IAAIH,KAAKG,EAAQ,CACpB,GAAIpC,EAAG0B,IAAIO,GAAI,CACb+P,EAAW/J,KAAK,CACdjB,KAAM/E,EACNkQ,OAAQb,GAAwBlP,EAAOH,GAAIsP,IAEnD,CACA,CACE,OAAOS,CACT,CAIA,SAASI,GAAqBC,EAAO7H,GACnC,IAAIzH,EAAI,GACR,IAAK,IAAId,KAAKoQ,EAAO,CACnB,IAAIrH,EAAQT,EAAiB8H,EAAMpQ,GAAIuI,GACvC,GAAIxK,EAAGC,IAAI+K,GAAQ,CACjBA,EAAQA,EAAMhJ,KAAI,SAAU2P,GAAK,OAAOpH,EAAiBoH,EAAGnH,EAAY,IACxE,GAAIQ,EAAMnD,SAAW,EAAG,CAAEmD,EAAQA,EAAM,EAAG,CACjD,CACIjI,EAAEd,GAAK+I,CACX,CACEjI,EAAErE,SAAWwD,WAAWa,EAAErE,UAC1BqE,EAAEpE,MAAQuD,WAAWa,EAAEpE,OACvB,OAAOoE,CACT,CAEA,SAASuP,GAAgBxH,EAAMN,GAC7B,IAAI+H,EACJ,OAAOzH,EAAKqH,OAAOnQ,KAAI,SAAUe,GAC/B,IAAIsP,EAAQD,GAAqBrP,EAAGyH,GACpC,IAAIgI,EAAaH,EAAMrH,MACvB,IAAIoC,EAAKpN,EAAGC,IAAIuS,GAAcA,EAAW,GAAKA,EAC9C,IAAIC,EAASrI,EAAQgD,GACrB,IAAIsF,EAAgBxF,EAAuB1C,EAAWC,OAAQK,EAAK9D,KAAMyL,EAAQjI,GACjF,IAAImI,EAAgBJ,EAAgBA,EAAcnF,GAAGsD,SAAWgC,EAChE,IAAIrF,EAAOrN,EAAGC,IAAIuS,GAAcA,EAAW,GAAKG,EAChD,IAAIC,EAAWxI,EAAQiD,IAASjD,EAAQsI,GACxC,IAAIzH,EAAOwH,GAAUG,EACrB,GAAI5S,EAAGmB,IAAIiM,GAAK,CAAEA,EAAKuF,CAAc,CACrCN,EAAMhF,KAAOoD,GAAepD,EAAMpC,GAClCoH,EAAMjF,GAAKqD,GAAetD,EAAiBC,EAAIC,GAAOpC,GACtDoH,EAAMQ,MAAQN,EAAgBA,EAAcO,IAAM,EAClDT,EAAMS,IAAMT,EAAMQ,MAAQR,EAAM1T,MAAQ0T,EAAM3T,SAAW2T,EAAMzT,SAC/DyT,EAAMxT,OAASsI,EAAakL,EAAMxT,OAAQwT,EAAM3T,UAChD2T,EAAMU,OAAS/S,EAAGU,IAAI8R,GACtBH,EAAMpC,sBAAwBoC,EAAMU,QAAU/S,EAAGY,IAAI4J,EAAWC,QAChE4H,EAAMW,QAAUhT,EAAGyB,IAAI4Q,EAAMhF,KAAKqD,UAClC,GAAI2B,EAAMW,QAAS,CAAEX,EAAMvT,MAAQ,CAAE,CACrCyT,EAAgBF,EAChB,OAAOA,CACX,GACA,CAIA,IAAIY,GAAmB,CACrBC,IAAK,SAAUnQ,EAAGd,EAAG0P,GAAK,OAAO5O,EAAE4I,MAAM1J,GAAK0P,CAAE,EAChDwB,UAAW,SAAUpQ,EAAGd,EAAG0P,GAAK,OAAO5O,EAAE+L,aAAa7M,EAAG0P,EAAG,EAC5DyB,OAAQ,SAAUrQ,EAAGd,EAAG0P,GAAK,OAAO5O,EAAEd,GAAK0P,CAAE,EAC7ClF,UAAW,SAAU1J,EAAGd,EAAG0P,EAAGhF,EAAY0G,GACxC1G,EAAWM,KAAKJ,IAAI5K,EAAG0P,GACvB,GAAI1P,IAAM0K,EAAW2G,MAAQD,EAAQ,CACnC,IAAI5T,EAAM,GACVkN,EAAWM,KAAKlG,SAAQ,SAAUiE,EAAOF,GAAQrL,GAAOqL,EAAO,IAAME,EAAQ,IAAK,IAClFjI,EAAE4I,MAAMc,UAAYhN,CAC1B,CACA,GAKA,SAAS8T,GAAgBxC,EAASiB,GAChC,IAAIwB,EAAcpC,GAAeL,GACjCyC,EAAYzM,SAAQ,SAAUyD,GAC5B,IAAK,IAAIuF,KAAYiC,EAAY,CAC/B,IAAIhH,EAAQT,EAAiByH,EAAWjC,GAAWvF,GACnD,IAAIC,EAASD,EAAWC,OACxB,IAAIS,EAAYd,EAAQY,GACxB,IAAI0H,EAAgBxF,EAAuBzC,EAAQsF,EAAU7E,EAAWV,GACxE,IAAIS,EAAOC,GAAad,EAAQsI,GAChC,IAAItF,EAAKD,EAAiBM,EAAczC,EAAOC,GAAOyH,GACtD,IAAIe,EAAWlH,EAAiB9B,EAAQsF,GACxCkD,GAAiBQ,GAAUhJ,EAAQsF,EAAU3C,EAAI5C,EAAWmC,WAAY,KAC9E,CACA,GACA,CAIA,SAAS+G,GAAgBlJ,EAAYM,GACnC,IAAI2I,EAAWlH,EAAiB/B,EAAWC,OAAQK,EAAK9D,MACxD,GAAIyM,EAAU,CACZ,IAAItB,EAASG,GAAgBxH,EAAMN,GACnC,IAAImJ,EAAYxB,EAAOA,EAAOtK,OAAS,GACvC,MAAO,CACL+L,KAAMH,EACN1D,SAAUjF,EAAK9D,KACfwD,WAAYA,EACZ2H,OAAQA,EACRzT,SAAUiV,EAAUb,IACpBnU,MAAOwT,EAAO,GAAGxT,MACjBC,SAAU+U,EAAU/U,SAE1B,CACA,CAEA,SAASiV,GAAcL,EAAaxB,GAClC,OAAOtK,EAAYQ,EAAasL,EAAYxR,KAAI,SAAUwI,GACxD,OAAOwH,EAAWhQ,KAAI,SAAU8I,GAC9B,OAAO4I,GAAgBlJ,EAAYM,EACzC,GACA,MAAO,SAAU5K,GAAK,OAAQF,EAAGmB,IAAIjB,EAAG,GACxC,CAIA,SAAS4T,GAAmBC,EAAYxC,GACtC,IAAIyC,EAAaD,EAAWlM,OAC5B,IAAIoM,EAAc,SAAUC,GAAQ,OAAOA,EAAK1V,eAAiB0V,EAAK1V,eAAiB,CAAE,EACzF,IAAI2V,EAAU,GACdA,EAAQzV,SAAWsV,EAAazU,KAAKD,IAAIS,MAAMR,KAAMwU,EAAW/R,KAAI,SAAUkS,GAAQ,OAAOD,EAAYC,GAAQA,EAAKxV,QAAS,KAAO6S,EAAc7S,SACpJyV,EAAQxV,MAAQqV,EAAazU,KAAKF,IAAIU,MAAMR,KAAMwU,EAAW/R,KAAI,SAAUkS,GAAQ,OAAOD,EAAYC,GAAQA,EAAKvV,KAAM,KAAO4S,EAAc5S,MAC9IwV,EAAQvV,SAAWoV,EAAaG,EAAQzV,SAAWa,KAAKD,IAAIS,MAAMR,KAAMwU,EAAW/R,KAAI,SAAUkS,GAAQ,OAAOD,EAAYC,GAAQA,EAAKxV,SAAWwV,EAAKtV,QAAS,KAAO2S,EAAc3S,SACvL,OAAOuV,CACT,CAEA,IAAIC,GAAa,EAEjB,SAASC,GAAkBjS,GACzB,IAAIkS,EAAmBxL,EAAmBlL,EAAyBwE,GACnE,IAAImP,EAAgBzI,EAAmBrK,EAAsB2D,GAC7D,IAAI4P,EAAaE,GAAcX,EAAenP,GAC9C,IAAIoR,EAAcpC,GAAehP,EAAO2O,SACxC,IAAIgD,EAAaF,GAAcL,EAAaxB,GAC5C,IAAImC,EAAUL,GAAmBC,EAAYxC,GAC7C,IAAI7G,EAAK0J,GACTA,KACA,OAAOnL,EAAaqL,EAAkB,CACpC5J,GAAIA,EACJ6J,SAAU,GACVf,YAAaA,EACbO,WAAYA,EACZrV,SAAUyV,EAAQzV,SAClBC,MAAOwV,EAAQxV,MACfC,SAAUuV,EAAQvV,UAEtB,CAIA,IAAI4V,GAAkB,GAEtB,IAAIC,GAAS,WACX,IAAIC,EAEJ,SAASC,IACP,IAAKD,KAASE,OAAuBC,GAAMC,4BAA8BN,GAAgB3M,OAAS,EAAG,CACnG6M,EAAMK,sBAAsBC,EAClC,CACA,CACE,SAASA,EAAKjS,GAIZ,IAAIkS,EAAwBT,GAAgB3M,OAC5C,IAAI/C,EAAI,EACR,MAAOA,EAAImQ,EAAuB,CAChC,IAAIC,EAAiBV,GAAgB1P,GACrC,IAAKoQ,EAAeC,OAAQ,CAC1BD,EAAeE,KAAKrS,GACpB+B,GACR,KAAa,CACL0P,GAAgBa,OAAOvQ,EAAG,GAC1BmQ,GACR,CACA,CACIP,EAAM5P,EAAI,EAAIiQ,sBAAsBC,GAAQM,SAChD,CAEE,SAASC,IACP,IAAKV,GAAMC,0BAA2B,CAAE,MAAO,CAE/C,GAAIF,KAAoB,CAEtBF,EAAMc,qBAAqBd,EACjC,KAAW,CAELF,GAAgBzN,SACd,SAAU0O,GAAY,OAAOA,EAAUC,uBAAwB,IAEjEjB,IACN,CACA,CACE,UAAWlN,WAAa,YAAa,CACnCA,SAASoO,iBAAiB,mBAAoBJ,EAClD,CAEE,OAAOZ,CACR,CA9CY,GAgDb,SAASC,KACP,QAASrN,UAAYA,SAASqO,MAChC,CAIA,SAASf,GAAMzS,GACb,GAAKA,SAAgB,EAAIA,EAAS,GAGlC,IAAIyT,EAAY,EAAGC,EAAW,EAAGC,EAAM,EACvC,IAAIxB,EAAUyB,EAAiB,EAC/B,IAAIC,EAAU,KAEd,SAASC,EAAYT,GACnB,IAAIU,EAAUC,OAAOC,SAAW,IAAIA,SAAQ,SAAUC,GAAY,OAAOL,EAAUK,CAAS,IAC5Fb,EAASc,SAAWJ,EACpB,OAAOA,CACX,CAEE,IAAIV,EAAWpB,GAAkBjS,GACnB8T,EAAYT,GAE1B,SAASe,IACP,IAAIlY,EAAYmX,EAASnX,UACzB,GAAIA,IAAc,YAAa,CAC7BmX,EAASnX,UAAYA,IAAc,SAAW,SAAW,SAC/D,CACImX,EAASgB,UAAYhB,EAASgB,SAC9BlC,EAASxN,SAAQ,SAAU2P,GAAS,OAAOA,EAAMD,SAAWhB,EAASgB,QAAS,GAClF,CAEE,SAASE,EAAWC,GAClB,OAAOnB,EAASgB,SAAWhB,EAAS/W,SAAWkY,EAAOA,CAC1D,CAEE,SAASC,IACPhB,EAAY,EACZC,EAAWa,EAAWlB,EAASqB,cAAgB,EAAIjC,GAAMkC,MAC7D,CAEE,SAASC,EAAUJ,EAAMF,GACvB,GAAIA,EAAO,CAAEA,EAAMO,KAAKL,EAAOF,EAAMlY,eAAgB,CACzD,CAEE,SAAS0Y,EAAqBN,GAC5B,IAAKnB,EAAS0B,gBAAiB,CAC7B,IAAK,IAAIrS,EAAI,EAAGA,EAAIkR,EAAgBlR,IAAK,CAAEkS,EAAUJ,EAAMrC,EAASzP,GAAI,CAC9E,KAAW,CACL,IAAK,IAAIsS,EAAMpB,EAAgBoB,KAAQ,CAAEJ,EAAUJ,EAAMrC,EAAS6C,GAAM,CAC9E,CACA,CAEE,SAASC,EAAsBC,GAC7B,IAAIxS,EAAI,EACR,IAAIiP,EAAa0B,EAAS1B,WAC1B,IAAIwD,EAAmBxD,EAAWlM,OAClC,MAAO/C,EAAIyS,EAAkB,CAC3B,IAAIrD,EAAOH,EAAWjP,GACtB,IAAI0F,EAAa0J,EAAK1J,WACtB,IAAI2H,EAAS+B,EAAK/B,OAClB,IAAIqF,EAAcrF,EAAOtK,OAAS,EAClC,IAAIwK,EAAQF,EAAOqF,GAEnB,GAAIA,EAAa,CAAEnF,EAAQ3K,EAAYyK,GAAQ,SAAUpP,GAAK,OAAQuU,EAAUvU,EAAE+P,GAAK,IAAI,IAAMT,CAAM,CACvG,IAAI9O,EAAUpE,EAAOmY,EAAUjF,EAAMQ,MAAQR,EAAM1T,MAAO,EAAG0T,EAAM3T,UAAY2T,EAAM3T,SACrF,IAAI+Y,EAAQC,MAAMnU,GAAW,EAAI8O,EAAMxT,OAAO0E,GAC9C,IAAIsN,EAAUwB,EAAMjF,GAAGyD,QACvB,IAAI/R,EAAQuT,EAAMvT,MAClB,IAAI6R,EAAU,GACd,IAAIgH,EAAkBtF,EAAMjF,GAAGuD,QAAQ9I,OACvC,IAAI7E,OAAiB,EACrB,IAAK,IAAI4U,EAAI,EAAGA,EAAID,EAAiBC,IAAK,CACxC,IAAI5M,OAAc,EAClB,IAAI6M,EAAWxF,EAAMjF,GAAGuD,QAAQiH,GAChC,IAAIE,EAAazF,EAAMhF,KAAKsD,QAAQiH,IAAM,EAC1C,IAAKvF,EAAMU,OAAQ,CACjB/H,EAAQ8M,EAAcL,GAASI,EAAWC,EACpD,KAAe,CACL9M,EAAQgF,GAAgBqC,EAAMrH,MAAOyM,EAAQI,EAAUxF,EAAMpC,sBACvE,CACQ,GAAInR,EAAO,CACT,KAAMuT,EAAMW,SAAW4E,EAAI,GAAI,CAC7B5M,EAAQzL,KAAKT,MAAMkM,EAAQlM,GAASA,CAChD,CACA,CACQ6R,EAAQ1I,KAAK+C,EACrB,CAEM,IAAI+M,EAAgBlH,EAAQhJ,OAC5B,IAAKkQ,EAAe,CAClB/U,EAAW2N,EAAQ,EAC3B,KAAa,CACL3N,EAAW6N,EAAQ,GACnB,IAAK,IAAI9G,EAAI,EAAGA,EAAIgO,EAAehO,IAAK,CAEtC,IAAIlH,EAAIgO,EAAQ9G,EAAI,GACpB,IAAIiO,EAAMrH,EAAQ5G,GAClB,IAAK2N,MAAMM,GAAM,CACf,IAAKnV,EAAG,CACNG,GAAYgV,EAAM,GAChC,KAAmB,CACLhV,GAAYgV,EAAMnV,CAChC,CACA,CACA,CACA,CACMoQ,GAAiBiB,EAAKN,MAAMpJ,EAAWC,OAAQyJ,EAAKnE,SAAU/M,EAAUwH,EAAWmC,YACnFuH,EAAK+D,aAAejV,EACpB8B,GACN,CACA,CAEE,SAASoT,EAAYC,GACnB,GAAI1C,EAAS0C,KAAQ1C,EAAS2C,YAAa,CAAE3C,EAAS0C,GAAI1C,EAAU,CACxE,CAEE,SAAS4C,IACP,GAAI5C,EAAS6C,WAAa7C,EAAS6C,YAAc,KAAM,CACrD7C,EAAS6C,WACf,CACA,CAEE,SAASC,EAAoBC,GAC3B,IAAIC,EAAchD,EAAS/W,SAC3B,IAAIga,EAAWjD,EAAS9W,MACxB,IAAIga,EAAcF,EAAchD,EAAS7W,SACzC,IAAI0Y,EAAUX,EAAW6B,GACzB/C,EAASzS,SAAW7D,EAAQmY,EAAUmB,EAAe,IAAK,EAAG,KAC7DhD,EAAS0B,gBAAkBG,EAAU7B,EAASqB,YAC9C,GAAIvC,EAAU,CAAE2C,EAAqBI,EAAS,CAC9C,IAAK7B,EAASmD,OAASnD,EAASqB,YAAc,EAAG,CAC/CrB,EAASmD,MAAQ,KACjBV,EAAY,QAClB,CACI,IAAKzC,EAASoD,WAAapD,EAASqB,YAAc,EAAG,CACnDrB,EAASoD,UAAY,KACrBX,EAAY,YAClB,CACI,GAAIZ,GAAWoB,GAAYjD,EAASqB,cAAgB,EAAG,CACrDO,EAAsB,EAC5B,CACI,GAAKC,GAAWqB,GAAelD,EAASqB,cAAgB2B,IAAiBA,EAAa,CACpFpB,EAAsBoB,EAC5B,CACI,GAAInB,EAAUoB,GAAYpB,EAAUqB,EAAa,CAC/C,IAAKlD,EAASqD,YAAa,CACzBrD,EAASqD,YAAc,KACvBrD,EAASsD,gBAAkB,MAC3Bb,EAAY,cACpB,CACMA,EAAY,UACZb,EAAsBC,EAC5B,KAAW,CACL,GAAI7B,EAASqD,YAAa,CACxBrD,EAASsD,gBAAkB,KAC3BtD,EAASqD,YAAc,MACvBZ,EAAY,iBACpB,CACA,CACIzC,EAASqB,YAAc3X,EAAOmY,EAAS,EAAGmB,GAC1C,GAAIhD,EAASmD,MAAO,CAAEV,EAAY,SAAU,CAC5C,GAAIM,GAAcC,EAAa,CAC7B3C,EAAW,EACXuC,IACA,IAAK5C,EAAS6C,UAAW,CACvB7C,EAASN,OAAS,KAClB,IAAKM,EAASuD,UAAW,CACvBvD,EAASuD,UAAY,KACrBd,EAAY,gBACZA,EAAY,YACZ,IAAKzC,EAAS2C,aAAe,YAAahC,OAAQ,CAChDH,IACUC,EAAYT,EAClC,CACA,CACA,KAAa,CACLI,EAAYE,EACZmC,EAAY,gBACZzC,EAASoD,UAAY,MACrB,GAAIpD,EAASnX,YAAc,YAAa,CACtCkY,GACV,CACA,CACA,CACA,CAEEf,EAASwD,MAAQ,WACf,IAAI3a,EAAYmX,EAASnX,UACzBmX,EAAS2C,YAAc,MACvB3C,EAASqB,YAAc,EACvBrB,EAASzS,SAAW,EACpByS,EAASN,OAAS,KAClBM,EAASmD,MAAQ,MACjBnD,EAASoD,UAAY,MACrBpD,EAASqD,YAAc,MACvBrD,EAASuD,UAAY,MACrBvD,EAASsD,gBAAkB,MAC3BtD,EAAS0B,gBAAkB,MAC3B1B,EAASgB,SAAWnY,IAAc,UAClCmX,EAAS6C,UAAY7C,EAASpX,KAC9BkW,EAAWkB,EAASlB,SACpByB,EAAiBzB,EAAS1M,OAC1B,IAAK,IAAI/C,EAAIkR,EAAgBlR,KAAM,CAAE2Q,EAASlB,SAASzP,GAAGmU,OAAQ,CAClE,GAAIxD,EAASgB,UAAYhB,EAASpX,OAAS,MAASC,IAAc,aAAemX,EAASpX,OAAS,EAAI,CAAEoX,EAAS6C,WAAY,CAC9HjB,EAAsB5B,EAASgB,SAAWhB,EAAS/W,SAAW,EAClE,EAGE+W,EAASC,sBAAwBmB,EAIjCpB,EAAS5I,IAAM,SAASkE,EAASiB,GAC/BuB,GAAgBxC,EAASiB,GACzB,OAAOyD,CACX,EAEEA,EAASL,KAAO,SAASrS,GACvBgT,EAAMhT,EACN,IAAK8S,EAAW,CAAEA,EAAYE,CAAI,CAClCwC,GAAqBxC,GAAOD,EAAWD,IAAchB,GAAMkC,MAC/D,EAEEtB,EAASwB,KAAO,SAASL,GACvB2B,EAAoB5B,EAAWC,GACnC,EAEEnB,EAASyD,MAAQ,WACfzD,EAASN,OAAS,KAClB0B,GACJ,EAEEpB,EAASd,KAAO,WACd,IAAKc,EAASN,OAAQ,CAAE,MAAO,CAC/B,GAAIM,EAASuD,UAAW,CAAEvD,EAASwD,OAAQ,CAC3CxD,EAASN,OAAS,MAClBX,GAAgBvM,KAAKwN,GACrBoB,IACApC,IACJ,EAEEgB,EAAS0D,QAAU,WACjB3C,IACAf,EAASuD,UAAYvD,EAASgB,SAAW,MAAQ,KACjDI,GACJ,EAEEpB,EAAS2D,QAAU,WACjB3D,EAASwD,QACTxD,EAASd,MACb,EAEEc,EAAS4D,OAAS,SAAStI,GACzB,IAAIC,EAAeF,GAAaC,GAChCuI,GAA0BtI,EAAcyE,EAC5C,EAEEA,EAASwD,QAET,GAAIxD,EAASlX,SAAU,CAAEkX,EAASd,MAAO,CAEzC,OAAOc,CAET,CAIA,SAAS8D,GAA4BvI,EAAc+C,GACjD,IAAK,IAAI7T,EAAI6T,EAAWlM,OAAQ3H,KAAM,CACpC,GAAIwI,EAAcsI,EAAc+C,EAAW7T,GAAGsK,WAAWC,QAAS,CAChEsJ,EAAWsB,OAAOnV,EAAG,EAC3B,CACA,CACA,CAEA,SAASoZ,GAA0BtI,EAAcyE,GAC/C,IAAI1B,EAAa0B,EAAS1B,WAC1B,IAAIQ,EAAWkB,EAASlB,SACxBgF,GAA4BvI,EAAc+C,GAC1C,IAAK,IAAIyF,EAAIjF,EAAS1M,OAAQ2R,KAAM,CAClC,IAAI9C,EAAQnC,EAASiF,GACrB,IAAIC,EAAkB/C,EAAM3C,WAC5BwF,GAA4BvI,EAAcyI,GAC1C,IAAKA,EAAgB5R,SAAW6O,EAAMnC,SAAS1M,OAAQ,CAAE0M,EAASc,OAAOmE,EAAG,EAAG,CACnF,CACE,IAAKzF,EAAWlM,SAAW0M,EAAS1M,OAAQ,CAAE4N,EAASyD,OAAQ,CACjE,CAEA,SAASQ,GAAiC3I,GACxC,IAAIC,EAAeF,GAAaC,GAChC,IAAK,IAAIjM,EAAI0P,GAAgB3M,OAAQ/C,KAAM,CACzC,IAAI2Q,EAAWjB,GAAgB1P,GAC/BwU,GAA0BtI,EAAcyE,EAC5C,CACA,CAIA,SAASkE,GAAQva,EAAKgD,GACpB,GAAKA,SAAgB,EAAIA,EAAS,GAElC,IAAI9D,EAAY8D,EAAO9D,WAAa,SACpC,IAAIO,EAASuD,EAAOvD,OAASsI,EAAa/E,EAAOvD,QAAU,KAC3D,IAAI+a,EAAOxX,EAAOwX,KAClB,IAAIC,EAAOzX,EAAOyX,KAClB,IAAIC,EAAY1X,EAAOiL,MAAQ,EAC/B,IAAI0M,EAAYD,IAAc,QAC9B,IAAIE,EAAaF,IAAc,SAC/B,IAAIG,EAAWH,IAAc,OAC7B,IAAII,EAAUla,EAAGC,IAAIb,GACrB,IAAI+a,EAAOD,EAAUhY,WAAW9C,EAAI,IAAM8C,WAAW9C,GACrD,IAAIgb,EAAOF,EAAUhY,WAAW9C,EAAI,IAAM,EAC1C,IAAI6L,EAAOb,EAAQ8P,EAAU9a,EAAI,GAAKA,IAAQ,EAC9C,IAAIyT,EAAQzQ,EAAOyQ,OAAS,GAAKqH,EAAUC,EAAO,GAClD,IAAIE,EAAS,GACb,IAAIC,EAAW,EACf,OAAO,SAAUzP,EAAI/F,EAAG/B,GACtB,GAAIgX,EAAW,CAAED,EAAY,CAAE,CAC/B,GAAIE,EAAY,CAAEF,GAAa/W,EAAI,GAAK,CAAE,CAC1C,GAAIkX,EAAU,CAAEH,EAAY/W,EAAI,CAAE,CAClC,IAAKsX,EAAOxS,OAAQ,CAClB,IAAK,IAAI0S,EAAQ,EAAGA,EAAQxX,EAAGwX,IAAS,CACtC,IAAKX,EAAM,CACTS,EAAOpS,KAAK1I,KAAKwF,IAAI+U,EAAYS,GAC3C,KAAe,CACL,IAAIC,GAASR,EAAaF,EAAUF,EAAK,IAAMA,EAAK,GAAG,GAAG,EAC1D,IAAIa,GAAST,EAAaza,KAAKmb,MAAMZ,EAAUF,EAAK,KAAOA,EAAK,GAAG,GAAG,EACtE,IAAIe,EAAMJ,EAAMX,EAAK,GACrB,IAAIgB,EAAMrb,KAAKmb,MAAMH,EAAMX,EAAK,IAChC,IAAIiB,EAAYL,EAAQG,EACxB,IAAIG,EAAYL,EAAQG,EACxB,IAAI5P,EAAQzL,KAAKmD,KAAKmY,EAAYA,EAAYC,EAAYA,GAC1D,GAAIjB,IAAS,IAAK,CAAE7O,GAAS6P,CAAU,CACvC,GAAIhB,IAAS,IAAK,CAAE7O,GAAS8P,CAAU,CACvCT,EAAOpS,KAAK+C,EACtB,CACQsP,EAAW/a,KAAKD,IAAIS,MAAMR,KAAM8a,EACxC,CACM,GAAIxb,EAAQ,CAAEwb,EAASA,EAAOrY,KAAI,SAAU5C,GAAO,OAAOP,EAAOO,EAAMkb,GAAYA,CAAS,GAAI,CAChG,GAAIhc,IAAc,UAAW,CAAE+b,EAASA,EAAOrY,KAAI,SAAU5C,GAAO,OAAOya,EAAQza,EAAM,EAAKA,GAAO,GAAKA,EAAMG,KAAKwF,IAAIuV,EAAWlb,EAAK,GAAI,CACnJ,CACI,IAAI2b,EAAUb,GAAWE,EAAOD,GAAQG,EAAWH,EACnD,OAAOtH,EAASkI,GAAWxb,KAAKT,MAAMub,EAAOvV,GAAK,KAAO,KAAQmG,CACrE,CACA,CAIA,SAAS+P,GAAS5Y,GAChB,GAAKA,SAAgB,EAAIA,EAAS,GAElC,IAAI6Y,EAAKpG,GAAMzS,GACf6Y,EAAGvc,SAAW,EACduc,EAAGC,IAAM,SAASC,EAAgB3c,GAChC,IAAI4c,EAAU5G,GAAgB7U,QAAQsb,GACtC,IAAI1G,EAAW0G,EAAG1G,SAClB,GAAI6G,GAAW,EAAG,CAAE5G,GAAgBa,OAAO+F,EAAS,EAAG,CACvD,SAAShD,EAAYiD,GAAOA,EAAIjD,YAAc,IAAK,CACnD,IAAK,IAAItT,EAAI,EAAGA,EAAIyP,EAAS1M,OAAQ/C,IAAK,CAAEsT,EAAY7D,EAASzP,GAAI,CACrE,IAAIwW,EAAYrS,EAAakS,EAAgBrS,EAAmBrK,EAAsB2D,IACtFkZ,EAAUvK,QAAUuK,EAAUvK,SAAW3O,EAAO2O,QAChD,IAAIwK,EAAaN,EAAGvc,SACpB4c,EAAU/c,SAAW,MACrB+c,EAAUhd,UAAY2c,EAAG3c,UACzBgd,EAAU9c,eAAiBwB,EAAGmB,IAAI3C,GAAkB+c,EAAapO,EAAiB3O,EAAgB+c,GAClGnD,EAAY6C,GACZA,EAAGhE,KAAKqE,EAAU9c,gBAClB,IAAI6c,EAAMxG,GAAMyG,GAChBlD,EAAYiD,GACZ9G,EAAStM,KAAKoT,GACd,IAAIlH,EAAUL,GAAmBS,EAAUnS,GAC3C6Y,EAAGtc,MAAQwV,EAAQxV,MACnBsc,EAAGrc,SAAWuV,EAAQvV,SACtBqc,EAAGvc,SAAWyV,EAAQzV,SACtBuc,EAAGhE,KAAK,GACRgE,EAAGhC,QACH,GAAIgC,EAAG1c,SAAU,CAAE0c,EAAGtG,MAAO,CAC7B,OAAOsG,CACX,EACE,OAAOA,CACT,CAEApG,GAAM2G,QAAU,QAChB3G,GAAMkC,MAAQ,EAEdlC,GAAMC,0BAA4B,KAClCD,GAAM4G,QAAUjH,GAChBK,GAAMwE,OAASK,GACf7E,GAAM7H,IAAME,EACZ2H,GAAMhI,IAAM0G,GACZsB,GAAM6G,UAAY3Q,EAClB8J,GAAMhF,KAAOD,GACbiF,GAAMjG,cAAgBA,EACtBiG,GAAM8E,QAAUA,GAChB9E,GAAMmG,SAAWA,GACjBnG,GAAMhW,OAASsI,EACf0N,GAAM9O,OAASA,EACf8O,GAAM8G,OAAS,SAAUtc,EAAKC,GAAO,OAAOC,KAAKmb,MAAMnb,KAAKoc,UAAYrc,EAAMD,EAAM,IAAMA,CAAI,EC3xC9F,MAAMuc,GAAgB,6V,MCyBTC,GAAU,M,uIAoBH,M,iDASD,K,CAGjB,UAAAC,GACE,GAAIC,KAAKC,gBAAiB,CACxBD,KAAKE,mB,EAKT,qBAAAC,CAAsBF,G,MACpB,GAAIA,EAAiB,CACnBD,KAAKI,iCACLJ,KAAKK,kB,KACA,EACLC,EAAAN,KAAKO,kBAAc,MAAAD,SAAA,SAAAA,EAAEE,oBACdR,KAAKS,cACZT,KAAKU,KAAKC,gBAAgB,Q,EAU9B,gBAAAC,GACE,GAAIZ,KAAKC,gBAAiB,CACxBD,KAAKI,gC,CAGPJ,KAAKK,kB,CAGC,gBAAAA,G,OACNC,EAAAN,KAAKO,kBAAc,MAAAD,SAAA,SAAAA,EAAEO,QAAQb,KAAKU,K,CAGpC,oBAAAI,G,OACER,EAAAN,KAAKO,kBAAc,MAAAD,SAAA,SAAAA,EAAEE,Y,CAGvB,MAAAO,GACE,OACEhT,EAACiT,EAAI,eACUhB,KAAKiB,KAAO,QAAU,OACnCC,MAAOC,EAAK,CACV,oBAAqBnB,KAAKC,iBAAmBD,KAAKoB,eAClD,YAAapB,KAAKC,kBAAoBD,KAAKiB,QAG7ClT,EAAA,a,CAKE,8BAAAqS,GACNJ,KAAKO,eAAiB,IAAIc,eACxBC,GAAS,EAAEC,MACT,IAAKA,EAAO,CACV,MAAM,IAAIC,MAAM,iB,CAIlB,MAAMhO,EAAS+N,EAAM7S,OAAO4E,wBAAwBE,OAEpD,GAAIwM,KAAKyB,aAAejO,EAAQ,CAC9BwM,KAAKyB,WAAajO,C,CAGpBwM,KAAK0B,sBAAsB,GAC1B,K,CAIC,oBAAAA,G,MACN1B,KAAKS,cAAgB3H,GAAM,CACzB9D,QAASgL,KAAKU,KACdlN,QAAQ8M,EAAAN,KAAK2B,iBAAa,MAAArB,SAAA,EAAAA,EAAI,EAC9Bxd,OAAQ,8BACRH,SAAU,IACVH,SAAU,MACVD,UAAW,SACXR,MAAO,KACL,GAAIie,KAAKiB,KAAM,CACbjB,KAAKU,KAAK9Q,MAAMgS,WAAa,GAC7B5B,KAAKU,KAAK9Q,MAAMC,SAAW,GAC3BmQ,KAAKU,KAAK9Q,MAAMiS,OAAS,E,GAG7Bxf,SAAU,KACR2d,KAAKU,KAAK9Q,MAAM4D,OAAS,GAEzB,IAAKwM,KAAKiB,KAAM,CACdjB,KAAKU,KAAK9Q,MAAMgS,WAAa,SAC7B5B,KAAKU,KAAK9Q,MAAMC,SAAW,WAC3BmQ,KAAKU,KAAK9Q,MAAMiS,OAAS,M,GAG7B1f,eAAgB,KACd6d,KAAK8B,0BAA0BC,KAAK,CAAEN,WAAYzB,KAAKyB,YAAa,IAIxE,IAAKzB,KAAKiB,KAAM,CACdjB,KAAKS,cAAcrD,UACnB4C,KAAKS,cAAc7H,M,CAGrB,GAAIoH,KAAKU,KAAM,CACbV,KAAKU,KAAK9Q,MAAM4D,OAAS,E,CAG3BwM,KAAKoB,iBAAmBpB,KAAKS,a,CAGvB,iBAAAP,GACN,GAAIF,KAAKS,cAAe,CACtB,GAAIT,KAAKS,cAAcxZ,SAAW,GAAK+Y,KAAKS,cAAcxZ,SAAW,IAAK,CACxE+Y,KAAKS,cAAcrD,S,KACd,CACL,GAAI4C,KAAKiB,KAAM,CACbjB,KAAKS,cAAcle,UAAY,UAC/Byd,KAAKS,cAAc7H,M,KACd,CACLoH,KAAKS,cAAcle,UAAY,SAC/Byd,KAAKS,cAAc7H,M"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as s,H as i,a as e}from"./p-3ca5b6f4.js";import{t as o}from"./p-86133aa5.js";import{h as n,c as r}from"./p-fd7891ef.js";import{v as h}from"./p-5d7f4ff2.js";const a=":host(:focus){outline:none}:host{display:inline-block}";const f=class{constructor(s){t(this,s);this.focusOutListener=t=>{if(!this.tabbables.includes(t.relatedTarget)){this.open=false}};this.keyDownListener=t=>{if(t.defaultPrevented){return}switch(t.key){case"ArrowDown":this.tabInPopup(1);break;case"ArrowUp":this.tabInPopup(-1);break;case"Escape":this.escape();break;case" ":if(t.target instanceof HTMLElement){t.target.click()}break;default:return}t.preventDefault()};this.escape=()=>{this.button.focus();this.open=false};this.open=false;this.dropdownAlign="left";this.dropdownOptionsOffset=2;this.checkable=false;this.boundary=undefined;this.strategy="auto"}watchPosition(){if(!this.popper){return}this.popper.setOptions({placement:this.dropdownAlign==="right"?"bottom-end":"bottom-start"})}watchOptionsOffset(){var t;(t=this.popper)===null||t===void 0?void 0:t.setOptions({modifiers:[{name:"offset",options:{offset:[0,this.dropdownOptionsOffset]}}]})}watchStrategy(){this.setStrategy()}setStrategy(){if(!this.popper){return}if(this.strategy==="absolute"||this.strategy==="fixed"){this.popper.setOptions({strategy:this.strategy});return}let t=this.host;const s=this.boundary||document;while(t&&t.parentNode!==s){t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentElement;if(t!==null&&n(t)){this.popper.setOptions({strategy:"fixed"});return}}this.popper.setOptions({strategy:"absolute"})}get button(){const t=this.host.querySelector('button[slot="toggle"]');if(!(t instanceof HTMLButtonElement)){throw new ReferenceError("Mandatory toggle button not found")}return t}get tabbables(){return o(this.host).filter((t=>t!==this.button))}componentDidLoad(){this.button.setAttribute("aria-haspopup","menu");this.button.setAttribute("aria-expanded","false");if(!this.button.id){this.button.id=h()}this.button.addEventListener("click",(()=>{this.open=!this.open}));const t=this.host.querySelector(".dso-dropdown-options");if(!t){throw new ReferenceError("Dropdown options not found")}t.setAttribute("role","menu");t.setAttribute("aria-labelledby",this.button.id);for(const t of Array.from(this.host.getElementsByTagName("ul"))){t.setAttribute("role","group");for(const s of Array.from(t.getElementsByTagName("li"))){s.setAttribute("role","none")}}if(this.popper){return}const s=this.host.querySelector(".dso-dropdown-options");if(!(s instanceof HTMLElement)){throw new Error("dropdown options element is not instanceof HTMLElement")}this.popper=r(this.button,s,{placement:this.dropdownAlign==="right"?"bottom-end":"bottom-start",modifiers:[{name:"offset",options:{offset:[0,this.dropdownOptionsOffset]}},{name:"preventOverflow",options:{boundary:this.boundary?document.querySelector(this.boundary):null},enabled:this.boundary!==undefined}]})}componentDidRender(){var t;this.setStrategy();if(this.open){(t=this.popper)===null||t===void 0?void 0:t.update()}for(const t of Array.from(this.host.getElementsByTagName("li"))){for(const s of o(t)){s.setAttribute("role",this.checkable?"menuitemradio":"menuitem");if(this.checkable){s.setAttribute("aria-checked",t.classList.contains("dso-checked").toString())}}}this.host.removeEventListener("keydown",this.keyDownListener);this.button.setAttribute("aria-expanded",this.open?"true":"false");if(this.open){this.host.addEventListener("keydown",this.keyDownListener)}this.tabbables.forEach((t=>{t.removeEventListener("click",this.escape);if(this.open){t.addEventListener("click",this.escape)}}))}disconnectedCallback(){var t;(t=this.popper)===null||t===void 0?void 0:t.destroy()}getActiveElement(t=document){const s=t.activeElement;if(!s){return null}if(s.shadowRoot){return this.getActiveElement(s.shadowRoot)}return s}tabInPopup(t){var s;const i=this.tabbables;const e=i.findIndex((t=>t===this.getActiveElement()));let o=e+t;if(o>=i.length){o=0}else if(o<0){o=i.length-1}(s=i[o])===null||s===void 0?void 0:s.focus()}render(){return s(i,{onFocusout:this.focusOutListener,tabindex:this.open?"-1":undefined},s("slot",{name:"toggle"}),s("div",{hidden:!this.open},s("slot",null)))}get host(){return e(this)}static get watchers(){return{dropdownAlign:["watchPosition"],dropdownOptionsOffset:["watchOptionsOffset"],strategy:["watchStrategy"]}}};f.style=a;export{f as dso_dropdown_menu};
2
- //# sourceMappingURL=p-41066f6f.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["dropdownMenuCss","DropdownMenu","this","focusOutListener","event","tabbables","includes","relatedTarget","open","keyDownListener","defaultPrevented","key","tabInPopup","escape","target","HTMLElement","click","preventDefault","button","focus","watchPosition","popper","setOptions","placement","dropdownAlign","watchOptionsOffset","_a","modifiers","name","options","offset","dropdownOptionsOffset","watchStrategy","setStrategy","strategy","element","host","boundary","document","parentNode","ShadowRoot","parentElement","hasOverflow","querySelector","HTMLButtonElement","ReferenceError","tabbable","filter","e","componentDidLoad","setAttribute","id","uuidv4","addEventListener","ul","Array","from","getElementsByTagName","li","dropdownOptionsElement","Error","createPopper","enabled","undefined","componentDidRender","update","tab","checkable","classList","contains","toString","removeEventListener","forEach","focusableElement","disconnectedCallback","destroy","getActiveElement","root","activeEl","activeElement","shadowRoot","direction","tabs","currentIndex","findIndex","nextIndex","length","render","h","Host","onFocusout","tabindex","hidden"],"sources":["src/components/dropdown-menu/dropdown-menu.scss?tag=dso-dropdown-menu&encapsulation=shadow","src/components/dropdown-menu/dropdown-menu.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/components/dropdown-menu\";\r\n\r\n:host(:focus) {\r\n outline: none;\r\n}\r\n\r\n:host {\r\n @include dropdown-menu.root();\r\n}\r\n","import { createPopper, Instance as PopperInstance } from \"@popperjs/core\";\r\nimport { h, Component, Element, Host, Prop, Watch } from \"@stencil/core\";\r\nimport { FocusableElement, tabbable } from \"tabbable\";\r\nimport { v4 as uuidv4 } from \"uuid\";\r\n\r\nimport { hasOverflow } from \"../../utils/has-overflow\";\r\n\r\n@Component({\r\n tag: \"dso-dropdown-menu\",\r\n styleUrl: \"dropdown-menu.scss\",\r\n shadow: true,\r\n})\r\nexport class DropdownMenu {\r\n /**\r\n * Whether the menu is open or closed.\r\n * This attribute is reflected and mutable.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n open = false;\r\n\r\n /**\r\n * Alignment of the dropdown\r\n */\r\n @Prop()\r\n dropdownAlign: \"left\" | \"right\" = \"left\";\r\n\r\n /**\r\n * Space between button and dropdown options\r\n */\r\n @Prop()\r\n dropdownOptionsOffset = 2;\r\n\r\n /**\r\n * Whether the menu is checkable.\r\n */\r\n @Prop()\r\n checkable = false;\r\n\r\n /**\r\n * Selector for the element the dropdown options should not be overflowing.\r\n */\r\n @Prop()\r\n boundary?: string;\r\n\r\n /**\r\n * Set position strategy of dropdown options\r\n */\r\n @Prop()\r\n strategy: \"auto\" | \"absolute\" | \"fixed\" = \"auto\";\r\n\r\n @Watch(\"dropdownAlign\")\r\n watchPosition() {\r\n if (!this.popper) {\r\n return;\r\n }\r\n\r\n this.popper.setOptions({\r\n placement: this.dropdownAlign === \"right\" ? \"bottom-end\" : \"bottom-start\",\r\n });\r\n }\r\n\r\n @Watch(\"dropdownOptionsOffset\")\r\n watchOptionsOffset() {\r\n this.popper?.setOptions({\r\n modifiers: [\r\n {\r\n name: \"offset\",\r\n options: {\r\n offset: [0, this.dropdownOptionsOffset],\r\n },\r\n },\r\n ],\r\n });\r\n }\r\n\r\n @Watch(\"strategy\")\r\n watchStrategy() {\r\n this.setStrategy();\r\n }\r\n\r\n private setStrategy() {\r\n if (!this.popper) {\r\n return;\r\n }\r\n\r\n if (this.strategy === \"absolute\" || this.strategy === \"fixed\") {\r\n this.popper.setOptions({\r\n strategy: this.strategy,\r\n });\r\n\r\n return;\r\n }\r\n\r\n let element: Element | null = this.host;\r\n\r\n const boundary = this.boundary || document;\r\n\r\n while (element && element.parentNode !== boundary) {\r\n element = element.parentNode instanceof ShadowRoot ? element.parentNode.host : element.parentElement;\r\n if (element !== null && hasOverflow(element)) {\r\n this.popper.setOptions({\r\n strategy: \"fixed\",\r\n });\r\n\r\n return;\r\n }\r\n }\r\n\r\n this.popper.setOptions({\r\n strategy: \"absolute\",\r\n });\r\n }\r\n\r\n @Element()\r\n host!: HTMLDsoDropdownMenuElement;\r\n\r\n private popper: PopperInstance | undefined;\r\n\r\n get button(): HTMLButtonElement {\r\n const button = this.host.querySelector('button[slot=\"toggle\"]');\r\n\r\n if (!(button instanceof HTMLButtonElement)) {\r\n throw new ReferenceError(\"Mandatory toggle button not found\");\r\n }\r\n\r\n return button;\r\n }\r\n\r\n get tabbables(): FocusableElement[] {\r\n return tabbable(this.host).filter((e) => e !== this.button);\r\n }\r\n\r\n componentDidLoad() {\r\n this.button.setAttribute(\"aria-haspopup\", \"menu\");\r\n this.button.setAttribute(\"aria-expanded\", \"false\");\r\n if (!this.button.id) {\r\n this.button.id = uuidv4();\r\n }\r\n\r\n this.button.addEventListener(\"click\", () => {\r\n this.open = !this.open;\r\n });\r\n\r\n const options = this.host.querySelector(\".dso-dropdown-options\");\r\n if (!options) {\r\n throw new ReferenceError(\"Dropdown options not found\");\r\n }\r\n\r\n options.setAttribute(\"role\", \"menu\");\r\n options.setAttribute(\"aria-labelledby\", this.button.id);\r\n\r\n for (const ul of Array.from(this.host.getElementsByTagName(\"ul\"))) {\r\n ul.setAttribute(\"role\", \"group\");\r\n for (const li of Array.from(ul.getElementsByTagName(\"li\"))) {\r\n li.setAttribute(\"role\", \"none\");\r\n }\r\n }\r\n\r\n if (this.popper) {\r\n return;\r\n }\r\n\r\n const dropdownOptionsElement = this.host.querySelector(\".dso-dropdown-options\");\r\n\r\n if (!(dropdownOptionsElement instanceof HTMLElement)) {\r\n throw new Error(\"dropdown options element is not instanceof HTMLElement\");\r\n }\r\n\r\n this.popper = createPopper(this.button, dropdownOptionsElement, {\r\n placement: this.dropdownAlign === \"right\" ? \"bottom-end\" : \"bottom-start\",\r\n modifiers: [\r\n {\r\n name: \"offset\",\r\n options: {\r\n offset: [0, this.dropdownOptionsOffset],\r\n },\r\n },\r\n {\r\n name: \"preventOverflow\",\r\n options: {\r\n boundary: this.boundary ? document.querySelector(this.boundary) : null,\r\n },\r\n enabled: this.boundary !== undefined,\r\n },\r\n ],\r\n });\r\n }\r\n\r\n componentDidRender() {\r\n this.setStrategy();\r\n if (this.open) {\r\n this.popper?.update();\r\n }\r\n\r\n for (const li of Array.from(this.host.getElementsByTagName(\"li\"))) {\r\n for (const tab of tabbable(li)) {\r\n tab.setAttribute(\"role\", this.checkable ? \"menuitemradio\" : \"menuitem\");\r\n\r\n if (this.checkable) {\r\n tab.setAttribute(\"aria-checked\", li.classList.contains(\"dso-checked\").toString());\r\n }\r\n }\r\n }\r\n\r\n this.host.removeEventListener(\"keydown\", this.keyDownListener);\r\n this.button.setAttribute(\"aria-expanded\", this.open ? \"true\" : \"false\");\r\n if (this.open) {\r\n this.host.addEventListener(\"keydown\", this.keyDownListener);\r\n }\r\n\r\n this.tabbables.forEach((focusableElement) => {\r\n focusableElement.removeEventListener(\"click\", this.escape);\r\n if (this.open) {\r\n focusableElement.addEventListener(\"click\", this.escape);\r\n }\r\n });\r\n }\r\n\r\n disconnectedCallback() {\r\n this.popper?.destroy();\r\n }\r\n\r\n private focusOutListener = (event: FocusEvent) => {\r\n if (!this.tabbables.includes(event.relatedTarget as FocusableElement)) {\r\n this.open = false;\r\n }\r\n };\r\n\r\n private keyDownListener = (event: KeyboardEvent) => {\r\n if (event.defaultPrevented) {\r\n return;\r\n }\r\n\r\n switch (event.key) {\r\n case \"ArrowDown\":\r\n this.tabInPopup(1);\r\n break;\r\n\r\n case \"ArrowUp\":\r\n this.tabInPopup(-1);\r\n break;\r\n\r\n case \"Escape\":\r\n this.escape();\r\n break;\r\n\r\n case \" \":\r\n if (event.target instanceof HTMLElement) {\r\n event.target.click();\r\n }\r\n\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n event.preventDefault();\r\n };\r\n\r\n private getActiveElement(root: Document | ShadowRoot = document): Element | null {\r\n const activeEl = root.activeElement;\r\n\r\n if (!activeEl) {\r\n return null;\r\n }\r\n\r\n if (activeEl.shadowRoot) {\r\n return this.getActiveElement(activeEl.shadowRoot);\r\n }\r\n\r\n return activeEl;\r\n }\r\n\r\n private tabInPopup(direction: number) {\r\n const tabs = this.tabbables;\r\n const currentIndex = tabs.findIndex((e) => e === this.getActiveElement());\r\n\r\n let nextIndex = currentIndex + direction;\r\n if (nextIndex >= tabs.length) {\r\n nextIndex = 0;\r\n } else if (nextIndex < 0) {\r\n nextIndex = tabs.length - 1;\r\n }\r\n\r\n tabs[nextIndex]?.focus();\r\n }\r\n\r\n private escape = () => {\r\n this.button.focus();\r\n this.open = false;\r\n };\r\n\r\n render() {\r\n return (\r\n <Host onFocusout={this.focusOutListener} tabindex={this.open ? \"-1\" : undefined}>\r\n <slot name=\"toggle\" />\r\n <div hidden={!this.open}>\r\n <slot />\r\n </div>\r\n </Host>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as i,h as t,F as o}from"./p-3ca5b6f4.js";const n=class{constructor(o){i(this,o);this.DocumentComponent=({path:i})=>{var o;const n=i.at(-1);const{DocumentComponent:e}=this;return t("ul",null,(o=n===null||n===void 0?void 0:n._embedded)===null||o===void 0?void 0:o.ontwerpTekststructuurDocumentComponenten.map(((o,n)=>t("li",{key:o.documentTechnischId},t("dso-document-component",{annotated:n%3===2,bevatOntwerpInformatie:!!o.bevatOntwerpInformatie,filtered:this.isOpen(o)?this.isFiltered(o):this.hasFilteredChildren(o),genesteOntwerpInformatie:this.hasNestedDraft(o),gereserveerd:o.gereserveerd,heading:"h2",inhoud:o.inhoud,label:o.labelXml,openAnnotation:this.isOpenedAnnotation(o),notApplicable:this.isNotApplicable(o)||i.some((i=>this.isNotApplicable(i))),nummer:o.nummerXml,onDsoAnnotationToggle:()=>this.handleAnnotationToggle(o),onDsoOpenToggle:i=>this.handleOpenToggle(i,o),open:this.isOpen(o),opschrift:o.opschrift,type:o.type,vervallen:o.vervallen,wijzigactie:o.wijzigactie},this.isOpenedAnnotation(o)&&t("dso-annotation-output",{slot:"annotation",open:true,identifier:"test",onDsoClose:()=>this.handleAnnotationToggle(o)},t("span",{slot:"title"},"Annotaties"),t("dso-slide-toggle",{checked:this.isCheckedSlideToggle(o),onDsoActiveChange:()=>this.handleSelectableChange(o)},"Delfzijl")),this.showContent(o)&&t(e,{path:[...i,o]}))))))};this.response=undefined;this.open=[];this.openedAnnotation=[];this.filtered=[];this.notApplicable=[];this.activeAnnotationSelectables=[]}fixData(i){var t;return Object.assign(Object.assign({},i),{nummerXml:i.type==="LID"&&!((t=i.nummerXml)===null||t===void 0?void 0:t.startsWith("<?"))?`<?xml version="1.0" encoding="UTF-8" standalone="yes"?><Nummer xmlns="https://standaarden.overheid.nl/stop/imop/tekst/">${i.nummerXml}</Nummer>`:i.nummerXml,_embedded:i._embedded&&{ontwerpTekststructuurDocumentComponenten:i._embedded.ontwerpTekststructuurDocumentComponenten.map((i=>this.fixData(i)))}})}componentDidLoad(){fetch("ozon-response.json").then((i=>i.json())).then((i=>{var t,o,n,e,s,l,d,h,v,r,u,a,p,c,m,g,f,D,b,C;this.response=this.fixData(i);this.filtered=[(s=(e=(n=(o=(t=this.response)===null||t===void 0?void 0:t._embedded)===null||o===void 0?void 0:o.ontwerpTekststructuurDocumentComponenten[0]._embedded)===null||n===void 0?void 0:n.ontwerpTekststructuurDocumentComponenten[10]._embedded)===null||e===void 0?void 0:e.ontwerpTekststructuurDocumentComponenten[2]._embedded)===null||s===void 0?void 0:s.ontwerpTekststructuurDocumentComponenten[0],(v=(h=(d=(l=this.response)===null||l===void 0?void 0:l._embedded)===null||d===void 0?void 0:d.ontwerpTekststructuurDocumentComponenten[0]._embedded)===null||h===void 0?void 0:h.ontwerpTekststructuurDocumentComponenten[10]._embedded)===null||v===void 0?void 0:v.ontwerpTekststructuurDocumentComponenten[0]];this.notApplicable=[(a=(u=(r=this.response)===null||r===void 0?void 0:r._embedded)===null||u===void 0?void 0:u.ontwerpTekststructuurDocumentComponenten[0]._embedded)===null||a===void 0?void 0:a.ontwerpTekststructuurDocumentComponenten[4],(g=(m=(c=(p=this.response)===null||p===void 0?void 0:p._embedded)===null||c===void 0?void 0:c.ontwerpTekststructuurDocumentComponenten[0]._embedded)===null||m===void 0?void 0:m.ontwerpTekststructuurDocumentComponenten[4]._embedded)===null||g===void 0?void 0:g.ontwerpTekststructuurDocumentComponenten[0],(C=(b=(D=(f=this.response)===null||f===void 0?void 0:f._embedded)===null||D===void 0?void 0:D.ontwerpTekststructuurDocumentComponenten[0]._embedded)===null||b===void 0?void 0:b.ontwerpTekststructuurDocumentComponenten[9]._embedded)===null||C===void 0?void 0:C.ontwerpTekststructuurDocumentComponenten[1]]}))}handleOpenToggle(i,t){const o=this.isOpen(t);if(i.detail.open&&!o){this.open=[...this.open,t]}else if(!i.detail.open&&o){this.open=this.open.filter((i=>i!==t))}}handleAnnotationToggle(i){this.openedAnnotation=this.isOpenedAnnotation(i)?this.openedAnnotation.filter((t=>t!==i)):[...this.openedAnnotation,i];if(!this.isOpen(i)){this.open=[...this.open,i]}}handleSelectableChange(i){this.activeAnnotationSelectables=this.isCheckedSlideToggle(i)?this.activeAnnotationSelectables.filter((t=>t!==i)):[...this.activeAnnotationSelectables,i]}isCheckedSlideToggle(i){return this.activeAnnotationSelectables.includes(i)}hasFilteredChildren(i){var t,o;return this.filtered.includes(i)||((o=(t=i._embedded)===null||t===void 0?void 0:t.ontwerpTekststructuurDocumentComponenten.some((i=>this.hasFilteredChildren(i))))!==null&&o!==void 0?o:false)}isOpen(i){return i.type==="LID"||this.open.includes(i)}isOpenedAnnotation(i){return this.openedAnnotation.includes(i)}isFiltered(i){return this.filtered.includes(i)}isNotApplicable(i){return this.notApplicable.includes(i)}hasNestedDraft(i){var t,o;return(o=(t=i._embedded)===null||t===void 0?void 0:t.ontwerpTekststructuurDocumentComponenten.some((i=>!!i.bevatOntwerpInformatie||this.hasNestedDraft(i))))!==null&&o!==void 0?o:false}showContent(i){var t;return this.isOpen(i)&&!!(((t=i._embedded)===null||t===void 0?void 0:t.ontwerpTekststructuurDocumentComponenten.length)||i.inhoud)}render(){var i,n;const{DocumentComponent:e}=this;return t("div",{style:{margin:"0 8px",borderLeft:"1px dashed pink",borderRight:"1px dashed pink"}},t("dso-responsive-element",{class:"dso-document-components"},(n=(i=this.response)===null||i===void 0?void 0:i._embedded)===null||n===void 0?void 0:n.ontwerpTekststructuurDocumentComponenten.map((i=>t(o,null,t(e,{path:[i]}),t("hr",null))))))}};export{n as dsot_document_component_demo};
2
- //# sourceMappingURL=p-42ba2c81.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["DocumentComponentDemo","this","DocumentComponent","path","documentComponent","at","h","_a","_embedded","ontwerpTekststructuurDocumentComponenten","map","d","i","key","documentTechnischId","annotated","bevatOntwerpInformatie","filtered","isOpen","isFiltered","hasFilteredChildren","genesteOntwerpInformatie","hasNestedDraft","gereserveerd","heading","inhoud","label","labelXml","openAnnotation","isOpenedAnnotation","notApplicable","isNotApplicable","some","p","nummer","nummerXml","onDsoAnnotationToggle","handleAnnotationToggle","onDsoOpenToggle","e","handleOpenToggle","open","opschrift","type","vervallen","wijzigactie","slot","identifier","onDsoClose","checked","isCheckedSlideToggle","onDsoActiveChange","handleSelectableChange","showContent","fixData","Object","assign","startsWith","componentDidLoad","fetch","then","response","json","result","_e","_d","_c","_b","_j","_h","_g","_f","_m","_l","_k","_r","_q","_p","_o","_v","_u","_t","_s","detail","filter","openedAnnotation","activeAnnotationSelectables","includes","length","render","style","margin","borderLeft","borderRight","class","Fragment"],"sources":["src/components/document-component/document-component.demo.tsx"],"sourcesContent":["import { h, Component, ComponentInterface, Fragment, State } from \"@stencil/core\";\r\nimport { DocumentComponentOpenToggleEvent, DsoDocumentComponentCustomEvent } from \"../../components\";\r\n\r\ninterface DocumentComponent {\r\n documentTechnischId: string;\r\n type?: string;\r\n labelXml?: string;\r\n nummerXml?: string;\r\n opschrift?: string;\r\n inhoud?: string;\r\n gereserveerd?: boolean;\r\n vervallen?: boolean;\r\n bevatOntwerpInformatie?: boolean;\r\n wijzigactie?: \"voegtoe\" | \"verwijder\" | \"nieuweContainer\" | \"verwijderContainer\";\r\n _embedded?: {\r\n ontwerpTekststructuurDocumentComponenten: DocumentComponent[];\r\n };\r\n}\r\n\r\n@Component({\r\n tag: \"dsot-document-component-demo\",\r\n})\r\nexport class DocumentComponentDemo implements ComponentInterface {\r\n @State()\r\n response?: DocumentComponent;\r\n\r\n @State()\r\n open: DocumentComponent[] = [];\r\n\r\n @State()\r\n openedAnnotation: DocumentComponent[] = [];\r\n\r\n @State()\r\n filtered: DocumentComponent[] = [];\r\n\r\n @State()\r\n notApplicable: DocumentComponent[] = [];\r\n\r\n @State()\r\n activeAnnotationSelectables: DocumentComponent[] = [];\r\n\r\n private fixData(documentComponent: DocumentComponent): DocumentComponent {\r\n return {\r\n ...documentComponent,\r\n nummerXml:\r\n documentComponent.type === \"LID\" && !documentComponent.nummerXml?.startsWith(\"<?\")\r\n ? `<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><Nummer xmlns=\"https://standaarden.overheid.nl/stop/imop/tekst/\">${documentComponent.nummerXml}</Nummer>`\r\n : documentComponent.nummerXml,\r\n _embedded: documentComponent._embedded && {\r\n ontwerpTekststructuurDocumentComponenten:\r\n documentComponent._embedded.ontwerpTekststructuurDocumentComponenten.map((d) => this.fixData(d)),\r\n },\r\n };\r\n }\r\n\r\n componentDidLoad(): void {\r\n fetch(\"ozon-response.json\")\r\n .then((response) => response.json())\r\n .then((result) => {\r\n this.response = this.fixData(result);\r\n\r\n /* eslint-disable @typescript-eslint/no-non-null-asserted-optional-chain */\r\n this.filtered = [\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[10]!._embedded?.ontwerpTekststructuurDocumentComponenten[2]!\r\n ._embedded?.ontwerpTekststructuurDocumentComponenten[0]!,\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[10]!._embedded?.ontwerpTekststructuurDocumentComponenten[0]!,\r\n ];\r\n\r\n this.notApplicable = [\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[4]!,\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[4]!._embedded?.ontwerpTekststructuurDocumentComponenten[0]!,\r\n this.response?._embedded?.ontwerpTekststructuurDocumentComponenten[0]!._embedded\r\n ?.ontwerpTekststructuurDocumentComponenten[9]!._embedded?.ontwerpTekststructuurDocumentComponenten[1]!,\r\n ];\r\n /* eslint-enable @typescript-eslint/no-non-null-asserted-optional-chain */\r\n });\r\n }\r\n\r\n private handleOpenToggle(\r\n e: DsoDocumentComponentCustomEvent<DocumentComponentOpenToggleEvent>,\r\n documentComponent: DocumentComponent\r\n ) {\r\n const isOpen = this.isOpen(documentComponent);\r\n\r\n if (e.detail.open && !isOpen) {\r\n this.open = [...this.open, documentComponent];\r\n } else if (!e.detail.open && isOpen) {\r\n this.open = this.open.filter((d) => d !== documentComponent);\r\n }\r\n }\r\n\r\n private handleAnnotationToggle(documentComponent: DocumentComponent) {\r\n this.openedAnnotation = this.isOpenedAnnotation(documentComponent)\r\n ? this.openedAnnotation.filter((d) => d !== documentComponent)\r\n : [...this.openedAnnotation, documentComponent];\r\n\r\n if (!this.isOpen(documentComponent)) {\r\n this.open = [...this.open, documentComponent];\r\n }\r\n }\r\n\r\n private handleSelectableChange(documentComponent: DocumentComponent) {\r\n this.activeAnnotationSelectables = this.isCheckedSlideToggle(documentComponent)\r\n ? this.activeAnnotationSelectables.filter((d) => d !== documentComponent)\r\n : [...this.activeAnnotationSelectables, documentComponent];\r\n }\r\n\r\n private isCheckedSlideToggle(documentComponent: DocumentComponent) {\r\n return this.activeAnnotationSelectables.includes(documentComponent);\r\n }\r\n\r\n private hasFilteredChildren(documentComponent: DocumentComponent): boolean {\r\n return (\r\n this.filtered.includes(documentComponent) ||\r\n (documentComponent._embedded?.ontwerpTekststructuurDocumentComponenten.some((d) => this.hasFilteredChildren(d)) ??\r\n false)\r\n );\r\n }\r\n\r\n private isOpen(documentComponent: DocumentComponent): boolean {\r\n return documentComponent.type === \"LID\" || this.open.includes(documentComponent);\r\n }\r\n\r\n private isOpenedAnnotation(documentComponent: DocumentComponent): boolean {\r\n return this.openedAnnotation.includes(documentComponent);\r\n }\r\n\r\n private isFiltered(documentComponent: DocumentComponent): boolean {\r\n return this.filtered.includes(documentComponent);\r\n }\r\n\r\n private isNotApplicable(documentComponent: DocumentComponent): boolean {\r\n return this.notApplicable.includes(documentComponent);\r\n }\r\n\r\n private hasNestedDraft(documentComponent: DocumentComponent): boolean {\r\n return (\r\n documentComponent._embedded?.ontwerpTekststructuurDocumentComponenten.some(\r\n (d) => !!d.bevatOntwerpInformatie || this.hasNestedDraft(d)\r\n ) ?? false\r\n );\r\n }\r\n\r\n private showContent(documentComponent: DocumentComponent): boolean {\r\n return (\r\n this.isOpen(documentComponent) &&\r\n !!(documentComponent._embedded?.ontwerpTekststructuurDocumentComponenten.length || documentComponent.inhoud)\r\n );\r\n }\r\n\r\n private DocumentComponent = ({ path }: DocumentComponentProps) => {\r\n const documentComponent = path.at(-1);\r\n\r\n const { DocumentComponent } = this;\r\n\r\n return (\r\n <ul>\r\n {documentComponent?._embedded?.ontwerpTekststructuurDocumentComponenten.map((d, i) => (\r\n <li key={d.documentTechnischId}>\r\n <dso-document-component\r\n annotated={i % 3 === 2}\r\n bevatOntwerpInformatie={!!d.bevatOntwerpInformatie}\r\n filtered={this.isOpen(d) ? this.isFiltered(d) : this.hasFilteredChildren(d)}\r\n genesteOntwerpInformatie={this.hasNestedDraft(d)}\r\n gereserveerd={d.gereserveerd}\r\n heading=\"h2\"\r\n inhoud={d.inhoud}\r\n label={d.labelXml}\r\n openAnnotation={this.isOpenedAnnotation(d)}\r\n notApplicable={this.isNotApplicable(d) || path.some((p) => this.isNotApplicable(p))}\r\n nummer={d.nummerXml}\r\n onDsoAnnotationToggle={() => this.handleAnnotationToggle(d)}\r\n onDsoOpenToggle={(e) => this.handleOpenToggle(e, d)}\r\n open={this.isOpen(d)}\r\n opschrift={d.opschrift}\r\n type={d.type}\r\n vervallen={d.vervallen}\r\n wijzigactie={d.wijzigactie}\r\n >\r\n {this.isOpenedAnnotation(d) && (\r\n <dso-annotation-output\r\n slot=\"annotation\"\r\n open\r\n identifier=\"test\"\r\n onDsoClose={() => this.handleAnnotationToggle(d)}\r\n >\r\n <span slot=\"title\">Annotaties</span>\r\n <dso-slide-toggle\r\n checked={this.isCheckedSlideToggle(d)}\r\n onDsoActiveChange={() => this.handleSelectableChange(d)}\r\n >\r\n Delfzijl\r\n </dso-slide-toggle>\r\n </dso-annotation-output>\r\n )}\r\n {this.showContent(d) && <DocumentComponent path={[...path, d]} />}\r\n </dso-document-component>\r\n </li>\r\n ))}\r\n </ul>\r\n );\r\n };\r\n\r\n render() {\r\n const { DocumentComponent } = this;\r\n\r\n return (\r\n <div style={{ margin: \"0 8px\", borderLeft: \"1px dashed pink\", borderRight: \"1px dashed pink\" }}>\r\n <dso-responsive-element class=\"dso-document-components\">\r\n {this.response?._embedded?.ontwerpTekststructuurDocumentComponenten.map((d) => (\r\n <>\r\n <DocumentComponent path={[d]} />\r\n <hr />\r\n </>\r\n ))}\r\n </dso-responsive-element>\r\n </div>\r\n );\r\n }\r\n}\r\n\r\ninterface DocumentComponentProps {\r\n path: DocumentComponent[];\r\n}\r\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,c as e,h as i,F as o,a as n}from"./p-3ca5b6f4.js";import{v as s}from"./p-5d7f4ff2.js";const a="*,*::after,*::before{box-sizing:border-box}dso-annotation-output{display:block}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}.dso-annotation-header{align-items:center;background-color:#f2f2f2;clear:both;display:flex;margin-bottom:2px;margin-top:8px;padding-left:16px;padding-right:8px;padding-top:8px;padding-bottom:8px}.dso-annotation-header>[slot=title]{color:#000;font-size:1.25rem;margin-bottom:0;margin-top:0}.dso-annotation-header>:nth-child(2){margin-left:auto}dso-responsive-element[small] .dso-annotation-header,dso-responsive-element[medium] .dso-annotation-header{display:grid;row-gap:8px}dso-responsive-element[small] .dso-annotation-header *[slot=title],dso-responsive-element[medium] .dso-annotation-header *[slot=title]{grid-row:1;grid-column:1}dso-responsive-element[small] .dso-annotation-header *[slot=addons],dso-responsive-element[medium] .dso-annotation-header *[slot=addons]{grid-row:2;grid-column:1;margin-left:initial}dso-responsive-element[small] .dso-annotation-header .dso-annotation-close-button,dso-responsive-element[medium] .dso-annotation-header .dso-annotation-close-button{grid-row:1;grid-column:2;margin-left:8px;text-align:end}.dso-annotation-content{background-color:#f2f2f2;padding-left:16px;padding-right:8px;padding-top:8px;padding-bottom:8px}.dso-annotation-close-button{margin-left:32px}.dso-annotation-prefix{font-style:italic}";const d=class{constructor(i){t(this,i);this.dsoClose=e(this,"dsoClose",3);this.toggleHandler=t=>{this.dsoClose.emit({originalEvent:t})};this.identifier=undefined;this.annotationPrefix=undefined;this.open=false}render(){return i("dso-responsive-element",null,i("dso-expandable",{id:this.identifier,open:this.open},this.annotationPrefix&&i("span",{class:"dso-annotation-prefix"},this.annotationPrefix),i("div",{class:"dso-annotation-header"},i("slot",{name:"title"}),i("slot",{name:"addons"}),i("button",{type:"button",class:"dso-tertiary dso-annotation-close-button",onClick:this.toggleHandler},i("dso-icon",{icon:"times"}),i("span",{class:"sr-only"},"Toelichting sluiten"))),i("div",{class:"dso-annotation-content"},i("slot",null))))}};d.style=a;var r=undefined&&undefined.__rest||function(t,e){var i={};for(var o in t)if(Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0)i[o]=t[o];if(t!=null&&typeof Object.getOwnPropertySymbols==="function")for(var n=0,o=Object.getOwnPropertySymbols(t);n<o.length;n++){if(e.indexOf(o[n])<0&&Object.prototype.propertyIsEnumerable.call(t,o[n]))i[o[n]]=t[o[n]]}return i};const l=(t,e)=>{var{heading:o}=t,n=r(t,["heading"]);switch(o){default:case"h2":return i("h2",Object.assign({},n),e);case"h3":return i("h3",Object.assign({},n),e);case"h4":return i("h4",Object.assign({},n),e);case"h5":return i("h5",Object.assign({},n),e);case"h6":return i("h6",Object.assign({},n),e)}};const h='ins{background-color:#e4f1d4;box-shadow:0 1px 3px 1px rgba(0, 0, 0, 0.25);color:#000;text-decoration:none}.not-applicable{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);border:0}:host{display:block}:host-context(dso-responsive-element:not([small])) .content{padding-left:24px}:host([type=LID]:where([wijzigactie=verwijder],[wijzigactie=voegtoe])){padding-left:8px;margin-right:8px}:host(:where([wijzigactie=verwijder],[wijzigactie=voegtoe])),:host(:where([wijzigactie=nieuweContainer],[wijzigactie=verwijderContainer])) .heading-container{padding-top:4px;padding-bottom:4px}:host([wijzigactie=verwijderContainer]) .heading-container,:host(:where([wijzigactie=verwijder])){background-color:#f5d8dc;color:#000;text-decoration:line-through}:host([wijzigactie=nieuweContainer]) .heading-container,:host([wijzigactie=voegtoe]){background-color:#e4f1d4;box-shadow:0 1px 3px 1px rgba(0, 0, 0, 0.25);color:#000}:host([filtered]){position:relative}:host([filtered])::before{content:"";position:absolute;display:block;width:3px;top:0;bottom:0;background-color:#6ca4d9}:host([open]) .heading-container{margin-bottom:8px}.toggle-button{border:0;padding:0;background:0;color:#275937;cursor:pointer}.heading-element{align-items:start;display:flex;font-size:1rem;color:#275937;margin:0}.heading-element>*{vertical-align:middle}:host([type=LID]) .heading-container{margin-bottom:0}:host([type=LID]) .wijzigactie-label{margin-left:0}:host([type=LID]) .heading-element{color:#000}:host([type=LID]) .content{padding-left:0 !important}:host(:not([type=LID])) .heading-element{cursor:pointer}:host(:not([type=LID])) .heading-element:hover,:host(:not([type=LID])) .heading-element:focus{color:var(--link-hover-color);text-decoration:underline}:host(:not([type=LID])) .heading-element:active{text-decoration:none}.addons{margin-inline-start:auto;display:flex;gap:8px}.heading{display:flex;gap:8px}:host([type=ARTIKEL]) .heading-element,:host([type=ARTIKEL]) .toggle-button{color:#000}.wijzigactie-label{font-style:italic;margin-left:24px}.heading-container{padding-right:8px}';const c={nieuweContainer:"Toegevoegd",verwijder:"Verwijderd",verwijderContainer:"Verwijderd",voegtoe:"Toegevoegd"};const g=class{constructor(i){t(this,i);this.dsoOpenToggle=e(this,"dsoOpenToggle",3);this.dsoAnnotationToggle=e(this,"dsoAnnotationToggle",3);this.handleHeadingClick=t=>{if(this.type!=="LID"){this.dsoOpenToggle.emit({originalEvent:t,open:!this.open})}};this.heading="h2";this.label=undefined;this.nummer=undefined;this.opschrift=undefined;this.inhoud=undefined;this.open=false;this.filtered=false;this.notApplicable=false;this.genesteOntwerpInformatie=false;this.bevatOntwerpInformatie=false;this.annotated=false;this.gereserveerd=false;this.vervallen=false;this.openAnnotation=false;this.alternativeTitle=undefined;this.type=undefined;this.wijzigactie=undefined}get wijzigactieLabel(){return this.wijzigactie&&c[this.wijzigactie]}suffix(){if(this.vervallen){return"vervallen"}if(this.gereserveerd){return"gereserveerd"}return undefined}render(){const t=this.suffix();return i(o,null,i("div",{class:"heading-container"},this.wijzigactie&&i("span",{class:"wijzigactie-label"},this.wijzigactieLabel,":"),i("div",{class:"heading"},i(l,{heading:this.heading,class:"heading-element",onClick:this.handleHeadingClick},this.type!=="LID"&&i("button",{type:"button",class:"toggle-button"},i("dso-icon",{icon:this.open?"chevron-down":"chevron-right"})),i("div",{class:"title"},this.notApplicable&&i("span",{class:"not-applicable"},"Niet van toepassing:"),this.label||this.nummer||this.opschrift?i(o,null,this.label&&i(o,null," ",i("dso-ozon-content",{content:this.label,inline:true})),this.nummer&&i(o,null," ",i("dso-ozon-content",{content:this.nummer,inline:true})),this.opschrift&&i(o,null," ",i("dso-ozon-content",{content:this.opschrift,inline:true}))):this.alternativeTitle,t&&i("span",null," - [",t,"]"))),this.genesteOntwerpInformatie&&!this.open&&!this.bevatOntwerpInformatie&&i(o,null,i("dso-badge",{status:"warning","aria-describedby":"nested-draft-description"},"!"),i("dso-tooltip",{id:"nested-draft-description"},"Er is een ontwerp beschikbaar.")),(this.bevatOntwerpInformatie||this.annotated)&&i("div",{class:"addons"},this.bevatOntwerpInformatie&&i("dso-label",{status:"warning",compact:true},"Ontwerp"),this.annotated&&i("dso-annotation-button",{identifier:"expandable",open:this.openAnnotation,onDsoClick:t=>this.dsoAnnotationToggle.emit({originalEvent:t})})))),i("slot",{name:"annotation"}),this.open&&(this.inhoud||this.gereserveerd)&&i("div",{class:"content"},this.gereserveerd&&i("dso-alert",{status:"info"},"Dit onderdeel is gereserveerd voor toekomstige toevoeging."),i("dso-ozon-content",{content:this.inhoud})),i("slot",null))}};g.style=h;const p="button.dso-slider{border:0;padding:0}button.dso-slider:focus-visible{outline:2px solid #323232;outline-offset:1px}button.dso-slider svg rect{fill:#999;transition:fill 0.25s}button.dso-slider svg circle{transition:transform 260ms cubic-bezier(0.4, 0, 0.2, 1);transform:translateX(10px);fill:#fff}button.dso-slider[aria-checked=true] svg rect{fill:#275937}button.dso-slider[aria-checked=true] svg circle{transform:translateX(30px);fill:#fff}button.dso-slider[disabled] svg rect{fill:#ccc}button.dso-slider[disabled] svg circle{fill:#e5e5e5}button.dso-slider[disabled][aria-checked=true] svg rect{fill:#a8bcaf}button.dso-slider[disabled][aria-checked=true] svg circle{fill:#e5e5e5}.dso-slider{border-radius:24px;display:inline-flex}.dso-slider:hover{cursor:pointer}";const u=class{constructor(i){t(this,i);this.dsoActiveChange=e(this,"dsoActiveChange",7);this.checked=false;this.disabled=false;this.accessibleLabel=undefined;this.labelledbyId=undefined;this.hasVisibleLabel=undefined;this.identifier=s()}handleSwitch(t){this.dsoActiveChange.emit({originalEvent:t,checked:!this.checked})}componentWillLoad(){this.hasVisibleLabel=this.host.querySelector("*")!==null}render(){return i(o,null,i("button",Object.assign({id:this.identifier,role:"switch",class:"dso-slider","aria-checked":""+this.checked,disabled:this.disabled,onClick:t=>this.handleSwitch(t)},this.accessibleLabel?{"aria-label":this.accessibleLabel}:{},this.labelledbyId?{"aria-labelledby":this.labelledbyId}:{}),i("svg",{xmlns:"http://www.w3.org/2000/svg",width:"40",height:"20",viewBox:"0 0 40 20"},i("g",{fill:"none","fill-rule":"evenodd"},i("rect",{width:"40",height:"20",fill:"currentColor",rx:"10"}),i("circle",{cy:"10",r:"8",fill:"currentColor"})))),this.hasVisibleLabel&&i("label",{htmlFor:this.identifier},i("slot",null)))}get host(){return n(this)}};u.style=p;export{d as dso_annotation_output,g as dso_document_component,u as dso_slide_toggle};
2
- //# sourceMappingURL=p-48d76094.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["annotationOutputCss","AnnotationOutput","this","toggleHandler","e","dsoClose","emit","originalEvent","render","h","id","identifier","open","annotationPrefix","class","name","type","onClick","icon","Heading","_a","children","heading","props","__rest","Object","assign","documentComponentCss","wijzigActieLabels","nieuweContainer","verwijder","verwijderContainer","voegtoe","DocumentComponent","handleHeadingClick","dsoOpenToggle","wijzigactieLabel","wijzigactie","suffix","vervallen","gereserveerd","undefined","Fragment","notApplicable","label","nummer","opschrift","content","inline","genesteOntwerpInformatie","bevatOntwerpInformatie","status","annotated","compact","openAnnotation","onDsoClick","dsoAnnotationToggle","inhoud","slideToggleCss","SlideToggle","v4","handleSwitch","dsoActiveChange","checked","componentWillLoad","hasVisibleLabel","host","querySelector","role","disabled","accessibleLabel","labelledbyId","xmlns","width","height","viewBox","fill","rx","cy","r","htmlFor"],"sources":["src/components/annotation-output/annotation-output.scss?tag=dso-annotation-output","src/components/annotation-output/annotation-output.tsx","src/components/document-component/document-component-heading.tsx","src/components/document-component/document-component.scss?tag=dso-document-component&encapsulation=shadow","src/components/document-component/document-component.tsx","src/components/slide-toggle/slide-toggle.scss?tag=dso-slide-toggle","src/components/slide-toggle/slide-toggle.tsx"],"sourcesContent":["@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n\r\n@include utilities.box-sizing();\r\n\r\ndso-annotation-output {\r\n display: block;\r\n}\r\n\r\n.sr-only {\r\n @include utilities.sr-only();\r\n}\r\n\r\n.dso-annotation-header {\r\n align-items: center;\r\n background-color: colors.$grijs-5;\r\n clear: both;\r\n display: flex;\r\n margin-bottom: 2px;\r\n margin-top: units.$u1;\r\n padding-left: units.$u2;\r\n padding-right: units.$u1;\r\n padding-top: units.$u1;\r\n padding-bottom: units.$u1;\r\n\r\n > [slot=\"title\"] {\r\n color: colors.$zwart;\r\n font-size: 1.25rem;\r\n margin-bottom: 0;\r\n margin-top: 0;\r\n }\r\n\r\n > :nth-child(2) {\r\n margin-left: auto;\r\n }\r\n}\r\n\r\ndso-responsive-element[small],\r\ndso-responsive-element[medium] {\r\n .dso-annotation-header {\r\n display: grid;\r\n row-gap: units.$u1;\r\n\r\n *[slot=\"title\"] {\r\n grid-row: 1;\r\n grid-column: 1;\r\n }\r\n\r\n *[slot=\"addons\"] {\r\n grid-row: 2;\r\n grid-column: 1;\r\n margin-left: initial;\r\n }\r\n\r\n .dso-annotation-close-button {\r\n grid-row: 1;\r\n grid-column: 2;\r\n margin-left: units.$u1;\r\n text-align: end;\r\n }\r\n }\r\n}\r\n\r\n.dso-annotation-content {\r\n background-color: colors.$grijs-5;\r\n padding-left: units.$u2;\r\n padding-right: units.$u1;\r\n padding-top: units.$u1;\r\n padding-bottom: units.$u1;\r\n}\r\n\r\n.dso-annotation-close-button {\r\n margin-left: units.$u4;\r\n}\r\n\r\n.dso-annotation-prefix {\r\n font-style: italic;\r\n}\r\n","import { h, Component, ComponentInterface, Event, EventEmitter, Prop } from \"@stencil/core\";\r\n\r\nexport interface AnnotationOutputCloseEvent {\r\n originalEvent: Event;\r\n}\r\n\r\n@Component({\r\n tag: \"dso-annotation-output\",\r\n styleUrl: \"annotation-output.scss\",\r\n // No shadowdom for a11y reasons (aria-controls being set inside another component)\r\n})\r\nexport class AnnotationOutput implements ComponentInterface {\r\n /**\r\n * The annotation-button that toggles this component should have the same identifier.\r\n */\r\n @Prop({ reflect: true })\r\n identifier!: string;\r\n\r\n /**\r\n * This text will be displayed above the annotation-output when opened\r\n */\r\n @Prop({ reflect: true })\r\n annotationPrefix?: string;\r\n\r\n /**\r\n * Set to `true` to show content.\r\n */\r\n @Prop({ reflect: true })\r\n open = false;\r\n\r\n /**\r\n * This event is emitted when the user activates the Annotation Button.\r\n */\r\n @Event({ bubbles: false })\r\n dsoClose!: EventEmitter<AnnotationOutputCloseEvent>;\r\n\r\n private toggleHandler = (e: MouseEvent) => {\r\n this.dsoClose.emit({ originalEvent: e });\r\n };\r\n\r\n render() {\r\n return (\r\n <dso-responsive-element>\r\n <dso-expandable id={this.identifier} open={this.open}>\r\n {this.annotationPrefix && <span class=\"dso-annotation-prefix\">{this.annotationPrefix}</span>}\r\n <div class=\"dso-annotation-header\">\r\n <slot name=\"title\" />\r\n <slot name=\"addons\" />\r\n <button type=\"button\" class=\"dso-tertiary dso-annotation-close-button\" onClick={this.toggleHandler}>\r\n <dso-icon icon=\"times\"></dso-icon>\r\n <span class=\"sr-only\">Toelichting sluiten</span>\r\n </button>\r\n </div>\r\n <div class=\"dso-annotation-content\">\r\n <slot />\r\n </div>\r\n </dso-expandable>\r\n </dso-responsive-element>\r\n );\r\n }\r\n}\r\n","import { h, FunctionalComponent } from \"@stencil/core\";\r\nimport { JSXBase } from \"@stencil/core/internal\";\r\n\r\ninterface DocumentComponentHeadingProps {\r\n heading: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\";\r\n}\r\n\r\nexport const Heading: FunctionalComponent<\r\n DocumentComponentHeadingProps & JSXBase.HTMLAttributes<HTMLHeadingElement>\r\n> = ({ heading, ...props }, children) => {\r\n switch (heading) {\r\n default:\r\n case \"h2\":\r\n return <h2 {...props}>{children}</h2>;\r\n case \"h3\":\r\n return <h3 {...props}>{children}</h3>;\r\n case \"h4\":\r\n return <h4 {...props}>{children}</h4>;\r\n case \"h5\":\r\n return <h5 {...props}>{children}</h5>;\r\n case \"h6\":\r\n return <h6 {...props}>{children}</h6>;\r\n }\r\n};\r\n","@use \"~dso-toolkit/src/utilities\";\r\n\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n\r\n@use \"~dso-toolkit/src/components/anchor\";\r\n@use \"~dso-toolkit/src/components/button\";\r\n@use \"~dso-toolkit/src/components/document-component\";\r\n@use \"~dso-toolkit/src/components/insert/insert\";\r\n\r\n.not-applicable {\r\n @include utilities.sr-only();\r\n}\r\n\r\n:host {\r\n display: block;\r\n}\r\n\r\n:host-context(dso-responsive-element:not([small])) {\r\n .content {\r\n padding-left: document-component.$indent;\r\n }\r\n}\r\n\r\n:host([type=\"LID\"]:where([wijzigactie=\"verwijder\"], [wijzigactie=\"voegtoe\"])) {\r\n padding-left: units.$u1;\r\n margin-right: units.$u1;\r\n}\r\n\r\n:host(:where([wijzigactie=\"verwijder\"], [wijzigactie=\"voegtoe\"])),\r\n:host(:where([wijzigactie=\"nieuweContainer\"], [wijzigactie=\"verwijderContainer\"])) .heading-container {\r\n padding-top: units.$u1 * 0.5;\r\n padding-bottom: units.$u1 * 0.5;\r\n}\r\n\r\n:host([wijzigactie=\"verwijderContainer\"]) .heading-container,\r\n:host(:where([wijzigactie=\"verwijder\"])) {\r\n background-color: colors.$danger-bg-color;\r\n color: colors.$zwart;\r\n text-decoration: line-through;\r\n}\r\n\r\n:host([wijzigactie=\"nieuweContainer\"]) .heading-container,\r\n:host([wijzigactie=\"voegtoe\"]) {\r\n background-color: colors.$success-bg-color;\r\n box-shadow: insert.$insert-box-shadow;\r\n color: colors.$zwart;\r\n}\r\n\r\n:host([filtered]) {\r\n position: relative;\r\n\r\n &::before {\r\n content: \"\";\r\n position: absolute;\r\n display: block;\r\n width: 3px;\r\n top: 0;\r\n bottom: 0;\r\n background-color: colors.$lichtblauw;\r\n }\r\n}\r\n\r\n:host([open]) {\r\n .heading-container {\r\n margin-bottom: units.$u1;\r\n }\r\n}\r\n\r\n.toggle-button {\r\n border: 0;\r\n padding: 0;\r\n background: 0;\r\n color: colors.$bosgroen;\r\n cursor: pointer;\r\n}\r\n\r\n.heading-element {\r\n align-items: start;\r\n display: flex;\r\n font-size: 1rem;\r\n color: colors.$bosgroen;\r\n margin: 0;\r\n\r\n > * {\r\n vertical-align: middle;\r\n }\r\n}\r\n\r\n:host([type=\"LID\"]) {\r\n .heading-container {\r\n margin-bottom: 0;\r\n }\r\n\r\n .wijzigactie-label {\r\n margin-left: 0;\r\n }\r\n\r\n .heading-element {\r\n color: colors.$zwart;\r\n }\r\n\r\n .content {\r\n padding-left: 0 !important;\r\n }\r\n}\r\n\r\n:host(:not([type=\"LID\"])) {\r\n .heading-element {\r\n cursor: pointer;\r\n\r\n @include anchor.pseudo();\r\n }\r\n}\r\n\r\n.addons {\r\n margin-inline-start: auto;\r\n display: flex;\r\n gap: units.$u1;\r\n}\r\n\r\n.heading {\r\n display: flex;\r\n gap: units.$u1;\r\n}\r\n\r\n:host([type=\"ARTIKEL\"]) {\r\n .heading-element,\r\n .toggle-button {\r\n color: colors.$zwart;\r\n }\r\n}\r\n\r\n.wijzigactie-label {\r\n font-style: italic;\r\n margin-left: document-component.$indent;\r\n}\r\n\r\n.heading-container {\r\n padding-right: units.$u1;\r\n}\r\n","import { h, Component, ComponentInterface, Event, EventEmitter, Fragment, Prop } from \"@stencil/core\";\r\nimport {\r\n DocumentComponentOpenToggleEvent,\r\n DocumentComponentToggleAnnotationEvent,\r\n DocumentComponentWijzigactie,\r\n} from \"./document-component.types\";\r\nimport { Heading } from \"./document-component-heading\";\r\n\r\nconst wijzigActieLabels: { [wijzigActie in DocumentComponentWijzigactie]: string } = {\r\n nieuweContainer: \"Toegevoegd\",\r\n verwijder: \"Verwijderd\",\r\n verwijderContainer: \"Verwijderd\",\r\n voegtoe: \"Toegevoegd\",\r\n};\r\n\r\n@Component({\r\n tag: \"dso-document-component\",\r\n styleUrl: \"document-component.scss\",\r\n shadow: true,\r\n})\r\nexport class DocumentComponent implements ComponentInterface {\r\n /**\r\n * The heading element to use.\r\n */\r\n @Prop()\r\n heading: \"h2\" | \"h3\" | \"h4\" | \"h5\" | \"h6\" = \"h2\";\r\n\r\n /**\r\n * The Label XML.\r\n */\r\n @Prop()\r\n label?: string;\r\n\r\n /**\r\n * The Nummer XML.\r\n */\r\n @Prop()\r\n nummer?: string;\r\n\r\n /**\r\n * The Opschrift XML.\r\n */\r\n @Prop()\r\n opschrift?: string;\r\n\r\n /**\r\n * The Inhoud XML.\r\n */\r\n @Prop()\r\n inhoud?: string;\r\n\r\n /**\r\n * This boolean attribute indicates whether the children are visible.\r\n */\r\n @Prop({ reflect: true })\r\n open = false;\r\n\r\n /**\r\n * Marks this Document Component as belonging to an active filter.\r\n */\r\n @Prop({ reflect: true })\r\n filtered = false;\r\n\r\n /**\r\n * Marks this Document Component as not-applicable.\r\n */\r\n @Prop({ reflect: true })\r\n notApplicable = false;\r\n\r\n /**\r\n * When a child Document Component has a status \"Draft\".\r\n */\r\n @Prop({ reflect: true })\r\n genesteOntwerpInformatie = false;\r\n\r\n /**\r\n * Marks as draft.\r\n */\r\n @Prop({ reflect: true })\r\n bevatOntwerpInformatie = false;\r\n\r\n /**\r\n * Enables annotations.\r\n */\r\n @Prop({ reflect: true })\r\n annotated = false;\r\n\r\n /**\r\n * Marks Document Component as reserved.\r\n */\r\n @Prop()\r\n gereserveerd = false;\r\n\r\n /**\r\n * Marks the Document Component as expired.\r\n */\r\n @Prop()\r\n vervallen = false;\r\n\r\n /**\r\n * When the Annotation Output is opened, set this to true.\r\n */\r\n @Prop()\r\n openAnnotation = false;\r\n\r\n /**\r\n * An alternative title to show when there is nothing to create a title.\r\n */\r\n @Prop()\r\n alternativeTitle?: string;\r\n\r\n /**\r\n * Type of Document Component.\r\n */\r\n @Prop({ reflect: true })\r\n type?: string;\r\n\r\n /**\r\n * The wijzigactie as in STOP.\r\n */\r\n @Prop({ reflect: true })\r\n wijzigactie?: DocumentComponentWijzigactie;\r\n\r\n /**\r\n * Emitted when the user activates the toggle.\r\n */\r\n @Event({ bubbles: false })\r\n dsoOpenToggle!: EventEmitter<DocumentComponentOpenToggleEvent>;\r\n\r\n /**\r\n * Emitted when the user activates the annotation button.\r\n */\r\n @Event({ bubbles: false })\r\n dsoAnnotationToggle!: EventEmitter<DocumentComponentToggleAnnotationEvent>;\r\n\r\n private get wijzigactieLabel(): string | undefined {\r\n return this.wijzigactie && wijzigActieLabels[this.wijzigactie];\r\n }\r\n\r\n private handleHeadingClick = (e: MouseEvent) => {\r\n if (this.type !== \"LID\") {\r\n this.dsoOpenToggle.emit({ originalEvent: e, open: !this.open });\r\n }\r\n };\r\n\r\n private suffix(): string | undefined {\r\n if (this.vervallen) {\r\n return \"vervallen\";\r\n }\r\n\r\n if (this.gereserveerd) {\r\n return \"gereserveerd\";\r\n }\r\n\r\n return undefined;\r\n }\r\n\r\n render() {\r\n const suffix = this.suffix();\r\n\r\n return (\r\n <>\r\n <div class=\"heading-container\">\r\n {this.wijzigactie && <span class=\"wijzigactie-label\">{this.wijzigactieLabel}:</span>}\r\n <div class=\"heading\">\r\n <Heading heading={this.heading} class=\"heading-element\" onClick={this.handleHeadingClick}>\r\n {this.type !== \"LID\" && (\r\n <button type=\"button\" class=\"toggle-button\">\r\n <dso-icon icon={this.open ? \"chevron-down\" : \"chevron-right\"}></dso-icon>\r\n </button>\r\n )}\r\n <div class=\"title\">\r\n {this.notApplicable && <span class=\"not-applicable\">Niet van toepassing:</span>}\r\n {this.label || this.nummer || this.opschrift ? (\r\n <>\r\n {this.label && (\r\n <>\r\n {\" \"}\r\n <dso-ozon-content content={this.label} inline></dso-ozon-content>\r\n </>\r\n )}\r\n {this.nummer && (\r\n <>\r\n {\" \"}\r\n <dso-ozon-content content={this.nummer} inline></dso-ozon-content>\r\n </>\r\n )}\r\n {this.opschrift && (\r\n <>\r\n {\" \"}\r\n <dso-ozon-content content={this.opschrift} inline></dso-ozon-content>\r\n </>\r\n )}\r\n </>\r\n ) : (\r\n this.alternativeTitle\r\n )}\r\n {suffix && <span> - [{suffix}]</span>}\r\n </div>\r\n </Heading>\r\n {this.genesteOntwerpInformatie && !this.open && !this.bevatOntwerpInformatie && (\r\n <>\r\n <dso-badge status=\"warning\" aria-describedby=\"nested-draft-description\">\r\n !\r\n </dso-badge>\r\n <dso-tooltip id=\"nested-draft-description\">Er is een ontwerp beschikbaar.</dso-tooltip>\r\n </>\r\n )}\r\n {(this.bevatOntwerpInformatie || this.annotated) && (\r\n <div class=\"addons\">\r\n {this.bevatOntwerpInformatie && (\r\n <dso-label status=\"warning\" compact>\r\n Ontwerp\r\n </dso-label>\r\n )}\r\n {this.annotated && (\r\n <dso-annotation-button\r\n identifier=\"expandable\"\r\n open={this.openAnnotation}\r\n onDsoClick={(e) => this.dsoAnnotationToggle.emit({ originalEvent: e })}\r\n ></dso-annotation-button>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n <slot name=\"annotation\" />\r\n {this.open && (this.inhoud || this.gereserveerd) && (\r\n <div class=\"content\">\r\n {this.gereserveerd && (\r\n <dso-alert status=\"info\">Dit onderdeel is gereserveerd voor toekomstige toevoeging.</dso-alert>\r\n )}\r\n <dso-ozon-content content={this.inhoud}></dso-ozon-content>\r\n </div>\r\n )}\r\n <slot />\r\n </>\r\n );\r\n }\r\n}\r\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/colors\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n\r\nbutton.dso-slider {\r\n border: 0;\r\n padding: 0;\r\n\r\n &:focus-visible {\r\n outline: 2px solid colors.$grijs-80;\r\n outline-offset: 1px;\r\n }\r\n\r\n svg {\r\n rect {\r\n fill: colors.$grijs-40;\r\n transition: fill 0.25s;\r\n }\r\n\r\n circle {\r\n @include utilities.transition(transform);\r\n\r\n transform: translateX(10px);\r\n fill: colors.$wit;\r\n }\r\n }\r\n\r\n &[aria-checked=\"true\"] svg {\r\n rect {\r\n fill: colors.$bosgroen;\r\n }\r\n\r\n circle {\r\n transform: translateX(30px);\r\n fill: colors.$wit;\r\n }\r\n }\r\n\r\n &[disabled] svg {\r\n rect {\r\n fill: colors.$grijs-20;\r\n }\r\n\r\n circle {\r\n fill: colors.$grijs-10;\r\n }\r\n }\r\n\r\n &[disabled][aria-checked=\"true\"] svg {\r\n rect {\r\n fill: colors.$bosgroen-40;\r\n }\r\n\r\n circle {\r\n fill: colors.$grijs-10;\r\n }\r\n }\r\n}\r\n\r\n.dso-slider {\r\n border-radius: units.$u3;\r\n display: inline-flex;\r\n\r\n &:hover {\r\n cursor: pointer;\r\n }\r\n}\r\n","import { h, Component, ComponentInterface, Event, Fragment, Prop, EventEmitter, Element, State } from \"@stencil/core\";\r\nimport { v4 } from \"uuid\";\r\nimport { SlideToggleActiveEvent } from \"./slide-toggle.interfaces\";\r\n\r\n@Component({\r\n tag: \"dso-slide-toggle\",\r\n styleUrl: \"slide-toggle.scss\",\r\n shadow: false,\r\n})\r\nexport class SlideToggle implements ComponentInterface {\r\n @Element()\r\n private host!: HTMLDsoSlideToggleElement;\r\n\r\n /**\r\n * Set to true if Slide Toggle is checked.\r\n */\r\n @Prop()\r\n checked = false;\r\n\r\n /**\r\n * Disables the Slide Toggle, preventing it from checking/unchecking and therefor not emitting any events.\r\n */\r\n @Prop()\r\n disabled = false;\r\n\r\n /**\r\n * When provided the `<button>` will be labelled with `aria-label`. For a visible label provide a `<span>` inside the component.\r\n */\r\n @Prop()\r\n accessibleLabel?: string;\r\n\r\n /**\r\n * Provide the `id` of the element that labels this element. this property sets the `aria-labelledby` on the switch button.\r\n */\r\n @Prop()\r\n labelledbyId?: string;\r\n\r\n @State()\r\n hasVisibleLabel?: boolean;\r\n\r\n /**\r\n * Provide an `id` for the `<button>`. Useful for placing your to place your own `<label for=\"id\">`.\r\n */\r\n @Prop()\r\n identifier = v4();\r\n\r\n /**\r\n * Emitted when user checks or unchecks the Slide Toggle.\r\n */\r\n @Event()\r\n dsoActiveChange!: EventEmitter<SlideToggleActiveEvent>;\r\n\r\n private handleSwitch(e: Event): void {\r\n this.dsoActiveChange.emit({\r\n originalEvent: e,\r\n checked: !this.checked,\r\n });\r\n }\r\n\r\n componentWillLoad(): void {\r\n this.hasVisibleLabel = this.host.querySelector(\"*\") !== null;\r\n }\r\n\r\n render() {\r\n return (\r\n <>\r\n <button\r\n id={this.identifier}\r\n role=\"switch\"\r\n class=\"dso-slider\"\r\n aria-checked={\"\" + this.checked}\r\n disabled={this.disabled}\r\n onClick={(e) => this.handleSwitch(e)}\r\n {...(this.accessibleLabel ? { \"aria-label\": this.accessibleLabel } : {})}\r\n {...(this.labelledbyId ? { \"aria-labelledby\": this.labelledbyId } : {})}\r\n >\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"40\" height=\"20\" viewBox=\"0 0 40 20\">\r\n <g fill=\"none\" fill-rule=\"evenodd\">\r\n <rect width=\"40\" height=\"20\" fill=\"currentColor\" rx=\"10\" />\r\n <circle cy=\"10\" r=\"8\" fill=\"currentColor\" />\r\n </g>\r\n </svg>\r\n </button>\r\n {this.hasVisibleLabel && (\r\n <label htmlFor={this.identifier}>\r\n <slot />\r\n </label>\r\n )}\r\n </>\r\n );\r\n }\r\n}\r\n"],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import{r as t,h as e,H as o,a as i}from"./p-3ca5b6f4.js";import{d as r,h as a,c as n,b as s}from"./p-fd7891ef.js";import{c as p}from"./p-c87b4d11.js";import{d as l}from"./p-1805f5b0.js";var d={name:"maxSize",enabled:true,phase:"main",requiresIfExists:["offset","preventOverflow","flip"],fn:function t(e){var o=e.state,i=e.name,a=e.options;var n=r(o,a);var s=o.modifiersData.preventOverflow||{x:0,y:0},p=s.x,l=s.y;var d=o.rects.popper,h=d.width,c=d.height;var f=o.placement.split("-"),m=f[0];var u=m==="left"?"left":"right";var w=m==="top"?"top":"bottom";o.modifiersData[i]={width:h-n[u]-p,height:c-n[w]-l}}};const h=":host(.hidden){visibility:hidden}:host-context(dso-toggletip) *[data-popper-placement=top] .tooltip-arrow{margin-left:3px}:host-context(dso-toggletip) *[data-popper-placement=right] .tooltip-arrow{margin-top:0}:host-context(dso-toggletip) *[data-popper-placement=bottom] .tooltip-arrow{margin-left:3px}:host-context(dso-toggletip) *[data-popper-placement=left]{margin-right:-8px !important}:host-context(dso-toggletip) *[data-popper-placement=left] .tooltip-arrow{margin-top:0}*,*::after,*::before{box-sizing:border-box}.tooltip{font-family:Asap, sans-serif;font-style:normal;font-weight:400;line-height:1.5;line-break:auto;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;--link-color:#39870c;display:block;filter:drop-shadow(0 2px 8px rgba(0, 0, 0, 0.4));font-size:14px;opacity:0;position:absolute;transition:opacity 0.15s linear;z-index:410}.tooltip.in{opacity:1}.tooltip .tooltip-inner{background-color:#fff;border-radius:4px;color:#191919;display:inline-block;font-size:1rem;max-width:640px;padding:8px 16px;position:relative}.tooltip .tooltip-inner.dso-small{max-width:320px}.tooltip .tooltip-arrow{border-color:transparent;border-style:solid;height:0;width:0}.tooltip[data-popper-placement=top]{margin-top:-3px;padding:6px 0}.tooltip[data-popper-placement=top] .tooltip-arrow{border-top-color:#fff;border-width:6px 6px 0;bottom:0}.tooltip[data-popper-placement=top] .tooltip-arrow{margin-left:-3px}.tooltip[data-popper-placement=right]{margin-left:3px;padding:0 6px}.tooltip[data-popper-placement=right] .tooltip-arrow{border-right-color:#fff;border-width:6px 6px 6px 0;left:0}.tooltip[data-popper-placement=right] .tooltip-arrow{margin-top:-3px}.tooltip[data-popper-placement=bottom]{margin-top:3px;padding:6px 0}.tooltip[data-popper-placement=bottom] .tooltip-arrow{border-bottom-color:#fff;border-width:0 6px 6px;top:0}.tooltip[data-popper-placement=bottom] .tooltip-arrow{margin-left:-3px}.tooltip[data-popper-placement=left]{margin-left:-3px;padding:0 6px}.tooltip[data-popper-placement=left] .tooltip-arrow{border-left-color:#fff;border-width:6px 0 6px 6px;right:0}.tooltip[data-popper-placement=left] .tooltip-arrow{margin-top:-3px}";var c=undefined&&undefined.__classPrivateFieldGet||function(t,e,o,i){if(o==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof e==="function"?t!==e||!i:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return o==="m"?i:o==="a"?i.call(t):i?i.value:e.get(t)};var f=undefined&&undefined.__classPrivateFieldSet||function(t,e,o,i,r){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!r)throw new TypeError("Private accessor was defined without a setter");if(typeof e==="function"?t!==e||!r:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?r.call(t,o):r?r.value=o:e.set(t,o),o};var m;const u=150;const w={name:"applyMaxSize",enabled:true,phase:s,requires:["maxSize"],fn({state:t}){let{width:e}=t.modifiersData.maxSize;if(e<160){e=160}t.styles.popper=Object.assign(Object.assign({},t.styles.popper),{maxWidth:`${e}px`})}};const g=class{constructor(e){t(this,e);this.callbacks={activate:()=>this.active=true,deactivate:()=>this.active=false};this.onMouseLeave=()=>{var t;if(!this.element.matches(":hover")&&!((t=this.target)===null||t===void 0?void 0:t.matches(":hover"))){this.callbacks.deactivate()}};this.keyDownListener=t=>{if(t.key==="Escape"){this.deactivate()}};this.deactivatePopper=l((()=>{var t;this.hidden=true;(t=this.popper)===null||t===void 0?void 0:t.destroy();this.popper=undefined}),u);m.set(this,void 0);this.descriptive=false;this.position="top";this.strategy="auto";this.noArrow=false;this.stateless=undefined;this.small=undefined;this.active=false;this.hidden=true}async activate(){this.active=true}async deactivate(){this.active=false}watchPosition(){if(!this.popper){return}this.popper.setOptions({placement:this.position})}watchStrategy(){this.setStrategy()}setStrategy(){if(!this.popper){return}if(this.strategy==="absolute"||this.strategy==="fixed"){this.popper.setOptions({strategy:this.strategy});return}let t=this.element;while(t&&t.parentNode!==document){t=t.parentNode instanceof ShadowRoot?t.parentNode.host:t.parentElement;if(t!==null&&a(t)){this.popper.setOptions({strategy:"fixed"});return}}this.popper.setOptions({strategy:"absolute"})}watchActive(){if(this.active){this.activatePopper();if(!this.stateless){setTimeout((()=>{var t;(t=this.popper)===null||t===void 0?void 0:t.setOptions({modifiers:[{name:"eventListeners",enabled:true}]});document.addEventListener("keydown",this.keyDownListener)}))}}else{document.removeEventListener("keydown",this.keyDownListener);this.deactivatePopper()}}listenClick(t){t.stopPropagation()}componentDidLoad(){var t;const e=(t=this.element.shadowRoot)===null||t===void 0?void 0:t.querySelector(".tooltip");if(!(e instanceof HTMLElement)){throw new Error("tooltip element is not instanceof HTMLElement")}if(!this.stateless&&this.target){this.target.addEventListener("mouseenter",this.callbacks.activate);[this.element,this.target].forEach((t=>t.addEventListener("mouseleave",this.onMouseLeave)));this.target.addEventListener("focus",this.callbacks.activate);this.target.addEventListener("blur",this.callbacks.deactivate)}}disconnectedCallback(){var t;(t=this.popper)===null||t===void 0?void 0:t.destroy();if(!this.stateless&&this.target){this.target.removeEventListener("mouseenter",this.callbacks.activate);[this.element,this.target].forEach((t=>t.removeEventListener("mouseleave",this.onMouseLeave)));this.target.removeEventListener("focus",this.callbacks.activate);this.target.removeEventListener("blur",this.callbacks.deactivate)}this.target=undefined}componentDidRender(){var t;if(this.active){(t=this.popper)===null||t===void 0?void 0:t.update()}}render(){return e(o,{class:{hidden:this.hidden},role:"tooltip",onClick:this.listenClick},e("div",{class:p("tooltip",{in:this.active})},!this.noArrow&&e("div",{"data-popper-arrow":true,class:"tooltip-arrow"}),e("div",{"aria-hidden":!this.descriptive||undefined,class:p("tooltip-inner",{"dso-small":this.small})},e("slot",null))))}activatePopper(){var t;this.hidden=false;if(this.popper){return}const e=(t=this.element.shadowRoot)===null||t===void 0?void 0:t.querySelector(".tooltip");if(this.target&&e instanceof HTMLElement){this.popper=n(this.target,e,{placement:this.position,modifiers:[d,w,{name:"eventListeners",enabled:false}]});this.setStrategy()}}get target(){var t;return(t=c(this,m,"f"))!==null&&t!==void 0?t:this.initializeTarget()}set target(t){f(this,m,t,"f")}initializeTarget(){const t=this.element.id;if(!t){console.warn("Unable to find reference tooltip has no [id] attribute.");return}const e=this.element.getRootNode();if(!(e instanceof Document||e instanceof ShadowRoot)){console.warn(`rootNode is not instance of Document or ShadowRoot`);return}const o=e.querySelector(`[aria-describedBy="${t}`);if(!o){console.warn(`Unable to find reference with aria-describedby ${t}`);return}f(this,m,o,"f");return o}get element(){return i(this)}static get watchers(){return{position:["watchPosition"],strategy:["watchStrategy"],active:["watchActive"]}}};m=new WeakMap;g.style=h;export{g as dso_tooltip};
2
- //# sourceMappingURL=p-5c5e43d3.entry.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["maxSize","name","enabled","phase","requiresIfExists","fn","_ref","state","options","overflow","detectOverflow","_ref2","modifiersData","preventOverflow","x","y","_state$rects$popper","rects","popper","width","height","_state$placement$spli","placement","split","basePlacement","widthProp","heightProp","tooltipCss","transitionDuration","applyMaxSize","beforeWrite","requires","styles","Object","assign","maxWidth","Tooltip","this","callbacks","activate","active","deactivate","onMouseLeave","element","matches","_a","target","keyDownListener","event","key","deactivatePopper","debounce","hidden","destroy","undefined","_Tooltip_target","set","watchPosition","setOptions","position","watchStrategy","setStrategy","strategy","parentNode","document","ShadowRoot","host","parentElement","hasOverflow","watchActive","activatePopper","stateless","setTimeout","modifiers","addEventListener","removeEventListener","listenClick","e","stopPropagation","componentDidLoad","tooltip","shadowRoot","querySelector","HTMLElement","Error","forEach","disconnectedCallback","componentDidRender","update","render","h","Host","class","role","onClick","clsx","in","noArrow","descriptive","small","createPopper","__classPrivateFieldGet","initializeTarget","__classPrivateFieldSet","id","console","warn","rootNode","getRootNode","Document","reference"],"sources":["../../node_modules/popper-max-size-modifier/dist/popper-max-size-modifier.esm.js","src/components/tooltip/tooltip.scss?tag=dso-tooltip&encapsulation=shadow","src/components/tooltip/tooltip.tsx"],"sourcesContent":["import { detectOverflow } from '@popperjs/core';\n\nvar maxSize = {\n name: 'maxSize',\n enabled: true,\n phase: 'main',\n requiresIfExists: ['offset', 'preventOverflow', 'flip'],\n fn: function fn(_ref) {\n var state = _ref.state,\n name = _ref.name,\n options = _ref.options;\n var overflow = detectOverflow(state, options);\n\n var _ref2 = state.modifiersData.preventOverflow || {\n x: 0,\n y: 0\n },\n x = _ref2.x,\n y = _ref2.y;\n\n var _state$rects$popper = state.rects.popper,\n width = _state$rects$popper.width,\n height = _state$rects$popper.height;\n\n var _state$placement$spli = state.placement.split('-'),\n basePlacement = _state$placement$spli[0];\n\n var widthProp = basePlacement === 'left' ? 'left' : 'right';\n var heightProp = basePlacement === 'top' ? 'top' : 'bottom';\n state.modifiersData[name] = {\n width: width - overflow[widthProp] - x,\n height: height - overflow[heightProp] - y\n };\n }\n};\n\nexport default maxSize;\n","@use \"~dso-toolkit/src/utilities\";\r\n@use \"~dso-toolkit/src/variables/units\";\r\n@use \"~dso-toolkit/src/components/tooltip\";\r\n\r\n:host(.hidden) {\r\n visibility: hidden;\r\n}\r\n\r\n:host-context(dso-toggletip) {\r\n *[data-popper-placement=\"top\"] {\r\n .tooltip-arrow {\r\n margin-left: 3px;\r\n }\r\n }\r\n\r\n *[data-popper-placement=\"right\"] {\r\n .tooltip-arrow {\r\n margin-top: 0;\r\n }\r\n }\r\n\r\n *[data-popper-placement=\"bottom\"] {\r\n .tooltip-arrow {\r\n margin-left: 3px;\r\n }\r\n }\r\n\r\n *[data-popper-placement=\"left\"] {\r\n margin-right: units.$u1 * -1 !important;\r\n\r\n .tooltip-arrow {\r\n margin-top: 0;\r\n }\r\n }\r\n}\r\n\r\n@include utilities.box-sizing();\r\n\r\n.tooltip {\r\n @include tooltip.root();\r\n\r\n &[data-popper-placement=\"top\"] {\r\n @include tooltip.arrowTop();\r\n\r\n .tooltip-arrow {\r\n margin-left: tooltip.$arrow-margin * -1;\r\n }\r\n }\r\n\r\n &[data-popper-placement=\"right\"] {\r\n @include tooltip.arrowRight();\r\n\r\n .tooltip-arrow {\r\n margin-top: tooltip.$arrow-margin * -1;\r\n }\r\n }\r\n\r\n &[data-popper-placement=\"bottom\"] {\r\n @include tooltip.arrowBottom();\r\n\r\n .tooltip-arrow {\r\n margin-left: tooltip.$arrow-margin * -1;\r\n }\r\n }\r\n\r\n &[data-popper-placement=\"left\"] {\r\n @include tooltip.arrowLeft();\r\n\r\n .tooltip-arrow {\r\n margin-top: tooltip.$arrow-margin * -1;\r\n }\r\n }\r\n}\r\n","import { beforeWrite, createPopper, Instance as PopperInstance, State as PopperState } from \"@popperjs/core\";\r\nimport maxSize from \"popper-max-size-modifier\";\r\nimport { h, Component, Element, Host, Method, Prop, State, Watch } from \"@stencil/core\";\r\nimport clsx from \"clsx\";\r\nimport { hasOverflow } from \"../../utils/has-overflow\";\r\nimport debounce from \"debounce\";\r\n\r\n// Keep const in sync with $tooltip-transition-duration in dso-toolkit/src/components/tooltip/tooltip.scss tooltip_root() mixin\r\nconst transitionDuration = 150;\r\n\r\nconst applyMaxSize = {\r\n name: \"applyMaxSize\",\r\n enabled: true,\r\n phase: beforeWrite,\r\n requires: [\"maxSize\"],\r\n fn({ state }: { state: PopperState }) {\r\n let { width } = state.modifiersData.maxSize;\r\n if (width < 160) {\r\n width = 160;\r\n }\r\n\r\n state.styles.popper = {\r\n ...state.styles.popper,\r\n maxWidth: `${width}px`,\r\n };\r\n },\r\n};\r\n\r\n@Component({\r\n tag: \"dso-tooltip\",\r\n styleUrl: \"tooltip.scss\",\r\n shadow: true,\r\n})\r\nexport class Tooltip {\r\n /**\r\n * Defines if the tooltip is descriptive. A descriptive tooltip contains a meaningful message. Tooltips that are not descriptive are hidden from screenreaders using `aria-hidden`.\r\n */\r\n @Prop({\r\n reflect: true,\r\n })\r\n descriptive = false;\r\n\r\n /**\r\n * Set position of tooltip relative to target\r\n */\r\n @Prop()\r\n position: \"top\" | \"right\" | \"bottom\" | \"left\" = \"top\";\r\n\r\n /**\r\n * Set position strategy of tooltip\r\n */\r\n @Prop()\r\n strategy: \"auto\" | \"absolute\" | \"fixed\" = \"auto\";\r\n\r\n /**\r\n * Set attribute `no-arrow` to hide the arrow\r\n */\r\n @Prop()\r\n noArrow = false;\r\n\r\n /**\r\n * Deactivates mouseover behaviour\r\n */\r\n @Prop()\r\n stateless?: boolean;\r\n\r\n /**\r\n * Defines if the tooltip has a smaller max-width\r\n */\r\n @Prop()\r\n small?: boolean;\r\n\r\n /**\r\n * Whether or not to show the tooltip. To control the tooltip add the `active` attribute or use the `activate()` and `deactivate()` instance methods.\r\n */\r\n @Prop({ reflect: true, mutable: true })\r\n active = false;\r\n\r\n /**\r\n * Activate the tooltip (Sets the `active` attribute)\r\n */\r\n @Method()\r\n async activate(): Promise<void> {\r\n this.active = true;\r\n }\r\n\r\n /**\r\n * Deactivate the tooltip (Removes the `active` attribute)\r\n */\r\n @Method()\r\n async deactivate(): Promise<void> {\r\n this.active = false;\r\n }\r\n\r\n @Watch(\"position\")\r\n watchPosition() {\r\n if (!this.popper) {\r\n return;\r\n }\r\n\r\n this.popper.setOptions({\r\n placement: this.position,\r\n });\r\n }\r\n\r\n @Watch(\"strategy\")\r\n watchStrategy() {\r\n this.setStrategy();\r\n }\r\n\r\n private setStrategy() {\r\n if (!this.popper) {\r\n return;\r\n }\r\n\r\n if (this.strategy === \"absolute\" || this.strategy === \"fixed\") {\r\n this.popper.setOptions({\r\n strategy: this.strategy,\r\n });\r\n\r\n return;\r\n }\r\n\r\n let element: Element | null = this.element;\r\n while (element && element.parentNode !== document) {\r\n element = element.parentNode instanceof ShadowRoot ? element.parentNode.host : element.parentElement;\r\n if (element !== null && hasOverflow(element)) {\r\n this.popper.setOptions({\r\n strategy: \"fixed\",\r\n });\r\n\r\n return;\r\n }\r\n }\r\n\r\n this.popper.setOptions({\r\n strategy: \"absolute\",\r\n });\r\n }\r\n\r\n @Watch(\"active\")\r\n watchActive() {\r\n if (this.active) {\r\n this.activatePopper();\r\n\r\n if (!this.stateless) {\r\n setTimeout(() => {\r\n this.popper?.setOptions({\r\n modifiers: [{ name: \"eventListeners\", enabled: true }],\r\n });\r\n document.addEventListener(\"keydown\", this.keyDownListener);\r\n });\r\n }\r\n } else {\r\n document.removeEventListener(\"keydown\", this.keyDownListener);\r\n this.deactivatePopper();\r\n }\r\n }\r\n\r\n @Element()\r\n private element!: HTMLDsoTooltipElement;\r\n\r\n private popper: PopperInstance | undefined;\r\n\r\n private callbacks: TooltipCallbacks = {\r\n activate: () => (this.active = true),\r\n deactivate: () => (this.active = false),\r\n };\r\n\r\n private onMouseLeave = () => {\r\n if (!this.element.matches(\":hover\") && !this.target?.matches(\":hover\")) {\r\n this.callbacks.deactivate();\r\n }\r\n };\r\n\r\n @State()\r\n private hidden = true;\r\n\r\n private listenClick(e: MouseEvent) {\r\n e.stopPropagation();\r\n }\r\n\r\n componentDidLoad(): void {\r\n const tooltip = this.element.shadowRoot?.querySelector(\".tooltip\");\r\n if (!(tooltip instanceof HTMLElement)) {\r\n throw new Error(\"tooltip element is not instanceof HTMLElement\");\r\n }\r\n\r\n if (!this.stateless && this.target) {\r\n this.target.addEventListener(\"mouseenter\", this.callbacks.activate);\r\n [this.element, this.target].forEach((element) => element.addEventListener(\"mouseleave\", this.onMouseLeave));\r\n this.target.addEventListener(\"focus\", this.callbacks.activate);\r\n this.target.addEventListener(\"blur\", this.callbacks.deactivate);\r\n }\r\n }\r\n\r\n disconnectedCallback(): void {\r\n this.popper?.destroy();\r\n\r\n if (!this.stateless && this.target) {\r\n this.target.removeEventListener(\"mouseenter\", this.callbacks.activate);\r\n [this.element, this.target].forEach((element) => element.removeEventListener(\"mouseleave\", this.onMouseLeave));\r\n this.target.removeEventListener(\"focus\", this.callbacks.activate);\r\n this.target.removeEventListener(\"blur\", this.callbacks.deactivate);\r\n }\r\n\r\n this.target = undefined;\r\n }\r\n\r\n componentDidRender() {\r\n if (this.active) {\r\n this.popper?.update();\r\n }\r\n }\r\n\r\n private keyDownListener = (event: KeyboardEvent) => {\r\n if (event.key === \"Escape\") {\r\n this.deactivate();\r\n }\r\n };\r\n\r\n render() {\r\n return (\r\n <Host class={{ hidden: this.hidden }} role=\"tooltip\" onClick={this.listenClick}>\r\n <div class={clsx(\"tooltip\", { in: this.active })}>\r\n {!this.noArrow && <div data-popper-arrow class=\"tooltip-arrow\"></div>}\r\n <div aria-hidden={!this.descriptive || undefined} class={clsx(\"tooltip-inner\", { \"dso-small\": this.small })}>\r\n <slot></slot>\r\n </div>\r\n </div>\r\n </Host>\r\n );\r\n }\r\n\r\n private deactivatePopper = debounce(() => {\r\n this.hidden = true;\r\n this.popper?.destroy();\r\n this.popper = undefined;\r\n }, transitionDuration);\r\n\r\n private activatePopper(): void {\r\n this.hidden = false;\r\n\r\n if (this.popper) {\r\n return;\r\n }\r\n\r\n const tooltip = this.element.shadowRoot?.querySelector(\".tooltip\");\r\n\r\n if (this.target && tooltip instanceof HTMLElement) {\r\n this.popper = createPopper(this.target, tooltip, {\r\n placement: this.position,\r\n modifiers: [maxSize, applyMaxSize, { name: \"eventListeners\", enabled: false }],\r\n });\r\n\r\n this.setStrategy();\r\n }\r\n }\r\n\r\n private get target(): HTMLElement | undefined {\r\n return this.#target ?? this.initializeTarget();\r\n }\r\n\r\n private set target(element: HTMLElement | undefined) {\r\n this.#target = element;\r\n }\r\n\r\n #target?: HTMLElement;\r\n\r\n private initializeTarget(): HTMLElement | undefined {\r\n const id = this.element.id;\r\n\r\n if (!id) {\r\n console.warn(\"Unable to find reference tooltip has no [id] attribute.\");\r\n\r\n return;\r\n }\r\n\r\n const rootNode = this.element.getRootNode();\r\n if (!(rootNode instanceof Document || rootNode instanceof ShadowRoot)) {\r\n console.warn(`rootNode is not instance of Document or ShadowRoot`);\r\n\r\n return;\r\n }\r\n\r\n const reference = rootNode.querySelector<HTMLElement>(`[aria-describedBy=\"${id}`);\r\n if (!reference) {\r\n console.warn(`Unable to find reference with aria-describedby ${id}`);\r\n\r\n return;\r\n }\r\n\r\n this.#target = reference;\r\n return reference;\r\n }\r\n}\r\n\r\ninterface TooltipCallbacks {\r\n activate: () => void;\r\n deactivate: () => void;\r\n}\r\n"],"mappings":"0LAEA,IAAIA,EAAU,CACZC,KAAM,UACNC,QAAS,KACTC,MAAO,OACPC,iBAAkB,CAAC,SAAU,kBAAmB,QAChDC,GAAI,SAASA,EAAGC,GACd,IAAIC,EAAQD,EAAKC,MACbN,EAAOK,EAAKL,KACZO,EAAUF,EAAKE,QACnB,IAAIC,EAAWC,EAAeH,EAAOC,GAErC,IAAIG,EAAQJ,EAAMK,cAAcC,iBAAmB,CACjDC,EAAG,EACHC,EAAG,GAEDD,EAAIH,EAAMG,EACVC,EAAIJ,EAAMI,EAEd,IAAIC,EAAsBT,EAAMU,MAAMC,OAClCC,EAAQH,EAAoBG,MAC5BC,EAASJ,EAAoBI,OAEjC,IAAIC,EAAwBd,EAAMe,UAAUC,MAAM,KAC9CC,EAAgBH,EAAsB,GAE1C,IAAII,EAAYD,IAAkB,OAAS,OAAS,QACpD,IAAIE,EAAaF,IAAkB,MAAQ,MAAQ,SACnDjB,EAAMK,cAAcX,GAAQ,CAC1BkB,MAAOA,EAAQV,EAASgB,GAAaX,EACrCM,OAAQA,EAASX,EAASiB,GAAcX,EAE9C,GCjCA,MAAMY,EAAa,+uE,gwBCQnB,MAAMC,EAAqB,IAE3B,MAAMC,EAAe,CACnB5B,KAAM,eACNC,QAAS,KACTC,MAAO2B,EACPC,SAAU,CAAC,WACX,EAAA1B,EAAGE,MAAEA,IACH,IAAIY,MAAEA,GAAUZ,EAAMK,cAAcZ,QACpC,GAAImB,EAAQ,IAAK,CACfA,EAAQ,G,CAGVZ,EAAMyB,OAAOd,OAAMe,OAAAC,OAAAD,OAAAC,OAAA,GACd3B,EAAMyB,OAAOd,QAAM,CACtBiB,SAAU,GAAGhB,O,SAUNiB,EAAO,M,yBAmIVC,KAAAC,UAA8B,CACpCC,SAAU,IAAOF,KAAKG,OAAS,KAC/BC,WAAY,IAAOJ,KAAKG,OAAS,OAG3BH,KAAAK,aAAe,K,MACrB,IAAKL,KAAKM,QAAQC,QAAQ,cAAcC,EAAAR,KAAKS,UAAM,MAAAD,SAAA,SAAAA,EAAED,QAAQ,WAAW,CACtEP,KAAKC,UAAUG,Y,GA4CXJ,KAAAU,gBAAmBC,IACzB,GAAIA,EAAMC,MAAQ,SAAU,CAC1BZ,KAAKI,Y,GAiBDJ,KAAAa,iBAAmBC,GAAS,K,MAClCd,KAAKe,OAAS,MACdP,EAAAR,KAAKnB,UAAM,MAAA2B,SAAA,SAAAA,EAAEQ,UACbhB,KAAKnB,OAASoC,SAAS,GACtB1B,GA6BH2B,EAAAC,IAAAnB,UAAA,G,iBAnOc,M,cAMkC,M,cAMN,O,aAMhC,M,0DAkBD,M,YAoGQ,I,CA9FjB,cAAME,GACJF,KAAKG,OAAS,I,CAOhB,gBAAMC,GACJJ,KAAKG,OAAS,K,CAIhB,aAAAiB,GACE,IAAKpB,KAAKnB,OAAQ,CAChB,M,CAGFmB,KAAKnB,OAAOwC,WAAW,CACrBpC,UAAWe,KAAKsB,U,CAKpB,aAAAC,GACEvB,KAAKwB,a,CAGC,WAAAA,GACN,IAAKxB,KAAKnB,OAAQ,CAChB,M,CAGF,GAAImB,KAAKyB,WAAa,YAAczB,KAAKyB,WAAa,QAAS,CAC7DzB,KAAKnB,OAAOwC,WAAW,CACrBI,SAAUzB,KAAKyB,WAGjB,M,CAGF,IAAInB,EAA0BN,KAAKM,QACnC,MAAOA,GAAWA,EAAQoB,aAAeC,SAAU,CACjDrB,EAAUA,EAAQoB,sBAAsBE,WAAatB,EAAQoB,WAAWG,KAAOvB,EAAQwB,cACvF,GAAIxB,IAAY,MAAQyB,EAAYzB,GAAU,CAC5CN,KAAKnB,OAAOwC,WAAW,CACrBI,SAAU,UAGZ,M,EAIJzB,KAAKnB,OAAOwC,WAAW,CACrBI,SAAU,Y,CAKd,WAAAO,GACE,GAAIhC,KAAKG,OAAQ,CACfH,KAAKiC,iBAEL,IAAKjC,KAAKkC,UAAW,CACnBC,YAAW,K,OACT3B,EAAAR,KAAKnB,UAAM,MAAA2B,SAAA,SAAAA,EAAEa,WAAW,CACtBe,UAAW,CAAC,CAAExE,KAAM,iBAAkBC,QAAS,SAEjD8D,SAASU,iBAAiB,UAAWrC,KAAKU,gBAAgB,G,MAGzD,CACLiB,SAASW,oBAAoB,UAAWtC,KAAKU,iBAC7CV,KAAKa,kB,EAuBD,WAAA0B,CAAYC,GAClBA,EAAEC,iB,CAGJ,gBAAAC,G,MACE,MAAMC,GAAUnC,EAAAR,KAAKM,QAAQsC,cAAU,MAAApC,SAAA,SAAAA,EAAEqC,cAAc,YACvD,KAAMF,aAAmBG,aAAc,CACrC,MAAM,IAAIC,MAAM,gD,CAGlB,IAAK/C,KAAKkC,WAAalC,KAAKS,OAAQ,CAClCT,KAAKS,OAAO4B,iBAAiB,aAAcrC,KAAKC,UAAUC,UAC1D,CAACF,KAAKM,QAASN,KAAKS,QAAQuC,SAAS1C,GAAYA,EAAQ+B,iBAAiB,aAAcrC,KAAKK,gBAC7FL,KAAKS,OAAO4B,iBAAiB,QAASrC,KAAKC,UAAUC,UACrDF,KAAKS,OAAO4B,iBAAiB,OAAQrC,KAAKC,UAAUG,W,EAIxD,oBAAA6C,G,OACEzC,EAAAR,KAAKnB,UAAM,MAAA2B,SAAA,SAAAA,EAAEQ,UAEb,IAAKhB,KAAKkC,WAAalC,KAAKS,OAAQ,CAClCT,KAAKS,OAAO6B,oBAAoB,aAActC,KAAKC,UAAUC,UAC7D,CAACF,KAAKM,QAASN,KAAKS,QAAQuC,SAAS1C,GAAYA,EAAQgC,oBAAoB,aAActC,KAAKK,gBAChGL,KAAKS,OAAO6B,oBAAoB,QAAStC,KAAKC,UAAUC,UACxDF,KAAKS,OAAO6B,oBAAoB,OAAQtC,KAAKC,UAAUG,W,CAGzDJ,KAAKS,OAASQ,S,CAGhB,kBAAAiC,G,MACE,GAAIlD,KAAKG,OAAQ,EACfK,EAAAR,KAAKnB,UAAM,MAAA2B,SAAA,SAAAA,EAAE2C,Q,EAUjB,MAAAC,GACE,OACEC,EAACC,EAAI,CAACC,MAAO,CAAExC,OAAQf,KAAKe,QAAUyC,KAAK,UAAUC,QAASzD,KAAKuC,aACjEc,EAAA,OAAKE,MAAOG,EAAK,UAAW,CAAEC,GAAI3D,KAAKG,WACnCH,KAAK4D,SAAWP,EAAA,gCAAuBE,MAAM,kBAC/CF,EAAA,sBAAmBrD,KAAK6D,aAAe5C,UAAWsC,MAAOG,EAAK,gBAAiB,CAAE,YAAa1D,KAAK8D,SACjGT,EAAA,e,CAaF,cAAApB,G,MACNjC,KAAKe,OAAS,MAEd,GAAIf,KAAKnB,OAAQ,CACf,M,CAGF,MAAM8D,GAAUnC,EAAAR,KAAKM,QAAQsC,cAAU,MAAApC,SAAA,SAAAA,EAAEqC,cAAc,YAEvD,GAAI7C,KAAKS,QAAUkC,aAAmBG,YAAa,CACjD9C,KAAKnB,OAASkF,EAAa/D,KAAKS,OAAQkC,EAAS,CAC/C1D,UAAWe,KAAKsB,SAChBc,UAAW,CAACzE,EAAS6B,EAAc,CAAE5B,KAAM,iBAAkBC,QAAS,UAGxEmC,KAAKwB,a,EAIT,UAAYf,G,MACV,OAAOD,EAAAwD,EAAAhE,KAAIkB,EAAA,QAAQ,MAAAV,SAAA,EAAAA,EAAIR,KAAKiE,kB,CAG9B,UAAYxD,CAAOH,GACjB4D,EAAAlE,KAAIkB,EAAWZ,EAAO,I,CAKhB,gBAAA2D,GACN,MAAME,EAAKnE,KAAKM,QAAQ6D,GAExB,IAAKA,EAAI,CACPC,QAAQC,KAAK,2DAEb,M,CAGF,MAAMC,EAAWtE,KAAKM,QAAQiE,cAC9B,KAAMD,aAAoBE,UAAYF,aAAoB1C,YAAa,CACrEwC,QAAQC,KAAK,sDAEb,M,CAGF,MAAMI,EAAYH,EAASzB,cAA2B,sBAAsBsB,KAC5E,IAAKM,EAAW,CACdL,QAAQC,KAAK,kDAAkDF,KAE/D,M,CAGFD,EAAAlE,KAAIkB,EAAWuD,EAAS,KACxB,OAAOA,C"}