@mhmo91/schmancy 0.10.41 → 0.10.43
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/custom-elements.json +291 -179
- package/dist/SchmancyElement-CeKrBW2j.cjs +2 -0
- package/dist/SchmancyElement-CeKrBW2j.cjs.map +1 -0
- package/dist/SchmancyElement-Ob9yGkiG.js +286 -0
- package/dist/SchmancyElement-Ob9yGkiG.js.map +1 -0
- package/dist/agent/schmancy.agent.js +4057 -4082
- package/dist/agent/schmancy.agent.js.map +1 -1
- package/dist/agent/schmancy.manifest.json +225 -94
- package/dist/animation-CCOIW4wJ.cjs.map +1 -1
- package/dist/animation-DCznELuT.js.map +1 -1
- package/dist/area-CbajcnmJ.cjs +21 -0
- package/dist/area-CbajcnmJ.cjs.map +1 -0
- package/dist/{area-BiM7V2ns.js → area-MxLAyWgV.js} +22 -22
- package/dist/area-MxLAyWgV.js.map +1 -0
- package/dist/area.cjs +1 -1
- package/dist/area.js +1 -1
- package/dist/{audio-CxO_j__6.js → audio-B_0PGwYC.js} +1 -1
- package/dist/audio-B_0PGwYC.js.map +1 -0
- package/dist/{audio-xXFfMPCS.cjs → audio-CpwrIaw-.cjs} +1 -1
- package/dist/audio-CpwrIaw-.cjs.map +1 -0
- package/dist/audio.cjs +1 -1
- package/dist/audio.js +2 -2
- package/dist/autocomplete-CILzaDB7.cjs +115 -0
- package/dist/autocomplete-CILzaDB7.cjs.map +1 -0
- package/dist/{autocomplete-DUBY9RtH.js → autocomplete-DV9RxCun.js} +113 -113
- package/dist/autocomplete-DV9RxCun.js.map +1 -0
- package/dist/autocomplete.cjs +1 -1
- package/dist/autocomplete.js +1 -1
- package/dist/avatar.cjs +1 -1
- package/dist/avatar.cjs.map +1 -1
- package/dist/avatar.js +4 -4
- package/dist/avatar.js.map +1 -1
- package/dist/badge.cjs +1 -1
- package/dist/badge.js +1 -1
- package/dist/{boat-ScvAima3.js → boat-DoZGgQ0P.js} +6 -8
- package/dist/{boat-ScvAima3.js.map → boat-DoZGgQ0P.js.map} +1 -1
- package/dist/{boat-BIYaPAHp.cjs → boat-sg0cWO8a.cjs} +3 -5
- package/dist/{boat-BIYaPAHp.cjs.map → boat-sg0cWO8a.cjs.map} +1 -1
- package/dist/boat.cjs +1 -1
- package/dist/boat.js +1 -1
- package/dist/breadcrumb.cjs +32 -31
- package/dist/breadcrumb.cjs.map +1 -1
- package/dist/breadcrumb.js +33 -32
- package/dist/breadcrumb.js.map +1 -1
- package/dist/busy-Brs-TDh9.cjs +133 -0
- package/dist/busy-Brs-TDh9.cjs.map +1 -0
- package/dist/busy-g4LoQmhB.js +172 -0
- package/dist/busy-g4LoQmhB.js.map +1 -0
- package/dist/busy.cjs +1 -1
- package/dist/busy.js +1 -1
- package/dist/{button-BTpxQ1Kd.cjs → button-Cml67Y_d.cjs} +41 -32
- package/dist/button-Cml67Y_d.cjs.map +1 -0
- package/dist/{button-D7QHfYf4.js → button-DWANpZfD.js} +43 -34
- package/dist/button-DWANpZfD.js.map +1 -0
- package/dist/button.cjs +40 -33
- package/dist/button.cjs.map +1 -1
- package/dist/button.js +42 -35
- package/dist/button.js.map +1 -1
- package/dist/calendar-2dJrw9pR.cjs +58 -0
- package/dist/calendar-2dJrw9pR.cjs.map +1 -0
- package/dist/calendar-kCe5LaBa.js +434 -0
- package/dist/calendar-kCe5LaBa.js.map +1 -0
- package/dist/calendar.cjs +1 -0
- package/dist/calendar.js +2 -0
- package/dist/{card-DCdtJ5Dy.js → card-CS_hYJbz.js} +136 -136
- package/dist/card-CS_hYJbz.js.map +1 -0
- package/dist/card-d0KhTnx5.cjs +177 -0
- package/dist/card-d0KhTnx5.cjs.map +1 -0
- package/dist/card.cjs +1 -1
- package/dist/card.js +1 -1
- package/dist/{checkbox-DVtyPk7l.js → checkbox-Bjp7kWuE.js} +2 -2
- package/dist/{checkbox-DVtyPk7l.js.map → checkbox-Bjp7kWuE.js.map} +1 -1
- package/dist/{checkbox-CYGOVPP-.cjs → checkbox-DZ2Wrz7Y.cjs} +1 -1
- package/dist/{checkbox-CYGOVPP-.cjs.map → checkbox-DZ2Wrz7Y.cjs.map} +1 -1
- package/dist/checkbox.cjs +1 -1
- package/dist/checkbox.js +1 -1
- package/dist/{chips-DVes-BSz.cjs → chips-BHBVkxsa.cjs} +142 -153
- package/dist/chips-BHBVkxsa.cjs.map +1 -0
- package/dist/{chips-C5bpgWyf.js → chips-DACeW7YL.js} +127 -138
- package/dist/chips-DACeW7YL.js.map +1 -0
- package/dist/chips.cjs +1 -1
- package/dist/chips.js +2 -2
- package/dist/connectivity.cjs +54 -38
- package/dist/connectivity.cjs.map +1 -1
- package/dist/connectivity.js +56 -40
- package/dist/connectivity.js.map +1 -1
- package/dist/content-drawer.cjs +1 -1
- package/dist/content-drawer.js +1 -1
- package/dist/cursor-glow-Ah7VXSj7.js.map +1 -1
- package/dist/cursor-glow-Bulq-38P.cjs.map +1 -1
- package/dist/date-range-CVAWMdar.cjs +138 -0
- package/dist/date-range-CVAWMdar.cjs.map +1 -0
- package/dist/date-range-D2NZU5Yg.js +433 -0
- package/dist/date-range-D2NZU5Yg.js.map +1 -0
- package/dist/{date-range-inline-Dx4Reboo.cjs → date-range-inline-CGM0SPK9.cjs} +2 -4
- package/dist/date-range-inline-CGM0SPK9.cjs.map +1 -0
- package/dist/{date-range-inline-DPqY9YYf.js → date-range-inline-D6Ozerzw.js} +3 -5
- package/dist/date-range-inline-D6Ozerzw.js.map +1 -0
- package/dist/date-range-inline.cjs +1 -1
- package/dist/date-range-inline.js +1 -1
- package/dist/date-range.cjs +1 -1
- package/dist/date-range.js +2 -2
- package/dist/dayjs.min-CvRZTfam.cjs +1 -0
- package/dist/dayjs.min-CvRZTfam.cjs.map +1 -0
- package/dist/dayjs.min-DnELezPs.js +296 -0
- package/dist/dayjs.min-DnELezPs.js.map +1 -0
- package/dist/delay.cjs +1 -1
- package/dist/delay.js +3 -3
- package/dist/{details-BnleHmYe.js → details-Ct1_GwKr.js} +104 -92
- package/dist/details-Ct1_GwKr.js.map +1 -0
- package/dist/{details-Bx2jSJxG.cjs → details-D4fVOaj4.cjs} +109 -97
- package/dist/details-D4fVOaj4.cjs.map +1 -0
- package/dist/details.cjs +1 -1
- package/dist/details.js +1 -1
- package/dist/{directives-CYf2fAdA.cjs → directives-B2VxfwRL.cjs} +1 -1
- package/dist/directives-B2VxfwRL.cjs.map +1 -0
- package/dist/{directives-d1rEbW1A.js → directives-Dj8jlv-Q.js} +3 -3
- package/dist/directives-Dj8jlv-Q.js.map +1 -0
- package/dist/directives.cjs +1 -1
- package/dist/directives.js +2 -2
- package/dist/discovery.service-CIa3Eeuk.cjs.map +1 -1
- package/dist/discovery.service-DZFxtRwW.js.map +1 -1
- package/dist/divider-B3v33OnX.cjs +57 -0
- package/dist/divider-B3v33OnX.cjs.map +1 -0
- package/dist/divider-BJHW3q11.js +89 -0
- package/dist/divider-BJHW3q11.js.map +1 -0
- package/dist/divider.cjs +1 -1
- package/dist/divider.js +1 -1
- package/dist/dropdown.cjs +40 -40
- package/dist/dropdown.cjs.map +1 -1
- package/dist/dropdown.js +41 -41
- package/dist/dropdown.js.map +1 -1
- package/dist/{expand-DNrWuG_-.js → expand-BT8mOu8Q.js} +103 -97
- package/dist/expand-BT8mOu8Q.js.map +1 -0
- package/dist/expand-D0YdR9nR.cjs +147 -0
- package/dist/expand-D0YdR9nR.cjs.map +1 -0
- package/dist/expand.cjs +1 -1
- package/dist/expand.js +1 -1
- package/dist/fab.cjs +1 -1
- package/dist/fab.cjs.map +1 -1
- package/dist/fab.js +2 -2
- package/dist/fab.js.map +1 -1
- package/dist/{float-V7VQKTb8.cjs → float-BPQlDyai.cjs} +1 -1
- package/dist/{float-V7VQKTb8.cjs.map → float-BPQlDyai.cjs.map} +1 -1
- package/dist/{float-C_CMle0q.js → float-BQcxj3i_.js} +2 -2
- package/dist/{float-C_CMle0q.js.map → float-BQcxj3i_.js.map} +1 -1
- package/dist/float.cjs +1 -1
- package/dist/float.js +1 -1
- package/dist/{form-DaaAQd2A.cjs → form-CoWFnClb.cjs} +8 -13
- package/dist/form-CoWFnClb.cjs.map +1 -0
- package/dist/{form-CMgYSZ3y.js → form-hC2LvCHX.js} +10 -15
- package/dist/form-hC2LvCHX.js.map +1 -0
- package/dist/form.cjs +12 -13
- package/dist/form.cjs.map +1 -1
- package/dist/form.js +23 -24
- package/dist/form.js.map +1 -1
- package/dist/gravity-6pL6CfIr.cjs.map +1 -1
- package/dist/gravity-sVK3zGBF.js.map +1 -1
- package/dist/handover/agent-runtime-followups.md +1 -1
- package/dist/handover/agent-runtime-v1.md +3 -3
- package/dist/{hashContent-iRZJJWtE.cjs.map → hashContent--s09Ed_g.cjs.map} +1 -1
- package/dist/{hashContent-BqU6v1Xr.js.map → hashContent-CAvrQ56N.js.map} +1 -1
- package/dist/icons-BeGKDZ-k.cjs +22 -0
- package/dist/icons-BeGKDZ-k.cjs.map +1 -0
- package/dist/{icons-mbpHO_73.js → icons-DEJnIxml.js} +20 -22
- package/dist/icons-DEJnIxml.js.map +1 -0
- package/dist/icons.cjs +1 -1
- package/dist/icons.js +1 -1
- package/dist/{iframe-88SN5JPu.cjs → iframe-BkSukM9C.cjs} +9 -9
- package/dist/iframe-BkSukM9C.cjs.map +1 -0
- package/dist/{iframe-U3P1DnQv.js → iframe-V3S-bwEY.js} +10 -10
- package/dist/iframe-V3S-bwEY.js.map +1 -0
- package/dist/iframe.cjs +1 -1
- package/dist/iframe.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +61 -60
- package/dist/{input-CPWvGjE4.js → input-CPFCSQld.js} +3 -10
- package/dist/input-CPFCSQld.js.map +1 -0
- package/dist/{input-BY4Korc5.cjs → input-DSfwfhhj.cjs} +2 -9
- package/dist/input-DSfwfhhj.cjs.map +1 -0
- package/dist/input-chip-BUuFJUky.cjs +129 -0
- package/dist/input-chip-BUuFJUky.cjs.map +1 -0
- package/dist/{input-chip-CCZ3i3Sf.js → input-chip-C3a1fwKB.js} +87 -104
- package/dist/input-chip-C3a1fwKB.js.map +1 -0
- package/dist/input.cjs +1 -1
- package/dist/input.js +1 -1
- package/dist/json.cjs +5 -1
- package/dist/json.cjs.map +1 -1
- package/dist/json.js +8 -4
- package/dist/json.js.map +1 -1
- package/dist/kbd.cjs +28 -28
- package/dist/kbd.cjs.map +1 -1
- package/dist/kbd.js +29 -29
- package/dist/kbd.js.map +1 -1
- package/dist/{layout-BhfC26Ks.cjs → layout-CdyHy_oX.cjs} +1 -1
- package/dist/layout-CdyHy_oX.cjs.map +1 -0
- package/dist/{layout-DC0Npqu7.js → layout-k6fOkpif.js} +1 -1
- package/dist/layout-k6fOkpif.js.map +1 -0
- package/dist/layout.cjs +26 -26
- package/dist/layout.cjs.map +1 -1
- package/dist/layout.js +27 -27
- package/dist/layout.js.map +1 -1
- package/dist/lazy-BaAiIUru.js.map +1 -1
- package/dist/lazy-C-7a4FAe.cjs.map +1 -1
- package/dist/{lightbox-BSwWvDQc.js → lightbox-DIG0VLOK.js} +8 -14
- package/dist/lightbox-DIG0VLOK.js.map +1 -0
- package/dist/{lightbox-KrZQH9w9.cjs → lightbox-E5rgd-hu.cjs} +7 -13
- package/dist/lightbox-E5rgd-hu.cjs.map +1 -0
- package/dist/lightbox.cjs +1 -1
- package/dist/lightbox.js +1 -1
- package/dist/list-BRz0rDSH.cjs +47 -0
- package/dist/list-BRz0rDSH.cjs.map +1 -0
- package/dist/{list-BwGtAAfi.js → list-NrOYDPBo.js} +48 -34
- package/dist/list-NrOYDPBo.js.map +1 -0
- package/dist/list.cjs +1 -1
- package/dist/list.js +1 -1
- package/dist/magnetic-DKtc4umC.cjs.map +1 -1
- package/dist/magnetic-DaOOv5Dz.js.map +1 -1
- package/dist/{menu-DX8d96x-.js → menu-B1Ei9SVj.js} +12 -12
- package/dist/menu-B1Ei9SVj.js.map +1 -0
- package/dist/{menu-jT_yAk5V.cjs → menu-Duvl66Nl.cjs} +10 -10
- package/dist/menu-Duvl66Nl.cjs.map +1 -0
- package/dist/menu.cjs +1 -1
- package/dist/menu.js +1 -1
- package/dist/{mixins-XGVIOvKt.cjs → mixins-Cjn20BQH.cjs} +42 -170
- package/dist/mixins-Cjn20BQH.cjs.map +1 -0
- package/dist/{mixins-COeG4DiX.js → mixins-q4KAL8Xr.js} +43 -177
- package/dist/mixins-q4KAL8Xr.js.map +1 -0
- package/dist/mixins.cjs +1 -1
- package/dist/mixins.js +2 -2
- package/dist/nav-drawer.cjs +1 -1
- package/dist/nav-drawer.js +1 -1
- package/dist/navigation-bar.cjs +1 -1
- package/dist/navigation-bar.js +1 -1
- package/dist/navigation-rail.cjs +2 -4
- package/dist/navigation-rail.cjs.map +1 -1
- package/dist/navigation-rail.js +3 -5
- package/dist/navigation-rail.js.map +1 -1
- package/dist/{notification-CAJVpLne.js → notification-COhUhUCr.js} +5 -7
- package/dist/notification-COhUhUCr.js.map +1 -0
- package/dist/{notification-DO3VXceY.cjs → notification-DsdA_MJe.cjs} +2 -4
- package/dist/notification-DsdA_MJe.cjs.map +1 -0
- package/dist/notification.cjs +1 -1
- package/dist/notification.js +1 -1
- package/dist/{option-JISY0wZJ.js → option-BIzgTbXz.js} +20 -20
- package/dist/option-BIzgTbXz.js.map +1 -0
- package/dist/option-C5hhqR2z.cjs +43 -0
- package/dist/option-C5hhqR2z.cjs.map +1 -0
- package/dist/option.cjs +1 -1
- package/dist/option.js +1 -1
- package/dist/{overlay-B1jVf-ge.cjs → overlay-BzgF8P7i.cjs} +48 -41
- package/dist/overlay-BzgF8P7i.cjs.map +1 -0
- package/dist/{overlay-CT-tMHDX.js → overlay-LoRRemny.js} +52 -45
- package/dist/overlay-LoRRemny.js.map +1 -0
- package/dist/overlay-stack-Bdr9lOqi.cjs.map +1 -1
- package/dist/overlay-stack-D2rgxQLh.js.map +1 -1
- package/dist/overlay.cjs +1 -1
- package/dist/{overlay.confirm-body-Dn-Zgogx.js → overlay.confirm-body-D0b1MoCw.js} +30 -45
- package/dist/overlay.confirm-body-D0b1MoCw.js.map +1 -0
- package/dist/{overlay.confirm-body-mYDYoJL8.cjs → overlay.confirm-body-DCneq73Z.cjs} +22 -37
- package/dist/overlay.confirm-body-DCneq73Z.cjs.map +1 -0
- package/dist/overlay.js +3 -3
- package/dist/{overlay.service-yqTOyLlr.js → overlay.service-BuUeti6X.js} +2 -2
- package/dist/overlay.service-BuUeti6X.js.map +1 -0
- package/dist/{overlay.service-BQmva9GY.cjs → overlay.service-MMTiW2T3.cjs} +1 -1
- package/dist/overlay.service-MMTiW2T3.cjs.map +1 -0
- package/dist/{progress-CGWozq_n.js → progress-D7n3SKAO.js} +50 -50
- package/dist/progress-D7n3SKAO.js.map +1 -0
- package/dist/progress-DsCnFsH5.cjs +51 -0
- package/dist/progress-DsCnFsH5.cjs.map +1 -0
- package/dist/progress.cjs +1 -1
- package/dist/progress.js +1 -1
- package/dist/{radio-group-DoSX5D2V.cjs → radio-group-CaAjg9UV.cjs} +1 -1
- package/dist/radio-group-CaAjg9UV.cjs.map +1 -0
- package/dist/{radio-group-CXkq6qAF.js → radio-group-Drpl6Pl8.js} +2 -2
- package/dist/radio-group-Drpl6Pl8.js.map +1 -0
- package/dist/radio-group.cjs +1 -1
- package/dist/radio-group.js +1 -1
- package/dist/range.cjs +4 -2
- package/dist/range.cjs.map +1 -1
- package/dist/range.js +5 -3
- package/dist/range.js.map +1 -1
- package/dist/reduced-motion-D-L12p7G.js.map +1 -1
- package/dist/reduced-motion-Ds-HjMzn.cjs.map +1 -1
- package/dist/{rxjs-utils-Csnks202.cjs.map → rxjs-utils-4P2v57ke.cjs.map} +1 -1
- package/dist/{rxjs-utils-d-ivVN84.js.map → rxjs-utils-JMFdgQSl.js.map} +1 -1
- package/dist/rxjs-utils.cjs +1 -1
- package/dist/rxjs-utils.js +1 -1
- package/dist/search-DPKoC-dT.cjs.map +1 -1
- package/dist/search-MvIBA93K.js.map +1 -1
- package/dist/{select-CU90i50_.js → select-CTXkrrVZ.js} +13 -13
- package/dist/select-CTXkrrVZ.js.map +1 -0
- package/dist/select-DcLcpPCh.cjs +56 -0
- package/dist/select-DcLcpPCh.cjs.map +1 -0
- package/dist/select.cjs +1 -1
- package/dist/select.js +1 -1
- package/dist/skeleton.cjs +37 -33
- package/dist/skeleton.cjs.map +1 -1
- package/dist/skeleton.js +38 -34
- package/dist/skeleton.js.map +1 -1
- package/dist/skills/schmancy/surface.md +79 -39
- package/dist/skills/surface.md +79 -39
- package/dist/slider.cjs +31 -31
- package/dist/slider.cjs.map +1 -1
- package/dist/slider.js +32 -32
- package/dist/slider.js.map +1 -1
- package/dist/{sound.service-m8WjOhjn.js → sound.service-AJwuk3yr.js} +1 -1
- package/dist/sound.service-AJwuk3yr.js.map +1 -0
- package/dist/{sound.service-Qhr8nCeG.cjs → sound.service-CVsxhQkX.cjs} +1 -1
- package/dist/sound.service-CVsxhQkX.cjs.map +1 -0
- package/dist/{splash-screen-Cs3dbPN3.js → splash-screen-DANfqvlo.js} +23 -26
- package/dist/splash-screen-DANfqvlo.js.map +1 -0
- package/dist/splash-screen-K74cgU6S.cjs +38 -0
- package/dist/splash-screen-K74cgU6S.cjs.map +1 -0
- package/dist/splash-screen.cjs +1 -1
- package/dist/splash-screen.js +1 -1
- package/dist/{src-CCVbLLgC.js → src-DAtcPmCb.js} +295 -389
- package/dist/src-DAtcPmCb.js.map +1 -0
- package/dist/src-DuRvYagm.cjs +237 -0
- package/dist/src-DuRvYagm.cjs.map +1 -0
- package/dist/{state--x58-AuK.cjs → state-BWQiqN6I.cjs} +1 -1
- package/dist/state-BWQiqN6I.cjs.map +1 -0
- package/dist/{state-QSwQ61sA.js → state-DBA_gzJO.js} +1 -1
- package/dist/state-DBA_gzJO.js.map +1 -0
- package/dist/state.cjs +1 -1
- package/dist/state.js +2 -2
- package/dist/steps.cjs +20 -12
- package/dist/steps.cjs.map +1 -1
- package/dist/steps.js +21 -13
- package/dist/steps.js.map +1 -1
- package/dist/surface-COBvWWFb.cjs +7 -0
- package/dist/surface-COBvWWFb.cjs.map +1 -0
- package/dist/{surface-cqMsHJHM.js → surface-DXk1X1tL.js} +9 -9
- package/dist/surface-DXk1X1tL.js.map +1 -0
- package/dist/surface.cjs +1 -1
- package/dist/surface.js +1 -1
- package/dist/switch.cjs +13 -4
- package/dist/switch.cjs.map +1 -1
- package/dist/switch.js +14 -5
- package/dist/switch.js.map +1 -1
- package/dist/table.cjs +4 -10
- package/dist/table.cjs.map +1 -1
- package/dist/table.js +5 -11
- package/dist/table.js.map +1 -1
- package/dist/{tabs-Ib0Mh__1.js → tabs-BYhFWnsx.js} +7 -7
- package/dist/tabs-BYhFWnsx.js.map +1 -0
- package/dist/{tabs-Dk9UDWpq.cjs → tabs-CJwB0fr0.cjs} +6 -6
- package/dist/tabs-CJwB0fr0.cjs.map +1 -0
- package/dist/tabs.cjs +1 -1
- package/dist/tabs.js +1 -1
- package/dist/teleport.cjs +1 -1
- package/dist/teleport.js +1 -1
- package/dist/{textarea-CcRsw08B.js → textarea-BjDx1w2g.js} +37 -41
- package/dist/textarea-BjDx1w2g.js.map +1 -0
- package/dist/{textarea-Cntd9tfV.cjs → textarea-CGgznhd6.cjs} +36 -40
- package/dist/textarea-CGgznhd6.cjs.map +1 -0
- package/dist/textarea.cjs +1 -1
- package/dist/textarea.js +1 -1
- package/dist/{theme-wwFbvp5e.cjs → theme-BVul7lHS.cjs} +6 -6
- package/dist/{theme-wwFbvp5e.cjs.map → theme-BVul7lHS.cjs.map} +1 -1
- package/dist/{theme-CKYXG0le.js → theme-Dvm5J8nh.js} +11 -11
- package/dist/{theme-CKYXG0le.js.map → theme-Dvm5J8nh.js.map} +1 -1
- package/dist/{theme-button-iLqT56KA.js → theme-button-Bko5ohFP.js} +2 -2
- package/dist/{theme-button-iLqT56KA.js.map → theme-button-Bko5ohFP.js.map} +1 -1
- package/dist/{theme-button-DE9Lrl7m.cjs → theme-button-YLY7zR1c.cjs} +1 -1
- package/dist/{theme-button-DE9Lrl7m.cjs.map → theme-button-YLY7zR1c.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.interface-CSt7JUBD.cjs.map → theme.interface-B-qxDsZQ.cjs.map} +1 -1
- package/dist/{theme.interface-odQEpZZH.js.map → theme.interface-B7caS5cg.js.map} +1 -1
- package/dist/theme.js +4 -4
- package/dist/{theme.service-5RjyR7Sy.js → theme.service-D94nm7Bf.js} +1 -1
- package/dist/theme.service-D94nm7Bf.js.map +1 -0
- package/dist/{theme.service-DA6KY52G.cjs → theme.service-h2fXQq7x.cjs} +1 -1
- package/dist/theme.service-h2fXQq7x.cjs.map +1 -0
- package/dist/tooltip.cjs.map +1 -1
- package/dist/tooltip.js.map +1 -1
- package/dist/tree.cjs +14 -14
- package/dist/tree.cjs.map +1 -1
- package/dist/tree.js +15 -15
- package/dist/tree.js.map +1 -1
- package/dist/types.cjs +1 -1
- package/dist/types.cjs.map +1 -1
- package/dist/types.js +19 -2
- package/dist/types.js.map +1 -1
- package/dist/typewriter.cjs.map +1 -1
- package/dist/typewriter.js.map +1 -1
- package/dist/typography-ByF2k5yW.js +358 -0
- package/dist/typography-ByF2k5yW.js.map +1 -0
- package/dist/typography-Cfav17it.cjs +282 -0
- package/dist/typography-Cfav17it.cjs.map +1 -0
- package/dist/typography.cjs +1 -1
- package/dist/typography.js +1 -1
- package/dist/utils-DIXndz6Q.cjs.map +1 -0
- package/dist/utils-dSPH7Oh9.js.map +1 -0
- package/dist/utils.cjs +1 -1
- package/dist/utils.js +1 -1
- package/dist/visually-hidden.cjs +13 -13
- package/dist/visually-hidden.cjs.map +1 -1
- package/dist/visually-hidden.js +14 -14
- package/dist/visually-hidden.js.map +1 -1
- package/dist/window-Br1OmpL-.cjs +67 -0
- package/dist/window-Br1OmpL-.cjs.map +1 -0
- package/dist/{window-Db5ZYY6t.js → window-CCmN4but.js} +28 -20
- package/dist/window-CCmN4but.js.map +1 -0
- package/dist/window.cjs +1 -1
- package/dist/window.js +1 -1
- package/package.json +1 -1
- package/skills/schmancy/surface.md +79 -39
- package/src/area/area.component.ts +249 -163
- package/src/area/area.service.test.ts +994 -1006
- package/src/area/area.service.ts +76 -72
- package/src/area/index.ts +7 -7
- package/src/area/lazy.ts +39 -42
- package/src/area/route.component.ts +54 -52
- package/src/area/router.types.ts +7 -7
- package/src/audio/emotional-sounds.ts +880 -801
- package/src/audio/sound.service.ts +26 -5
- package/src/avatar/avatar.ts +4 -4
- package/src/badge/badge.ts +60 -209
- package/src/badge/index.ts +1 -1
- package/src/boat/boat.ts +2 -4
- package/src/breadcrumb/breadcrumb.ts +37 -32
- package/src/busy/busy.ts +15 -12
- package/src/busy/index.ts +2 -2
- package/src/busy/spinner.ts +132 -119
- package/src/button/button.test.ts +5 -1
- package/src/button/button.ts +113 -72
- package/src/button/icon-button.ts +64 -46
- package/src/button/index.ts +2 -2
- package/src/calendar/calendar.test.ts +504 -0
- package/src/calendar/calendar.ts +587 -0
- package/src/calendar/index.ts +2 -0
- package/src/card/actions.ts +11 -9
- package/src/card/card.ts +79 -77
- package/src/card/content.ts +8 -6
- package/src/card/index.ts +4 -4
- package/src/card/media.ts +50 -50
- package/src/chips/assist-chip.ts +1 -1
- package/src/chips/chips.ts +1 -1
- package/src/chips/filter-chip.ts +1 -1
- package/src/chips/index.ts +1 -1
- package/src/chips/input-chip.ts +1 -1
- package/src/chips/suggestion-chip.ts +1 -1
- package/src/connectivity/connectivity-status.ts +91 -65
- package/src/content-drawer/drawer.service.ts +47 -36
- package/src/content-drawer/drawer.ts +31 -18
- package/src/content-drawer/index.ts +5 -5
- package/src/content-drawer/main.ts +9 -7
- package/src/content-drawer/sheet.ts +8 -6
- package/src/date-range-inline/date-range-inline.ts +523 -522
- package/src/date-range-inline/index.ts +2 -2
- package/src/delay/index.ts +1 -1
- package/src/details/details.ts +119 -105
- package/src/details/index.ts +1 -1
- package/src/directives/ai-badge.ts +1 -5
- package/src/directives/animate-text.ts +43 -31
- package/src/directives/art/effects/howl.ts +1 -4
- package/src/directives/art/effects/samwa.ts +11 -5
- package/src/directives/art/effects/snow.ts +1 -2
- package/src/directives/battery.ts +21 -12
- package/src/directives/confirm-click.ts +9 -17
- package/src/directives/cursor-glow.ts +1 -1
- package/src/directives/cycle-text.ts +7 -21
- package/src/directives/drag.ts +50 -45
- package/src/directives/fyi.ts +1 -6
- package/src/directives/gravity.ts +10 -8
- package/src/directives/hummingbird.ts +256 -107
- package/src/directives/index.ts +29 -29
- package/src/directives/intersect.ts +11 -11
- package/src/directives/layout.ts +25 -36
- package/src/directives/liquid.ts +4 -10
- package/src/directives/living-border.ts +7 -5
- package/src/directives/long-press.ts +2 -1
- package/src/directives/magnetic.ts +7 -6
- package/src/directives/nebula.ts +34 -28
- package/src/directives/overflow-within.ts +18 -20
- package/src/directives/reduced-motion.ts +9 -9
- package/src/directives/reveal.ts +193 -195
- package/src/directives/ripple.ts +9 -7
- package/src/directives/urgent.ts +3 -1
- package/src/directives/working-snake.ts +1 -1
- package/src/discovery/discovery.service.ts +198 -210
- package/src/discovery/index.ts +1 -1
- package/src/divider/divider.ts +49 -47
- package/src/divider/index.ts +1 -1
- package/src/dropdown/dropdown-content.ts +42 -40
- package/src/dropdown/index.ts +2 -2
- package/src/expand/expand-root.component.ts +70 -61
- package/src/expand/expand.component.ts +48 -43
- package/src/fab/fab.test.ts +1 -2
- package/src/fab/fab.ts +2 -4
- package/src/form/fields/autocomplete/autocomplete.scss +6 -2
- package/src/form/fields/autocomplete/autocomplete.ts +712 -724
- package/src/form/fields/autocomplete/index.ts +1 -1
- package/src/form/fields/checkbox/checkbox.ts +1 -4
- package/src/form/fields/chips/assist-chip.ts +69 -72
- package/src/form/fields/chips/chips.ts +14 -15
- package/src/form/fields/chips/filter-chip.ts +36 -32
- package/src/form/fields/chips/index.ts +5 -5
- package/src/form/fields/chips/input-chip.ts +130 -142
- package/src/form/fields/chips/suggestion-chip.ts +69 -72
- package/src/form/fields/date-range/date-range-dialog.ts +141 -194
- package/src/form/fields/date-range/date-range-helpers.ts +63 -64
- package/src/form/fields/date-range/date-range.test.ts +359 -122
- package/src/form/fields/date-range/date-range.ts +319 -395
- package/src/form/fields/date-range/index.ts +2 -2
- package/src/form/fields/input/index.ts +8 -8
- package/src/form/fields/input/input.scss +30 -26
- package/src/form/fields/input/input.test.ts +4 -1
- package/src/form/fields/input/input.ts +4 -20
- package/src/form/fields/radio-group/index.ts +2 -2
- package/src/form/fields/radio-group/radio-button.ts +8 -8
- package/src/form/fields/radio-group/radio-group.ts +4 -1
- package/src/form/fields/range/range.ts +3 -1
- package/src/form/fields/select/index.ts +2 -2
- package/src/form/fields/select/select.ts +51 -45
- package/src/form/fields/switch/switch.ts +13 -7
- package/src/form/fields/textarea/index.ts +1 -1
- package/src/form/fields/textarea/textarea.ts +44 -49
- package/src/form/form-summary.ts +15 -14
- package/src/form/form.test.ts +0 -1
- package/src/form/form.ts +11 -23
- package/src/icons/icon.ts +25 -25
- package/src/icons/index.ts +1 -1
- package/src/iframe/iframe.ts +11 -9
- package/src/index.ts +1 -0
- package/src/json/json.ts +9 -2
- package/src/kbd/kbd.ts +30 -28
- package/src/layout/scroll/index.ts +1 -1
- package/src/layout/scroll/scroll.ts +54 -54
- package/src/lightbox/lightbox-service.ts +27 -18
- package/src/lightbox/lightbox.directive.ts +2 -1
- package/src/lightbox/lightbox.ts +21 -38
- package/src/list/index.ts +3 -3
- package/src/list/list-item.ts +32 -26
- package/src/list/list.ts +13 -8
- package/src/menu/index.ts +2 -2
- package/src/menu/menu-item.ts +7 -5
- package/src/menu/menu.ts +8 -6
- package/src/nav-drawer/appbar.ts +9 -7
- package/src/nav-drawer/content.ts +10 -8
- package/src/nav-drawer/drawer.ts +29 -25
- package/src/nav-drawer/index.ts +6 -6
- package/src/navigation-bar/index.ts +2 -2
- package/src/navigation-bar/navigation-bar-item.ts +127 -118
- package/src/navigation-bar/navigation-bar.ts +103 -91
- package/src/navigation-rail/index.ts +2 -2
- package/src/navigation-rail/navigation-rail.ts +21 -22
- package/src/notification/index.ts +6 -6
- package/src/notification/notification-service.ts +1 -2
- package/src/notification/notification.scss +5 -1
- package/src/notification/notification.ts +1 -3
- package/src/notification/notify.ts +204 -207
- package/src/option/index.ts +1 -1
- package/src/option/option.ts +26 -25
- package/src/overlay/overlay.animations.ts +4 -14
- package/src/overlay/overlay.component.ts +110 -131
- package/src/overlay/overlay.confirm-body.ts +26 -48
- package/src/overlay/overlay.gestures.ts +8 -10
- package/src/overlay/overlay.layout.ts +1 -4
- package/src/overlay/overlay.positioning.ts +4 -15
- package/src/overlay/overlay.service.ts +9 -24
- package/src/overlay/overlay.stack.test.ts +4 -1
- package/src/overlay/overlay.stack.ts +4 -4
- package/src/overlay/overlay.types.ts +11 -20
- package/src/progress/index.ts +1 -1
- package/src/progress/progress.ts +135 -133
- package/src/rxjs-utils/index.ts +6 -6
- package/src/rxjs-utils/waitForElement.ts +20 -20
- package/src/rxjs-utils/waitForElementAll.ts +21 -21
- package/src/rxjs-utils/waitForElements.ts +27 -27
- package/src/rxjs-utils/waitForElementsAll.ts +27 -29
- package/src/rxjs-utils/waitUntil.ts +7 -12
- package/src/skeleton/skeleton.ts +39 -33
- package/src/slider/index.ts +2 -2
- package/src/slider/slide.ts +14 -12
- package/src/slider/slider.ts +24 -22
- package/src/splash-screen/index.ts +1 -1
- package/src/splash-screen/splash-screen.ts +26 -27
- package/src/state/active-host.ts +4 -5
- package/src/state/index.ts +34 -53
- package/src/state/persist.ts +14 -11
- package/src/state/schmancy-context.ts +88 -88
- package/src/state/state.test-d.ts +3 -13
- package/src/state/state.test.ts +1 -4
- package/src/steps/index.ts +3 -3
- package/src/steps/schmancy-step.ts +41 -31
- package/src/steps/schmancy-steps.ts +7 -5
- package/src/surface/index.ts +1 -1
- package/src/surface/surface.styles.ts +55 -191
- package/src/surface/surface.ts +18 -16
- package/src/table/index.ts +2 -2
- package/src/table/row.ts +1 -4
- package/src/table/table.ts +2 -5
- package/src/tabs/index.ts +2 -2
- package/src/tabs/tabs-group.ts +8 -6
- package/src/teleport/index.ts +2 -2
- package/src/test-utils/a11y.ts +1 -3
- package/src/theme/index.ts +17 -17
- package/src/theme/theme-audio-player.ts +18 -16
- package/src/theme/theme-controller-boat.ts +1 -1
- package/src/theme/theme-controller.ts +36 -32
- package/src/theme/theme.component.ts +5 -9
- package/src/theme/theme.events.ts +1 -1
- package/src/theme/theme.format.ts +7 -7
- package/src/theme/theme.service.ts +453 -468
- package/src/theme/theme.style.css +78 -23
- package/src/theme-button/index.ts +1 -1
- package/src/tooltip/tooltip.directive.ts +1 -1
- package/src/tree/index.ts +1 -1
- package/src/tree/tree.ts +24 -16
- package/src/types/surface.ts +38 -44
- package/src/typewriter/typewriter.directive.ts +30 -39
- package/src/typography/typography.ts +289 -269
- package/src/utils/animation.ts +2 -8
- package/src/utils/index.ts +6 -6
- package/src/utils/number.ts +480 -517
- package/src/utils/overlay-stack.ts +1 -3
- package/src/utils/search.ts +5 -9
- package/src/visually-hidden/visually-hidden.ts +15 -13
- package/src/window/window-manager.ts +6 -1
- package/src/window/window-position.ts +7 -5
- package/src/window/window.ts +146 -114
- package/types/mixins/surface.mixin.d.ts +8 -14
- package/types/src/badge/badge.d.ts +15 -48
- package/types/src/calendar/calendar.d.ts +108 -0
- package/types/src/calendar/calendar.test.d.ts +1 -0
- package/types/src/calendar/index.d.ts +2 -0
- package/types/src/directives/cursor-glow.d.ts +1 -1
- package/types/src/directives/hummingbird.d.ts +3 -3
- package/types/src/form/fields/date-range/date-range-dialog.d.ts +24 -28
- package/types/src/form/fields/date-range/date-range.d.ts +35 -66
- package/types/src/form/fields/date-range/date-range.test.d.ts +1 -0
- package/types/src/form/fields/date-range/index.d.ts +1 -1
- package/types/src/index.d.ts +1 -0
- package/types/src/surface/surface.d.ts +9 -7
- package/types/src/surface/surface.styles.d.ts +15 -20
- package/types/src/types/surface.d.ts +17 -22
- package/types/src/utils/number.d.ts +1 -1
- package/types/src/window/window.d.ts +0 -1
- package/dist/SchmancyElement-D9WA9FP9.cjs +0 -2
- package/dist/SchmancyElement-D9WA9FP9.cjs.map +0 -1
- package/dist/SchmancyElement-OWgz9ePG.js +0 -286
- package/dist/SchmancyElement-OWgz9ePG.js.map +0 -1
- package/dist/area-BiM7V2ns.js.map +0 -1
- package/dist/area-C7XjCoet.cjs +0 -21
- package/dist/area-C7XjCoet.cjs.map +0 -1
- package/dist/audio-CxO_j__6.js.map +0 -1
- package/dist/audio-xXFfMPCS.cjs.map +0 -1
- package/dist/autocomplete-DD7Hd59N.cjs +0 -115
- package/dist/autocomplete-DD7Hd59N.cjs.map +0 -1
- package/dist/autocomplete-DUBY9RtH.js.map +0 -1
- package/dist/busy-BjsO3y2A.js +0 -173
- package/dist/busy-BjsO3y2A.js.map +0 -1
- package/dist/busy-UbCGkTAi.cjs +0 -134
- package/dist/busy-UbCGkTAi.cjs.map +0 -1
- package/dist/button-BTpxQ1Kd.cjs.map +0 -1
- package/dist/button-D7QHfYf4.js.map +0 -1
- package/dist/card-DCdtJ5Dy.js.map +0 -1
- package/dist/card-rprhCYIC.cjs +0 -177
- package/dist/card-rprhCYIC.cjs.map +0 -1
- package/dist/chips-C5bpgWyf.js.map +0 -1
- package/dist/chips-DVes-BSz.cjs.map +0 -1
- package/dist/date-range-DDUuBlJ6.cjs +0 -142
- package/dist/date-range-DDUuBlJ6.cjs.map +0 -1
- package/dist/date-range-IPlbrhwW.js +0 -966
- package/dist/date-range-IPlbrhwW.js.map +0 -1
- package/dist/date-range-inline-DPqY9YYf.js.map +0 -1
- package/dist/date-range-inline-Dx4Reboo.cjs.map +0 -1
- package/dist/details-BnleHmYe.js.map +0 -1
- package/dist/details-Bx2jSJxG.cjs.map +0 -1
- package/dist/directives-CYf2fAdA.cjs.map +0 -1
- package/dist/directives-d1rEbW1A.js.map +0 -1
- package/dist/divider-CimQJVr3.cjs +0 -57
- package/dist/divider-CimQJVr3.cjs.map +0 -1
- package/dist/divider-Cr-rx3vA.js +0 -89
- package/dist/divider-Cr-rx3vA.js.map +0 -1
- package/dist/expand-DNrWuG_-.js.map +0 -1
- package/dist/expand-_cp8oBjp.cjs +0 -141
- package/dist/expand-_cp8oBjp.cjs.map +0 -1
- package/dist/form-CMgYSZ3y.js.map +0 -1
- package/dist/form-DaaAQd2A.cjs.map +0 -1
- package/dist/icons-C2RkSXjP.cjs +0 -24
- package/dist/icons-C2RkSXjP.cjs.map +0 -1
- package/dist/icons-mbpHO_73.js.map +0 -1
- package/dist/iframe-88SN5JPu.cjs.map +0 -1
- package/dist/iframe-U3P1DnQv.js.map +0 -1
- package/dist/input-BY4Korc5.cjs.map +0 -1
- package/dist/input-CPWvGjE4.js.map +0 -1
- package/dist/input-chip-CCZ3i3Sf.js.map +0 -1
- package/dist/input-chip-kytMdbaM.cjs +0 -146
- package/dist/input-chip-kytMdbaM.cjs.map +0 -1
- package/dist/layout-BhfC26Ks.cjs.map +0 -1
- package/dist/layout-DC0Npqu7.js.map +0 -1
- package/dist/lightbox-BSwWvDQc.js.map +0 -1
- package/dist/lightbox-KrZQH9w9.cjs.map +0 -1
- package/dist/list-BwGtAAfi.js.map +0 -1
- package/dist/list-DIs02A3d.cjs +0 -40
- package/dist/list-DIs02A3d.cjs.map +0 -1
- package/dist/menu-DX8d96x-.js.map +0 -1
- package/dist/menu-jT_yAk5V.cjs.map +0 -1
- package/dist/mixins-COeG4DiX.js.map +0 -1
- package/dist/mixins-XGVIOvKt.cjs.map +0 -1
- package/dist/notification-CAJVpLne.js.map +0 -1
- package/dist/notification-DO3VXceY.cjs.map +0 -1
- package/dist/option-BNo1Zs-l.cjs +0 -43
- package/dist/option-BNo1Zs-l.cjs.map +0 -1
- package/dist/option-JISY0wZJ.js.map +0 -1
- package/dist/overlay-B1jVf-ge.cjs.map +0 -1
- package/dist/overlay-CT-tMHDX.js.map +0 -1
- package/dist/overlay.confirm-body-Dn-Zgogx.js.map +0 -1
- package/dist/overlay.confirm-body-mYDYoJL8.cjs.map +0 -1
- package/dist/overlay.service-BQmva9GY.cjs.map +0 -1
- package/dist/overlay.service-yqTOyLlr.js.map +0 -1
- package/dist/progress-CGWozq_n.js.map +0 -1
- package/dist/progress-DOVJhsR0.cjs +0 -51
- package/dist/progress-DOVJhsR0.cjs.map +0 -1
- package/dist/radio-group-CXkq6qAF.js.map +0 -1
- package/dist/radio-group-DoSX5D2V.cjs.map +0 -1
- package/dist/select-CObZenqg.cjs +0 -56
- package/dist/select-CObZenqg.cjs.map +0 -1
- package/dist/select-CU90i50_.js.map +0 -1
- package/dist/sound.service-Qhr8nCeG.cjs.map +0 -1
- package/dist/sound.service-m8WjOhjn.js.map +0 -1
- package/dist/splash-screen-Ca6Ew8p6.cjs +0 -41
- package/dist/splash-screen-Ca6Ew8p6.cjs.map +0 -1
- package/dist/splash-screen-Cs3dbPN3.js.map +0 -1
- package/dist/src-CCVbLLgC.js.map +0 -1
- package/dist/src-CpftzdZV.cjs +0 -264
- package/dist/src-CpftzdZV.cjs.map +0 -1
- package/dist/state--x58-AuK.cjs.map +0 -1
- package/dist/state-QSwQ61sA.js.map +0 -1
- package/dist/surface-bTjOiq8n.cjs +0 -7
- package/dist/surface-bTjOiq8n.cjs.map +0 -1
- package/dist/surface-cqMsHJHM.js.map +0 -1
- package/dist/tabs-Dk9UDWpq.cjs.map +0 -1
- package/dist/tabs-Ib0Mh__1.js.map +0 -1
- package/dist/textarea-CcRsw08B.js.map +0 -1
- package/dist/textarea-Cntd9tfV.cjs.map +0 -1
- package/dist/theme.service-5RjyR7Sy.js.map +0 -1
- package/dist/theme.service-DA6KY52G.cjs.map +0 -1
- package/dist/typography-DeEYdMhW.js +0 -358
- package/dist/typography-DeEYdMhW.js.map +0 -1
- package/dist/typography-Tm7wSaB2.cjs +0 -282
- package/dist/typography-Tm7wSaB2.cjs.map +0 -1
- package/dist/utils-DTa3QHxk.cjs.map +0 -1
- package/dist/utils-H8wNknWC.js.map +0 -1
- package/dist/window-Db5ZYY6t.js.map +0 -1
- package/dist/window-oQqx5xqQ.cjs +0 -59
- package/dist/window-oQqx5xqQ.cjs.map +0 -1
- package/src/form/fields/date-range/date-range-presets.ts +0 -220
- package/src/form/fields/date-range/date-utils.ts +0 -58
- package/types/src/form/fields/date-range/date-range-presets.d.ts +0 -18
- package/types/src/form/fields/date-range/date-utils.d.ts +0 -15
- /package/dist/{hashContent-iRZJJWtE.cjs → hashContent--s09Ed_g.cjs} +0 -0
- /package/dist/{hashContent-BqU6v1Xr.js → hashContent-CAvrQ56N.js} +0 -0
- /package/dist/{rxjs-utils-Csnks202.cjs → rxjs-utils-4P2v57ke.cjs} +0 -0
- /package/dist/{rxjs-utils-d-ivVN84.js → rxjs-utils-JMFdgQSl.js} +0 -0
- /package/dist/{theme.interface-CSt7JUBD.cjs → theme.interface-B-qxDsZQ.cjs} +0 -0
- /package/dist/{theme.interface-odQEpZZH.js → theme.interface-B7caS5cg.js} +0 -0
- /package/dist/{utils-DTa3QHxk.cjs → utils-DIXndz6Q.cjs} +0 -0
- /package/dist/{utils-H8wNknWC.js → utils-dSPH7Oh9.js} +0 -0
package/src/area/area.service.ts
CHANGED
|
@@ -16,7 +16,7 @@ import {
|
|
|
16
16
|
Subscription,
|
|
17
17
|
tap,
|
|
18
18
|
timeout,
|
|
19
|
-
zip
|
|
19
|
+
zip,
|
|
20
20
|
} from 'rxjs'
|
|
21
21
|
import { SchmancyTeleportation } from '../teleport'
|
|
22
22
|
import { ActiveRoute, AreaSubscription, RouteAction } from './router.types'
|
|
@@ -45,7 +45,7 @@ class AreaService implements AreaSubscription {
|
|
|
45
45
|
public request = new ReplaySubject<RouteAction>(1)
|
|
46
46
|
public current = new Map<string, ActiveRoute>()
|
|
47
47
|
public $current = new ReplaySubject<Map<string, ActiveRoute>>(1)
|
|
48
|
-
|
|
48
|
+
|
|
49
49
|
// Create a dictionary of ReplaySubjects for area-specific subscriptions
|
|
50
50
|
private get areaSubjects(): Map<string, ReplaySubject<ActiveRoute>> {
|
|
51
51
|
let subjects = areaSubjectsCache.get(this)
|
|
@@ -55,7 +55,7 @@ class AreaService implements AreaSubscription {
|
|
|
55
55
|
}
|
|
56
56
|
return subjects
|
|
57
57
|
}
|
|
58
|
-
|
|
58
|
+
|
|
59
59
|
public enableHistoryMode = true
|
|
60
60
|
private findingMortiesEvent = new CustomEvent<FINDING_MORTIES_EVENT['detail']>(FINDING_MORTIES)
|
|
61
61
|
private disposed = false
|
|
@@ -64,11 +64,11 @@ class AreaService implements AreaSubscription {
|
|
|
64
64
|
|
|
65
65
|
constructor() {
|
|
66
66
|
this.$current.next(this.current)
|
|
67
|
-
|
|
67
|
+
|
|
68
68
|
// Subscribe to current changes to update area-specific subjects
|
|
69
69
|
this.$current.subscribe(currentAreas => {
|
|
70
70
|
if (this.disposed) return
|
|
71
|
-
|
|
71
|
+
|
|
72
72
|
// For each area in the current map
|
|
73
73
|
currentAreas.forEach((route, areaName) => {
|
|
74
74
|
// Get or create a subject for this area
|
|
@@ -111,11 +111,11 @@ class AreaService implements AreaSubscription {
|
|
|
111
111
|
*/
|
|
112
112
|
private getOrCreateAreaSubject(areaName: string): ReplaySubject<ActiveRoute> {
|
|
113
113
|
let subject = this.areaSubjects.get(areaName)
|
|
114
|
-
|
|
114
|
+
|
|
115
115
|
if (!subject || subject.closed) {
|
|
116
116
|
subject = new ReplaySubject<ActiveRoute>(1)
|
|
117
117
|
this.areaSubjects.set(areaName, subject)
|
|
118
|
-
|
|
118
|
+
|
|
119
119
|
// If the area already exists in current, emit it immediately
|
|
120
120
|
const currentRoute = this.current.get(areaName)
|
|
121
121
|
if (currentRoute) {
|
|
@@ -124,11 +124,11 @@ class AreaService implements AreaSubscription {
|
|
|
124
124
|
// Ensure state, params and props are initialized if undefined
|
|
125
125
|
state: currentRoute.state || {},
|
|
126
126
|
params: currentRoute.params || {},
|
|
127
|
-
props: currentRoute.props || {}
|
|
127
|
+
props: currentRoute.props || {},
|
|
128
128
|
})
|
|
129
129
|
}
|
|
130
130
|
}
|
|
131
|
-
|
|
131
|
+
|
|
132
132
|
return subject
|
|
133
133
|
}
|
|
134
134
|
|
|
@@ -143,29 +143,28 @@ class AreaService implements AreaSubscription {
|
|
|
143
143
|
const areaSubject = this.getOrCreateAreaSubject(areaName)
|
|
144
144
|
const observable = areaSubject.asObservable().pipe(
|
|
145
145
|
// Add distinct to prevent duplicate emissions - includes state, params, and props
|
|
146
|
-
distinctUntilChanged(
|
|
147
|
-
a
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
146
|
+
distinctUntilChanged(
|
|
147
|
+
(a, b) =>
|
|
148
|
+
a.component === b.component &&
|
|
149
|
+
JSON.stringify(a.state) === JSON.stringify(b.state) &&
|
|
150
|
+
JSON.stringify(a.params) === JSON.stringify(b.params) &&
|
|
151
|
+
JSON.stringify(a.props) === JSON.stringify(b.props),
|
|
151
152
|
),
|
|
152
153
|
// Share the subscription
|
|
153
|
-
shareReplay(1)
|
|
154
|
+
shareReplay(1),
|
|
154
155
|
)
|
|
155
156
|
|
|
156
157
|
return skipCurrent ? observable.pipe(skip(1)) : observable
|
|
157
158
|
}
|
|
158
|
-
|
|
159
|
+
|
|
159
160
|
/**
|
|
160
161
|
* Subscribe to all areas
|
|
161
162
|
*/
|
|
162
163
|
all(skipCurrent = false): Observable<Map<string, ActiveRoute>> {
|
|
163
|
-
const observable = this.$current.asObservable().pipe(
|
|
164
|
-
shareReplay(1)
|
|
165
|
-
)
|
|
164
|
+
const observable = this.$current.asObservable().pipe(shareReplay(1))
|
|
166
165
|
return skipCurrent ? observable.pipe(skip(1)) : observable
|
|
167
166
|
}
|
|
168
|
-
|
|
167
|
+
|
|
169
168
|
/**
|
|
170
169
|
* Get state from an area with type safety
|
|
171
170
|
*/
|
|
@@ -173,21 +172,19 @@ class AreaService implements AreaSubscription {
|
|
|
173
172
|
if (!areaName) {
|
|
174
173
|
throw new Error('Area name is required')
|
|
175
174
|
}
|
|
176
|
-
|
|
175
|
+
|
|
177
176
|
return this.on(areaName).pipe(
|
|
178
177
|
map(route => route.state),
|
|
179
|
-
filter((state): state is NonNullable<Record<string, unknown>> =>
|
|
180
|
-
state !== undefined && state !== null
|
|
181
|
-
),
|
|
178
|
+
filter((state): state is NonNullable<Record<string, unknown>> => state !== undefined && state !== null),
|
|
182
179
|
distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),
|
|
183
180
|
map(state => state as T),
|
|
184
181
|
catchError(err => {
|
|
185
182
|
console.error(`Error getting state for area "${areaName}":`, err)
|
|
186
183
|
return EMPTY
|
|
187
|
-
})
|
|
184
|
+
}),
|
|
188
185
|
)
|
|
189
186
|
}
|
|
190
|
-
|
|
187
|
+
|
|
191
188
|
/**
|
|
192
189
|
* Get params from an area with type safety
|
|
193
190
|
* Emits current value immediately on subscription via startWith
|
|
@@ -216,10 +213,10 @@ class AreaService implements AreaSubscription {
|
|
|
216
213
|
catchError(err => {
|
|
217
214
|
console.error(`Error getting params for area "${areaName}":`, err)
|
|
218
215
|
return EMPTY
|
|
219
|
-
})
|
|
216
|
+
}),
|
|
220
217
|
)
|
|
221
218
|
}
|
|
222
|
-
|
|
219
|
+
|
|
223
220
|
/**
|
|
224
221
|
* Get a specific param from an area with null safety
|
|
225
222
|
*/
|
|
@@ -227,7 +224,7 @@ class AreaService implements AreaSubscription {
|
|
|
227
224
|
if (!areaName || !key) {
|
|
228
225
|
throw new Error('Area name and key are required')
|
|
229
226
|
}
|
|
230
|
-
|
|
227
|
+
|
|
231
228
|
return this.params<Record<string, unknown>>(areaName).pipe(
|
|
232
229
|
map(params => params[key]),
|
|
233
230
|
filter((value): value is NonNullable<unknown> => value !== undefined),
|
|
@@ -236,10 +233,10 @@ class AreaService implements AreaSubscription {
|
|
|
236
233
|
catchError(err => {
|
|
237
234
|
console.error(`Error getting param "${key}" for area "${areaName}":`, err)
|
|
238
235
|
return EMPTY
|
|
239
|
-
})
|
|
236
|
+
}),
|
|
240
237
|
)
|
|
241
238
|
}
|
|
242
|
-
|
|
239
|
+
|
|
243
240
|
/**
|
|
244
241
|
* Get props from an area with type safety
|
|
245
242
|
*/
|
|
@@ -247,21 +244,19 @@ class AreaService implements AreaSubscription {
|
|
|
247
244
|
if (!areaName) {
|
|
248
245
|
throw new Error('Area name is required')
|
|
249
246
|
}
|
|
250
|
-
|
|
247
|
+
|
|
251
248
|
return this.on(areaName).pipe(
|
|
252
249
|
map(route => route.props),
|
|
253
|
-
filter((props): props is NonNullable<Record<string, unknown>> =>
|
|
254
|
-
props !== undefined && props !== null
|
|
255
|
-
),
|
|
250
|
+
filter((props): props is NonNullable<Record<string, unknown>> => props !== undefined && props !== null),
|
|
256
251
|
distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),
|
|
257
252
|
map(props => props as T),
|
|
258
253
|
catchError(err => {
|
|
259
254
|
console.error(`Error getting props for area "${areaName}":`, err)
|
|
260
255
|
return EMPTY
|
|
261
|
-
})
|
|
256
|
+
}),
|
|
262
257
|
)
|
|
263
258
|
}
|
|
264
|
-
|
|
259
|
+
|
|
265
260
|
/**
|
|
266
261
|
* Get a specific prop from an area with null safety
|
|
267
262
|
*/
|
|
@@ -269,7 +264,7 @@ class AreaService implements AreaSubscription {
|
|
|
269
264
|
if (!areaName || !key) {
|
|
270
265
|
throw new Error('Area name and key are required')
|
|
271
266
|
}
|
|
272
|
-
|
|
267
|
+
|
|
273
268
|
return this.props<Record<string, unknown>>(areaName).pipe(
|
|
274
269
|
map(props => props[key]),
|
|
275
270
|
filter((value): value is NonNullable<unknown> => value !== undefined),
|
|
@@ -278,7 +273,7 @@ class AreaService implements AreaSubscription {
|
|
|
278
273
|
catchError(err => {
|
|
279
274
|
console.error(`Error getting prop "${key}" for area "${areaName}":`, err)
|
|
280
275
|
return EMPTY
|
|
281
|
-
})
|
|
276
|
+
}),
|
|
282
277
|
)
|
|
283
278
|
}
|
|
284
279
|
|
|
@@ -295,7 +290,7 @@ class AreaService implements AreaSubscription {
|
|
|
295
290
|
]).pipe(
|
|
296
291
|
map(([component]) => component),
|
|
297
292
|
timeout(1),
|
|
298
|
-
catchError(() => EMPTY)
|
|
293
|
+
catchError(() => EMPTY),
|
|
299
294
|
)
|
|
300
295
|
}
|
|
301
296
|
|
|
@@ -306,26 +301,26 @@ class AreaService implements AreaSubscription {
|
|
|
306
301
|
if (!r.area) {
|
|
307
302
|
throw new Error('Area is required for route action')
|
|
308
303
|
}
|
|
309
|
-
|
|
304
|
+
|
|
310
305
|
// Prevent processing during popstate handling
|
|
311
306
|
if (this.isProcessingPopstate) {
|
|
312
307
|
return
|
|
313
308
|
}
|
|
314
|
-
|
|
309
|
+
|
|
315
310
|
// Ensure state, params and props are initialized
|
|
316
311
|
const routeAction: RouteAction = {
|
|
317
312
|
...r,
|
|
318
313
|
state: r.state || {},
|
|
319
314
|
params: r.params || {},
|
|
320
315
|
props: r.props || {},
|
|
321
|
-
_source: 'programmatic' as NavigationSource
|
|
316
|
+
_source: 'programmatic' as NavigationSource,
|
|
322
317
|
}
|
|
323
|
-
|
|
318
|
+
|
|
324
319
|
// Add to history if enabled
|
|
325
320
|
if (this.enableHistoryMode) {
|
|
326
321
|
routerHistory.next(routeAction)
|
|
327
322
|
}
|
|
328
|
-
|
|
323
|
+
|
|
329
324
|
this.request.next(routeAction)
|
|
330
325
|
// Emit an area-specific event for those who want to listen directly to DOM events
|
|
331
326
|
this.dispatchAreaEvent(routeAction.area, routeAction)
|
|
@@ -341,9 +336,9 @@ class AreaService implements AreaSubscription {
|
|
|
341
336
|
state: routeAction.state || {},
|
|
342
337
|
params: routeAction.params || {},
|
|
343
338
|
props: routeAction.props || {},
|
|
344
|
-
_source: 'browser' as NavigationSource
|
|
339
|
+
_source: 'browser' as NavigationSource,
|
|
345
340
|
}
|
|
346
|
-
|
|
341
|
+
|
|
347
342
|
this.isProcessingPopstate = true
|
|
348
343
|
this.request.next(enhancedRoute)
|
|
349
344
|
this.isProcessingPopstate = false
|
|
@@ -352,7 +347,13 @@ class AreaService implements AreaSubscription {
|
|
|
352
347
|
/**
|
|
353
348
|
* Update browser history state (called by area components)
|
|
354
349
|
*/
|
|
355
|
-
updateBrowserHistory(
|
|
350
|
+
updateBrowserHistory(
|
|
351
|
+
areaName: string,
|
|
352
|
+
route: ActiveRoute,
|
|
353
|
+
historyStrategy?: string,
|
|
354
|
+
clearQueryParams?: string[] | boolean | null,
|
|
355
|
+
customPath?: string,
|
|
356
|
+
) {
|
|
356
357
|
if (!this.enableHistoryMode) return
|
|
357
358
|
|
|
358
359
|
try {
|
|
@@ -363,7 +364,7 @@ class AreaService implements AreaSubscription {
|
|
|
363
364
|
// Update the specific area - only include non-empty state/params/props
|
|
364
365
|
const areaData: any = {
|
|
365
366
|
component: route.component,
|
|
366
|
-
area: route.area
|
|
367
|
+
area: route.area,
|
|
367
368
|
}
|
|
368
369
|
|
|
369
370
|
// Only include state if it has content
|
|
@@ -385,7 +386,7 @@ class AreaService implements AreaSubscription {
|
|
|
385
386
|
|
|
386
387
|
const newState = {
|
|
387
388
|
...currentState,
|
|
388
|
-
schmancyAreas
|
|
389
|
+
schmancyAreas,
|
|
389
390
|
}
|
|
390
391
|
|
|
391
392
|
// Create clean URL with optional custom path
|
|
@@ -398,7 +399,6 @@ class AreaService implements AreaSubscription {
|
|
|
398
399
|
history.pushState(newState, '', url)
|
|
399
400
|
}
|
|
400
401
|
// 'silent' strategy doesn't update browser history
|
|
401
|
-
|
|
402
402
|
} catch (error) {
|
|
403
403
|
console.error('Failed to update browser history:', error)
|
|
404
404
|
}
|
|
@@ -407,7 +407,11 @@ class AreaService implements AreaSubscription {
|
|
|
407
407
|
/**
|
|
408
408
|
* Create a clean URL from area states
|
|
409
409
|
*/
|
|
410
|
-
private createCleanURL(
|
|
410
|
+
private createCleanURL(
|
|
411
|
+
areas: Record<string, ActiveRoute>,
|
|
412
|
+
clearQueryParams?: string[] | boolean | null,
|
|
413
|
+
customPath?: string,
|
|
414
|
+
): string {
|
|
411
415
|
let basePath = '/'
|
|
412
416
|
|
|
413
417
|
// If custom path is provided, use it directly (completely replaces the path)
|
|
@@ -545,7 +549,7 @@ class AreaService implements AreaSubscription {
|
|
|
545
549
|
} catch (error) {
|
|
546
550
|
console.error('Failed to restore from browser state:', error)
|
|
547
551
|
}
|
|
548
|
-
|
|
552
|
+
|
|
549
553
|
// Fallback to URL parsing (original behavior)
|
|
550
554
|
return this.parseStateFromURL()
|
|
551
555
|
}
|
|
@@ -556,37 +560,37 @@ class AreaService implements AreaSubscription {
|
|
|
556
560
|
private parseStateFromURL(): Record<string, ActiveRoute> {
|
|
557
561
|
const pathname = location.pathname.split('/').pop()
|
|
558
562
|
if (!pathname) return {}
|
|
559
|
-
|
|
563
|
+
|
|
560
564
|
try {
|
|
561
565
|
const decoded = decodeURIComponent(pathname)
|
|
562
566
|
const parsed = JSON.parse(decoded)
|
|
563
|
-
|
|
567
|
+
|
|
564
568
|
if (typeof parsed === 'object' && parsed !== null) {
|
|
565
569
|
return parsed
|
|
566
570
|
}
|
|
567
571
|
} catch {
|
|
568
572
|
// Ignore parse errors
|
|
569
573
|
}
|
|
570
|
-
|
|
574
|
+
|
|
571
575
|
return {}
|
|
572
576
|
}
|
|
573
|
-
|
|
577
|
+
|
|
574
578
|
/**
|
|
575
579
|
* Dispatch a DOM event for a specific area change
|
|
576
580
|
*/
|
|
577
581
|
private dispatchAreaEvent(areaName: string, routeAction: RouteAction) {
|
|
578
582
|
const eventName = `schmancy-area-${areaName}-changed`
|
|
579
|
-
const event = new CustomEvent(eventName, {
|
|
580
|
-
detail: {
|
|
583
|
+
const event = new CustomEvent(eventName, {
|
|
584
|
+
detail: {
|
|
581
585
|
area: areaName,
|
|
582
586
|
component: routeAction.component,
|
|
583
587
|
state: routeAction.state,
|
|
584
588
|
params: routeAction.params,
|
|
585
589
|
props: routeAction.props,
|
|
586
|
-
historyStrategy: routeAction.historyStrategy
|
|
590
|
+
historyStrategy: routeAction.historyStrategy,
|
|
587
591
|
},
|
|
588
592
|
bubbles: true,
|
|
589
|
-
composed: true
|
|
593
|
+
composed: true,
|
|
590
594
|
})
|
|
591
595
|
window.dispatchEvent(event)
|
|
592
596
|
}
|
|
@@ -609,7 +613,7 @@ class AreaService implements AreaSubscription {
|
|
|
609
613
|
state: {},
|
|
610
614
|
area: name,
|
|
611
615
|
params: {},
|
|
612
|
-
props: {}
|
|
616
|
+
props: {},
|
|
613
617
|
})
|
|
614
618
|
}
|
|
615
619
|
|
|
@@ -622,7 +626,7 @@ class AreaService implements AreaSubscription {
|
|
|
622
626
|
params: {},
|
|
623
627
|
props: {},
|
|
624
628
|
historyStrategy: 'silent' as any,
|
|
625
|
-
_source: 'programmatic' as NavigationSource
|
|
629
|
+
_source: 'programmatic' as NavigationSource,
|
|
626
630
|
})
|
|
627
631
|
|
|
628
632
|
// Remove from current map
|
|
@@ -638,7 +642,7 @@ class AreaService implements AreaSubscription {
|
|
|
638
642
|
|
|
639
643
|
const newState = {
|
|
640
644
|
...currentState,
|
|
641
|
-
schmancyAreas
|
|
645
|
+
schmancyAreas,
|
|
642
646
|
}
|
|
643
647
|
|
|
644
648
|
const url = this.createCleanURL(schmancyAreas)
|
|
@@ -648,7 +652,7 @@ class AreaService implements AreaSubscription {
|
|
|
648
652
|
}
|
|
649
653
|
}
|
|
650
654
|
}
|
|
651
|
-
|
|
655
|
+
|
|
652
656
|
/**
|
|
653
657
|
* Clear all areas
|
|
654
658
|
*/
|
|
@@ -667,7 +671,7 @@ class AreaService implements AreaSubscription {
|
|
|
667
671
|
history.replaceState({ schmancyAreas: {} }, '', url)
|
|
668
672
|
}
|
|
669
673
|
}
|
|
670
|
-
|
|
674
|
+
|
|
671
675
|
/**
|
|
672
676
|
* Dispose of the service and clean up resources
|
|
673
677
|
*/
|
|
@@ -694,7 +698,7 @@ class AreaService implements AreaSubscription {
|
|
|
694
698
|
this.current.clear()
|
|
695
699
|
areaSubjectsCache.delete(this)
|
|
696
700
|
}
|
|
697
|
-
|
|
701
|
+
|
|
698
702
|
/**
|
|
699
703
|
* Get singleton instance
|
|
700
704
|
*/
|
|
@@ -718,25 +722,25 @@ class AreaService implements AreaSubscription {
|
|
|
718
722
|
} catch {
|
|
719
723
|
// Fallback to URL parsing
|
|
720
724
|
}
|
|
721
|
-
|
|
725
|
+
|
|
722
726
|
// Fallback to URL parsing (original behavior)
|
|
723
727
|
return this.parseStateFromURL()
|
|
724
728
|
}
|
|
725
|
-
|
|
729
|
+
|
|
726
730
|
/**
|
|
727
731
|
* Check if an area exists in current state
|
|
728
732
|
*/
|
|
729
733
|
hasArea(areaName: string): boolean {
|
|
730
734
|
return this.current.has(areaName)
|
|
731
735
|
}
|
|
732
|
-
|
|
736
|
+
|
|
733
737
|
/**
|
|
734
738
|
* Get all active area names
|
|
735
739
|
*/
|
|
736
740
|
getActiveAreas(): string[] {
|
|
737
741
|
return Array.from(this.current.keys())
|
|
738
742
|
}
|
|
739
|
-
|
|
743
|
+
|
|
740
744
|
/**
|
|
741
745
|
* Get route for a specific area synchronously
|
|
742
746
|
*/
|
|
@@ -757,4 +761,4 @@ class AreaService implements AreaSubscription {
|
|
|
757
761
|
* @method current$(areaName) - Observable of the active route state for an area.
|
|
758
762
|
*/
|
|
759
763
|
export const area = AreaService.getInstance()
|
|
760
|
-
export default area
|
|
764
|
+
export default area
|
package/src/area/index.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from './area.component'
|
|
2
|
-
export * from './area.service'
|
|
3
|
-
export * from './ecrypt'
|
|
4
|
-
export * from './lazy'
|
|
5
|
-
export * from './route.component'
|
|
6
|
-
export * from './router.types'
|
|
7
|
-
export * from './utils'
|
|
1
|
+
export * from './area.component'
|
|
2
|
+
export * from './area.service'
|
|
3
|
+
export * from './ecrypt'
|
|
4
|
+
export * from './lazy'
|
|
5
|
+
export * from './route.component'
|
|
6
|
+
export * from './router.types'
|
|
7
|
+
export * from './utils'
|
package/src/area/lazy.ts
CHANGED
|
@@ -10,8 +10,8 @@ type CustomElementConstructor = typeof HTMLElement
|
|
|
10
10
|
* LazyComponent interface with preload capability
|
|
11
11
|
*/
|
|
12
12
|
export interface LazyComponent<T extends CustomElementConstructor = CustomElementConstructor> {
|
|
13
|
-
|
|
14
|
-
|
|
13
|
+
(): Promise<{ default: T }>
|
|
14
|
+
preload(): Promise<void>
|
|
15
15
|
}
|
|
16
16
|
|
|
17
17
|
// Per-component load cache. Kept off the public LazyComponent surface so the
|
|
@@ -39,49 +39,46 @@ const moduleCache = new WeakMap<object, { default: CustomElementConstructor }>()
|
|
|
39
39
|
* @param loader - Dynamic import function that returns a module with default export
|
|
40
40
|
* @returns LazyComponent function compatible with area.push()
|
|
41
41
|
*/
|
|
42
|
-
export function lazy<T extends CustomElementConstructor>(
|
|
43
|
-
|
|
44
|
-
):
|
|
42
|
+
export function lazy<T extends CustomElementConstructor>(loader: () => Promise<{ default: T }>): LazyComponent<T> {
|
|
43
|
+
// Create the lazy component function
|
|
44
|
+
const lazyComponent = function (): Promise<{ default: T }> {
|
|
45
|
+
// Return cached promise if already loading/loaded
|
|
46
|
+
const cachedPromise = promiseCache.get(lazyComponent)
|
|
47
|
+
if (cachedPromise) {
|
|
48
|
+
return cachedPromise as Promise<{ default: T }>
|
|
49
|
+
}
|
|
45
50
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
return cachedPromise as Promise<{ default: T }>
|
|
52
|
-
}
|
|
51
|
+
// Return cached module if already loaded
|
|
52
|
+
const cachedModule = moduleCache.get(lazyComponent)
|
|
53
|
+
if (cachedModule) {
|
|
54
|
+
return Promise.resolve(cachedModule as { default: T })
|
|
55
|
+
}
|
|
53
56
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
57
|
+
// Start loading and cache the promise
|
|
58
|
+
const promise = loader()
|
|
59
|
+
.then(module => {
|
|
60
|
+
// Cache the loaded module
|
|
61
|
+
moduleCache.set(lazyComponent, module)
|
|
62
|
+
return module
|
|
63
|
+
})
|
|
64
|
+
.catch(error => {
|
|
65
|
+
// Clear promise on error to allow retry
|
|
66
|
+
promiseCache.delete(lazyComponent)
|
|
67
|
+
throw error
|
|
68
|
+
})
|
|
69
|
+
promiseCache.set(lazyComponent, promise)
|
|
59
70
|
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
.then(module => {
|
|
63
|
-
// Cache the loaded module
|
|
64
|
-
moduleCache.set(lazyComponent, module)
|
|
65
|
-
return module
|
|
66
|
-
})
|
|
67
|
-
.catch(error => {
|
|
68
|
-
// Clear promise on error to allow retry
|
|
69
|
-
promiseCache.delete(lazyComponent)
|
|
70
|
-
throw error
|
|
71
|
-
})
|
|
72
|
-
promiseCache.set(lazyComponent, promise)
|
|
71
|
+
return promise
|
|
72
|
+
} as LazyComponent<T>
|
|
73
73
|
|
|
74
|
-
|
|
75
|
-
|
|
74
|
+
// Add preload method for manual preloading
|
|
75
|
+
lazyComponent.preload = async function (): Promise<void> {
|
|
76
|
+
try {
|
|
77
|
+
await lazyComponent()
|
|
78
|
+
} catch (error) {
|
|
79
|
+
console.error('Failed to preload component:', error)
|
|
80
|
+
}
|
|
81
|
+
}
|
|
76
82
|
|
|
77
|
-
|
|
78
|
-
lazyComponent.preload = async function(): Promise<void> {
|
|
79
|
-
try {
|
|
80
|
-
await lazyComponent()
|
|
81
|
-
} catch (error) {
|
|
82
|
-
console.error('Failed to preload component:', error)
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
return lazyComponent
|
|
83
|
+
return lazyComponent
|
|
87
84
|
}
|