@mhmo91/schmancy 0.2.131 → 0.2.133
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{animated-text-BJXm6krF.js → animated-text-CaqTFdju.js} +3 -3
- package/dist/{animated-text-BJXm6krF.js.map → animated-text-CaqTFdju.js.map} +1 -1
- package/dist/{animated-text-rLaot0v2.cjs → animated-text-MY253UjH.cjs} +2 -2
- package/dist/{animated-text-rLaot0v2.cjs.map → animated-text-MY253UjH.cjs.map} +1 -1
- package/dist/animated-text.cjs +1 -1
- package/dist/animated-text.js +1 -1
- package/dist/area.cjs +1 -1
- package/dist/{area.component-CP5oin2j.cjs → area.component-CDgqZw1n.cjs} +2 -2
- package/dist/{area.component-CP5oin2j.cjs.map → area.component-CDgqZw1n.cjs.map} +1 -1
- package/dist/{area.component-DlAEUmgd.js → area.component-CeXCFm9M.js} +3 -3
- package/dist/{area.component-DlAEUmgd.js.map → area.component-CeXCFm9M.js.map} +1 -1
- package/dist/area.js +1 -1
- package/dist/autocomplete-B1JRE-2_.cjs +62 -0
- package/dist/autocomplete-B1JRE-2_.cjs.map +1 -0
- package/dist/autocomplete-DMryWEb3.js +249 -0
- package/dist/autocomplete-DMryWEb3.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/button.cjs +1 -1
- package/dist/button.js +1 -1
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-N_JVa-1W.js → checkbox-D0sgIadX.js} +2 -2
- package/dist/{checkbox-N_JVa-1W.js.map → checkbox-D0sgIadX.js.map} +1 -1
- package/dist/{checkbox-DrrcDAjr.cjs → checkbox-FhdfO0nU.cjs} +2 -2
- package/dist/{checkbox-DrrcDAjr.cjs.map → checkbox-FhdfO0nU.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-DuSV3Pg2.js → chips-DTLqGRsB.js} +15 -15
- package/dist/{chips-DuSV3Pg2.js.map → chips-DTLqGRsB.js.map} +1 -1
- package/dist/{chips-DrYrCyTG.cjs → chips-trJSchLu.cjs} +15 -15
- package/dist/{chips-DrYrCyTG.cjs.map → chips-trJSchLu.cjs.map} +1 -1
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +1 -1
- package/dist/components.cjs +1 -1
- package/dist/components.js +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/{date-range-6fQ4ypDJ.js → date-range-Bw180a08.js} +16 -16
- package/dist/date-range-Bw180a08.js.map +1 -0
- package/dist/{date-range-DoZNetuD.cjs → date-range-Do6Vn3lT.cjs} +3 -3
- package/dist/date-range-Do6Vn3lT.cjs.map +1 -0
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +1 -1
- package/dist/{delay-CSAsNZ4k.js → delay-DHk8I0v-.js} +2 -2
- package/dist/{delay-CSAsNZ4k.js.map → delay-DHk8I0v-.js.map} +1 -1
- package/dist/{delay-WrR6CJK_.cjs → delay-DizjkqVw.cjs} +2 -2
- package/dist/{delay-WrR6CJK_.cjs.map → delay-DizjkqVw.cjs.map} +1 -1
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +1 -1
- package/dist/{divider-ByXACxEQ.js → divider-CLnaOn9r.js} +3 -3
- package/dist/{divider-ByXACxEQ.js.map → divider-CLnaOn9r.js.map} +1 -1
- package/dist/{divider-Cl2Thq2Y.cjs → divider-_ND5qzMt.cjs} +2 -2
- package/dist/{divider-Cl2Thq2Y.cjs.map → divider-_ND5qzMt.cjs.map} +1 -1
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/extra.cjs +1 -1
- package/dist/extra.js +1 -1
- package/dist/{flex-DeB79N0h.cjs → flex-B7rIM9Qe.cjs} +2 -2
- package/dist/{flex-DeB79N0h.cjs.map → flex-B7rIM9Qe.cjs.map} +1 -1
- package/dist/{flex-BGVyAdBX.js → flex-DgMhYsti.js} +2 -2
- package/dist/{flex-BGVyAdBX.js.map → flex-DgMhYsti.js.map} +1 -1
- package/dist/{form-DATARECy.js → form-SRIMe_A_.js} +2 -2
- package/dist/{form-DATARECy.js.map → form-SRIMe_A_.js.map} +1 -1
- package/dist/{form-Dkh-YG_8.cjs → form-sbmB-_kd.cjs} +2 -2
- package/dist/{form-Dkh-YG_8.cjs.map → form-sbmB-_kd.cjs.map} +1 -1
- package/dist/form.cjs +1 -1
- package/dist/form.js +1 -1
- package/dist/{icon-BdqEZEF8.js → icon-C3BGxmDa.js} +3 -3
- package/dist/{icon-BdqEZEF8.js.map → icon-C3BGxmDa.js.map} +1 -1
- package/dist/{icon-BbqYaRVu.cjs → icon-DBfJz0y7.cjs} +2 -2
- package/dist/{icon-BbqYaRVu.cjs.map → icon-DBfJz0y7.cjs.map} +1 -1
- package/dist/{icon-button-DlnuclQQ.js → icon-button-CD-hD1-C.js} +4 -4
- package/dist/icon-button-CD-hD1-C.js.map +1 -0
- package/dist/{icon-button-BUUtmKnu.cjs → icon-button-DmsjkeVk.cjs} +3 -3
- package/dist/icon-button-DmsjkeVk.cjs.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +35 -35
- package/dist/{input-BDUd1ZGs.js → input-DeWCUMEO.js} +2 -2
- package/dist/{input-BDUd1ZGs.js.map → input-DeWCUMEO.js.map} +1 -1
- package/dist/{input-B_MWCRet.cjs → input-s7UXIaOm.cjs} +2 -2
- package/dist/{input-B_MWCRet.cjs.map → input-s7UXIaOm.cjs.map} +1 -1
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/layout.cjs +1 -1
- package/dist/layout.js +1 -1
- package/dist/{list-UOeNjOTt.cjs → list-BbTD1-p8.cjs} +2 -2
- package/dist/{list-UOeNjOTt.cjs.map → list-BbTD1-p8.cjs.map} +1 -1
- package/dist/{list-D0J2ndMA.js → list-CHTNMb4R.js} +2 -2
- package/dist/{list-D0J2ndMA.js.map → list-CHTNMb4R.js.map} +1 -1
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/{litElement.mixin-CfkMd-bR.cjs → litElement.mixin-AkHgwswI.cjs} +2 -2
- package/dist/{litElement.mixin-CfkMd-bR.cjs.map → litElement.mixin-AkHgwswI.cjs.map} +1 -1
- package/dist/{litElement.mixin-PXLBM6N4.js → litElement.mixin-B1fR6EmN.js} +2 -2
- package/dist/{litElement.mixin-PXLBM6N4.js.map → litElement.mixin-B1fR6EmN.js.map} +1 -1
- package/dist/{menu-B4k2_5rl.cjs → menu-DcYw6tXo.cjs} +2 -2
- package/dist/{menu-B4k2_5rl.cjs.map → menu-DcYw6tXo.cjs.map} +1 -1
- package/dist/{menu-D7PxtMOz.js → menu-DqT4sMmQ.js} +3 -3
- package/dist/{menu-D7PxtMOz.js.map → menu-DqT4sMmQ.js.map} +1 -1
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-vV2BM1B_.js → option-MWhsFQkR.js} +3 -3
- package/dist/option-MWhsFQkR.js.map +1 -0
- package/dist/{option-hsAZB8ji.cjs → option-XQ5S7kYQ.cjs} +3 -3
- package/dist/option-XQ5S7kYQ.cjs.map +1 -0
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{outlet-DMOeEL6g.cjs → outlet-BqaXquI2.cjs} +2 -2
- package/dist/{outlet-DMOeEL6g.cjs.map → outlet-BqaXquI2.cjs.map} +1 -1
- package/dist/{outlet-DRaXjbOY.js → outlet-sNQVCmlc.js} +2 -2
- package/dist/{outlet-DRaXjbOY.js.map → outlet-sNQVCmlc.js.map} +1 -1
- package/dist/{payment-card-form-DfbqzyTv.cjs → payment-card-form-BsXV2Ilz.cjs} +2 -2
- package/dist/{payment-card-form-DfbqzyTv.cjs.map → payment-card-form-BsXV2Ilz.cjs.map} +1 -1
- package/dist/{payment-card-form-8oXgNTFN.js → payment-card-form-CFqxxbpU.js} +3 -3
- package/dist/{payment-card-form-8oXgNTFN.js.map → payment-card-form-CFqxxbpU.js.map} +1 -1
- package/dist/{radio-group-CLt-d-Ni.cjs → radio-group-1rligG30.cjs} +2 -2
- package/dist/{radio-group-CLt-d-Ni.cjs.map → radio-group-1rligG30.cjs.map} +1 -1
- package/dist/{radio-group-DRXtgyf5.js → radio-group-B-XFNs3k.js} +2 -2
- package/dist/{radio-group-DRXtgyf5.js.map → radio-group-B-XFNs3k.js.map} +1 -1
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/{schmancy-steps-container-DguK5NK4.cjs → schmancy-steps-container-C_0iNIjG.cjs} +2 -2
- package/dist/{schmancy-steps-container-DguK5NK4.cjs.map → schmancy-steps-container-C_0iNIjG.cjs.map} +1 -1
- package/dist/{schmancy-steps-container-D1k0kjKI.js → schmancy-steps-container-DNKuPqtZ.js} +2 -2
- package/dist/{schmancy-steps-container-D1k0kjKI.js.map → schmancy-steps-container-DNKuPqtZ.js.map} +1 -1
- package/dist/{select-BUUelLow.cjs → select-BXoNsWb2.cjs} +2 -2
- package/dist/{select-BUUelLow.cjs.map → select-BXoNsWb2.cjs.map} +1 -1
- package/dist/{select-By_Pm8TG.js → select-BkAIgenx.js} +3 -3
- package/dist/{select-By_Pm8TG.js.map → select-BkAIgenx.js.map} +1 -1
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/{sheet-CHow9LJ8.js → sheet-DrffPfA7.js} +3 -3
- package/dist/{sheet-CHow9LJ8.js.map → sheet-DrffPfA7.js.map} +1 -1
- package/dist/{sheet-CyZB5a4W.cjs → sheet-HJLcNzIs.cjs} +2 -2
- package/dist/{sheet-CyZB5a4W.cjs.map → sheet-HJLcNzIs.cjs.map} +1 -1
- package/dist/sheet.cjs +1 -1
- package/dist/sheet.js +1 -1
- package/dist/{slider-BORUoU4I.js → slider-DgRX77_b.js} +3 -3
- package/dist/{slider-BORUoU4I.js.map → slider-DgRX77_b.js.map} +1 -1
- package/dist/{slider-DCRfwhaP.cjs → slider-DmrQNZL-.cjs} +2 -2
- package/dist/{slider-DCRfwhaP.cjs.map → slider-DmrQNZL-.cjs.map} +1 -1
- package/dist/slider.cjs +1 -1
- package/dist/slider.js +1 -1
- package/dist/{spinner-DeHbns2e.cjs → spinner-CwnkmBhN.cjs} +2 -2
- package/dist/{spinner-DeHbns2e.cjs.map → spinner-CwnkmBhN.cjs.map} +1 -1
- package/dist/{spinner-C-rMlbyB.js → spinner-D31vl5-q.js} +3 -3
- package/dist/{spinner-C-rMlbyB.js.map → spinner-D31vl5-q.js.map} +1 -1
- package/dist/steps.cjs +1 -1
- package/dist/steps.js +1 -1
- package/dist/{surface-TpxKBWnD.cjs → surface-DIEA74aN.cjs} +2 -2
- package/dist/{surface-TpxKBWnD.cjs.map → surface-DIEA74aN.cjs.map} +1 -1
- package/dist/{surface-HAEl5c8W.js → surface-iHeupN57.js} +2 -2
- package/dist/{surface-HAEl5c8W.js.map → surface-iHeupN57.js.map} +1 -1
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/{table-DXPDEHEh.cjs → table-BUqG92dT.cjs} +3 -3
- package/dist/{table-DXPDEHEh.cjs.map → table-BUqG92dT.cjs.map} +1 -1
- package/dist/{table-D7KL2FaN.js → table-D7g88yVq.js} +3 -3
- package/dist/{table-D7KL2FaN.js.map → table-D7g88yVq.js.map} +1 -1
- package/dist/table.cjs +1 -1
- package/dist/table.js +1 -1
- package/dist/{tabs-group-Dm_FCj7q.js → tabs-group-CQ13H6mW.js} +2 -2
- package/dist/{tabs-group-Dm_FCj7q.js.map → tabs-group-CQ13H6mW.js.map} +1 -1
- package/dist/{tabs-group-CR2cSCNr.cjs → tabs-group-Eef64F1R.cjs} +2 -2
- package/dist/{tabs-group-CR2cSCNr.cjs.map → tabs-group-Eef64F1R.cjs.map} +1 -1
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/tailwind.mixin-DLLvl6_j.cjs +2 -0
- package/dist/{tailwind.mixin-CjSVtdHt.cjs.map → tailwind.mixin-DLLvl6_j.cjs.map} +1 -1
- package/dist/tailwind.mixin-DUDUV2I_.js +43 -0
- package/dist/{tailwind.mixin-Cxj7n9Jd.js.map → tailwind.mixin-DUDUV2I_.js.map} +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/{teleport.component-Cv7rwX-_.js → teleport.component-D7c59SDg.js} +37 -37
- package/dist/{teleport.component-Cv7rwX-_.js.map → teleport.component-D7c59SDg.js.map} +1 -1
- package/dist/{teleport.component-C43YKRMJ.cjs → teleport.component-wOKYMwd_.cjs} +2 -2
- package/dist/{teleport.component-C43YKRMJ.cjs.map → teleport.component-wOKYMwd_.cjs.map} +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-DcSAsR60.js → textarea-09PU30ul.js} +2 -2
- package/dist/{textarea-DcSAsR60.js.map → textarea-09PU30ul.js.map} +1 -1
- package/dist/{textarea-CLlh5-HA.cjs → textarea-BJxMSHw0.cjs} +2 -2
- package/dist/{textarea-CLlh5-HA.cjs.map → textarea-BJxMSHw0.cjs.map} +1 -1
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-button-B7_LXWoe.js → theme-button-BuFdb8ef.js} +2 -2
- package/dist/{theme-button-B7_LXWoe.js.map → theme-button-BuFdb8ef.js.map} +1 -1
- package/dist/{theme-button-53Mhj3kQ.cjs → theme-button-Cap7xV7L.cjs} +2 -2
- package/dist/{theme-button-53Mhj3kQ.cjs.map → theme-button-Cap7xV7L.cjs.map} +1 -1
- package/dist/theme-button.cjs +1 -1
- package/dist/theme-button.js +1 -1
- package/dist/theme.cjs +1 -1
- package/dist/{theme.component-Drmkh4sF.cjs → theme.component-BNA4A65w.cjs} +2 -2
- package/dist/{theme.component-Drmkh4sF.cjs.map → theme.component-BNA4A65w.cjs.map} +1 -1
- package/dist/{theme.component-yFb6vlsT.js → theme.component-CAptyThi.js} +2 -2
- package/dist/{theme.component-yFb6vlsT.js.map → theme.component-CAptyThi.js.map} +1 -1
- package/dist/theme.js +1 -1
- package/dist/{timezone-enXRjPy1.cjs → timezone-Bn2oTTFO.cjs} +2 -2
- package/dist/{timezone-enXRjPy1.cjs.map → timezone-Bn2oTTFO.cjs.map} +1 -1
- package/dist/{timezone-DxkvIe7V.js → timezone-CVgX1TpD.js} +3 -3
- package/dist/{timezone-DxkvIe7V.js.map → timezone-CVgX1TpD.js.map} +1 -1
- package/dist/{tree-Bt4J6QVI.cjs → tree-hzbm0JCm.cjs} +2 -2
- package/dist/{tree-Bt4J6QVI.cjs.map → tree-hzbm0JCm.cjs.map} +1 -1
- package/dist/{tree-CQccoc9W.js → tree-saV2p1r3.js} +2 -2
- package/dist/{tree-CQccoc9W.js.map → tree-saV2p1r3.js.map} +1 -1
- package/dist/tree.cjs +1 -1
- package/dist/tree.js +1 -1
- package/dist/{typewriter-WqDo75_3.cjs → typewriter-Blx_6T4o.cjs} +2 -2
- package/dist/{typewriter-WqDo75_3.cjs.map → typewriter-Blx_6T4o.cjs.map} +1 -1
- package/dist/{typewriter-DGserMVU.js → typewriter-hmHGatBq.js} +4 -4
- package/dist/{typewriter-DGserMVU.js.map → typewriter-hmHGatBq.js.map} +1 -1
- package/dist/typewriter.cjs +1 -1
- package/dist/typewriter.js +1 -1
- package/dist/{typography-DbNitvGl.cjs → typography-R38GiYZQ.cjs} +2 -2
- package/dist/{typography-DbNitvGl.cjs.map → typography-R38GiYZQ.cjs.map} +1 -1
- package/dist/{typography-D5E46rwN.js → typography-_9ZukfN2.js} +2 -2
- package/dist/{typography-D5E46rwN.js.map → typography-_9ZukfN2.js.map} +1 -1
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/package.json +11 -11
- package/types/src/autocomplete/autocomplete.d.ts +102 -59
- package/types/src/chips/chip.d.ts +0 -1
- package/types/src/table/table.d.ts +6 -1
- package/dist/autocomplete-ChDCoDb2.cjs +0 -59
- package/dist/autocomplete-ChDCoDb2.cjs.map +0 -1
- package/dist/autocomplete-D8HWdpyS.js +0 -296
- package/dist/autocomplete-D8HWdpyS.js.map +0 -1
- package/dist/date-range-6fQ4ypDJ.js.map +0 -1
- package/dist/date-range-DoZNetuD.cjs.map +0 -1
- package/dist/icon-button-BUUtmKnu.cjs.map +0 -1
- package/dist/icon-button-DlnuclQQ.js.map +0 -1
- package/dist/option-hsAZB8ji.cjs.map +0 -1
- package/dist/option-vV2BM1B_.js.map +0 -1
- package/dist/tailwind.mixin-CjSVtdHt.cjs +0 -2
- package/dist/tailwind.mixin-Cxj7n9Jd.js +0 -43
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";const t=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const d=require("./tailwind.mixin-
|
|
1
|
+
"use strict";const t=require("rxjs");require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const d=require("./tailwind.mixin-DLLvl6_j.cjs"),p=require("lit"),c=require("lit/decorators.js");var u=Object.defineProperty,g=Object.getOwnPropertyDescriptor,l=(n,r,o,i)=>{for(var s,e=i>1?void 0:i?g(r,o):r,a=n.length-1;a>=0;a--)(s=n[a])&&(e=(i?s(r,o,e):s(e))||e);return i&&e&&u(r,o,e),e};exports.SchmancyTree=class extends d.TailwindElement(p.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: block;
|
|
4
4
|
position: relative;
|
|
@@ -24,4 +24,4 @@
|
|
|
24
24
|
<!-- The default slot: tree children -->
|
|
25
25
|
<slot></slot>
|
|
26
26
|
`}},l([c.property({type:Boolean})],exports.SchmancyTree.prototype,"open",2),l([c.query("#toggler")],exports.SchmancyTree.prototype,"toggler",2),l([c.query('slot:not([name="root"])')],exports.SchmancyTree.prototype,"defaultSlot",2),l([c.query("#chevron")],exports.SchmancyTree.prototype,"chevron",2),exports.SchmancyTree=l([c.customElement("schmancy-tree")],exports.SchmancyTree);
|
|
27
|
-
//# sourceMappingURL=tree-
|
|
27
|
+
//# sourceMappingURL=tree-hzbm0JCm.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-
|
|
1
|
+
{"version":3,"file":"tree-hzbm0JCm.cjs","sources":["../src/tree/tree.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { fromEvent, merge, switchMap, takeUntil, tap, zip } from 'rxjs'\n\n/**\n * @element schmancy-tree\n * @slot root - The root element of the tree\n * @slot - The children of the tree\n */\n@customElement('schmancy-tree')\nexport class SchmancyTree extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tbackground-color: initial;\n\t}\n\t::slotted([slot='root']) {\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t}\n\t::slotted([slot='root'] + *) {\n\t\tmargin-top: 0.5rem;\n\t}\n`) {\n\t/**\n\t * Whether the tree’s children are visible\n\t */\n\t@property({ type: Boolean }) open = false\n\n\t@query('#toggler') toggler!: HTMLSlotElement\n\t@query('slot:not([name=\"root\"])') defaultSlot!: HTMLSlotElement\n\n\t// Since it's actually a <schmancy-button>, use HTMLElement or a custom type\n\t@query('#chevron') chevron!: HTMLElement\n\n\tfirstUpdated() {\n\t\t// Hide or show the slot initially based on `open`\n\t\tif (!this.open) {\n\t\t\tthis.defaultSlot.hidden = true\n\t\t}\n\n\t\t// Root toggler\n\t\tconst toggleClick$ = fromEvent<MouseEvent>(this.toggler, 'click').pipe(\n\t\t\ttakeUntil(this.disconnecting),\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(new CustomEvent('toggle', { bubbles: true, composed: true }))\n\t\t\t}),\n\t\t)\n\n\t\t// Chevron (the schmancy-button) click\n\t\tconst chevronClick$ = fromEvent<MouseEvent>(this.chevron, 'click')\n\n\t\tmerge(toggleClick$, chevronClick$)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\t// 1. Animate the chevron rotation\n\t\t\t\t\t// If `open` is true, rotate from 180 -> 0; if false, from 0 -> 180\n\t\t\t\t\tconst fromDeg = this.open ? 180 : 0\n\t\t\t\t\tconst toDeg = this.open ? 0 : 180\n\t\t\t\t\tconst chevronAnimation = this.chevron.animate(\n\t\t\t\t\t\t[{ transform: `rotate(${fromDeg}deg)` }, { transform: `rotate(${toDeg}deg)` }],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\t\teasing: 'ease-in',\n\t\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\n\t\t\t\t\t// 2. Animate the slot’s height + opacity\n\t\t\t\t\tif (!this.open) {\n\t\t\t\t\t\t// We are about to open, so remove `hidden` to measure scrollHeight\n\t\t\t\t\t\tthis.defaultSlot.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fromOpacity = this.open ? 1 : 0\n\t\t\t\t\tconst toOpacity = this.open ? 0 : 1\n\n\t\t\t\t\tconst slotAnimation = this.defaultSlot.animate([{ opacity: fromOpacity }, { opacity: toOpacity }], {\n\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\teasing: 'ease-out',\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t})\n\n\t\t\t\t\t// Hide the slot if we just closed it\n\t\t\t\t\tslotAnimation.onfinish = () => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.defaultSlot.hidden = true\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.defaultSlot.style.height = 'auto'\n\t\t\t\t\t\t\tthis.defaultSlot.style.opacity = '1'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Return an Observable that completes when both animations finish\n\t\t\t\t\treturn zip(fromEvent(chevronAnimation, 'finish'), fromEvent(slotAnimation, 'finish')).pipe(\n\t\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\ttap(() => {\n\t\t\t\t\t// Flip the open state\n\t\t\t\t\tthis.open = !this.open\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"flex content-center items-center justify-between\">\n\t\t\t\t<!-- Root toggler content -->\n\t\t\t\t<slot id=\"toggler\" name=\"root\"></slot>\n\n\t\t\t\t<!-- The chevron or arrow symbol -->\n\t\t\t\t<!-- Stop propagation on the schmancy-button itself just to avoid double triggers -->\n\t\t\t\t<schmancy-button slot=\"trailing\" id=\"chevron\" @click=${(e: Event) => e.stopPropagation()}> ⌅ </schmancy-button>\n\t\t\t</div>\n\n\t\t\t<!-- The default slot: tree children -->\n\t\t\t<slot></slot>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tree': SchmancyTree\n\t}\n}\n"],"names":["SchmancyTree","TailwindElement","css","super","arguments","this","open","firstUpdated","defaultSlot","hidden","toggleClick$","fromEvent","toggler","pipe","takeUntil","disconnecting","tap","e","preventDefault","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","chevronClick$","chevron","merge","switchMap","fromDeg","toDeg","chevronAnimation","animate","transform","duration","easing","fill","fromOpacity","toOpacity","slotAnimation","opacity","onfinish","style","height","zip","subscribe","html","__decorateClass","property","type","Boolean","prototype","query","customElement"],"mappings":"oZAWaA,QAAAA,aAAN,cAA2BC,EAAAA,gBAAgBC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA3C,CAAA,CAAA,cAAAC,MAAAC,GAAAA,SAAAA,EAiB8BC,KAAAC,KAAA,EAAA,CAQpC,cAAAC,CAEMF,KAAKC,OACTD,KAAKG,YAAYC,OAAS,IAI3B,MAAMC,EAAeC,EAAAA,UAAsBN,KAAKO,QAAS,OAASC,EAAAA,KACjEC,EAAAA,UAAUT,KAAKU,eACfC,MAASC,IACRA,EAAEC,eAAAA,EACFD,EAAEE,gBACGd,EAAAA,KAAAe,cAAc,IAAIC,YAAY,SAAU,CAAEC,QAAAA,GAAeC,SAAU,EAAA,CAAA,CAAA,CAAO,CAK3EC,CAAAA,EAAAA,EAAgBb,EAAAA,UAAsBN,KAAKoB,QAAS,OAEpDC,EAAAA,QAAAhB,EAAcc,CAAAA,EAClBX,KACAc,EAAAA,UAAU,KAGH,MAAAC,EAAUvB,KAAKC,KAAO,IAAM,EAC5BuB,EAAQxB,KAAKC,KAAO,EAAI,IACxBwB,EAAmBzB,KAAKoB,QAAQM,QACrC,CAAC,CAAEC,UAAW,UAAUJ,SAAiB,CAAEI,UAAW,UAAUH,CAChE,MAAA,CAAA,EAAA,CACCI,SAAU,IACVC,OAAQ,UACRC,KAAM,UAAA,CAAA,EAKH9B,KAAKC,OAETD,KAAKG,YAAYC,OAAAA,IAGZ,MAAA2B,EAAc/B,KAAKC,KAAO,EAAI,EAC9B+B,EAAYhC,KAAKC,KAAO,EAAI,EAE5BgC,EAAgBjC,KAAKG,YAAYuB,QAAQ,CAAC,CAAEQ,QAASH,CAAAA,EAAe,CAAEG,QAASF,CAAAA,CAAAA,EAAc,CAClGJ,SAAU,IACVC,OAAQ,WACRC,KAAM,aAcA,OAVPG,EAAcE,SAAW,IACpBnC,CAAAA,KAAKC,KACRD,KAAKG,YAAYC,WAEZJ,KAAAG,YAAYiC,MAAMC,OAAS,OAC3BrC,KAAAG,YAAYiC,MAAMF,QAAU,IAAA,EAK5BI,EAAAA,IAAIhC,YAAUmB,EAAkB,QAAWnB,EAAAA,EAAAA,UAAU2B,EAAe,QAAA,CAAA,EAAWzB,KACrFC,EAAAA,UAAUT,KAAKU,aAAAA,CAAAA,CAChB,GAEDC,EAAAA,IAAI,KAEEX,KAAAC,KAAAA,CAAQD,KAAKC,IAAA,CAAA,EAEnBQ,EAAAA,UAAUT,KAAKU,gBAEf6B,UAAU,CAAA,CAGb,QACQ,CAAA,OAAAC,EAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,2DAOmD5B,GAAaA,EAAEE,gBAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAAiB,CA1F9D2B,EAAAA,EAAA,CAA5BC,WAAS,CAAEC,KAAMC,OAAAA,CAAAA,CAAAA,EAjBNjD,qBAiBiBkD,UAAA,OAAA,GAEVJ,EAAA,CAAlBK,EAAAA,MAAM,UAAA,CAAA,EAnBKnD,qBAmBOkD,UAAA,UAAA,CAAA,EACeJ,EAAA,CAAjCK,EAAAA,MAAM,yBAAA,CAAA,EApBKnD,qBAoBsBkD,UAAA,cAAA,CAGfJ,EAAAA,EAAA,CAAlBK,EAAAA,MAAM,UAAA,CAAA,EAvBKnD,qBAuBOkD,UAAA,UAAA,CAAA,EAvBPlD,QAANA,aAAA8C,EAAA,CADNM,EAAAA,cAAc,eAAA,CAAA,EACFpD"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { fromEvent as p, takeUntil as c, tap as g, merge as m, switchMap as f, zip as u } from "rxjs";
|
|
2
2
|
import "lit/directives/class-map.js";
|
|
3
3
|
import "lit/directives/style-map.js";
|
|
4
|
-
import { T as y } from "./tailwind.mixin-
|
|
4
|
+
import { T as y } from "./tailwind.mixin-DUDUV2I_.js";
|
|
5
5
|
import { css as v, html as b } from "lit";
|
|
6
6
|
import { property as S, query as h, customElement as w } from "lit/decorators.js";
|
|
7
7
|
var k = Object.defineProperty, j = Object.getOwnPropertyDescriptor, l = (e, s, o, i) => {
|
|
@@ -61,4 +61,4 @@ l([S({ type: Boolean })], n.prototype, "open", 2), l([h("#toggler")], n.prototyp
|
|
|
61
61
|
export {
|
|
62
62
|
n as S
|
|
63
63
|
};
|
|
64
|
-
//# sourceMappingURL=tree-
|
|
64
|
+
//# sourceMappingURL=tree-saV2p1r3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tree-
|
|
1
|
+
{"version":3,"file":"tree-saV2p1r3.js","sources":["../src/tree/tree.ts"],"sourcesContent":["import { TailwindElement } from '@mixins/index'\nimport { css, html } from 'lit'\nimport { customElement, property, query } from 'lit/decorators.js'\nimport { fromEvent, merge, switchMap, takeUntil, tap, zip } from 'rxjs'\n\n/**\n * @element schmancy-tree\n * @slot root - The root element of the tree\n * @slot - The children of the tree\n */\n@customElement('schmancy-tree')\nexport class SchmancyTree extends TailwindElement(css`\n\t:host {\n\t\tdisplay: block;\n\t\tposition: relative;\n\t\tbackground-color: initial;\n\t}\n\t::slotted([slot='root']) {\n\t\twidth: 100%;\n\t\ttext-align: left;\n\t}\n\t::slotted([slot='root'] + *) {\n\t\tmargin-top: 0.5rem;\n\t}\n`) {\n\t/**\n\t * Whether the tree’s children are visible\n\t */\n\t@property({ type: Boolean }) open = false\n\n\t@query('#toggler') toggler!: HTMLSlotElement\n\t@query('slot:not([name=\"root\"])') defaultSlot!: HTMLSlotElement\n\n\t// Since it's actually a <schmancy-button>, use HTMLElement or a custom type\n\t@query('#chevron') chevron!: HTMLElement\n\n\tfirstUpdated() {\n\t\t// Hide or show the slot initially based on `open`\n\t\tif (!this.open) {\n\t\t\tthis.defaultSlot.hidden = true\n\t\t}\n\n\t\t// Root toggler\n\t\tconst toggleClick$ = fromEvent<MouseEvent>(this.toggler, 'click').pipe(\n\t\t\ttakeUntil(this.disconnecting),\n\t\t\ttap(e => {\n\t\t\t\te.preventDefault()\n\t\t\t\te.stopPropagation()\n\t\t\t\tthis.dispatchEvent(new CustomEvent('toggle', { bubbles: true, composed: true }))\n\t\t\t}),\n\t\t)\n\n\t\t// Chevron (the schmancy-button) click\n\t\tconst chevronClick$ = fromEvent<MouseEvent>(this.chevron, 'click')\n\n\t\tmerge(toggleClick$, chevronClick$)\n\t\t\t.pipe(\n\t\t\t\tswitchMap(() => {\n\t\t\t\t\t// 1. Animate the chevron rotation\n\t\t\t\t\t// If `open` is true, rotate from 180 -> 0; if false, from 0 -> 180\n\t\t\t\t\tconst fromDeg = this.open ? 180 : 0\n\t\t\t\t\tconst toDeg = this.open ? 0 : 180\n\t\t\t\t\tconst chevronAnimation = this.chevron.animate(\n\t\t\t\t\t\t[{ transform: `rotate(${fromDeg}deg)` }, { transform: `rotate(${toDeg}deg)` }],\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\t\teasing: 'ease-in',\n\t\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t\t},\n\t\t\t\t\t)\n\n\t\t\t\t\t// 2. Animate the slot’s height + opacity\n\t\t\t\t\tif (!this.open) {\n\t\t\t\t\t\t// We are about to open, so remove `hidden` to measure scrollHeight\n\t\t\t\t\t\tthis.defaultSlot.hidden = false\n\t\t\t\t\t}\n\n\t\t\t\t\tconst fromOpacity = this.open ? 1 : 0\n\t\t\t\t\tconst toOpacity = this.open ? 0 : 1\n\n\t\t\t\t\tconst slotAnimation = this.defaultSlot.animate([{ opacity: fromOpacity }, { opacity: toOpacity }], {\n\t\t\t\t\t\tduration: 150,\n\t\t\t\t\t\teasing: 'ease-out',\n\t\t\t\t\t\tfill: 'forwards',\n\t\t\t\t\t})\n\n\t\t\t\t\t// Hide the slot if we just closed it\n\t\t\t\t\tslotAnimation.onfinish = () => {\n\t\t\t\t\t\tif (this.open) {\n\t\t\t\t\t\t\tthis.defaultSlot.hidden = true\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.defaultSlot.style.height = 'auto'\n\t\t\t\t\t\t\tthis.defaultSlot.style.opacity = '1'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Return an Observable that completes when both animations finish\n\t\t\t\t\treturn zip(fromEvent(chevronAnimation, 'finish'), fromEvent(slotAnimation, 'finish')).pipe(\n\t\t\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t\t\t)\n\t\t\t\t}),\n\t\t\t\ttap(() => {\n\t\t\t\t\t// Flip the open state\n\t\t\t\t\tthis.open = !this.open\n\t\t\t\t}),\n\t\t\t\ttakeUntil(this.disconnecting),\n\t\t\t)\n\t\t\t.subscribe()\n\t}\n\n\trender() {\n\t\treturn html`\n\t\t\t<div class=\"flex content-center items-center justify-between\">\n\t\t\t\t<!-- Root toggler content -->\n\t\t\t\t<slot id=\"toggler\" name=\"root\"></slot>\n\n\t\t\t\t<!-- The chevron or arrow symbol -->\n\t\t\t\t<!-- Stop propagation on the schmancy-button itself just to avoid double triggers -->\n\t\t\t\t<schmancy-button slot=\"trailing\" id=\"chevron\" @click=${(e: Event) => e.stopPropagation()}> ⌅ </schmancy-button>\n\t\t\t</div>\n\n\t\t\t<!-- The default slot: tree children -->\n\t\t\t<slot></slot>\n\t\t`\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-tree': SchmancyTree\n\t}\n}\n"],"names":["SchmancyTree","TailwindElement","css","super","arguments","this","open","defaultSlot","hidden","toggleClick$","fromEvent","toggler","pipe","takeUntil","disconnecting","tap","e","preventDefault","stopPropagation","dispatchEvent","CustomEvent","bubbles","composed","chevronClick$","chevron","merge","switchMap","fromDeg","toDeg","chevronAnimation","animate","transform","duration","easing","fill","fromOpacity","toOpacity","slotAnimation","opacity","onfinish","style","height","zip","subscribe","render","html","__decorateClass","property","type","Boolean","prototype","query","customElement"],"mappings":";;;;;;;;;;AAWa,IAAAA,IAAN,cAA2BC,EAAgBC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,CAA3C,EAAA;AAAA,EAAA;AAAAC,UAAAC,GAAAA,SAAAA,GAiB8BC,KAAAC,OAAAA;AAAAA,EAAA;AAAA,EAQpC,eAEMD;AAAAA,SAAKC,SACTD,KAAKE,YAAYC;AAIlB,UAAMC,IAAeC,EAAsBL,KAAKM,SAAS,OAAA,EAASC,KACjEC,EAAUR,KAAKS,aACfC,GAAAA,EAASC,CAAAA;AACRA,MAAAA,EAAEC,eAAAA,GACFD,EAAEE,gBAAAA,GACGb,KAAAc,cAAc,IAAIC,YAAY,UAAU,EAAEC,aAAeC,UAAAA,GAAiB,CAAA,CAAA;AAAA,IAAA,CAAA,CAAA,GAK3EC,IAAgBb,EAAsBL,KAAKmB,SAAS,OAAA;AAEpDC,IAAAA,EAAAhB,GAAcc,CAAAA,EAClBX,KACAc,EAAU;AAGH,YAAAC,IAAUtB,KAAKC,OAAO,MAAM,GAC5BsB,IAAQvB,KAAKC,OAAO,IAAI,KACxBuB,IAAmBxB,KAAKmB,QAAQM,QACrC,CAAC,EAAEC,WAAW,UAAUJ,CAAiB,OAAA,GAAA,EAAEI,WAAW,UAAUH,CAAAA,OAAAA,CAAAA,GAChE,EACCI,UAAU,KACVC,QAAQ,WACRC,MAAM,WAKH7B,CAAAA;AAAAA,WAAKC,SAETD,KAAKE,YAAYC,SAAS;AAGrB,YAAA2B,IAAc9B,KAAKC,OAAO,IAAI,GAC9B8B,IAAY/B,KAAKC,OAAO,IAAI,GAE5B+B,IAAgBhC,KAAKE,YAAYuB,QAAQ,CAAC,EAAEQ,SAASH,EAAAA,GAAe,EAAEG,SAASF,EAAAA,CAAAA,GAAc,EAClGJ,UAAU,KACVC,QAAQ,YACRC,MAAM,WAcA,CAAA;AAAA,aAVPG,EAAcE,WAAW,MAAA;AACpBlC,aAAKC,OACRD,KAAKE,YAAYC,SAAAA,MAEZH,KAAAE,YAAYiC,MAAMC,SAAS,QAC3BpC,KAAAE,YAAYiC,MAAMF,UAAU;AAAA,MAAA,GAK5BI,EAAIhC,EAAUmB,GAAkB,QAAA,GAAWnB,EAAU2B,GAAe,QAAA,CAAA,EAAWzB,KACrFC,EAAUR,KAAKS,aAChB,CAAA;AAAA,IAAA,CAAA,GAEDC,EAAI,MAEEV;AAAAA,WAAAC,QAAQD,KAAKC;AAAAA,IAAA,CAEnBO,GAAAA,EAAUR,KAAKS,aAEf6B,CAAAA,EAAAA,UAAAA;AAAAA,EAAU;AAAA,EAGb,SAAAC;AACQ,WAAAC;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,2DAOmD7B,CAAAA,MAAaA,EAAEE,gBAAAA,CAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,EAAiB;AAAA;AA1F9D4B,EAAA,CAA5BC,EAAS,EAAEC,MAAMC,aAjBNjD,EAiBiBkD,WAAA,QAAA,CAAA,GAEVJ,EAAA,CAAlBK,EAAM,cAnBKnD,EAmBOkD,WAAA,WAAA,CACeJ,GAAAA,EAAA,CAAjCK,EAAM,6BApBKnD,EAoBsBkD,WAAA,eAAA,CAGfJ,GAAAA,EAAA,CAAlBK,EAAM,UAAA,CAAA,GAvBKnD,EAuBOkD,WAAA,WAAA,CAvBPlD,GAAAA,IAAN8C,EAAA,CADNM,EAAc,mBACFpD;"}
|
package/dist/tree.cjs
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./tree-
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./tree-hzbm0JCm.cjs");Object.defineProperty(exports,"SchmancyTree",{enumerable:!0,get:()=>e.SchmancyTree});
|
|
2
2
|
//# sourceMappingURL=tree.cjs.map
|
package/dist/tree.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use strict";var qe=Object.defineProperty;var se=s=>{throw TypeError(s)};var Ne=(s,e,t)=>e in s?qe(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var m=(s,e,t)=>Ne(s,typeof e!="symbol"?e+"":e,t),ie=(s,e,t)=>e.has(s)||se("Cannot "+t);var d=(s,e,t)=>(ie(s,e,"read from private field"),t?t.call(s):e.get(s)),j=(s,e,t)=>e.has(s)?se("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t);var a=(s,e,t)=>(ie(s,e,"access private method"),t);const Le=require("./consume-Bb7_UzYd.cjs");require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const xe=require("./litElement.mixin-CfkMd-bR.cjs");require("./tailwind.mixin-CjSVtdHt.cjs");const re=require("./delay-WrR6CJK_.cjs"),De=require("./intersection-CVvaDv96.cjs"),ne=require("lit"),f=require("lit/decorators.js"),ye=s=>Array.isArray(s),oe=s=>ye(s)?s:[s],me="data-typeit-id",E="ti-cursor",Me={started:!1,completed:!1,frozen:!1,destroyed:!1},C={breakLines:!0,cursor:{autoPause:!0,autoPauseDelay:500,animation:{frames:[0,0,1].map(s=>({opacity:s})),options:{iterations:1/0,easing:"steps(2, start)",fill:"forwards"}}},cursorChar:"|",cursorSpeed:1e3,deleteSpeed:null,html:!0,lifeLike:!0,loop:!1,loopDelay:750,nextStringDelay:750,speed:100,startDelay:250,startDelete:!1,strings:[],waitUntilVisible:!1,beforeString:()=>{},afterString:()=>{},beforeStep:()=>{},afterStep:()=>{},afterComplete:()=>{}},ke=`[${me}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`,$=s=>document.createElement(s),G=s=>document.createTextNode(s),ae=(s,e="")=>{let t=$("style");t.id=e,t.appendChild(G(s)),document.head.appendChild(t)},le=s=>(ye(s)||(s=[s/2,s/2]),s),ue=(s,e)=>Math.abs(Math.random()*(s+e-(s-e))+(s-e));let he=s=>s/2;const fe=s=>Array.from(s);let Y=s=>([...s.childNodes].forEach(e=>{if(e.nodeValue)return[...e.nodeValue].forEach(t=>{e.parentNode.insertBefore(G(t),e)}),void e.remove();Y(e)}),s);const ge=s=>{let e=document.implementation.createHTMLDocument();return e.body.innerHTML=s,Y(e.body)};function be(s,e=!1,t=!1){let r,n=s.querySelector(`.${E}`),o=document.createTreeWalker(s,NodeFilter.SHOW_ALL,{acceptNode:u=>{var h,p;if(n&&t){if((h=u.classList)!=null&&h.contains(E))return NodeFilter.FILTER_ACCEPT;if(n.contains(u))return NodeFilter.FILTER_REJECT}return(p=u.classList)!=null&&p.contains(E)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),l=[];for(;r=o.nextNode();)r.originalParent||(r.originalParent=r.parentNode),l.push(r);return e?l.reverse():l}function Ae(s,e=!0){return e?be(ge(s)):fe(s).map(G)}const _e=({index:s,newIndex:e,queueItems:t,cleanUp:r})=>{for(let n=s+1;n<e+1;n++)r(t[n][0])},we=s=>Number.isInteger(s),ce=({queueItems:s,selector:e,cursorPosition:t,to:r})=>{if(we(e))return-1*e;let n=new RegExp("END","i").test(r),o=e?[...s].reverse().findIndex(({char:l})=>{let u=l.parentElement,h=u.matches(e);return!(!n||!h)||h&&u.firstChild.isSameNode(l)}):-1;return o<0&&(o=n?0:s.length-1),o-t+(n?0:1)},A=(s,e)=>new Array(e).fill(s);let F=s=>new Promise(e=>{requestAnimationFrame(async()=>{e(await s())})}),pe=s=>s==null?void 0:s.getAnimations().find(e=>e.id===s.dataset.tiAnimationId),Te=({cursor:s,frames:e,options:t})=>{let r=s.animate(e,t);return r.pause(),r.id=s.dataset.tiAnimationId,F(()=>{F(()=>{r.play()})}),r},de=s=>{var e;return(e=s.func)==null?void 0:e.call(null)},$e=async({index:s,queueItems:e,wait:t,cursor:r,cursorOptions:n})=>{let o=e[s][1],l=[],u=s,h=o,p=()=>h&&!h.delay,c=o.shouldPauseCursor()&&n.autoPause;for(;p();)l.push(h),p()&&u++,h=e[u]?e[u][1]:null;if(l.length)return await F(async()=>{for(let P of l)await de(P)}),u-1;let y,b=pe(r);return b&&(y={...b.effect.getComputedTiming(),delay:c?n.autoPauseDelay:0}),await t(async()=>{b&&c&&b.cancel(),await F(()=>{de(o)})},o.delay),await(({cursor:P,options:Z,cursorOptions:ee})=>{if(!P||!ee)return;let B,k=pe(P);k&&(Z.delay=k.effect.getComputedTiming().delay,B=k.currentTime,k.cancel());let te=Te({cursor:P,frames:ee.animation.frames,options:Z});return B&&(te.currentTime=B),te})({cursor:r,options:y,cursorOptions:n}),s};const _=s=>"value"in s;let v=s=>typeof s=="function"?s():s,K=(s,e=document,t=!1)=>e["querySelector"+(t?"All":"")](s);const S=(s,e)=>Object.assign({},s,e);let Oe={"font-family":"","font-weight":"","font-size":"","font-style":"","line-height":"",color:"",transform:"translateX(-.125em)"};var i,Ie,q,Q,Ee,U,V,X,O,w,Ce,N,L,ve,R,Pe,Se,J,H,x,z,I,D,M,W,T;class He{constructor(e,t={}){j(this,i);m(this,"element");m(this,"timeouts");m(this,"cursorPosition");m(this,"predictedCursorPosition");m(this,"statuses",{started:!1,completed:!1,frozen:!1,destroyed:!1,firing:!1});m(this,"opts");m(this,"id");m(this,"queue");m(this,"cursor");m(this,"flushCallback",null);m(this,"unfreeze",()=>{});m(this,"is",function(e){return this.statuses[e]});j(this,R,e=>{this.opts.cursor=(t=>{var r,n;if(typeof t=="object"){let o={},{frames:l,options:u}=C.cursor.animation;return o.animation=t.animation||{},o.animation.frames=((r=t.animation)==null?void 0:r.frames)||l,o.animation.options=S(u,((n=t.animation)==null?void 0:n.options)||{}),o.autoPause=t.autoPause??C.cursor.autoPause,o.autoPauseDelay=t.autoPauseDelay||C.cursor.autoPauseDelay,o}return t===!0?C.cursor:t})(e.cursor??C.cursor),this.opts.strings=a(this,i,Pe).call(this,oe(this.opts.strings)),this.opts=S(this.opts,{html:!d(this,i,M)&&this.opts.html,nextStringDelay:le(this.opts.nextStringDelay),loopDelay:le(this.opts.loopDelay)})});var r;this.opts=S(C,t),this.element=typeof(r=e)=="string"?K(r):r,this.timeouts=[],this.cursorPosition=0,this.unfreeze=()=>{},this.predictedCursorPosition=null,this.statuses=S({},Me),this.id=Math.random().toString().substring(2,9),this.queue=function(n){let o=function(c){return oe(c).forEach(y=>{var b;return p.set(Symbol((b=y.char)==null?void 0:b.innerText),l({...y}))}),this},l=c=>(c.shouldPauseCursor=function(){return!!(this.typeable||this.cursorable||this.deletable)},c),u=()=>p,h=()=>Array.from(p.values()),p=new Map;return o(n),{add:o,set:function(c,y){let b=[...p.keys()];p.set(b[c],l(y))},wipe:function(){p=new Map,o(n)},done:(c,y=!1)=>y?p.delete(c):p.get(c).done=!0,reset:function(){p.forEach(c=>delete c.done)},destroy:c=>p.delete(c),getItems:(c=!1)=>c?h():h().filter(y=>!y.done),getQueue:u,getTypeable:()=>h().filter(c=>c.typeable),getPendingQueueItems:()=>{const c=[];for(let[,y]of u())y.done||c.push(y);return c}}}([{delay:this.opts.startDelay}]),d(this,R).call(this,t),this.cursor=a(this,i,Se).call(this),this.element.dataset.typeitId=this.id,ae(ke),this.opts.strings.length&&a(this,i,ve).call(this)}go(){return this.statuses.started?this:(a(this,i,X).call(this),this.opts.waitUntilVisible?(e=this.element,t=a(this,i,q).bind(this),new IntersectionObserver((r,n)=>{r.forEach(o=>{o.isIntersecting&&(t(),n.unobserve(e))})},{threshold:1}).observe(e),this):(a(this,i,q).call(this),this));var e,t}destroy(e=!0){this.timeouts=(this.timeouts.forEach(clearTimeout),[]),v(e)&&this.cursor&&a(this,i,z).call(this,this.cursor),this.statuses.destroyed=!0}reset(e){!this.is("destroyed")&&this.destroy(),e?(this.queue.wipe(),e(this)):this.queue.reset(),this.cursorPosition=0;for(let t in this.statuses)this.statuses[t]=!1;return this.element[a(this,i,O).call(this)?"value":"innerHTML"]="",this}type(e,t={}){e=v(e);let{instant:r}=t,n=a(this,i,N).call(this,t),o=Ae(e,this.opts.html).map(u=>{return{func:()=>a(this,i,H).call(this,u),char:u,delay:r||(h=u,/<(.+)>(.*?)<\/(.+)>/.test(h.outerHTML))?0:a(this,i,I).call(this),typeable:u.nodeType===Node.TEXT_NODE};var h}),l=[n[0],{func:async()=>await this.opts.beforeString(e,this)},...o,{func:async()=>await this.opts.afterString(e,this)},n[1]];return a(this,i,w).call(this,l,t)}break(e={}){return a(this,i,w).call(this,{func:()=>a(this,i,H).call(this,$("BR")),typeable:!0},e)}move(e,t={}){e=v(e);let r=a(this,i,N).call(this,t),{instant:n,to:o}=t,l=ce({queueItems:this.queue.getTypeable(),selector:e===null?"":e,to:o,cursorPosition:d(this,i,D)}),u=l<0?-1:1;return this.predictedCursorPosition=d(this,i,D)+l,a(this,i,w).call(this,[r[0],...A({func:()=>a(this,i,Q).call(this,u),delay:n?0:a(this,i,I).call(this),cursorable:!0},Math.abs(l)),r[1]],t)}exec(e,t={}){let r=a(this,i,N).call(this,t);return a(this,i,w).call(this,[r[0],{func:()=>e(this)},r[1]],t)}options(e,t={}){return e=v(e),a(this,i,L).call(this,e),a(this,i,w).call(this,{},t)}pause(e,t={}){return a(this,i,w).call(this,{delay:v(e)},t)}delete(e=null,t={}){e=v(e);let r=a(this,i,N).call(this,t),n=e,{instant:o,to:l}=t,u=this.queue.getTypeable(),h=n===null?u.length:we(n)?n:ce({queueItems:u,selector:n,cursorPosition:d(this,i,D),to:l});return a(this,i,w).call(this,[r[0],...A({func:a(this,i,x).bind(this),delay:o?0:a(this,i,I).call(this,1),deletable:!0},h),r[1]],t)}freeze(){this.statuses.frozen=!0}flush(e=null){return this.flushCallback=e||this.flushCallback,this.statuses.firing||(a(this,i,X).call(this),a(this,i,q).call(this,!1).then(()=>{if(this.queue.getPendingQueueItems().length>0)return this.flush();this.flushCallback(),this.flushCallback=null})),this}getQueue(){return this.queue}getOptions(){return this.opts}updateOptions(e){return a(this,i,L).call(this,e)}getElement(){return this.element}empty(e={}){return a(this,i,w).call(this,{func:a(this,i,Ie).bind(this)},e)}}i=new WeakSet,Ie=async function(){a(this,i,O).call(this)?this.element.value="":d(this,i,T).forEach(a(this,i,z).bind(this))},q=async function(e=!0){this.statuses.started=!0,this.statuses.firing=!0;let t=r=>{this.queue.done(r,!e)};try{let r=[...this.queue.getQueue()];for(let o=0;o<r.length;o++){let[l,u]=r[o];if(!u.done){if(!u.deletable||u.deletable&&d(this,i,T).length){let h=await a(this,i,U).call(this,o,r);_e({index:o,newIndex:h,queueItems:r,cleanUp:t}),o=h}t(l)}}if(!e)return this.statuses.firing=!1,this;if(this.statuses.completed=!0,this.statuses.firing=!1,await this.opts.afterComplete(this),!this.opts.loop)throw"";let n=this.opts.loopDelay;a(this,i,V).call(this,async()=>{await a(this,i,Ee).call(this,n[0]),a(this,i,q).call(this)},n[1])}catch{}return this.statuses.firing=!1,this},Q=async function(e){var t,r,n;this.cursorPosition=(t=e,r=this.cursorPosition,n=d(this,i,T),Math.min(Math.max(r+t,0),n.length)),((o,l,u)=>{let h=l[u-1],p=K(`.${E}`,o);(o=(h==null?void 0:h.parentNode)||o).insertBefore(p,h||null)})(this.element,d(this,i,T),this.cursorPosition)},Ee=async function(e){let t=d(this,i,D);t&&await a(this,i,Q).call(this,{value:t});let r=d(this,i,T).map(n=>[Symbol(),{func:a(this,i,x).bind(this),delay:a(this,i,I).call(this,1),deletable:!0,shouldPauseCursor:()=>!0}]);for(let n=0;n<r.length;n++)await a(this,i,U).call(this,n,r);this.queue.reset(),this.queue.set(0,{delay:e})},U=function(e,t){return $e({index:e,queueItems:t,wait:a(this,i,V).bind(this),cursor:this.cursor,cursorOptions:this.opts.cursor})},V=async function(e,t,r=!1){this.statuses.frozen&&await new Promise(n=>{this.unfreeze=()=>{this.statuses.frozen=!1,n()}}),r||await this.opts.beforeStep(this),await((n,o,l)=>new Promise(u=>{l.push(setTimeout(async()=>{await n(),u()},o||0))}))(e,t,this.timeouts),r||await this.opts.afterStep(this)},X=async function(){if(!a(this,i,O).call(this)&&this.cursor&&this.element.appendChild(this.cursor),d(this,i,W)){((n,o)=>{let l=`[${me}='${n}'] .${E}`,u=getComputedStyle(o),h=Object.entries(Oe).reduce((p,[c,y])=>`${p} ${c}: var(--ti-cursor-${c}, ${y||u[c]});`,"");ae(`${l} { display: inline-block; width: 0; ${h} }`,n)})(this.id,this.element),this.cursor.dataset.tiAnimationId=this.id;let{animation:e}=this.opts.cursor,{frames:t,options:r}=e;Te({frames:t,cursor:this.cursor,options:{duration:this.opts.cursorSpeed,...r}})}},O=function(){return _(this.element)},w=function(e,t){return this.queue.add(e),a(this,i,Ce).call(this,t),this},Ce=function(e={}){let t=e.delay;t&&this.queue.add({delay:t})},N=function(e={}){return[{func:()=>a(this,i,L).call(this,e)},{func:()=>a(this,i,L).call(this,this.opts)}]},L=async function(e){this.opts=S(this.opts,e)},ve=function(){let e=this.opts.strings.filter(t=>!!t);e.forEach((t,r)=>{if(this.type(t),r+1===e.length)return;let n=this.opts.breakLines?[{func:()=>a(this,i,H).call(this,$("BR")),typeable:!0}]:A({func:a(this,i,x).bind(this),delay:a(this,i,I).call(this,1)},this.queue.getTypeable().length);a(this,i,J).call(this,n)})},R=new WeakMap,Pe=function(e){let t=this.element.innerHTML;return t?(this.element.innerHTML="",this.opts.startDelete?(this.element.innerHTML=t,Y(this.element),a(this,i,J).call(this,A({func:a(this,i,x).bind(this),delay:a(this,i,I).call(this,1),deletable:!0},d(this,i,T).length)),e):(r=t,r.replace(/<!--(.+?)-->/g,"").trim().split(/<br(?:\s*?)(?:\/)?>/)).concat(e)):e;var r},Se=function(){if(d(this,i,M))return null;let e=$("span");return e.className=E,d(this,i,W)?(e.innerHTML=ge(this.opts.cursorChar).innerHTML,e):(e.style.visibility="hidden",e)},J=function(e){let t=this.opts.nextStringDelay;this.queue.add([{delay:t[0]},...e,{delay:t[1]}])},H=function(e){((t,r)=>{if(_(t))return void(t.value=`${t.value}${r.textContent}`);r.innerHTML="";let n=(o=r.originalParent,/body/i.test(o==null?void 0:o.tagName)?t:r.originalParent||t);var o;let l=K("."+E,n)||null;l&&l.parentElement!==n&&(n=l.parentElement),n.insertBefore(r,l)})(this.element,e)},x=function(){d(this,i,T).length&&(d(this,i,M)?this.element.value=this.element.value.slice(0,-1):a(this,i,z).call(this,d(this,i,T)[this.cursorPosition]))},z=function(e){((t,r)=>{if(!t)return;let n=t.parentNode;(n.childNodes.length>1||n.isSameNode(r)?t:n).remove()})(e,this.element)},I=function(e=0){return function(t){let{speed:r,deleteSpeed:n,lifeLike:o}=t;return n=n!==null?n:r/3,o?[ue(r,he(r)),ue(n,he(n))]:[r,n]}(this.opts)[e]},D=function(){return this.predictedCursorPosition??this.cursorPosition},M=function(){return _(this.element)},W=function(){return!!this.opts.cursor&&!d(this,i,M)},T=function(){return e=this.element,_(e)?fe(e.value):be(e,!0).filter(t=>!(t.childNodes.length>0));var e};var ze=Object.defineProperty,Fe=Object.getOwnPropertyDescriptor,g=(s,e,t,r)=>{for(var n,o=r>1?void 0:r?Fe(e,t):e,l=s.length-1;l>=0;l--)(n=s[l])&&(o=(r?n(e,t,o):n(o))||o);return r&&o&&ze(e,t,o),o};exports.TypewriterElement=class extends xe.$LitElement(ne.css`
|
|
1
|
+
"use strict";var qe=Object.defineProperty;var se=s=>{throw TypeError(s)};var Ne=(s,e,t)=>e in s?qe(s,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):s[e]=t;var m=(s,e,t)=>Ne(s,typeof e!="symbol"?e+"":e,t),ie=(s,e,t)=>e.has(s)||se("Cannot "+t);var d=(s,e,t)=>(ie(s,e,"read from private field"),t?t.call(s):e.get(s)),j=(s,e,t)=>e.has(s)?se("Cannot add the same private member more than once"):e instanceof WeakSet?e.add(s):e.set(s,t);var a=(s,e,t)=>(ie(s,e,"access private method"),t);const Le=require("./consume-Bb7_UzYd.cjs");require("rxjs"),require("lit/directives/class-map.js"),require("lit/directives/style-map.js");const xe=require("./litElement.mixin-AkHgwswI.cjs");require("./tailwind.mixin-DLLvl6_j.cjs");const re=require("./delay-DizjkqVw.cjs"),De=require("./intersection-CVvaDv96.cjs"),ne=require("lit"),f=require("lit/decorators.js"),ye=s=>Array.isArray(s),oe=s=>ye(s)?s:[s],me="data-typeit-id",E="ti-cursor",Me={started:!1,completed:!1,frozen:!1,destroyed:!1},C={breakLines:!0,cursor:{autoPause:!0,autoPauseDelay:500,animation:{frames:[0,0,1].map(s=>({opacity:s})),options:{iterations:1/0,easing:"steps(2, start)",fill:"forwards"}}},cursorChar:"|",cursorSpeed:1e3,deleteSpeed:null,html:!0,lifeLike:!0,loop:!1,loopDelay:750,nextStringDelay:750,speed:100,startDelay:250,startDelete:!1,strings:[],waitUntilVisible:!1,beforeString:()=>{},afterString:()=>{},beforeStep:()=>{},afterStep:()=>{},afterComplete:()=>{}},ke=`[${me}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`,$=s=>document.createElement(s),G=s=>document.createTextNode(s),ae=(s,e="")=>{let t=$("style");t.id=e,t.appendChild(G(s)),document.head.appendChild(t)},le=s=>(ye(s)||(s=[s/2,s/2]),s),ue=(s,e)=>Math.abs(Math.random()*(s+e-(s-e))+(s-e));let he=s=>s/2;const fe=s=>Array.from(s);let Y=s=>([...s.childNodes].forEach(e=>{if(e.nodeValue)return[...e.nodeValue].forEach(t=>{e.parentNode.insertBefore(G(t),e)}),void e.remove();Y(e)}),s);const ge=s=>{let e=document.implementation.createHTMLDocument();return e.body.innerHTML=s,Y(e.body)};function be(s,e=!1,t=!1){let r,n=s.querySelector(`.${E}`),o=document.createTreeWalker(s,NodeFilter.SHOW_ALL,{acceptNode:u=>{var h,p;if(n&&t){if((h=u.classList)!=null&&h.contains(E))return NodeFilter.FILTER_ACCEPT;if(n.contains(u))return NodeFilter.FILTER_REJECT}return(p=u.classList)!=null&&p.contains(E)?NodeFilter.FILTER_REJECT:NodeFilter.FILTER_ACCEPT}}),l=[];for(;r=o.nextNode();)r.originalParent||(r.originalParent=r.parentNode),l.push(r);return e?l.reverse():l}function Ae(s,e=!0){return e?be(ge(s)):fe(s).map(G)}const _e=({index:s,newIndex:e,queueItems:t,cleanUp:r})=>{for(let n=s+1;n<e+1;n++)r(t[n][0])},we=s=>Number.isInteger(s),ce=({queueItems:s,selector:e,cursorPosition:t,to:r})=>{if(we(e))return-1*e;let n=new RegExp("END","i").test(r),o=e?[...s].reverse().findIndex(({char:l})=>{let u=l.parentElement,h=u.matches(e);return!(!n||!h)||h&&u.firstChild.isSameNode(l)}):-1;return o<0&&(o=n?0:s.length-1),o-t+(n?0:1)},A=(s,e)=>new Array(e).fill(s);let F=s=>new Promise(e=>{requestAnimationFrame(async()=>{e(await s())})}),pe=s=>s==null?void 0:s.getAnimations().find(e=>e.id===s.dataset.tiAnimationId),Te=({cursor:s,frames:e,options:t})=>{let r=s.animate(e,t);return r.pause(),r.id=s.dataset.tiAnimationId,F(()=>{F(()=>{r.play()})}),r},de=s=>{var e;return(e=s.func)==null?void 0:e.call(null)},$e=async({index:s,queueItems:e,wait:t,cursor:r,cursorOptions:n})=>{let o=e[s][1],l=[],u=s,h=o,p=()=>h&&!h.delay,c=o.shouldPauseCursor()&&n.autoPause;for(;p();)l.push(h),p()&&u++,h=e[u]?e[u][1]:null;if(l.length)return await F(async()=>{for(let P of l)await de(P)}),u-1;let y,b=pe(r);return b&&(y={...b.effect.getComputedTiming(),delay:c?n.autoPauseDelay:0}),await t(async()=>{b&&c&&b.cancel(),await F(()=>{de(o)})},o.delay),await(({cursor:P,options:Z,cursorOptions:ee})=>{if(!P||!ee)return;let B,k=pe(P);k&&(Z.delay=k.effect.getComputedTiming().delay,B=k.currentTime,k.cancel());let te=Te({cursor:P,frames:ee.animation.frames,options:Z});return B&&(te.currentTime=B),te})({cursor:r,options:y,cursorOptions:n}),s};const _=s=>"value"in s;let v=s=>typeof s=="function"?s():s,K=(s,e=document,t=!1)=>e["querySelector"+(t?"All":"")](s);const S=(s,e)=>Object.assign({},s,e);let Oe={"font-family":"","font-weight":"","font-size":"","font-style":"","line-height":"",color:"",transform:"translateX(-.125em)"};var i,Ie,q,Q,Ee,U,V,X,O,w,Ce,N,L,ve,R,Pe,Se,J,H,x,z,I,D,M,W,T;class He{constructor(e,t={}){j(this,i);m(this,"element");m(this,"timeouts");m(this,"cursorPosition");m(this,"predictedCursorPosition");m(this,"statuses",{started:!1,completed:!1,frozen:!1,destroyed:!1,firing:!1});m(this,"opts");m(this,"id");m(this,"queue");m(this,"cursor");m(this,"flushCallback",null);m(this,"unfreeze",()=>{});m(this,"is",function(e){return this.statuses[e]});j(this,R,e=>{this.opts.cursor=(t=>{var r,n;if(typeof t=="object"){let o={},{frames:l,options:u}=C.cursor.animation;return o.animation=t.animation||{},o.animation.frames=((r=t.animation)==null?void 0:r.frames)||l,o.animation.options=S(u,((n=t.animation)==null?void 0:n.options)||{}),o.autoPause=t.autoPause??C.cursor.autoPause,o.autoPauseDelay=t.autoPauseDelay||C.cursor.autoPauseDelay,o}return t===!0?C.cursor:t})(e.cursor??C.cursor),this.opts.strings=a(this,i,Pe).call(this,oe(this.opts.strings)),this.opts=S(this.opts,{html:!d(this,i,M)&&this.opts.html,nextStringDelay:le(this.opts.nextStringDelay),loopDelay:le(this.opts.loopDelay)})});var r;this.opts=S(C,t),this.element=typeof(r=e)=="string"?K(r):r,this.timeouts=[],this.cursorPosition=0,this.unfreeze=()=>{},this.predictedCursorPosition=null,this.statuses=S({},Me),this.id=Math.random().toString().substring(2,9),this.queue=function(n){let o=function(c){return oe(c).forEach(y=>{var b;return p.set(Symbol((b=y.char)==null?void 0:b.innerText),l({...y}))}),this},l=c=>(c.shouldPauseCursor=function(){return!!(this.typeable||this.cursorable||this.deletable)},c),u=()=>p,h=()=>Array.from(p.values()),p=new Map;return o(n),{add:o,set:function(c,y){let b=[...p.keys()];p.set(b[c],l(y))},wipe:function(){p=new Map,o(n)},done:(c,y=!1)=>y?p.delete(c):p.get(c).done=!0,reset:function(){p.forEach(c=>delete c.done)},destroy:c=>p.delete(c),getItems:(c=!1)=>c?h():h().filter(y=>!y.done),getQueue:u,getTypeable:()=>h().filter(c=>c.typeable),getPendingQueueItems:()=>{const c=[];for(let[,y]of u())y.done||c.push(y);return c}}}([{delay:this.opts.startDelay}]),d(this,R).call(this,t),this.cursor=a(this,i,Se).call(this),this.element.dataset.typeitId=this.id,ae(ke),this.opts.strings.length&&a(this,i,ve).call(this)}go(){return this.statuses.started?this:(a(this,i,X).call(this),this.opts.waitUntilVisible?(e=this.element,t=a(this,i,q).bind(this),new IntersectionObserver((r,n)=>{r.forEach(o=>{o.isIntersecting&&(t(),n.unobserve(e))})},{threshold:1}).observe(e),this):(a(this,i,q).call(this),this));var e,t}destroy(e=!0){this.timeouts=(this.timeouts.forEach(clearTimeout),[]),v(e)&&this.cursor&&a(this,i,z).call(this,this.cursor),this.statuses.destroyed=!0}reset(e){!this.is("destroyed")&&this.destroy(),e?(this.queue.wipe(),e(this)):this.queue.reset(),this.cursorPosition=0;for(let t in this.statuses)this.statuses[t]=!1;return this.element[a(this,i,O).call(this)?"value":"innerHTML"]="",this}type(e,t={}){e=v(e);let{instant:r}=t,n=a(this,i,N).call(this,t),o=Ae(e,this.opts.html).map(u=>{return{func:()=>a(this,i,H).call(this,u),char:u,delay:r||(h=u,/<(.+)>(.*?)<\/(.+)>/.test(h.outerHTML))?0:a(this,i,I).call(this),typeable:u.nodeType===Node.TEXT_NODE};var h}),l=[n[0],{func:async()=>await this.opts.beforeString(e,this)},...o,{func:async()=>await this.opts.afterString(e,this)},n[1]];return a(this,i,w).call(this,l,t)}break(e={}){return a(this,i,w).call(this,{func:()=>a(this,i,H).call(this,$("BR")),typeable:!0},e)}move(e,t={}){e=v(e);let r=a(this,i,N).call(this,t),{instant:n,to:o}=t,l=ce({queueItems:this.queue.getTypeable(),selector:e===null?"":e,to:o,cursorPosition:d(this,i,D)}),u=l<0?-1:1;return this.predictedCursorPosition=d(this,i,D)+l,a(this,i,w).call(this,[r[0],...A({func:()=>a(this,i,Q).call(this,u),delay:n?0:a(this,i,I).call(this),cursorable:!0},Math.abs(l)),r[1]],t)}exec(e,t={}){let r=a(this,i,N).call(this,t);return a(this,i,w).call(this,[r[0],{func:()=>e(this)},r[1]],t)}options(e,t={}){return e=v(e),a(this,i,L).call(this,e),a(this,i,w).call(this,{},t)}pause(e,t={}){return a(this,i,w).call(this,{delay:v(e)},t)}delete(e=null,t={}){e=v(e);let r=a(this,i,N).call(this,t),n=e,{instant:o,to:l}=t,u=this.queue.getTypeable(),h=n===null?u.length:we(n)?n:ce({queueItems:u,selector:n,cursorPosition:d(this,i,D),to:l});return a(this,i,w).call(this,[r[0],...A({func:a(this,i,x).bind(this),delay:o?0:a(this,i,I).call(this,1),deletable:!0},h),r[1]],t)}freeze(){this.statuses.frozen=!0}flush(e=null){return this.flushCallback=e||this.flushCallback,this.statuses.firing||(a(this,i,X).call(this),a(this,i,q).call(this,!1).then(()=>{if(this.queue.getPendingQueueItems().length>0)return this.flush();this.flushCallback(),this.flushCallback=null})),this}getQueue(){return this.queue}getOptions(){return this.opts}updateOptions(e){return a(this,i,L).call(this,e)}getElement(){return this.element}empty(e={}){return a(this,i,w).call(this,{func:a(this,i,Ie).bind(this)},e)}}i=new WeakSet,Ie=async function(){a(this,i,O).call(this)?this.element.value="":d(this,i,T).forEach(a(this,i,z).bind(this))},q=async function(e=!0){this.statuses.started=!0,this.statuses.firing=!0;let t=r=>{this.queue.done(r,!e)};try{let r=[...this.queue.getQueue()];for(let o=0;o<r.length;o++){let[l,u]=r[o];if(!u.done){if(!u.deletable||u.deletable&&d(this,i,T).length){let h=await a(this,i,U).call(this,o,r);_e({index:o,newIndex:h,queueItems:r,cleanUp:t}),o=h}t(l)}}if(!e)return this.statuses.firing=!1,this;if(this.statuses.completed=!0,this.statuses.firing=!1,await this.opts.afterComplete(this),!this.opts.loop)throw"";let n=this.opts.loopDelay;a(this,i,V).call(this,async()=>{await a(this,i,Ee).call(this,n[0]),a(this,i,q).call(this)},n[1])}catch{}return this.statuses.firing=!1,this},Q=async function(e){var t,r,n;this.cursorPosition=(t=e,r=this.cursorPosition,n=d(this,i,T),Math.min(Math.max(r+t,0),n.length)),((o,l,u)=>{let h=l[u-1],p=K(`.${E}`,o);(o=(h==null?void 0:h.parentNode)||o).insertBefore(p,h||null)})(this.element,d(this,i,T),this.cursorPosition)},Ee=async function(e){let t=d(this,i,D);t&&await a(this,i,Q).call(this,{value:t});let r=d(this,i,T).map(n=>[Symbol(),{func:a(this,i,x).bind(this),delay:a(this,i,I).call(this,1),deletable:!0,shouldPauseCursor:()=>!0}]);for(let n=0;n<r.length;n++)await a(this,i,U).call(this,n,r);this.queue.reset(),this.queue.set(0,{delay:e})},U=function(e,t){return $e({index:e,queueItems:t,wait:a(this,i,V).bind(this),cursor:this.cursor,cursorOptions:this.opts.cursor})},V=async function(e,t,r=!1){this.statuses.frozen&&await new Promise(n=>{this.unfreeze=()=>{this.statuses.frozen=!1,n()}}),r||await this.opts.beforeStep(this),await((n,o,l)=>new Promise(u=>{l.push(setTimeout(async()=>{await n(),u()},o||0))}))(e,t,this.timeouts),r||await this.opts.afterStep(this)},X=async function(){if(!a(this,i,O).call(this)&&this.cursor&&this.element.appendChild(this.cursor),d(this,i,W)){((n,o)=>{let l=`[${me}='${n}'] .${E}`,u=getComputedStyle(o),h=Object.entries(Oe).reduce((p,[c,y])=>`${p} ${c}: var(--ti-cursor-${c}, ${y||u[c]});`,"");ae(`${l} { display: inline-block; width: 0; ${h} }`,n)})(this.id,this.element),this.cursor.dataset.tiAnimationId=this.id;let{animation:e}=this.opts.cursor,{frames:t,options:r}=e;Te({frames:t,cursor:this.cursor,options:{duration:this.opts.cursorSpeed,...r}})}},O=function(){return _(this.element)},w=function(e,t){return this.queue.add(e),a(this,i,Ce).call(this,t),this},Ce=function(e={}){let t=e.delay;t&&this.queue.add({delay:t})},N=function(e={}){return[{func:()=>a(this,i,L).call(this,e)},{func:()=>a(this,i,L).call(this,this.opts)}]},L=async function(e){this.opts=S(this.opts,e)},ve=function(){let e=this.opts.strings.filter(t=>!!t);e.forEach((t,r)=>{if(this.type(t),r+1===e.length)return;let n=this.opts.breakLines?[{func:()=>a(this,i,H).call(this,$("BR")),typeable:!0}]:A({func:a(this,i,x).bind(this),delay:a(this,i,I).call(this,1)},this.queue.getTypeable().length);a(this,i,J).call(this,n)})},R=new WeakMap,Pe=function(e){let t=this.element.innerHTML;return t?(this.element.innerHTML="",this.opts.startDelete?(this.element.innerHTML=t,Y(this.element),a(this,i,J).call(this,A({func:a(this,i,x).bind(this),delay:a(this,i,I).call(this,1),deletable:!0},d(this,i,T).length)),e):(r=t,r.replace(/<!--(.+?)-->/g,"").trim().split(/<br(?:\s*?)(?:\/)?>/)).concat(e)):e;var r},Se=function(){if(d(this,i,M))return null;let e=$("span");return e.className=E,d(this,i,W)?(e.innerHTML=ge(this.opts.cursorChar).innerHTML,e):(e.style.visibility="hidden",e)},J=function(e){let t=this.opts.nextStringDelay;this.queue.add([{delay:t[0]},...e,{delay:t[1]}])},H=function(e){((t,r)=>{if(_(t))return void(t.value=`${t.value}${r.textContent}`);r.innerHTML="";let n=(o=r.originalParent,/body/i.test(o==null?void 0:o.tagName)?t:r.originalParent||t);var o;let l=K("."+E,n)||null;l&&l.parentElement!==n&&(n=l.parentElement),n.insertBefore(r,l)})(this.element,e)},x=function(){d(this,i,T).length&&(d(this,i,M)?this.element.value=this.element.value.slice(0,-1):a(this,i,z).call(this,d(this,i,T)[this.cursorPosition]))},z=function(e){((t,r)=>{if(!t)return;let n=t.parentNode;(n.childNodes.length>1||n.isSameNode(r)?t:n).remove()})(e,this.element)},I=function(e=0){return function(t){let{speed:r,deleteSpeed:n,lifeLike:o}=t;return n=n!==null?n:r/3,o?[ue(r,he(r)),ue(n,he(n))]:[r,n]}(this.opts)[e]},D=function(){return this.predictedCursorPosition??this.cursorPosition},M=function(){return _(this.element)},W=function(){return!!this.opts.cursor&&!d(this,i,M)},T=function(){return e=this.element,_(e)?fe(e.value):be(e,!0).filter(t=>!(t.childNodes.length>0));var e};var ze=Object.defineProperty,Fe=Object.getOwnPropertyDescriptor,g=(s,e,t,r)=>{for(var n,o=r>1?void 0:r?Fe(e,t):e,l=s.length-1;l>=0;l--)(n=s[l])&&(o=(r?n(e,t,o):n(o))||o);return r&&o&&ze(e,t,o),o};exports.TypewriterElement=class extends xe.$LitElement(ne.css`
|
|
2
2
|
:host {
|
|
3
3
|
display: inherit;
|
|
4
4
|
}
|
|
@@ -18,4 +18,4 @@
|
|
|
18
18
|
@slotchange=${()=>{this._startTyping()}}
|
|
19
19
|
></slot>
|
|
20
20
|
</div> `}},g([f.property({type:Number})],exports.TypewriterElement.prototype,"speed",2),g([Le.c({context:re.delayContext,subscribe:!0}),f.property({type:Number})],exports.TypewriterElement.prototype,"delay",2),g([f.property({type:Boolean})],exports.TypewriterElement.prototype,"autoStart",2),g([f.property({type:String})],exports.TypewriterElement.prototype,"cursorChar",2),g([f.property({type:Number})],exports.TypewriterElement.prototype,"deleteSpeed",2),g([f.property({type:Boolean})],exports.TypewriterElement.prototype,"once",2),g([f.query("#typewriter")],exports.TypewriterElement.prototype,"typewriterContainer",2),g([f.queryAssignedNodes({flatten:!0})],exports.TypewriterElement.prototype,"_getSlottedNodes",2),g([f.queryAssignedElements({flatten:!0})],exports.TypewriterElement.prototype,"_getSlottedElements",2),exports.TypewriterElement=g([f.customElement("schmancy-typewriter")],exports.TypewriterElement);
|
|
21
|
-
//# sourceMappingURL=typewriter-
|
|
21
|
+
//# sourceMappingURL=typewriter-Blx_6T4o.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typewriter-WqDo75_3.cjs","sources":["../.yarn/unplugged/typeit-npm-8.8.7-4441c75f10/node_modules/typeit/dist/index.es.js","../src/typewriter/typewriter.ts"],"sourcesContent":["// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getPendingQueueItems = () => {\n const pending = [];\n for (let [, value] of getQueue()) {\n if (!value.done) {\n pending.push(value);\n }\n }\n return pending;\n };\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable,\n getPendingQueueItems\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst cleanUpSkipped = ({\n index,\n newIndex,\n queueItems,\n cleanUp\n}) => {\n for (let i = index + 1; i < newIndex + 1; i++) {\n cleanUp(queueItems[i][0]);\n }\n};\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions) return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n let cursorNode = select(\".\" + CURSOR_CLASS, target) || null;\n if (cursorNode && cursorNode.parentElement !== target) {\n target = cursorNode.parentElement;\n }\n target.insertBefore(character, cursorNode);\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node) return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(/<!--(.+?)-->/g, \"\").trim().split(/<br(?:\\s*?)(?:\\/)?>/);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false,\n firing: false\n };\n opts;\n id;\n queue;\n cursor;\n flushCallback = null;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = null) {\n this.flushCallback = cb || this.flushCallback;\n if (this.statuses.firing) {\n return this;\n }\n this.#attachCursor();\n this.#fire(false).then(() => {\n if (this.queue.getPendingQueueItems().length > 0) {\n return this.flush();\n }\n this.flushCallback();\n this.flushCallback = null;\n });\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n this.statuses.firing = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done) continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n cleanUpSkipped({\n index,\n newIndex,\n queueItems,\n cleanUp\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n this.statuses.firing = false;\n return this;\n }\n this.statuses.completed = true;\n this.statuses.firing = false;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n this.statuses.firing = false;\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n this.opts.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length) return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { delayContext } from '@schmancy/delay'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { intersection$ } from '@schmancy/utils/intersection'\nimport { css, html, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, queryAssignedNodes } from 'lit/decorators.js'\nimport TypeIt, { Options as TypeItOptions } from 'typeit'\n\n@customElement('schmancy-typewriter')\nexport class TypewriterElement extends $LitElement(css`\n\t:host {\n\t\tdisplay: inherit;\n\t}\n\n\t#typewriter {\n\t\t--ti-cursor-display: initial;\n\t}\n\n\t#typewriter .ti-cursor {\n\t\tdisplay: var(--ti-cursor-display);\n\t}\n`) {\n\t/**\n\t * Typing speed in milliseconds per character.\n\t */\n\t@property({ type: Number })\n\tspeed: number = 50\n\n\t/**\n\t * Delay before typing starts (ms).\n\t */\n\t@consume({ context: delayContext, subscribe: true })\n\t@property({ type: Number })\n\tdelay: number = 0\n\n\t/**\n\t * Automatically start typing on initialization.\n\t */\n\t@property({ type: Boolean })\n\tautoStart: boolean = true\n\n\t/**\n\t * The cursor character.\n\t */\n\t@property({ type: String })\n\tcursorChar: string = ''\n\n\t/**\n\t * Typing speed for deletions (ms per character).\n\t */\n\t@property({ type: Number })\n\tdeleteSpeed: number = 25\n\n\t@property({ type: Boolean }) once = true\n\t/**\n\t * TypeIt instance.\n\t */\n\tprivate typeItInstance: TypeIt | null = null\n\n\t/**\n\t * Reference to the typewriter container.\n\t */\n\t@query('#typewriter')\n\tprivate typewriterContainer!: HTMLElement\n\n\t@queryAssignedNodes({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedNodes!: Node[]\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedElements!: HTMLElement[]\n\t/**\n\t * Lifecycle method called when the component is disconnected from the DOM.\n\t * Ensures that TypeIt instances are properly cleaned up.\n\t */\n\n\tprivate sessionKey = ''\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._destroyTypeIt()\n\t}\n\n\t/**\n\t * Initializes the TypeIt instance with the provided slotted content.\n\t */\n\tprivate _startTyping() {\n\t\t// Destroy any existing TypeIt instance\n\t\tthis._destroyTypeIt()\n\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.shadowRoot?.querySelector('slot')?.removeAttribute('hidden')\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.typewriterContainer) {\n\t\t\tconsole.warn('Typewriter container not found.')\n\t\t\treturn\n\t\t}\n\n\t\t// Configure TypeIt options\n\t\tconst typeItOptions: TypeItOptions = {\n\t\t\tspeed: this.speed,\n\t\t\tstartDelay: this.delay,\n\t\t\tcursor: !!this.cursorChar,\n\t\t\tcursorChar: this.cursorChar,\n\t\t\tdeleteSpeed: this.deleteSpeed,\n\t\t\tafterComplete: () => {\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Dispatch the custom event\n\t\t\t\tthis.dispatchEvent(new CustomEvent('typeit-complete', { bubbles: true, composed: true }))\n\n\t\t\t\t// Hide the cursor\n\t\t\t\tthis.typewriterContainer.style.setProperty('--ti-cursor-display', 'none')\n\t\t\t},\n\t\t}\n\n\t\t// Initialize TypeIt\n\t\tthis.typeItInstance = new TypeIt(this.typewriterContainer, typeItOptions)\n\n\t\t// Process slotted content as actions\n\t\tconst slottedNodes = this._getSlottedNodes\n\t\tslottedNodes.forEach(node => {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\t// Handle plain text\n\t\t\t\tthis.typeItInstance?.type(node.textContent || '')\n\t\t\t} else if (node instanceof HTMLElement) {\n\t\t\t\t// Handle custom element\n\t\t\t\tthis._processCustomElement(node)\n\t\t\t}\n\t\t})\n\n\t\t// Start the typing animation if autoStart is enabled\n\t\t// use rxjs to detect once we are in the view port\n\t\tintersection$(this.shadowRoot?.host as Element).subscribe(() => {\n\t\t\t// alert('in view')\n\t\t\tthis.typeItInstance?.go()\n\t\t})\n\t\t// Start the typing animation if autoStart is enabled\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this._getSlottedElements.map(el => el.outerHTML).join('')\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\t/**\n\t * Destroys the current TypeIt instance if it exists.\n\t */\n\tprivate _destroyTypeIt() {\n\t\tif (this.typeItInstance) {\n\t\t\ttry {\n\t\t\t\tthis.typeItInstance.destroy()\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error destroying TypeIt instance:', error)\n\t\t\t}\n\t\t\tthis.typeItInstance = null\n\t\t}\n\t}\n\n\t/**\n\t * Processes a custom element for its typing behavior.\n\t */\n\tprivate _processCustomElement(element: HTMLElement) {\n\t\tconst action = element.getAttribute('action')\n\t\tconst value = element.getAttribute('value')\n\t\tswitch (action) {\n\t\t\tcase 'pause':\n\t\t\t\tthis.typeItInstance?.pause(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tcase 'delete':\n\t\t\t\tthis.typeItInstance?.delete(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tif (element.tagName === 'P') {\n\t\t\t\t\tthis.typeItInstance.break()\n\t\t\t\t}\n\t\t\t\t// Treat as text if no action is defined\n\t\t\t\tthis.typeItInstance?.type(element.textContent || '')\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Renders the component's HTML.\n\t */\n\trender(): TemplateResult {\n\t\treturn html`<div id=\"typewriter\" aria-live=\"polite\"></div>\n\n\t\t\t<div class=\"typewriter\">\n\t\t\t\t<slot\n\t\t\t\t\thidden\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tthis._startTyping()\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typewriter': TypewriterElement\n\t}\n}\n"],"names":["isArray","thing","Array","asArray","value","DATA_ATTRIBUTE","CURSOR_CLASS","DEFAULT_STATUSES","started","completed","frozen","destroyed","DEFAULT_OPTIONS","breakLines","cursor","autoPause","autoPauseDelay","animation","frames","map","n","opacity","options","iterations","Infinity","easing","fill","cursorChar","cursorSpeed","deleteSpeed","html","lifeLike","loop","loopDelay","nextStringDelay","speed","startDelay","startDelete","strings","waitUntilVisible","beforeString","afterString","beforeStep","afterStep","afterComplete","PLACEHOLDER_CSS","createElement","el","document","createTextNode","content","appendStyleBlock","styles","id","styleBlock","appendChild","head","calculateDelay","delayArg","randomInRange","range","Math","abs","random","val","toArray","from","expandTextNodes","element","childNodes","forEach","child","nodeValue","c","parentNode","insertBefore","remove","getParsedBody","doc","implementation","createHTMLDocument","body","innerHTML","walkElementNodes","shouldReverse","shouldIncludeCursor","nextNode","querySelector","walker","createTreeWalker","NodeFilter","SHOW_ALL","acceptNode","node","classList","contains","FILTER_ACCEPT","FILTER_REJECT","nodes","originalParent","push","reverse","maybeChunkStringAsHtml","str","asHtml","cleanUpSkipped","index","newIndex","queueItems","cleanUp","i","isNumber","Number","isInteger","countStepsToSelector","selector","cursorPosition","to","isMovingToEnd","RegExp","test","selectorIndex","findIndex","char","t","parentElement","parentMatches","matches","firstChild","isSameNode","length","duplicate","times","beforePaint","cb","Promise","resolve","requestAnimationFrame","async","getAnimationFromElement","getAnimations","find","dataset","tiAnimationId","setCursorAnimation","s","animate","pause","play","execute","queueItem","func","call","fireItem","wait","cursorOptions","instantQueue","tempIndex","futureItem","shouldBeGrouped","delay","shouldPauseCursor","q","effect","getComputedTiming","cancel","oldCurrentTime","currentTime","newAnimation","isInput","handleFunctionalArg","arg","select","all","merge","originalObj","newObj","Object","assign","cursorFontStyles","color","transform","TypeIt","__privateAdd","_z_instances","timeouts","predictedCursorPosition","statuses","firing","opts","queue","flushCallback","unfreeze","is","key","this","buildOptions","newOptions","defaultFrames","defaultOptions","toString","substring","initialItems","add","steps","step","_q","set","Symbol","innerText","buildQueueItem","Boolean","typeable","cursorable","deletable","getQueue","rawValues","values","Map","item","keys","wipe","done","shouldDestroy","delete","get","reset","destroy","getItems","filter","getTypeable","getPendingQueueItems","pending","setUpCursor","typeitId","go","attachCursor","bind","IntersectionObserver","entries","observer2","entry","isIntersecting","unobserve","threshold","observe","fire","shouldRemoveCursor","clearTimeout","removeNode","rebuild","property","string","actionOpts","instant","bookEndQueueItems","charsAsQueueItems","outerHTML","getPace","nodeType","Node","TEXT_NODE","itemsToQueue","movementArg","generateTemporaryOptionQueueItems","numberOfSteps","directionalStep","queueAndReturn","milliseconds","numCharacters","num","typeableQueueItems","rounds","derivedCursorPosition","then","flush","getOptions","getElement","empty","f_fn","elementIsInput","remember","qKey","queueKey","allChars","e","move","printedCharacters","min","max","newCursorPosition","nodeToInsertBefore","prepLoop","w_fn","fireItemWithContext","b_fn","callback","silent","setTimeout","shouldRenderCursor","cursorSelector","computedStyles","getComputedStyle","customProperties","reduce","accumulator","duration","n_fn","l_fn","maybeAppendPause","x_fn","o_fn","updateOptions","s_fn","generateQueue","type","splitItems","q_fn","prependHardcodedStrings","existingMarkup","replace","trim","split","concat","e_fn","className","style","visibility","S_fn","addSplitPause","items","a_fn","originalTarget","character","textContent","target","tagName","cursorNode","y_fn","slice","h_fn","rootElement","nodeParent","u_fn","c_get","v_get","TypewriterElement","$LitElement","css","constructor","super","arguments","autoStart","once","typeItInstance","sessionKey","disconnectedCallback","_destroyTypeIt","_startTyping","generateSessionKey","sessionStorage","getItem","shadowRoot","removeAttribute","typewriterContainer","typeItOptions","setItem","dispatchEvent","CustomEvent","bubbles","composed","setProperty","_getSlottedNodes","HTMLElement","_processCustomElement","intersection$","host","subscribe","slotContent","_getSlottedElements","join","hashContent","action","getAttribute","parseInt","break","render","__decorateClass","prototype","consume","context","delayContext","String","query","queryAssignedNodes","flatten","queryAssignedElements","customElement"],"mappings":"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","x_google_ignoreList":[0]}
|
|
1
|
+
{"version":3,"file":"typewriter-Blx_6T4o.cjs","sources":["../.yarn/unplugged/typeit-npm-8.8.7-4441c75f10/node_modules/typeit/dist/index.es.js","../src/typewriter/typewriter.ts"],"sourcesContent":["// TypeIt by Alex MacArthur - https://typeitjs.com\nconst isArray = (thing) => Array.isArray(thing);\n\nconst asArray = (value) => isArray(value) ? value : [value];\n\nlet Queue = function(initialItems) {\n let add = function(steps) {\n asArray(steps).forEach((step) => {\n return _q.set(Symbol(step.char?.innerText), buildQueueItem({ ...step }));\n });\n return this;\n };\n let getTypeable = () => rawValues().filter((value) => value.typeable);\n let set = function(index, item) {\n let keys = [..._q.keys()];\n _q.set(keys[index], buildQueueItem(item));\n };\n let buildQueueItem = (queueItem) => {\n queueItem.shouldPauseCursor = function() {\n return Boolean(this.typeable || this.cursorable || this.deletable);\n };\n return queueItem;\n };\n let reset = function() {\n _q.forEach((item) => delete item.done);\n };\n let wipe = function() {\n _q = /* @__PURE__ */ new Map();\n add(initialItems);\n };\n let getQueue = () => _q;\n let rawValues = () => Array.from(_q.values());\n let destroy = (key) => _q.delete(key);\n let getPendingQueueItems = () => {\n const pending = [];\n for (let [, value] of getQueue()) {\n if (!value.done) {\n pending.push(value);\n }\n }\n return pending;\n };\n let getItems = (all = false) => all ? rawValues() : rawValues().filter((i) => !i.done);\n let done = (key, shouldDestroy = false) => shouldDestroy ? _q.delete(key) : _q.get(key).done = true;\n let _q = /* @__PURE__ */ new Map();\n add(initialItems);\n return {\n add,\n set,\n wipe,\n done,\n reset,\n destroy,\n getItems,\n getQueue,\n getTypeable,\n getPendingQueueItems\n };\n};\n\nconst DATA_ATTRIBUTE = \"data-typeit-id\";\nconst CURSOR_CLASS = \"ti-cursor\";\nconst END = \"END\";\nconst DEFAULT_STATUSES = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false\n};\nconst DEFAULT_OPTIONS = {\n breakLines: true,\n cursor: {\n autoPause: true,\n autoPauseDelay: 500,\n animation: {\n frames: [0, 0, 1].map((n) => {\n return { opacity: n };\n }),\n options: {\n iterations: Infinity,\n easing: \"steps(2, start)\",\n fill: \"forwards\"\n }\n }\n },\n cursorChar: \"|\",\n cursorSpeed: 1e3,\n deleteSpeed: null,\n html: true,\n lifeLike: true,\n loop: false,\n loopDelay: 750,\n nextStringDelay: 750,\n speed: 100,\n startDelay: 250,\n startDelete: false,\n strings: [],\n waitUntilVisible: false,\n beforeString: () => {\n },\n afterString: () => {\n },\n beforeStep: () => {\n },\n afterStep: () => {\n },\n afterComplete: () => {\n }\n};\nconst PLACEHOLDER_CSS = `[${DATA_ATTRIBUTE}]:before {content: '.'; display: inline-block; width: 0; visibility: hidden;}`;\n\nconst createElement = (el) => document.createElement(el);\n\nconst createTextNode = (content) => document.createTextNode(content);\n\nconst appendStyleBlock = (styles, id = \"\") => {\n let styleBlock = createElement(\"style\");\n styleBlock.id = id;\n styleBlock.appendChild(createTextNode(styles));\n document.head.appendChild(styleBlock);\n};\n\nconst calculateDelay = (delayArg) => {\n if (!isArray(delayArg)) {\n delayArg = [delayArg / 2, delayArg / 2];\n }\n return delayArg;\n};\n\nconst randomInRange = (value, range) => {\n return Math.abs(\n Math.random() * (value + range - (value - range)) + (value - range)\n );\n};\n\nlet range = (val) => val / 2;\nfunction calculatePace(options) {\n let { speed, deleteSpeed, lifeLike } = options;\n deleteSpeed = deleteSpeed !== null ? deleteSpeed : speed / 3;\n return lifeLike ? [\n randomInRange(speed, range(speed)),\n randomInRange(deleteSpeed, range(deleteSpeed))\n ] : [speed, deleteSpeed];\n}\n\nconst toArray = (val) => Array.from(val);\n\nlet expandTextNodes = (element) => {\n [...element.childNodes].forEach((child) => {\n if (child.nodeValue) {\n [...child.nodeValue].forEach((c) => {\n child.parentNode.insertBefore(createTextNode(c), child);\n });\n child.remove();\n return;\n }\n expandTextNodes(child);\n });\n return element;\n};\n\nconst getParsedBody = (content) => {\n let doc = document.implementation.createHTMLDocument();\n doc.body.innerHTML = content;\n return expandTextNodes(doc.body);\n};\n\nfunction walkElementNodes(element, shouldReverse = false, shouldIncludeCursor = false) {\n let cursor = element.querySelector(`.${CURSOR_CLASS}`);\n let walker = document.createTreeWalker(element, NodeFilter.SHOW_ALL, {\n acceptNode: (node) => {\n if (cursor && shouldIncludeCursor) {\n if (node.classList?.contains(CURSOR_CLASS)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n if (cursor.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n }\n return node.classList?.contains(CURSOR_CLASS) ? NodeFilter.FILTER_REJECT : NodeFilter.FILTER_ACCEPT;\n }\n });\n let nextNode;\n let nodes = [];\n while (nextNode = walker.nextNode()) {\n if (!nextNode.originalParent) {\n nextNode.originalParent = nextNode.parentNode;\n }\n nodes.push(nextNode);\n }\n return shouldReverse ? nodes.reverse() : nodes;\n}\nfunction chunkStringAsHtml(string) {\n return walkElementNodes(getParsedBody(string));\n}\nfunction maybeChunkStringAsHtml(str, asHtml = true) {\n return asHtml ? chunkStringAsHtml(str) : toArray(str).map(createTextNode);\n}\n\nconst cleanUpSkipped = ({\n index,\n newIndex,\n queueItems,\n cleanUp\n}) => {\n for (let i = index + 1; i < newIndex + 1; i++) {\n cleanUp(queueItems[i][0]);\n }\n};\n\nconst isNumber = (value) => Number.isInteger(value);\n\nconst countStepsToSelector = ({\n queueItems,\n selector,\n cursorPosition,\n to\n}) => {\n if (isNumber(selector)) {\n return selector * -1;\n }\n let isMovingToEnd = new RegExp(END, \"i\").test(to);\n let selectorIndex = selector ? [...queueItems].reverse().findIndex(({ char }) => {\n let parentElement = char.parentElement;\n let parentMatches = parentElement.matches(selector);\n if (isMovingToEnd && parentMatches) {\n return true;\n }\n return parentMatches && parentElement.firstChild.isSameNode(char);\n }) : -1;\n if (selectorIndex < 0) {\n selectorIndex = isMovingToEnd ? 0 : queueItems.length - 1;\n }\n let offset = isMovingToEnd ? 0 : 1;\n return selectorIndex - cursorPosition + offset;\n};\n\nconst destroyTimeouts = (timeouts) => {\n timeouts.forEach(clearTimeout);\n return [];\n};\n\nconst duplicate = (value, times) => new Array(times).fill(value);\n\nlet beforePaint = (cb) => {\n return new Promise((resolve) => {\n requestAnimationFrame(async () => {\n resolve(await cb());\n });\n });\n};\n\nlet getAnimationFromElement = (element) => {\n return element?.getAnimations().find((animation) => {\n return animation.id === element.dataset.tiAnimationId;\n });\n};\n\nlet setCursorAnimation = ({\n cursor,\n frames,\n options\n}) => {\n let animation = cursor.animate(frames, options);\n animation.pause();\n animation.id = cursor.dataset.tiAnimationId;\n beforePaint(() => {\n beforePaint(() => {\n animation.play();\n });\n });\n return animation;\n};\n\nlet rebuildCursorAnimation = ({\n cursor,\n options,\n cursorOptions\n}) => {\n if (!cursor || !cursorOptions) return;\n let animation = getAnimationFromElement(cursor);\n let oldCurrentTime;\n if (animation) {\n options.delay = animation.effect.getComputedTiming().delay;\n oldCurrentTime = animation.currentTime;\n animation.cancel();\n }\n let newAnimation = setCursorAnimation({\n cursor,\n frames: cursorOptions.animation.frames,\n options\n });\n if (oldCurrentTime) {\n newAnimation.currentTime = oldCurrentTime;\n }\n return newAnimation;\n};\n\nlet execute = (queueItem) => queueItem.func?.call(null);\nlet fireItem = async ({\n index,\n queueItems,\n wait,\n cursor,\n cursorOptions\n}) => {\n let queueItem = queueItems[index][1];\n let instantQueue = [];\n let tempIndex = index;\n let futureItem = queueItem;\n let shouldBeGrouped = () => futureItem && !futureItem.delay;\n let shouldPauseCursor = queueItem.shouldPauseCursor() && cursorOptions.autoPause;\n while (shouldBeGrouped()) {\n instantQueue.push(futureItem);\n shouldBeGrouped() && tempIndex++;\n futureItem = queueItems[tempIndex] ? queueItems[tempIndex][1] : null;\n }\n if (instantQueue.length) {\n await beforePaint(async () => {\n for (let q of instantQueue) {\n await execute(q);\n }\n });\n return tempIndex - 1;\n }\n let animation = getAnimationFromElement(cursor);\n let options;\n if (animation) {\n options = {\n ...animation.effect.getComputedTiming(),\n delay: shouldPauseCursor ? cursorOptions.autoPauseDelay : 0\n };\n }\n await wait(async () => {\n if (animation && shouldPauseCursor) {\n animation.cancel();\n }\n await beforePaint(() => {\n execute(queueItem);\n });\n }, queueItem.delay);\n await rebuildCursorAnimation({\n cursor,\n options,\n cursorOptions\n });\n return index;\n};\n\nconst fireWhenVisible = (element, func) => {\n let observer = new IntersectionObserver(\n (entries, observer2) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n func();\n observer2.unobserve(element);\n }\n });\n },\n { threshold: 1 }\n );\n observer.observe(element);\n};\n\nconst generateHash = () => Math.random().toString().substring(2, 9);\n\nconst isInput = (el) => {\n return \"value\" in el;\n};\n\nlet getAllChars = (element) => {\n if (isInput(element)) {\n return toArray(element.value);\n }\n return walkElementNodes(element, true).filter(\n (c) => !(c.childNodes.length > 0)\n );\n};\n\nlet handleFunctionalArg = (arg) => {\n return typeof arg === \"function\" ? arg() : arg;\n};\n\nlet select = (selector, element = document, all = false) => {\n return element[`querySelector${all ? \"All\" : \"\"}`](selector);\n};\n\nlet isBodyElement = (node) => /body/i.test(node?.tagName);\n\nlet insertIntoElement = (originalTarget, character) => {\n if (isInput(originalTarget)) {\n originalTarget.value = `${originalTarget.value}${character.textContent}`;\n return;\n }\n character.innerHTML = \"\";\n let target = isBodyElement(character.originalParent) ? originalTarget : (\n // If we add one-off fresh elements, there will be no\n // \"originalParent\", so always fall back to the default target.\n character.originalParent || originalTarget\n );\n let cursorNode = select(\".\" + CURSOR_CLASS, target) || null;\n if (cursorNode && cursorNode.parentElement !== target) {\n target = cursorNode.parentElement;\n }\n target.insertBefore(character, cursorNode);\n};\n\nconst isNonVoidElement = (el) => /<(.+)>(.*?)<\\/(.+)>/.test(el.outerHTML);\n\nconst merge = (originalObj, newObj) => Object.assign({}, originalObj, newObj);\n\nlet processCursorOptions = (cursorOptions) => {\n if (typeof cursorOptions === \"object\") {\n let newOptions = {};\n let { frames: defaultFrames, options: defaultOptions } = DEFAULT_OPTIONS.cursor.animation;\n newOptions.animation = cursorOptions.animation || {};\n newOptions.animation.frames = cursorOptions.animation?.frames || defaultFrames;\n newOptions.animation.options = merge(\n defaultOptions,\n cursorOptions.animation?.options || {}\n );\n newOptions.autoPause = cursorOptions.autoPause ?? DEFAULT_OPTIONS.cursor.autoPause;\n newOptions.autoPauseDelay = cursorOptions.autoPauseDelay || DEFAULT_OPTIONS.cursor.autoPauseDelay;\n return newOptions;\n }\n if (cursorOptions === true) {\n return DEFAULT_OPTIONS.cursor;\n }\n return cursorOptions;\n};\n\nconst removeNode = (node, rootElement) => {\n if (!node) return;\n let nodeParent = node.parentNode;\n let nodeToRemove = nodeParent.childNodes.length > 1 || nodeParent.isSameNode(rootElement) ? (\n // This parent still needs to exist.\n node\n ) : (\n // There's nothing else in there, so just delete the entire thing.\n // By doing this, we clean up markup as we go along.\n nodeParent\n );\n nodeToRemove.remove();\n};\n\nconst repositionCursor = (element, allChars, newCursorPosition) => {\n let nodeToInsertBefore = allChars[newCursorPosition - 1];\n let cursor = select(`.${CURSOR_CLASS}`, element);\n element = nodeToInsertBefore?.parentNode || element;\n element.insertBefore(cursor, nodeToInsertBefore || null);\n};\n\nfunction selectorToElement(thing) {\n return typeof thing === \"string\" ? select(thing) : thing;\n}\n\nlet cursorFontStyles = {\n \"font-family\": \"\",\n \"font-weight\": \"\",\n \"font-size\": \"\",\n \"font-style\": \"\",\n \"line-height\": \"\",\n color: \"\",\n transform: \"translateX(-.125em)\"\n};\nlet setCursorStyles = (id, element) => {\n let rootSelector = `[${DATA_ATTRIBUTE}='${id}']`;\n let cursorSelector = `${rootSelector} .${CURSOR_CLASS}`;\n let computedStyles = getComputedStyle(element);\n let customProperties = Object.entries(cursorFontStyles).reduce(\n (accumulator, [item, value]) => {\n return `${accumulator} ${item}: var(--ti-cursor-${item}, ${value || computedStyles[item]});`;\n },\n \"\"\n );\n appendStyleBlock(\n `${cursorSelector} { display: inline-block; width: 0; ${customProperties} }`,\n id\n );\n};\n\nfunction splitOnBreak(str) {\n return str.replace(/<!--(.+?)-->/g, \"\").trim().split(/<br(?:\\s*?)(?:\\/)?>/);\n}\n\nlet updateCursorPosition = (steps, cursorPosition, printedCharacters) => {\n return Math.min(\n Math.max(cursorPosition + steps, 0),\n printedCharacters.length\n );\n};\n\nlet wait = (callback, delay, timeouts) => {\n return new Promise((resolve) => {\n let cb = async () => {\n await callback();\n resolve();\n };\n timeouts.push(setTimeout(cb, delay || 0));\n });\n};\n\nclass TypeIt {\n element;\n timeouts;\n cursorPosition;\n predictedCursorPosition;\n statuses = {\n started: false,\n completed: false,\n frozen: false,\n destroyed: false,\n firing: false\n };\n opts;\n id;\n queue;\n cursor;\n flushCallback = null;\n unfreeze = () => {\n };\n constructor(element, options = {}) {\n this.opts = merge(DEFAULT_OPTIONS, options);\n this.element = selectorToElement(element);\n this.timeouts = [];\n this.cursorPosition = 0;\n this.unfreeze = () => {\n };\n this.predictedCursorPosition = null;\n this.statuses = merge({}, DEFAULT_STATUSES);\n this.id = generateHash();\n this.queue = Queue([{ delay: this.opts.startDelay }]);\n this.#buildOptions(options);\n this.cursor = this.#setUpCursor();\n this.element.dataset.typeitId = this.id;\n appendStyleBlock(PLACEHOLDER_CSS);\n if (this.opts.strings.length) {\n this.#generateQueue();\n }\n }\n /**\n * Can only be called once.\n */\n go() {\n if (this.statuses.started) {\n return this;\n }\n this.#attachCursor();\n if (!this.opts.waitUntilVisible) {\n this.#fire();\n return this;\n }\n fireWhenVisible(this.element, this.#fire.bind(this));\n return this;\n }\n destroy(shouldRemoveCursor = true) {\n this.timeouts = destroyTimeouts(this.timeouts);\n handleFunctionalArg(shouldRemoveCursor) && this.cursor && this.#removeNode(this.cursor);\n this.statuses.destroyed = true;\n }\n reset(rebuild) {\n !this.is(\"destroyed\") && this.destroy();\n if (rebuild) {\n this.queue.wipe();\n rebuild(this);\n } else {\n this.queue.reset();\n }\n this.cursorPosition = 0;\n for (let property in this.statuses) {\n this.statuses[property] = false;\n }\n this.element[this.#elementIsInput() ? \"value\" : \"innerHTML\"] = \"\";\n return this;\n }\n is = function(key) {\n return this.statuses[key];\n };\n type(string, actionOpts = {}) {\n string = handleFunctionalArg(string);\n let { instant } = actionOpts;\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let chars = maybeChunkStringAsHtml(string, this.opts.html);\n let charsAsQueueItems = chars.map((char) => {\n return {\n func: () => this.#type(char),\n char,\n delay: instant || isNonVoidElement(char) ? 0 : this.#getPace(),\n typeable: char.nodeType === Node.TEXT_NODE\n };\n });\n let itemsToQueue = [\n bookEndQueueItems[0],\n { func: async () => await this.opts.beforeString(string, this) },\n ...charsAsQueueItems,\n { func: async () => await this.opts.afterString(string, this) },\n bookEndQueueItems[1]\n ];\n return this.#queueAndReturn(itemsToQueue, actionOpts);\n }\n break(actionOpts = {}) {\n return this.#queueAndReturn(\n {\n func: () => this.#type(createElement(\"BR\")),\n typeable: true\n },\n actionOpts\n );\n }\n move(movementArg, actionOpts = {}) {\n movementArg = handleFunctionalArg(movementArg);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let { instant, to } = actionOpts;\n let numberOfSteps = countStepsToSelector({\n queueItems: this.queue.getTypeable(),\n selector: movementArg === null ? \"\" : movementArg,\n to,\n cursorPosition: this.#derivedCursorPosition\n });\n let directionalStep = numberOfSteps < 0 ? -1 : 1;\n this.predictedCursorPosition = this.#derivedCursorPosition + numberOfSteps;\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: () => this.#move(directionalStep),\n delay: instant ? 0 : this.#getPace(),\n cursorable: true\n },\n Math.abs(numberOfSteps)\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n exec(func, actionOpts = {}) {\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n return this.#queueAndReturn(\n [bookEndQueueItems[0], { func: () => func(this) }, bookEndQueueItems[1]],\n actionOpts\n );\n }\n options(opts, actionOpts = {}) {\n opts = handleFunctionalArg(opts);\n this.#updateOptions(opts);\n return this.#queueAndReturn({}, actionOpts);\n }\n pause(milliseconds, actionOpts = {}) {\n return this.#queueAndReturn(\n { delay: handleFunctionalArg(milliseconds) },\n actionOpts\n );\n }\n delete(numCharacters = null, actionOpts = {}) {\n numCharacters = handleFunctionalArg(numCharacters);\n let bookEndQueueItems = this.#generateTemporaryOptionQueueItems(actionOpts);\n let num = numCharacters;\n let { instant, to } = actionOpts;\n let typeableQueueItems = this.queue.getTypeable();\n let rounds = (() => {\n if (num === null) {\n return typeableQueueItems.length;\n }\n if (isNumber(num)) {\n return num;\n }\n return countStepsToSelector({\n queueItems: typeableQueueItems,\n selector: num,\n cursorPosition: this.#derivedCursorPosition,\n to\n });\n })();\n return this.#queueAndReturn(\n [\n bookEndQueueItems[0],\n ...duplicate(\n {\n func: this.#delete.bind(this),\n delay: instant ? 0 : this.#getPace(1),\n deletable: true\n },\n rounds\n ),\n bookEndQueueItems[1]\n ],\n actionOpts\n );\n }\n freeze() {\n this.statuses.frozen = true;\n }\n /**\n * Like `.go()`, but more... \"off the grid.\"\n *\n * - won't trigger `afterComplete` callback\n * - items won't be replayed after `.reset()`\n *\n * When called, all non-done items will be \"flushed\" --\n * that is, executed, but not remembered.\n */\n flush(cb = null) {\n this.flushCallback = cb || this.flushCallback;\n if (this.statuses.firing) {\n return this;\n }\n this.#attachCursor();\n this.#fire(false).then(() => {\n if (this.queue.getPendingQueueItems().length > 0) {\n return this.flush();\n }\n this.flushCallback();\n this.flushCallback = null;\n });\n return this;\n }\n getQueue() {\n return this.queue;\n }\n getOptions() {\n return this.opts;\n }\n updateOptions(options) {\n return this.#updateOptions(options);\n }\n getElement() {\n return this.element;\n }\n empty(actionOpts = {}) {\n return this.#queueAndReturn({ func: this.#empty.bind(this) }, actionOpts);\n }\n async #empty() {\n if (this.#elementIsInput()) {\n this.element.value = \"\";\n return;\n }\n this.#allChars.forEach(this.#removeNode.bind(this));\n return;\n }\n /**\n * Execute items in the queue.\n *\n * @param remember If false, each queue item will be destroyed once executed.\n * @returns\n */\n async #fire(remember = true) {\n this.statuses.started = true;\n this.statuses.firing = true;\n let cleanUp = (qKey) => {\n this.queue.done(qKey, !remember);\n };\n try {\n let queueItems = [...this.queue.getQueue()];\n for (let index = 0; index < queueItems.length; index++) {\n let [queueKey, queueItem] = queueItems[index];\n if (queueItem.done) continue;\n if (!queueItem.deletable || queueItem.deletable && this.#allChars.length) {\n let newIndex = await this.#fireItemWithContext(index, queueItems);\n cleanUpSkipped({\n index,\n newIndex,\n queueItems,\n cleanUp\n });\n index = newIndex;\n }\n cleanUp(queueKey);\n }\n if (!remember) {\n this.statuses.firing = false;\n return this;\n }\n this.statuses.completed = true;\n this.statuses.firing = false;\n await this.opts.afterComplete(this);\n if (!this.opts.loop) {\n throw \"\";\n }\n let delay = this.opts.loopDelay;\n this.#wait(async () => {\n await this.#prepLoop(delay[0]);\n this.#fire();\n }, delay[1]);\n } catch (e) {\n }\n this.statuses.firing = false;\n return this;\n }\n async #move(step) {\n this.cursorPosition = updateCursorPosition(\n step,\n this.cursorPosition,\n this.#allChars\n );\n repositionCursor(this.element, this.#allChars, this.cursorPosition);\n }\n /**\n * 1. Reset queue.\n * 2. Reset initial pause.\n */\n async #prepLoop(delay) {\n let derivedCursorPosition = this.#derivedCursorPosition;\n derivedCursorPosition && await this.#move({ value: derivedCursorPosition });\n let queueItems = this.#allChars.map((c) => {\n return [\n Symbol(),\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true,\n shouldPauseCursor: () => true\n }\n ];\n });\n for (let index = 0; index < queueItems.length; index++) {\n await this.#fireItemWithContext(index, queueItems);\n }\n this.queue.reset();\n this.queue.set(0, { delay });\n }\n #fireItemWithContext(index, queueItems) {\n return fireItem({\n index,\n queueItems,\n wait: this.#wait.bind(this),\n cursor: this.cursor,\n cursorOptions: this.opts.cursor\n });\n }\n async #wait(callback, delay, silent = false) {\n if (this.statuses.frozen) {\n await new Promise((resolve) => {\n this.unfreeze = () => {\n this.statuses.frozen = false;\n resolve();\n };\n });\n }\n silent || await this.opts.beforeStep(this);\n await wait(callback, delay, this.timeouts);\n silent || await this.opts.afterStep(this);\n }\n /**\n * Attach it to the DOM so, along with the required CSS transition.\n */\n async #attachCursor() {\n !this.#elementIsInput() && this.cursor && this.element.appendChild(this.cursor);\n if (this.#shouldRenderCursor) {\n setCursorStyles(this.id, this.element);\n this.cursor.dataset.tiAnimationId = this.id;\n let { animation } = this.opts.cursor;\n let { frames, options } = animation;\n setCursorAnimation({\n frames,\n cursor: this.cursor,\n options: {\n duration: this.opts.cursorSpeed,\n ...options\n }\n });\n }\n }\n #elementIsInput() {\n return isInput(this.element);\n }\n #queueAndReturn(steps, opts) {\n this.queue.add(steps);\n this.#maybeAppendPause(opts);\n return this;\n }\n #maybeAppendPause(opts = {}) {\n let delay = opts.delay;\n delay && this.queue.add({ delay });\n }\n #generateTemporaryOptionQueueItems(newOptions = {}) {\n return [\n { func: () => this.#updateOptions(newOptions) },\n { func: () => this.#updateOptions(this.opts) }\n ];\n }\n async #updateOptions(opts) {\n this.opts = merge(this.opts, opts);\n }\n /**\n * Based on provided strings, generate a TypeIt queue\n * to be fired for each character in the string.\n */\n #generateQueue() {\n let strings = this.opts.strings.filter((string) => !!string);\n strings.forEach((string, index) => {\n this.type(string);\n if (index + 1 === strings.length) {\n return;\n }\n let splitItems = this.opts.breakLines ? [{ func: () => this.#type(createElement(\"BR\")), typeable: true }] : duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1)\n },\n this.queue.getTypeable().length\n );\n this.#addSplitPause(splitItems);\n });\n }\n #buildOptions = (options) => {\n this.opts.cursor = processCursorOptions(\n options.cursor ?? DEFAULT_OPTIONS.cursor\n );\n this.opts.strings = this.#prependHardcodedStrings(\n asArray(this.opts.strings)\n );\n this.opts = merge(this.opts, {\n html: !this.#isInput && this.opts.html,\n nextStringDelay: calculateDelay(this.opts.nextStringDelay),\n loopDelay: calculateDelay(this.opts.loopDelay)\n });\n };\n #prependHardcodedStrings(strings) {\n let existingMarkup = this.element.innerHTML;\n if (!existingMarkup) {\n return strings;\n }\n this.element.innerHTML = \"\";\n if (this.opts.startDelete) {\n this.element.innerHTML = existingMarkup;\n expandTextNodes(this.element);\n this.#addSplitPause(\n duplicate(\n {\n func: this.#delete.bind(this),\n delay: this.#getPace(1),\n deletable: true\n },\n this.#allChars.length\n )\n );\n return strings;\n }\n return splitOnBreak(existingMarkup).concat(strings);\n }\n /**\n * Provided it's a non-form element and the options is provided,\n * set up the cursor element for the animation.\n */\n #setUpCursor() {\n if (this.#isInput) {\n return null;\n }\n let cursor = createElement(\"span\");\n cursor.className = CURSOR_CLASS;\n if (!this.#shouldRenderCursor) {\n cursor.style.visibility = \"hidden\";\n return cursor;\n }\n cursor.innerHTML = getParsedBody(this.opts.cursorChar).innerHTML;\n return cursor;\n }\n #addSplitPause(items) {\n let delay = this.opts.nextStringDelay;\n this.queue.add([{ delay: delay[0] }, ...items, { delay: delay[1] }]);\n }\n #type(char) {\n insertIntoElement(this.element, char);\n }\n #delete() {\n if (!this.#allChars.length) return;\n if (this.#isInput) {\n this.element.value = this.element.value.slice(0, -1);\n } else {\n this.#removeNode(this.#allChars[this.cursorPosition]);\n }\n }\n #removeNode(node) {\n removeNode(node, this.element);\n }\n #getPace(index = 0) {\n return calculatePace(this.opts)[index];\n }\n get #derivedCursorPosition() {\n return this.predictedCursorPosition ?? this.cursorPosition;\n }\n get #isInput() {\n return isInput(this.element);\n }\n get #shouldRenderCursor() {\n return !!this.opts.cursor && !this.#isInput;\n }\n get #allChars() {\n return getAllChars(this.element);\n }\n}\n\nexport { TypeIt as default };\n","import { consume } from '@lit/context'\nimport { $LitElement } from '@mixins/index'\nimport { delayContext } from '@schmancy/delay'\nimport hashContent from '@schmancy/utils/hashContent'\nimport { intersection$ } from '@schmancy/utils/intersection'\nimport { css, html, TemplateResult } from 'lit'\nimport { customElement, property, query, queryAssignedElements, queryAssignedNodes } from 'lit/decorators.js'\nimport TypeIt, { Options as TypeItOptions } from 'typeit'\n\n@customElement('schmancy-typewriter')\nexport class TypewriterElement extends $LitElement(css`\n\t:host {\n\t\tdisplay: inherit;\n\t}\n\n\t#typewriter {\n\t\t--ti-cursor-display: initial;\n\t}\n\n\t#typewriter .ti-cursor {\n\t\tdisplay: var(--ti-cursor-display);\n\t}\n`) {\n\t/**\n\t * Typing speed in milliseconds per character.\n\t */\n\t@property({ type: Number })\n\tspeed: number = 50\n\n\t/**\n\t * Delay before typing starts (ms).\n\t */\n\t@consume({ context: delayContext, subscribe: true })\n\t@property({ type: Number })\n\tdelay: number = 0\n\n\t/**\n\t * Automatically start typing on initialization.\n\t */\n\t@property({ type: Boolean })\n\tautoStart: boolean = true\n\n\t/**\n\t * The cursor character.\n\t */\n\t@property({ type: String })\n\tcursorChar: string = ''\n\n\t/**\n\t * Typing speed for deletions (ms per character).\n\t */\n\t@property({ type: Number })\n\tdeleteSpeed: number = 25\n\n\t@property({ type: Boolean }) once = true\n\t/**\n\t * TypeIt instance.\n\t */\n\tprivate typeItInstance: TypeIt | null = null\n\n\t/**\n\t * Reference to the typewriter container.\n\t */\n\t@query('#typewriter')\n\tprivate typewriterContainer!: HTMLElement\n\n\t@queryAssignedNodes({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedNodes!: Node[]\n\n\t@queryAssignedElements({\n\t\tflatten: true,\n\t})\n\tprivate _getSlottedElements!: HTMLElement[]\n\t/**\n\t * Lifecycle method called when the component is disconnected from the DOM.\n\t * Ensures that TypeIt instances are properly cleaned up.\n\t */\n\n\tprivate sessionKey = ''\n\tdisconnectedCallback() {\n\t\tsuper.disconnectedCallback()\n\t\tthis._destroyTypeIt()\n\t}\n\n\t/**\n\t * Initializes the TypeIt instance with the provided slotted content.\n\t */\n\tprivate _startTyping() {\n\t\t// Destroy any existing TypeIt instance\n\t\tthis._destroyTypeIt()\n\n\t\tthis.sessionKey = this.generateSessionKey()\n\n\t\tif (this.once && sessionStorage.getItem(this.sessionKey) === 'true') {\n\t\t\t// Skip delay and render immediately if once is set and already rendered\n\t\t\tthis.shadowRoot?.querySelector('slot')?.removeAttribute('hidden')\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.typewriterContainer) {\n\t\t\tconsole.warn('Typewriter container not found.')\n\t\t\treturn\n\t\t}\n\n\t\t// Configure TypeIt options\n\t\tconst typeItOptions: TypeItOptions = {\n\t\t\tspeed: this.speed,\n\t\t\tstartDelay: this.delay,\n\t\t\tcursor: !!this.cursorChar,\n\t\t\tcursorChar: this.cursorChar,\n\t\t\tdeleteSpeed: this.deleteSpeed,\n\t\t\tafterComplete: () => {\n\t\t\t\tif (this.once) {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tsessionStorage.setItem(this.sessionKey, 'true')\n\t\t\t\t\t} catch (error) {\n\t\t\t\t\t\tconsole.error('Error saving to session storage:', error)\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Dispatch the custom event\n\t\t\t\tthis.dispatchEvent(new CustomEvent('typeit-complete', { bubbles: true, composed: true }))\n\n\t\t\t\t// Hide the cursor\n\t\t\t\tthis.typewriterContainer.style.setProperty('--ti-cursor-display', 'none')\n\t\t\t},\n\t\t}\n\n\t\t// Initialize TypeIt\n\t\tthis.typeItInstance = new TypeIt(this.typewriterContainer, typeItOptions)\n\n\t\t// Process slotted content as actions\n\t\tconst slottedNodes = this._getSlottedNodes\n\t\tslottedNodes.forEach(node => {\n\t\t\tif (node.nodeType === Node.TEXT_NODE) {\n\t\t\t\t// Handle plain text\n\t\t\t\tthis.typeItInstance?.type(node.textContent || '')\n\t\t\t} else if (node instanceof HTMLElement) {\n\t\t\t\t// Handle custom element\n\t\t\t\tthis._processCustomElement(node)\n\t\t\t}\n\t\t})\n\n\t\t// Start the typing animation if autoStart is enabled\n\t\t// use rxjs to detect once we are in the view port\n\t\tintersection$(this.shadowRoot?.host as Element).subscribe(() => {\n\t\t\t// alert('in view')\n\t\t\tthis.typeItInstance?.go()\n\t\t})\n\t\t// Start the typing animation if autoStart is enabled\n\t}\n\n\tprivate generateSessionKey(): string {\n\t\tconst slotContent = this._getSlottedElements.map(el => el.outerHTML).join('')\n\t\treturn this.once ? hashContent(slotContent) : ''\n\t}\n\t/**\n\t * Destroys the current TypeIt instance if it exists.\n\t */\n\tprivate _destroyTypeIt() {\n\t\tif (this.typeItInstance) {\n\t\t\ttry {\n\t\t\t\tthis.typeItInstance.destroy()\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error('Error destroying TypeIt instance:', error)\n\t\t\t}\n\t\t\tthis.typeItInstance = null\n\t\t}\n\t}\n\n\t/**\n\t * Processes a custom element for its typing behavior.\n\t */\n\tprivate _processCustomElement(element: HTMLElement) {\n\t\tconst action = element.getAttribute('action')\n\t\tconst value = element.getAttribute('value')\n\t\tswitch (action) {\n\t\t\tcase 'pause':\n\t\t\t\tthis.typeItInstance?.pause(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tcase 'delete':\n\t\t\t\tthis.typeItInstance?.delete(parseInt(value || '0', 10))\n\t\t\t\tbreak\n\t\t\tdefault:\n\t\t\t\tif (element.tagName === 'P') {\n\t\t\t\t\tthis.typeItInstance.break()\n\t\t\t\t}\n\t\t\t\t// Treat as text if no action is defined\n\t\t\t\tthis.typeItInstance?.type(element.textContent || '')\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\t/**\n\t * Renders the component's HTML.\n\t */\n\trender(): TemplateResult {\n\t\treturn html`<div id=\"typewriter\" aria-live=\"polite\"></div>\n\n\t\t\t<div class=\"typewriter\">\n\t\t\t\t<slot\n\t\t\t\t\thidden\n\t\t\t\t\t@slotchange=${() => {\n\t\t\t\t\t\tthis._startTyping()\n\t\t\t\t\t}}\n\t\t\t\t></slot>\n\t\t\t</div> `\n\t}\n}\n\ndeclare global {\n\tinterface HTMLElementTagNameMap {\n\t\t'schmancy-typewriter': TypewriterElement\n\t}\n}\n"],"names":["isArray","thing","Array","asArray","value","DATA_ATTRIBUTE","CURSOR_CLASS","DEFAULT_STATUSES","started","completed","frozen","destroyed","DEFAULT_OPTIONS","breakLines","cursor","autoPause","autoPauseDelay","animation","frames","map","n","opacity","options","iterations","Infinity","easing","fill","cursorChar","cursorSpeed","deleteSpeed","html","lifeLike","loop","loopDelay","nextStringDelay","speed","startDelay","startDelete","strings","waitUntilVisible","beforeString","afterString","beforeStep","afterStep","afterComplete","PLACEHOLDER_CSS","createElement","el","document","createTextNode","content","appendStyleBlock","styles","id","styleBlock","appendChild","head","calculateDelay","delayArg","randomInRange","range","Math","abs","random","val","toArray","from","expandTextNodes","element","childNodes","forEach","child","nodeValue","c","parentNode","insertBefore","remove","getParsedBody","doc","implementation","createHTMLDocument","body","innerHTML","walkElementNodes","shouldReverse","shouldIncludeCursor","nextNode","querySelector","walker","createTreeWalker","NodeFilter","SHOW_ALL","acceptNode","node","classList","contains","FILTER_ACCEPT","FILTER_REJECT","nodes","originalParent","push","reverse","maybeChunkStringAsHtml","str","asHtml","cleanUpSkipped","index","newIndex","queueItems","cleanUp","i","isNumber","Number","isInteger","countStepsToSelector","selector","cursorPosition","to","isMovingToEnd","RegExp","test","selectorIndex","findIndex","char","t","parentElement","parentMatches","matches","firstChild","isSameNode","length","duplicate","times","beforePaint","cb","Promise","resolve","requestAnimationFrame","async","getAnimationFromElement","getAnimations","find","dataset","tiAnimationId","setCursorAnimation","s","animate","pause","play","execute","queueItem","func","call","fireItem","wait","cursorOptions","instantQueue","tempIndex","futureItem","shouldBeGrouped","delay","shouldPauseCursor","q","effect","getComputedTiming","cancel","oldCurrentTime","currentTime","newAnimation","isInput","handleFunctionalArg","arg","select","all","merge","originalObj","newObj","Object","assign","cursorFontStyles","color","transform","TypeIt","__privateAdd","_z_instances","timeouts","predictedCursorPosition","statuses","firing","opts","queue","flushCallback","unfreeze","is","key","this","buildOptions","newOptions","defaultFrames","defaultOptions","toString","substring","initialItems","add","steps","step","_q","set","Symbol","innerText","buildQueueItem","Boolean","typeable","cursorable","deletable","getQueue","rawValues","values","Map","item","keys","wipe","done","shouldDestroy","delete","get","reset","destroy","getItems","filter","getTypeable","getPendingQueueItems","pending","setUpCursor","typeitId","go","attachCursor","bind","IntersectionObserver","entries","observer2","entry","isIntersecting","unobserve","threshold","observe","fire","shouldRemoveCursor","clearTimeout","removeNode","rebuild","property","string","actionOpts","instant","bookEndQueueItems","charsAsQueueItems","outerHTML","getPace","nodeType","Node","TEXT_NODE","itemsToQueue","movementArg","generateTemporaryOptionQueueItems","numberOfSteps","directionalStep","queueAndReturn","milliseconds","numCharacters","num","typeableQueueItems","rounds","derivedCursorPosition","then","flush","getOptions","getElement","empty","f_fn","elementIsInput","remember","qKey","queueKey","allChars","e","move","printedCharacters","min","max","newCursorPosition","nodeToInsertBefore","prepLoop","w_fn","fireItemWithContext","b_fn","callback","silent","setTimeout","shouldRenderCursor","cursorSelector","computedStyles","getComputedStyle","customProperties","reduce","accumulator","duration","n_fn","l_fn","maybeAppendPause","x_fn","o_fn","updateOptions","s_fn","generateQueue","type","splitItems","q_fn","prependHardcodedStrings","existingMarkup","replace","trim","split","concat","e_fn","className","style","visibility","S_fn","addSplitPause","items","a_fn","originalTarget","character","textContent","target","tagName","cursorNode","y_fn","slice","h_fn","rootElement","nodeParent","u_fn","c_get","v_get","TypewriterElement","$LitElement","css","constructor","super","arguments","autoStart","once","typeItInstance","sessionKey","disconnectedCallback","_destroyTypeIt","_startTyping","generateSessionKey","sessionStorage","getItem","shadowRoot","removeAttribute","typewriterContainer","typeItOptions","setItem","dispatchEvent","CustomEvent","bubbles","composed","setProperty","_getSlottedNodes","HTMLElement","_processCustomElement","intersection$","host","subscribe","slotContent","_getSlottedElements","join","hashContent","action","getAttribute","parseInt","break","render","__decorateClass","prototype","consume","context","delayContext","String","query","queryAssignedNodes","flatten","queryAssignedElements","customElement"],"mappings":"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","x_google_ignoreList":[0]}
|
|
@@ -10,9 +10,9 @@ import { c as qt } from "./consume-fRVATvdE.js";
|
|
|
10
10
|
import "rxjs";
|
|
11
11
|
import "lit/directives/class-map.js";
|
|
12
12
|
import "lit/directives/style-map.js";
|
|
13
|
-
import { $ as xt } from "./litElement.mixin-
|
|
14
|
-
import "./tailwind.mixin-
|
|
15
|
-
import { h as Lt, d as Dt } from "./delay-
|
|
13
|
+
import { $ as xt } from "./litElement.mixin-B1fR6EmN.js";
|
|
14
|
+
import "./tailwind.mixin-DUDUV2I_.js";
|
|
15
|
+
import { h as Lt, d as Dt } from "./delay-DHk8I0v-.js";
|
|
16
16
|
import { i as Mt } from "./intersection-CJxzz8c-.js";
|
|
17
17
|
import { css as kt, html as At } from "lit";
|
|
18
18
|
import { property as T, query as _t, queryAssignedNodes as $t, queryAssignedElements as Ot, customElement as Ht } from "lit/decorators.js";
|
|
@@ -433,4 +433,4 @@ g([T({ type: Number })], f.prototype, "speed", 2), g([qt({ context: Dt, subscrib
|
|
|
433
433
|
export {
|
|
434
434
|
f as T
|
|
435
435
|
};
|
|
436
|
-
//# sourceMappingURL=typewriter-
|
|
436
|
+
//# sourceMappingURL=typewriter-hmHGatBq.js.map
|