@ionic/core 8.7.10-dev.11762798751.11b77c85 → 8.7.10-dev.11763413450.1212cecf
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/components/checkbox.js +63 -9
- package/components/ion-datetime.js +39 -4
- package/components/ion-input.js +7 -6
- package/components/ion-searchbar.js +6 -6
- package/components/ion-select.js +7 -6
- package/components/ion-textarea.js +2 -1
- package/components/ion-toggle.js +62 -12
- package/components/notch-controller.js +153 -0
- package/components/radio-group.js +60 -7
- package/components/validity.js +1 -150
- package/dist/cjs/{animation-D_c13yq_.js → animation-Bt3H9L1C.js} +1 -1
- package/dist/cjs/{app-globals--1qFsqEw.js → app-globals-Ciccnk9_.js} +1 -1
- package/dist/cjs/{button-active-CQiBOKCI.js → button-active-CMc8cD90.js} +1 -1
- package/dist/cjs/{config-DL8XJF0D.js → config-C5fsO43a.js} +1 -1
- package/dist/cjs/{data-DtEHxOpt.js → data-JwZKaIQB.js} +1 -1
- package/dist/cjs/{framework-delegate-DmSgIb_h.js → framework-delegate-DMJRBuDi.js} +1 -1
- package/dist/cjs/{hardware-back-button-C72O8m7E.js → hardware-back-button-VCK4V3mG.js} +1 -1
- package/dist/cjs/{helpers-xCoR213K.js → helpers-DrTqNghc.js} +1 -1
- package/dist/cjs/{index-WEBAL2Zz.js → index-094mMFB-.js} +4 -4
- package/dist/cjs/{index-DOeyHw27.js → index-C534ULug.js} +2 -2
- package/dist/cjs/{index-FugOCm8C.js → index-CO6eryBo.js} +2 -2
- package/dist/cjs/{index-qWlbeMTM.js → index-D6Wc6v08.js} +3 -41
- package/dist/cjs/{index-FdJ4-6Rg.js → index-DrMUZJj6.js} +5 -5
- package/dist/cjs/index.cjs.js +12 -12
- package/dist/cjs/{input-shims-CYpwizql.js → input-shims-CW0KUFTQ.js} +3 -3
- package/dist/cjs/{input.utils-DhlH-Ng5.js → input.utils-B_QROI2g.js} +2 -2
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +8 -8
- package/dist/cjs/ion-alert.cjs.entry.js +9 -9
- package/dist/cjs/ion-app_8.cjs.entry.js +12 -12
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
- package/dist/cjs/ion-checkbox.cjs.entry.js +63 -11
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
- package/dist/cjs/ion-datetime_3.cjs.entry.js +47 -12
- package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-img.cjs.entry.js +3 -3
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +11 -10
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
- package/dist/cjs/ion-loading.cjs.entry.js +8 -8
- package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-modal.cjs.entry.js +9 -9
- package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +8 -8
- package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
- package/dist/cjs/ion-radio_2.cjs.entry.js +60 -9
- package/dist/cjs/ion-range.cjs.entry.js +4 -4
- package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +3 -3
- package/dist/cjs/ion-searchbar.cjs.entry.js +8 -8
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-select-modal.cjs.entry.js +6 -6
- package/dist/cjs/ion-select_3.cjs.entry.js +13 -12
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +7 -6
- package/dist/cjs/ion-toast.cjs.entry.js +8 -8
- package/dist/cjs/ion-toggle.cjs.entry.js +61 -13
- package/dist/cjs/{ionic-global-CR8JSFWa.js → ionic-global-HMVqOFGO.js} +1 -1
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-MQamiuLS.js → ios.transition-BOt_uW73.js} +4 -4
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-VK5nuqXu.js → md.transition-Dt968VXB.js} +4 -4
- package/dist/cjs/{validity-ilhIJL9Q.js → notch-controller-Bzqhjm4f.js} +1 -15
- package/dist/cjs/{overlays-DcMnmLe2.js → overlays-DxIZwUXI.js} +5 -5
- package/dist/cjs/{status-tap-C0NZlIwJ.js → status-tap-g0sWWkXk.js} +3 -3
- package/dist/cjs/{swipe-back-CdOHy9bk.js → swipe-back-BIayeNOD.js} +2 -2
- package/dist/cjs/validity-BpS37YFM.js +19 -0
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/checkbox/checkbox.js +67 -9
- package/dist/collection/components/datetime/datetime.ios.css +15 -0
- package/dist/collection/components/datetime/datetime.js +37 -2
- package/dist/collection/components/datetime/datetime.md.css +15 -0
- package/dist/collection/components/input/input.js +8 -8
- package/dist/collection/components/radio-group/radio-group.js +64 -7
- package/dist/collection/components/searchbar/searchbar.js +9 -9
- package/dist/collection/components/select/select.js +5 -5
- package/dist/collection/components/toggle/toggle.js +62 -12
- package/dist/docs.json +25 -15
- package/dist/esm/{animation-BMjqGaKJ.js → animation-Dt8bGnA-.js} +1 -1
- package/dist/esm/{app-globals-CXKe5CYv.js → app-globals-BDSf8fOA.js} +1 -1
- package/dist/esm/{button-active-DsHCf5yJ.js → button-active-L570Swow.js} +1 -1
- package/dist/esm/{config-FyGnL1d5.js → config-mCdtaoPe.js} +1 -1
- package/dist/esm/{data-VwBJONjN.js → data-DCORV9FH.js} +1 -1
- package/dist/esm/{framework-delegate-DA71As64.js → framework-delegate-BYawdMXj.js} +1 -1
- package/dist/esm/{hardware-back-button-gEuwgxq4.js → hardware-back-button-CPLxO-Ev.js} +1 -1
- package/dist/esm/{helpers-Br4puuoA.js → helpers-DEn3pfjm.js} +1 -1
- package/dist/esm/{index-nzxJGPo-.js → index-Bs3kT4bc.js} +2 -2
- package/dist/esm/{index-COOKa-0k.js → index-C8IsBmNU.js} +3 -41
- package/dist/esm/{index-DNUVD4sY.js → index-CvDIirVx.js} +5 -5
- package/dist/esm/{index-CZzUL5H7.js → index-ceb5RaMT.js} +2 -2
- package/dist/esm/{index-DKnepNGf.js → index-r2D9DEro.js} +4 -4
- package/dist/esm/index.js +12 -12
- package/dist/esm/{input-shims-G0QQ_JXi.js → input-shims-DyOpfTg6.js} +3 -3
- package/dist/esm/{input.utils-BRuJbV55.js → input.utils-DrvTa8gz.js} +2 -2
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +8 -8
- package/dist/esm/ion-alert.entry.js +9 -9
- package/dist/esm/ion-app_8.entry.js +12 -12
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +3 -3
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
- package/dist/esm/ion-button_2.entry.js +3 -3
- package/dist/esm/ion-card_5.entry.js +3 -3
- package/dist/esm/ion-checkbox.entry.js +63 -11
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +4 -4
- package/dist/esm/ion-datetime_3.entry.js +47 -12
- package/dist/esm/ion-fab_3.entry.js +3 -3
- package/dist/esm/ion-img.entry.js +3 -3
- package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
- package/dist/esm/ion-input-otp.entry.js +3 -3
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +10 -9
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +3 -3
- package/dist/esm/ion-loading.entry.js +8 -8
- package/dist/esm/ion-menu_3.entry.js +8 -8
- package/dist/esm/ion-modal.entry.js +9 -9
- package/dist/esm/ion-nav_2.entry.js +6 -6
- package/dist/esm/ion-picker-column-option.entry.js +3 -3
- package/dist/esm/ion-picker-column.entry.js +3 -3
- package/dist/esm/ion-picker.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +8 -8
- package/dist/esm/ion-progress-bar.entry.js +3 -3
- package/dist/esm/ion-radio_2.entry.js +60 -9
- package/dist/esm/ion-range.entry.js +4 -4
- package/dist/esm/ion-refresher_2.entry.js +6 -6
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +3 -3
- package/dist/esm/ion-searchbar.entry.js +8 -8
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +1 -1
- package/dist/esm/ion-segment_2.entry.js +3 -3
- package/dist/esm/ion-select-modal.entry.js +6 -6
- package/dist/esm/ion-select_3.entry.js +12 -11
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +3 -3
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +6 -5
- package/dist/esm/ion-toast.entry.js +8 -8
- package/dist/esm/ion-toggle.entry.js +61 -13
- package/dist/esm/{ionic-global-ssiordoc.js → ionic-global-CDrldh-5.js} +1 -1
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-CdWk5te_.js → ios.transition-BDzw0_Hm.js} +4 -4
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-CTwmjwnm.js → md.transition-BzDYi3qq.js} +4 -4
- package/dist/esm/{validity-CwxNVaqN.js → notch-controller-BwelN_JM.js} +2 -15
- package/dist/esm/{overlays-DNIbGUWk.js → overlays-BymNv-BL.js} +5 -5
- package/dist/esm/{status-tap-B6uPB7F5.js → status-tap-5DQ7Fc4V.js} +3 -3
- package/dist/esm/{swipe-back-INesdA_O.js → swipe-back-BKw2CAHc.js} +2 -2
- package/dist/esm/validity-DJztqcrH.js +17 -0
- package/dist/html.html-data.json +18 -2
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-2b9e100d.entry.js → p-020af078.entry.js} +1 -1
- package/dist/ionic/p-074839fc.entry.js +4 -0
- package/dist/ionic/{p-964e89ac.entry.js → p-0b80d700.entry.js} +1 -1
- package/dist/ionic/{p-894e8953.entry.js → p-0dfa5a37.entry.js} +1 -1
- package/dist/ionic/{p-3807749f.entry.js → p-11518b31.entry.js} +1 -1
- package/dist/ionic/{p-fcd74818.entry.js → p-15193d01.entry.js} +1 -1
- package/dist/ionic/{p-c49f0f68.entry.js → p-1647c46c.entry.js} +1 -1
- package/dist/ionic/{p-116a97cb.entry.js → p-2a939845.entry.js} +1 -1
- package/dist/ionic/{p-3c522786.entry.js → p-316c0420.entry.js} +1 -1
- package/dist/ionic/{p-860f309a.entry.js → p-31f7095f.entry.js} +1 -1
- package/dist/ionic/{p-adde497f.entry.js → p-370e4237.entry.js} +1 -1
- package/dist/ionic/{p-ef8c7682.entry.js → p-3a6caca9.entry.js} +1 -1
- package/dist/ionic/p-40c261a3.entry.js +4 -0
- package/dist/ionic/{p-06881392.entry.js → p-43ed1ef5.entry.js} +1 -1
- package/dist/ionic/{p-a66bbfa0.entry.js → p-46d74291.entry.js} +1 -1
- package/dist/ionic/{p-7047a7b7.entry.js → p-49d06882.entry.js} +1 -1
- package/dist/ionic/{p-d0f6b9a7.entry.js → p-4c85d268.entry.js} +1 -1
- package/dist/ionic/p-4e41ea20.entry.js +4 -0
- package/dist/ionic/{p-dfd6acb5.entry.js → p-510d86e1.entry.js} +1 -1
- package/dist/ionic/p-51a60e0f.entry.js +4 -0
- package/dist/ionic/{p-dfc6f4b1.entry.js → p-582824c5.entry.js} +1 -1
- package/dist/ionic/{p-259e4068.entry.js → p-6241ce47.entry.js} +1 -1
- package/dist/ionic/{p-4ede0a73.entry.js → p-639dd543.entry.js} +1 -1
- package/dist/ionic/{p-7a19f3d1.entry.js → p-6444c606.entry.js} +1 -1
- package/dist/ionic/{p-c7f3e813.entry.js → p-675b1a31.entry.js} +1 -1
- package/dist/ionic/{p-db44afdd.entry.js → p-6d070558.entry.js} +1 -1
- package/dist/ionic/{p-5dcbb52f.entry.js → p-7268efa5.entry.js} +1 -1
- package/dist/ionic/{p-c6b68ac0.entry.js → p-72c38b88.entry.js} +1 -1
- package/dist/ionic/p-7380261c.entry.js +4 -0
- package/dist/ionic/{p-a41048a1.entry.js → p-79bd78f9.entry.js} +1 -1
- package/dist/ionic/{p-295a2119.entry.js → p-7da39a4d.entry.js} +1 -1
- package/dist/ionic/{p-d24d55cb.entry.js → p-83be404e.entry.js} +1 -1
- package/dist/ionic/{p-70c66710.entry.js → p-86f53961.entry.js} +1 -1
- package/dist/ionic/{p-db648b6a.entry.js → p-94de5cfa.entry.js} +1 -1
- package/dist/ionic/{p-6fe93af5.entry.js → p-9575b654.entry.js} +1 -1
- package/dist/ionic/p-9810f7e6.entry.js +4 -0
- package/dist/ionic/{p-bef7bd83.entry.js → p-98fc09eb.entry.js} +1 -1
- package/dist/ionic/{p-BA44xiai.js → p-B0q1YL7N.js} +1 -1
- package/dist/ionic/p-BFvmZNyx.js +4 -0
- package/dist/ionic/p-BKc55Xev.js +4 -0
- package/dist/ionic/{p-baqdazzM.js → p-BOVrCkpJ.js} +1 -1
- package/dist/ionic/{p-CT3hZD31.js → p-BYEqWnSg.js} +1 -1
- package/dist/ionic/p-Bmgaetn_.js +4 -0
- package/dist/ionic/{p-CUek2VVk.js → p-C7hRNDhM.js} +1 -1
- package/dist/ionic/p-C8IsBmNU.js +5 -0
- package/dist/ionic/{p-CYTVJxfQ.js → p-CJxh_yLS.js} +1 -1
- package/dist/ionic/{p-C8VsQFea.js → p-CTfR9YZG.js} +1 -1
- package/dist/ionic/p-CwgG81ZD.js +4 -0
- package/dist/ionic/{p-UCpjvnQe.js → p-D-eFFUkA.js} +1 -1
- package/dist/ionic/{p-DddcVlzx.js → p-D0dMcSkw.js} +1 -1
- package/dist/ionic/{p-ynapDa0U.js → p-D87hU-Ly.js} +1 -1
- package/dist/ionic/{p-C9IcKRgw.js → p-DCv9sLH2.js} +1 -1
- package/dist/ionic/p-DDb5r57F.js +4 -0
- package/dist/ionic/p-DJztqcrH.js +4 -0
- package/dist/ionic/{p-yu2f42Nv.js → p-DNcfiJwE.js} +1 -1
- package/dist/ionic/{p-CETqdl8n.js → p-DUt5fQmA.js} +1 -1
- package/dist/ionic/p-DZRJwG4S.js +4 -0
- package/dist/ionic/{p-D8G3beZX.js → p-DbQ5QkTP.js} +1 -1
- package/dist/ionic/{p-BUluHF_z.js → p-Dc45iWE4.js} +1 -1
- package/dist/ionic/{p-Bzed_Vkc.js → p-QHYY4sjU.js} +1 -1
- package/dist/ionic/{p-3ca55cd6.entry.js → p-a127bee2.entry.js} +1 -1
- package/dist/ionic/{p-b3da5db0.entry.js → p-a80f1b04.entry.js} +1 -1
- package/dist/ionic/{p-948228a2.entry.js → p-ac4eb91d.entry.js} +1 -1
- package/dist/ionic/{p-7078b759.entry.js → p-b0a7585c.entry.js} +1 -1
- package/dist/ionic/{p-3549e539.entry.js → p-b57c6d3e.entry.js} +1 -1
- package/dist/ionic/p-c19f63d0.entry.js +4 -0
- package/dist/ionic/{p-e1547a17.entry.js → p-cc45bcbc.entry.js} +1 -1
- package/dist/ionic/{p-e1c3b35d.entry.js → p-d0a2a1ab.entry.js} +1 -1
- package/dist/ionic/{p-89c2d5ea.entry.js → p-d126e8d3.entry.js} +1 -1
- package/dist/ionic/p-d1f54e28.entry.js +4 -0
- package/dist/ionic/p-d3014190.entry.js +4 -0
- package/dist/ionic/{p-93d7685c.entry.js → p-da7d04cc.entry.js} +1 -1
- package/dist/ionic/p-dbbe606a.entry.js +4 -0
- package/dist/ionic/{p-0144ab54.entry.js → p-e16b69e1.entry.js} +1 -1
- package/dist/ionic/{p-d27a5c0b.entry.js → p-f8f22cc0.entry.js} +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +9 -1
- package/dist/types/components/datetime/datetime.d.ts +9 -0
- package/dist/types/components/header/header.utils.d.ts +1 -2
- package/dist/types/components/input/input.d.ts +1 -1
- package/dist/types/components/radio-group/radio-group.d.ts +9 -1
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select.d.ts +2 -2
- package/dist/types/components/toggle/toggle.d.ts +7 -1
- package/dist/types/components.d.ts +8 -8
- package/dist/types/stencil-public-runtime.d.ts +9 -19
- package/dist/types/utils/forms/validity.d.ts +1 -1
- package/dist/types/utils/gesture/listener.d.ts +1 -2
- package/hydrate/index.js +408 -360
- package/hydrate/index.mjs +408 -360
- package/package.json +3 -3
- package/dist/ionic/p-0188f4a6.entry.js +0 -4
- package/dist/ionic/p-14e08559.entry.js +0 -4
- package/dist/ionic/p-22bcfae9.entry.js +0 -4
- package/dist/ionic/p-45c80fd7.entry.js +0 -4
- package/dist/ionic/p-49a21ffb.entry.js +0 -4
- package/dist/ionic/p-5cf136b5.entry.js +0 -4
- package/dist/ionic/p-5d600703.entry.js +0 -4
- package/dist/ionic/p-9fc9dfae.entry.js +0 -4
- package/dist/ionic/p-BS-HlVX0.js +0 -4
- package/dist/ionic/p-BWS2Niqo.js +0 -4
- package/dist/ionic/p-CCKqmAua.js +0 -4
- package/dist/ionic/p-COOKa-0k.js +0 -5
- package/dist/ionic/p-CSQuMCUi.js +0 -4
- package/dist/ionic/p-PfJ1h_Zm.js +0 -4
- package/dist/ionic/p-edcc6f4f.entry.js +0 -4
- package/dist/ionic/p-f53597ee.entry.js +0 -4
- package/dist/ionic/p-w2EzNm9e.js +0 -4
package/hydrate/index.js
CHANGED
|
@@ -130,7 +130,7 @@ function hydrateFactory($stencilWindow, $stencilHydrateOpts, $stencilHydrateResu
|
|
|
130
130
|
|
|
131
131
|
|
|
132
132
|
const NAMESPACE = 'ionic';
|
|
133
|
-
const BUILD = /* ionic */ { hydratedSelectorName: "hydrated", slotRelocation: true,
|
|
133
|
+
const BUILD = /* ionic */ { hydratedSelectorName: "hydrated", slotRelocation: true, updatable: true};
|
|
134
134
|
|
|
135
135
|
// TODO(FW-2832): types
|
|
136
136
|
class Config {
|
|
@@ -392,7 +392,7 @@ const initialize = (userConfig = {}) => {
|
|
|
392
392
|
const globalScripts = initialize;
|
|
393
393
|
|
|
394
394
|
/*
|
|
395
|
-
Stencil Hydrate Platform v4.38.
|
|
395
|
+
Stencil Hydrate Platform v4.38.0 | MIT Licensed | https://stenciljs.com
|
|
396
396
|
*/
|
|
397
397
|
var __defProp = Object.defineProperty;
|
|
398
398
|
var __export = (target, all) => {
|
|
@@ -428,40 +428,6 @@ var TYPE_CONSTANT = "type";
|
|
|
428
428
|
var VALUE_CONSTANT = "value";
|
|
429
429
|
var SERIALIZED_PREFIX = "serialized:";
|
|
430
430
|
|
|
431
|
-
// src/utils/es2022-rewire-class-members.ts
|
|
432
|
-
var reWireGetterSetter = (instance, hostRef) => {
|
|
433
|
-
var _a;
|
|
434
|
-
const cmpMeta = hostRef.$cmpMeta$;
|
|
435
|
-
const members = Object.entries((_a = cmpMeta.$members$) != null ? _a : {});
|
|
436
|
-
members.map(([memberName, [memberFlags]]) => {
|
|
437
|
-
if ((memberFlags & 31 /* Prop */ || memberFlags & 32 /* State */)) {
|
|
438
|
-
const ogValue = instance[memberName];
|
|
439
|
-
const ogDescriptor = getPropertyDescriptor(Object.getPrototypeOf(instance), memberName) || Object.getOwnPropertyDescriptor(instance, memberName);
|
|
440
|
-
if (ogDescriptor) {
|
|
441
|
-
Object.defineProperty(instance, memberName, {
|
|
442
|
-
get() {
|
|
443
|
-
return ogDescriptor.get.call(this);
|
|
444
|
-
},
|
|
445
|
-
set(newValue) {
|
|
446
|
-
ogDescriptor.set.call(this, newValue);
|
|
447
|
-
},
|
|
448
|
-
configurable: true,
|
|
449
|
-
enumerable: true
|
|
450
|
-
});
|
|
451
|
-
}
|
|
452
|
-
instance[memberName] = hostRef.$instanceValues$.has(memberName) ? hostRef.$instanceValues$.get(memberName) : ogValue;
|
|
453
|
-
}
|
|
454
|
-
});
|
|
455
|
-
};
|
|
456
|
-
function getPropertyDescriptor(obj, memberName) {
|
|
457
|
-
while (obj) {
|
|
458
|
-
const desc = Object.getOwnPropertyDescriptor(obj, memberName);
|
|
459
|
-
if (desc == null ? void 0 : desc.get) return desc;
|
|
460
|
-
obj = Object.getPrototypeOf(obj);
|
|
461
|
-
}
|
|
462
|
-
return void 0;
|
|
463
|
-
}
|
|
464
|
-
|
|
465
431
|
// src/utils/helpers.ts
|
|
466
432
|
var isDef = (v) => v != null && v !== void 0;
|
|
467
433
|
var isComplexType = (o) => {
|
|
@@ -3681,9 +3647,6 @@ var registerInstance = (lazyInstance, hostRef) => {
|
|
|
3681
3647
|
if (!hostRef) return void 0;
|
|
3682
3648
|
lazyInstance.__stencil__getHostRef = () => hostRef;
|
|
3683
3649
|
hostRef.$lazyInstance$ = lazyInstance;
|
|
3684
|
-
if (hostRef.$cmpMeta$.$flags$ & 512 /* hasModernPropertyDecls */ && (BUILD.state)) {
|
|
3685
|
-
reWireGetterSetter(lazyInstance, hostRef);
|
|
3686
|
-
}
|
|
3687
3650
|
return hostRef;
|
|
3688
3651
|
};
|
|
3689
3652
|
var registerHost = (elm, cmpMeta) => {
|
|
@@ -9722,6 +9685,202 @@ class CardTitle {
|
|
|
9722
9685
|
}; }
|
|
9723
9686
|
}
|
|
9724
9687
|
|
|
9688
|
+
/**
|
|
9689
|
+
* A utility to calculate the size of an outline notch
|
|
9690
|
+
* width relative to the content passed. This is used in
|
|
9691
|
+
* components such as `ion-select` with `fill="outline"`
|
|
9692
|
+
* where we need to pass slotted HTML content. This is not
|
|
9693
|
+
* needed when rendering plaintext content because we can
|
|
9694
|
+
* render the plaintext again hidden with `opacity: 0` inside
|
|
9695
|
+
* of the notch. As a result we can rely on the intrinsic size
|
|
9696
|
+
* of the element to correctly compute the notch width. We
|
|
9697
|
+
* cannot do this with slotted content because we cannot project
|
|
9698
|
+
* it into 2 places at once.
|
|
9699
|
+
*
|
|
9700
|
+
* @internal
|
|
9701
|
+
* @param el: The host element
|
|
9702
|
+
* @param getNotchSpacerEl: A function that returns a reference to the notch spacer element inside of the component template.
|
|
9703
|
+
* @param getLabelSlot: A function that returns a reference to the slotted content.
|
|
9704
|
+
*/
|
|
9705
|
+
const createNotchController = (el, getNotchSpacerEl, getLabelSlot) => {
|
|
9706
|
+
let notchVisibilityIO;
|
|
9707
|
+
const needsExplicitNotchWidth = () => {
|
|
9708
|
+
const notchSpacerEl = getNotchSpacerEl();
|
|
9709
|
+
if (
|
|
9710
|
+
/**
|
|
9711
|
+
* If the notch is not being used
|
|
9712
|
+
* then we do not need to set the notch width.
|
|
9713
|
+
*/
|
|
9714
|
+
notchSpacerEl === undefined ||
|
|
9715
|
+
/**
|
|
9716
|
+
* If either the label property is being
|
|
9717
|
+
* used or the label slot is not defined,
|
|
9718
|
+
* then we do not need to estimate the notch width.
|
|
9719
|
+
*/
|
|
9720
|
+
el.label !== undefined ||
|
|
9721
|
+
getLabelSlot() === null) {
|
|
9722
|
+
return false;
|
|
9723
|
+
}
|
|
9724
|
+
return true;
|
|
9725
|
+
};
|
|
9726
|
+
const calculateNotchWidth = () => {
|
|
9727
|
+
if (needsExplicitNotchWidth()) {
|
|
9728
|
+
/**
|
|
9729
|
+
* Run this the frame after
|
|
9730
|
+
* the browser has re-painted the host element.
|
|
9731
|
+
* Otherwise, the label element may have a width
|
|
9732
|
+
* of 0 and the IntersectionObserver will be used.
|
|
9733
|
+
*/
|
|
9734
|
+
raf(() => {
|
|
9735
|
+
setNotchWidth();
|
|
9736
|
+
});
|
|
9737
|
+
}
|
|
9738
|
+
};
|
|
9739
|
+
/**
|
|
9740
|
+
* When using a label prop we can render
|
|
9741
|
+
* the label value inside of the notch and
|
|
9742
|
+
* let the browser calculate the size of the notch.
|
|
9743
|
+
* However, we cannot render the label slot in multiple
|
|
9744
|
+
* places so we need to manually calculate the notch dimension
|
|
9745
|
+
* based on the size of the slotted content.
|
|
9746
|
+
*
|
|
9747
|
+
* This function should only be used to set the notch width
|
|
9748
|
+
* on slotted label content. The notch width for label prop
|
|
9749
|
+
* content is automatically calculated based on the
|
|
9750
|
+
* intrinsic size of the label text.
|
|
9751
|
+
*/
|
|
9752
|
+
const setNotchWidth = () => {
|
|
9753
|
+
const notchSpacerEl = getNotchSpacerEl();
|
|
9754
|
+
if (notchSpacerEl === undefined) {
|
|
9755
|
+
return;
|
|
9756
|
+
}
|
|
9757
|
+
if (!needsExplicitNotchWidth()) {
|
|
9758
|
+
notchSpacerEl.style.removeProperty('width');
|
|
9759
|
+
return;
|
|
9760
|
+
}
|
|
9761
|
+
const width = getLabelSlot().scrollWidth;
|
|
9762
|
+
if (
|
|
9763
|
+
/**
|
|
9764
|
+
* If the computed width of the label is 0
|
|
9765
|
+
* and notchSpacerEl's offsetParent is null
|
|
9766
|
+
* then that means the element is hidden.
|
|
9767
|
+
* As a result, we need to wait for the element
|
|
9768
|
+
* to become visible before setting the notch width.
|
|
9769
|
+
*
|
|
9770
|
+
* We do not check el.offsetParent because
|
|
9771
|
+
* that can be null if the host element has
|
|
9772
|
+
* position: fixed applied to it.
|
|
9773
|
+
* notchSpacerEl does not have position: fixed.
|
|
9774
|
+
*/
|
|
9775
|
+
width === 0 &&
|
|
9776
|
+
notchSpacerEl.offsetParent === null &&
|
|
9777
|
+
win$1 !== undefined &&
|
|
9778
|
+
'IntersectionObserver' in win$1) {
|
|
9779
|
+
/**
|
|
9780
|
+
* If there is an IO already attached
|
|
9781
|
+
* then that will update the notch
|
|
9782
|
+
* once the element becomes visible.
|
|
9783
|
+
* As a result, there is no need to create
|
|
9784
|
+
* another one.
|
|
9785
|
+
*/
|
|
9786
|
+
if (notchVisibilityIO !== undefined) {
|
|
9787
|
+
return;
|
|
9788
|
+
}
|
|
9789
|
+
const io = (notchVisibilityIO = new IntersectionObserver((ev) => {
|
|
9790
|
+
/**
|
|
9791
|
+
* If the element is visible then we
|
|
9792
|
+
* can try setting the notch width again.
|
|
9793
|
+
*/
|
|
9794
|
+
if (ev[0].intersectionRatio === 1) {
|
|
9795
|
+
setNotchWidth();
|
|
9796
|
+
io.disconnect();
|
|
9797
|
+
notchVisibilityIO = undefined;
|
|
9798
|
+
}
|
|
9799
|
+
},
|
|
9800
|
+
/**
|
|
9801
|
+
* Set the root to be the host element
|
|
9802
|
+
* This causes the IO callback
|
|
9803
|
+
* to be fired in WebKit as soon as the element
|
|
9804
|
+
* is visible. If we used the default root value
|
|
9805
|
+
* then WebKit would only fire the IO callback
|
|
9806
|
+
* after any animations (such as a modal transition)
|
|
9807
|
+
* finished, and there would potentially be a flicker.
|
|
9808
|
+
*/
|
|
9809
|
+
{ threshold: 0.01, root: el }));
|
|
9810
|
+
io.observe(notchSpacerEl);
|
|
9811
|
+
return;
|
|
9812
|
+
}
|
|
9813
|
+
/**
|
|
9814
|
+
* If the element is visible then we can set the notch width.
|
|
9815
|
+
* The notch is only visible when the label is scaled,
|
|
9816
|
+
* which is why we multiply the width by 0.75 as this is
|
|
9817
|
+
* the same amount the label element is scaled by in the host CSS.
|
|
9818
|
+
* (See $form-control-label-stacked-scale in ionic.globals.scss).
|
|
9819
|
+
*/
|
|
9820
|
+
notchSpacerEl.style.setProperty('width', `${width * 0.75}px`);
|
|
9821
|
+
};
|
|
9822
|
+
const destroy = () => {
|
|
9823
|
+
if (notchVisibilityIO) {
|
|
9824
|
+
notchVisibilityIO.disconnect();
|
|
9825
|
+
notchVisibilityIO = undefined;
|
|
9826
|
+
}
|
|
9827
|
+
};
|
|
9828
|
+
return {
|
|
9829
|
+
calculateNotchWidth,
|
|
9830
|
+
destroy,
|
|
9831
|
+
};
|
|
9832
|
+
};
|
|
9833
|
+
|
|
9834
|
+
/**
|
|
9835
|
+
* Uses the compareWith param to compare two values to determine if they are equal.
|
|
9836
|
+
*
|
|
9837
|
+
* @param currentValue The current value of the control.
|
|
9838
|
+
* @param compareValue The value to compare against.
|
|
9839
|
+
* @param compareWith The function or property name to use to compare values.
|
|
9840
|
+
*/
|
|
9841
|
+
const compareOptions = (currentValue, compareValue, compareWith) => {
|
|
9842
|
+
if (typeof compareWith === 'function') {
|
|
9843
|
+
return compareWith(currentValue, compareValue);
|
|
9844
|
+
}
|
|
9845
|
+
else if (typeof compareWith === 'string') {
|
|
9846
|
+
return currentValue[compareWith] === compareValue[compareWith];
|
|
9847
|
+
}
|
|
9848
|
+
else {
|
|
9849
|
+
return Array.isArray(compareValue) ? compareValue.includes(currentValue) : currentValue === compareValue;
|
|
9850
|
+
}
|
|
9851
|
+
};
|
|
9852
|
+
/**
|
|
9853
|
+
* Compares a value against the current value(s) to determine if it is selected.
|
|
9854
|
+
*
|
|
9855
|
+
* @param currentValue The current value of the control.
|
|
9856
|
+
* @param compareValue The value to compare against.
|
|
9857
|
+
* @param compareWith The function or property name to use to compare values.
|
|
9858
|
+
*/
|
|
9859
|
+
const isOptionSelected = (currentValue, compareValue, compareWith) => {
|
|
9860
|
+
if (currentValue === undefined) {
|
|
9861
|
+
return false;
|
|
9862
|
+
}
|
|
9863
|
+
if (Array.isArray(currentValue)) {
|
|
9864
|
+
return currentValue.some((val) => compareOptions(val, compareValue, compareWith));
|
|
9865
|
+
}
|
|
9866
|
+
else {
|
|
9867
|
+
return compareOptions(currentValue, compareValue, compareWith);
|
|
9868
|
+
}
|
|
9869
|
+
};
|
|
9870
|
+
|
|
9871
|
+
/**
|
|
9872
|
+
* Checks if the form element is in an invalid state based on
|
|
9873
|
+
* Ionic validation classes.
|
|
9874
|
+
*
|
|
9875
|
+
* @param el The form element to check.
|
|
9876
|
+
* @returns `true` if the element is invalid, `false` otherwise.
|
|
9877
|
+
*/
|
|
9878
|
+
const checkInvalidState = (el) => {
|
|
9879
|
+
const hasIonTouched = el.classList.contains('ion-touched');
|
|
9880
|
+
const hasIonInvalid = el.classList.contains('ion-invalid');
|
|
9881
|
+
return hasIonTouched && hasIonInvalid;
|
|
9882
|
+
};
|
|
9883
|
+
|
|
9725
9884
|
const checkboxIosCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:50%;--border-width:0.125rem;--border-style:solid;--border-color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.23);--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--size:min(1.375rem, 55.836px);--checkmark-width:1.5px}:host(.checkbox-disabled){opacity:0.3}";
|
|
9726
9885
|
|
|
9727
9886
|
const checkboxMdCss = ":host{--checkbox-background-checked:var(--ion-color-primary, #0054e9);--border-color-checked:var(--ion-color-primary, #0054e9);--checkmark-color:var(--ion-color-primary-contrast, #fff);--transition:none;display:inline-block;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:2}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0;width:100%;height:100%}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}:host(.ion-color){--checkbox-background-checked:var(--ion-color-base);--border-color-checked:var(--ion-color-base);--checkmark-color:var(--ion-color-contrast)}.checkbox-wrapper{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;cursor:inherit}.label-text-wrapper{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host(.in-item) .label-text-wrapper,:host(.in-item:not(.checkbox-label-placement-stacked):not([slot])) .native-wrapper{margin-top:10px;margin-bottom:10px}:host(.in-item.checkbox-label-placement-stacked) .label-text-wrapper{margin-top:10px;margin-bottom:16px}:host(.in-item.checkbox-label-placement-stacked) .native-wrapper{margin-bottom:10px}.label-text-wrapper-hidden{display:none}input{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.checkbox-icon{border-radius:var(--border-radius);position:relative;width:var(--size);height:var(--size);-webkit-transition:var(--transition);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--checkbox-background);-webkit-box-sizing:border-box;box-sizing:border-box}.checkbox-icon path{fill:none;stroke:var(--checkmark-color);stroke-width:var(--checkmark-width);opacity:0}.checkbox-bottom{padding-top:4px;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;font-size:0.75rem;white-space:normal}:host(.checkbox-label-placement-stacked) .checkbox-bottom{font-size:1rem}.checkbox-bottom .error-text{display:none;color:var(--ion-color-danger, #c5000f)}.checkbox-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .checkbox-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .checkbox-bottom .helper-text{display:none}:host(.checkbox-label-placement-start) .checkbox-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.checkbox-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-end) .checkbox-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse;-ms-flex-pack:start;justify-content:start}:host(.checkbox-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px}:host(.checkbox-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.checkbox-label-placement-stacked) .checkbox-wrapper{-ms-flex-direction:column;flex-direction:column;text-align:center}:host(.checkbox-label-placement-stacked) .label-text-wrapper{-webkit-transform:scale(0.75);transform:scale(0.75);margin-left:0;margin-right:0;margin-bottom:16px;max-width:calc(100% / 0.75)}:host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-start) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-start .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-start:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}}:host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper{-webkit-transform-origin:center top;transform-origin:center top}:host-context([dir=rtl]):host(.checkbox-label-placement-stacked.checkbox-alignment-center) .label-text-wrapper,:host-context([dir=rtl]).checkbox-label-placement-stacked.checkbox-alignment-center .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}@supports selector(:dir(rtl)){:host(.checkbox-label-placement-stacked.checkbox-alignment-center:dir(rtl)) .label-text-wrapper{-webkit-transform-origin:calc(100% - center) top;transform-origin:calc(100% - center) top}}:host(.checkbox-justify-space-between) .checkbox-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.checkbox-justify-start) .checkbox-wrapper{-ms-flex-pack:start;justify-content:start}:host(.checkbox-justify-end) .checkbox-wrapper{-ms-flex-pack:end;justify-content:end}:host(.checkbox-alignment-start) .checkbox-wrapper{-ms-flex-align:start;align-items:start}:host(.checkbox-alignment-center) .checkbox-wrapper{-ms-flex-align:center;align-items:center}:host(.checkbox-justify-space-between),:host(.checkbox-justify-start),:host(.checkbox-justify-end),:host(.checkbox-alignment-start),:host(.checkbox-alignment-center){display:block}:host(.checkbox-checked) .checkbox-icon,:host(.checkbox-indeterminate) .checkbox-icon{border-color:var(--border-color-checked);background:var(--checkbox-background-checked)}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{opacity:1}:host(.checkbox-disabled){pointer-events:none}:host{--border-radius:calc(var(--size) * .125);--border-width:2px;--border-style:solid;--border-color:rgb(var(--ion-text-color-rgb, 0, 0, 0), 0.6);--checkmark-width:3;--checkbox-background:var(--ion-item-background, var(--ion-background-color, #fff));--transition:background 180ms cubic-bezier(0.4, 0, 0.2, 1);--size:18px}.checkbox-icon path{stroke-dasharray:30;stroke-dashoffset:30}:host(.checkbox-checked) .checkbox-icon path,:host(.checkbox-indeterminate) .checkbox-icon path{stroke-dashoffset:0;-webkit-transition:stroke-dashoffset 90ms linear 90ms;transition:stroke-dashoffset 90ms linear 90ms}:host(.checkbox-disabled) .label-text-wrapper{opacity:0.38}:host(.checkbox-disabled) .native-wrapper{opacity:0.63}";
|
|
@@ -9787,6 +9946,10 @@ class Checkbox {
|
|
|
9787
9946
|
* submitting if the value is invalid.
|
|
9788
9947
|
*/
|
|
9789
9948
|
this.required = false;
|
|
9949
|
+
/**
|
|
9950
|
+
* Track validation state for proper aria-live announcements.
|
|
9951
|
+
*/
|
|
9952
|
+
this.isInvalid = false;
|
|
9790
9953
|
/**
|
|
9791
9954
|
* Sets the checked property and emits
|
|
9792
9955
|
* the ionChange event. Use this to update the
|
|
@@ -9833,16 +9996,29 @@ class Checkbox {
|
|
|
9833
9996
|
ev.stopPropagation();
|
|
9834
9997
|
};
|
|
9835
9998
|
}
|
|
9999
|
+
connectedCallback() {
|
|
10000
|
+
const { el } = this;
|
|
10001
|
+
// Always set initial state
|
|
10002
|
+
this.isInvalid = checkInvalidState(el);
|
|
10003
|
+
}
|
|
9836
10004
|
componentWillLoad() {
|
|
9837
10005
|
this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
|
|
10006
|
+
this.hintTextId = this.getHintTextId();
|
|
10007
|
+
}
|
|
10008
|
+
disconnectedCallback() {
|
|
10009
|
+
// Clean up validation observer to prevent memory leaks.
|
|
10010
|
+
if (this.validationObserver) {
|
|
10011
|
+
this.validationObserver.disconnect();
|
|
10012
|
+
this.validationObserver = undefined;
|
|
10013
|
+
}
|
|
9838
10014
|
}
|
|
9839
10015
|
/** @internal */
|
|
9840
10016
|
async setFocus() {
|
|
9841
10017
|
this.el.focus();
|
|
9842
10018
|
}
|
|
9843
|
-
|
|
9844
|
-
const {
|
|
9845
|
-
if (
|
|
10019
|
+
getHintTextId() {
|
|
10020
|
+
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
10021
|
+
if (isInvalid && errorText) {
|
|
9846
10022
|
return errorTextId;
|
|
9847
10023
|
}
|
|
9848
10024
|
if (helperText) {
|
|
@@ -9855,7 +10031,7 @@ class Checkbox {
|
|
|
9855
10031
|
* This element should only be rendered if hint text is set.
|
|
9856
10032
|
*/
|
|
9857
10033
|
renderHintText() {
|
|
9858
|
-
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
10034
|
+
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
9859
10035
|
/**
|
|
9860
10036
|
* undefined and empty string values should
|
|
9861
10037
|
* be treated as not having helper/error text.
|
|
@@ -9864,7 +10040,7 @@ class Checkbox {
|
|
|
9864
10040
|
if (!hasHintText) {
|
|
9865
10041
|
return;
|
|
9866
10042
|
}
|
|
9867
|
-
return (hAsync("div", { class: "checkbox-bottom" }, hAsync("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text" }, helperText), hAsync("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text" }, errorText)));
|
|
10043
|
+
return (hAsync("div", { class: "checkbox-bottom" }, hAsync("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text", "aria-live": "polite" }, !isInvalid ? helperText : null), hAsync("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text", role: "alert" }, isInvalid ? errorText : null)));
|
|
9868
10044
|
}
|
|
9869
10045
|
render() {
|
|
9870
10046
|
const { color, checked, disabled, el, getSVGPath, indeterminate, inheritedAttributes, inputId, justify, labelPlacement, name, value, alignment, required, } = this;
|
|
@@ -9874,7 +10050,7 @@ class Checkbox {
|
|
|
9874
10050
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
9875
10051
|
// The host element must have a checkbox role to ensure proper VoiceOver
|
|
9876
10052
|
// support in Safari for accessibility.
|
|
9877
|
-
return (hAsync(Host, { key: '
|
|
10053
|
+
return (hAsync(Host, { key: 'ae0fbd4b21accbac132e6b85c513512ad9179394', role: "checkbox", "aria-checked": indeterminate ? 'mixed' : `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": hasLabelContent ? this.inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
|
|
9878
10054
|
[mode]: true,
|
|
9879
10055
|
'in-item': hostContext('ion-item', el),
|
|
9880
10056
|
'checkbox-checked': checked,
|
|
@@ -9884,10 +10060,10 @@ class Checkbox {
|
|
|
9884
10060
|
[`checkbox-justify-${justify}`]: justify !== undefined,
|
|
9885
10061
|
[`checkbox-alignment-${alignment}`]: alignment !== undefined,
|
|
9886
10062
|
[`checkbox-label-placement-${labelPlacement}`]: true,
|
|
9887
|
-
}) }, hAsync("label", { key: '
|
|
10063
|
+
}) }, hAsync("label", { key: '7a3d7f3c27dde514f2dbf2e34f4629fad33ec3bf', class: "checkbox-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: '4130d77ddf034271fecccda14e101a5a809921b6', type: "checkbox", checked: checked ? true : undefined, disabled: disabled, id: inputId, onChange: this.toggleChecked, required: required }, inheritedAttributes)), hAsync("div", { key: '5daa74f4e62b0947e37764762524001ee42609d9', class: {
|
|
9888
10064
|
'label-text-wrapper': true,
|
|
9889
10065
|
'label-text-wrapper-hidden': !hasLabelContent,
|
|
9890
|
-
}, part: "label", id: this.inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '
|
|
10066
|
+
}, part: "label", id: this.inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '23ff66138f8c3a2f56f39113fc842d54b2f7952a' }), this.renderHintText()), hAsync("div", { key: 'ab914d9623c19fc46821d5e62db92f1192ebbe7e', class: "native-wrapper" }, hAsync("svg", { key: '66e3f4f5dcaa9756fb0e9452299954f9ed3dcb7b', class: "checkbox-icon", viewBox: "0 0 24 24", part: "container", "aria-hidden": "true" }, path)))));
|
|
9891
10067
|
}
|
|
9892
10068
|
getSVGPath(mode, indeterminate) {
|
|
9893
10069
|
let path = indeterminate ? (hAsync("path", { d: "M6 12L18 12", part: "mark" })) : (hAsync("path", { d: "M5.9,12.5l3.8,3.8l8.8-8.8", part: "mark" }));
|
|
@@ -9917,6 +10093,8 @@ class Checkbox {
|
|
|
9917
10093
|
"justify": [1],
|
|
9918
10094
|
"alignment": [1],
|
|
9919
10095
|
"required": [4],
|
|
10096
|
+
"isInvalid": [32],
|
|
10097
|
+
"hintTextId": [32],
|
|
9920
10098
|
"setFocus": [64]
|
|
9921
10099
|
},
|
|
9922
10100
|
"$listeners$": undefined,
|
|
@@ -12482,9 +12660,9 @@ const checkForPresentationFormatMismatch = (el, presentation, formatOptions) =>
|
|
|
12482
12660
|
}
|
|
12483
12661
|
};
|
|
12484
12662
|
|
|
12485
|
-
const datetimeIosCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-light, #f4f5f8);--background-rgb:var(--ion-color-light-rgb, 244, 245, 248);--title-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc));font-size:min(0.875rem, 22.4px)}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}.calendar-month-year-toggle{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-height:44px;font-size:min(1rem, 25.6px);font-weight:600}.calendar-month-year-toggle.ion-focused::after{opacity:0.15}.calendar-month-year-toggle #toggle-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:10px;margin-bottom:10px}:host .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3));font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){.calendar-days-of-week .day-of-week{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}.calendar-day{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){.calendar-days-of-week .day-of-week{width:auto;height:auto;overflow:initial}.calendar-day{border-radius:32px}}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}:host .calendar-day-wrapper{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}:host .calendar-day{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}.calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.2);font-size:min(1.375rem, 35.2px)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc))}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}";
|
|
12663
|
+
const datetimeIosCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .intersection-tracker{width:100%;height:1px;margin-bottom:-1px;opacity:0;pointer-events:none}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-light, #f4f5f8);--background-rgb:var(--ion-color-light-rgb, 244, 245, 248);--title-color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}:host(.datetime-presentation-date-time:not(.datetime-prefer-wheel)),:host(.datetime-presentation-time-date:not(.datetime-prefer-wheel)),:host(.datetime-presentation-date:not(.datetime-prefer-wheel)){min-height:350px}:host .datetime-header{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:16px;padding-bottom:16px;border-bottom:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc));font-size:min(0.875rem, 22.4px)}:host .datetime-header .datetime-title{color:var(--title-color)}:host .datetime-header .datetime-selected-date{margin-top:10px}.calendar-month-year-toggle{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:0px;padding-bottom:0px;min-height:44px;font-size:min(1rem, 25.6px);font-weight:600}.calendar-month-year-toggle.ion-focused::after{opacity:0.15}.calendar-month-year-toggle #toggle-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px;margin-top:10px;margin-bottom:10px}:host .calendar-action-buttons .calendar-month-year-toggle ion-icon,:host .calendar-action-buttons ion-buttons ion-button{color:var(--ion-color-base)}:host .calendar-action-buttons ion-buttons{padding-left:0;padding-right:0;padding-top:8px;padding-bottom:0}:host .calendar-action-buttons ion-buttons ion-button{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host .calendar-days-of-week{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:0;padding-bottom:0;color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3));font-size:min(0.75rem, 19.2px);font-weight:600;line-height:24px;text-transform:uppercase}@supports (border-radius: mod(1px, 1px)){.calendar-days-of-week .day-of-week{width:clamp(20px, calc(mod(min(1rem, 24px), 24px) * 10), 100%);height:24px;overflow:hidden}.calendar-day{border-radius:max(8px, mod(min(1rem, 24px), 24px) * 10)}}@supports ((border-radius: mod(1px, 1px)) and (background: -webkit-named-image(apple-pay-logo-black)) and (not (contain-intrinsic-size: none))) or (not (border-radius: mod(1px, 1px))){.calendar-days-of-week .day-of-week{width:auto;height:auto;overflow:initial}.calendar-day{border-radius:32px}}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;-ms-flex-align:center;align-items:center;height:calc(100% - 16px)}:host .calendar-day-wrapper{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;height:0;min-height:1rem}:host .calendar-day{width:40px;min-width:40px;height:40px;font-size:min(1.25rem, 32px)}.calendar-day.calendar-day-active{background:rgba(var(--ion-color-base-rgb), 0.2);font-size:min(1.375rem, 35.2px)}:host .calendar-day.calendar-day-today{color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-base);font-weight:600}:host .calendar-day.calendar-day-today.calendar-day-active{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-300, var(--ion-text-color-step-700, #b3b3b3))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:16px;font-size:min(1rem, 25.6px)}:host .datetime-time .time-header{font-weight:600}:host .datetime-buttons{-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px;padding-top:8px;padding-bottom:8px;border-top:0.55px solid var(--ion-color-step-200, var(--ion-background-color-step-200, #cccccc))}:host .datetime-buttons ::slotted(ion-buttons),:host .datetime-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between}:host .datetime-action-buttons{width:100%}";
|
|
12486
12664
|
|
|
12487
|
-
const datetimeMdCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #ffffff));--title-color:var(--ion-color-contrast)}:host .datetime-header{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-base);color:var(--title-color)}:host .datetime-header .datetime-title{font-size:0.75rem;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:2.125rem}:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}.calendar-month-year-toggle{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;min-height:48px;background:transparent;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959));z-index:1}.calendar-month-year-toggle.ion-focused::after{opacity:0.04}.calendar-month-year-toggle ion-ripple-effect{color:currentColor}@media (any-hover: hover){.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after{background:currentColor;opacity:0.04}}:host .calendar-days-of-week{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray));font-size:0.875rem;line-height:36px}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:4px;padding-bottom:4px;grid-template-rows:repeat(6, 1fr)}:host .calendar-day{width:42px;min-width:42px;height:42px;font-size:0.875rem}:host .calendar-day.calendar-day-today{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}:host .time-header{color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}";
|
|
12665
|
+
const datetimeMdCss = ":host{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;background:var(--background);overflow:hidden}:host(.datetime-size-fixed){width:auto;height:auto}:host(.datetime-size-fixed:not(.datetime-prefer-wheel)){max-width:350px}:host(.datetime-size-fixed.datetime-prefer-wheel){min-width:350px;max-width:-webkit-max-content;max-width:-moz-max-content;max-width:max-content}:host(.datetime-size-cover){width:100%}:host .intersection-tracker{width:100%;height:1px;margin-bottom:-1px;opacity:0;pointer-events:none}:host .calendar-body,:host .datetime-year{opacity:0}:host(:not(.datetime-ready)) .datetime-year{position:absolute;pointer-events:none}:host(.datetime-ready) .calendar-body{opacity:1}:host(.datetime-ready) .datetime-year{display:none;opacity:1}:host .wheel-order-year-first .day-column{-ms-flex-order:3;order:3;text-align:end}:host .wheel-order-year-first .month-column{-ms-flex-order:2;order:2;text-align:end}:host .wheel-order-year-first .year-column{-ms-flex-order:1;order:1;text-align:start}:host .datetime-calendar,:host .datetime-year{display:-ms-flexbox;display:flex;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-flow:column;flex-flow:column}:host(.show-month-and-year) .datetime-year{display:-ms-flexbox;display:flex}:host(.show-month-and-year) .calendar-next-prev,:host(.show-month-and-year) .calendar-days-of-week,:host(.show-month-and-year) .calendar-body,:host(.show-month-and-year) .datetime-time{display:none}:host(.month-year-picker-open) .datetime-footer{display:none}:host(.datetime-disabled){pointer-events:none}:host(.datetime-disabled) .calendar-days-of-week,:host(.datetime-disabled) .datetime-time{opacity:0.4}:host(.datetime-readonly){pointer-events:none;}:host(.datetime-readonly) .calendar-action-buttons,:host(.datetime-readonly) .calendar-body,:host(.datetime-readonly) .datetime-year{pointer-events:initial}:host(.datetime-readonly) .calendar-day[disabled]:not(.calendar-day-constrained),:host(.datetime-readonly) .datetime-action-buttons ion-button[disabled]{opacity:1}:host .datetime-header .datetime-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}:host .datetime-action-buttons.has-clear-button{width:100%}:host .datetime-action-buttons ion-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}.datetime-action-buttons .datetime-action-buttons-container{display:-ms-flexbox;display:flex}:host .calendar-action-buttons{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host .calendar-action-buttons ion-button{--background:transparent}:host .calendar-days-of-week{display:grid;grid-template-columns:repeat(7, 1fr);text-align:center}.calendar-days-of-week .day-of-week{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:0;margin-bottom:0}:host .calendar-body{display:-ms-flexbox;display:flex;-ms-flex-positive:1;flex-grow:1;-webkit-scroll-snap-type:x mandatory;-ms-scroll-snap-type:x mandatory;scroll-snap-type:x mandatory;overflow-x:scroll;overflow-y:hidden;scrollbar-width:none;outline:none}:host .calendar-body .calendar-month{display:-ms-flexbox;display:flex;-ms-flex-flow:column;flex-flow:column;scroll-snap-align:start;scroll-snap-stop:always;-ms-flex-negative:0;flex-shrink:0;width:100%}:host .calendar-body .calendar-month-disabled{scroll-snap-align:none}:host .calendar-body::-webkit-scrollbar{display:none}:host .calendar-body .calendar-month-grid{display:grid;grid-template-columns:repeat(7, 1fr)}:host .calendar-day-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;min-width:0;min-height:0;overflow:visible}.calendar-day{border-radius:50%;-webkit-padding-start:0px;padding-inline-start:0px;-webkit-padding-end:0px;padding-inline-end:0px;padding-top:0px;padding-bottom:0px;-webkit-margin-start:0px;margin-inline-start:0px;-webkit-margin-end:0px;margin-inline-end:0px;margin-top:0px;margin-bottom:0px;display:-ms-flexbox;display:flex;position:relative;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:none;outline:none;background:none;color:currentColor;font-family:var(--ion-font-family, inherit);cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;z-index:0}:host .calendar-day[disabled]{pointer-events:none;opacity:0.4}.calendar-day:not(.calendar-day-adjacent-day):focus{background:rgba(var(--ion-color-base-rgb), 0.2);-webkit-box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2);box-shadow:0px 0px 0px 4px rgba(var(--ion-color-base-rgb), 0.2)}:host .datetime-time{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between}:host(.datetime-presentation-time) .datetime-time{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0}:host ion-popover{--height:200px}:host .time-header{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}:host .time-body{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;display:-ms-flexbox;display:flex;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:inherit;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host .time-body-active{color:var(--ion-color-base)}:host(.in-item){position:static}:host(.show-month-and-year) .calendar-action-buttons .calendar-month-year-toggle{color:var(--ion-color-base)}.calendar-month-year{min-width:0}.calendar-month-year-toggle{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;position:relative;border:0;outline:none;background:transparent;cursor:pointer;z-index:1}.calendar-month-year-toggle::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0;-webkit-transition:opacity 15ms linear, background-color 15ms linear;transition:opacity 15ms linear, background-color 15ms linear;z-index:-1}.calendar-month-year-toggle.ion-focused::after{background:currentColor}.calendar-month-year-toggle:disabled{opacity:0.3;pointer-events:none}.calendar-month-year-toggle ion-icon{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:0;padding-inline-end:0;padding-top:0;padding-bottom:0;-ms-flex-negative:0;flex-shrink:0}.calendar-month-year-toggle #toggle-wrapper{display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center}ion-picker{--highlight-background:var(--wheel-highlight-background);--highlight-border-radius:var(--wheel-highlight-border-radius);--fade-background-rgb:var(--wheel-fade-background-rgb)}:host{--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #ffffff));--title-color:var(--ion-color-contrast)}:host .datetime-header{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:20px;padding-bottom:20px;background:var(--ion-color-base);color:var(--title-color)}:host .datetime-header .datetime-title{font-size:0.75rem;text-transform:uppercase}:host .datetime-header .datetime-selected-date{margin-top:30px;font-size:2.125rem}:host .calendar-action-buttons ion-button{--color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}.calendar-month-year-toggle{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:12px;padding-bottom:12px;min-height:48px;background:transparent;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959));z-index:1}.calendar-month-year-toggle.ion-focused::after{opacity:0.04}.calendar-month-year-toggle ion-ripple-effect{color:currentColor}@media (any-hover: hover){.calendar-month-year-toggle.ion-activatable:not(.ion-focused):hover::after{background:currentColor;opacity:0.04}}:host .calendar-days-of-week{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:0px;padding-bottom:0px;color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray));font-size:0.875rem;line-height:36px}:host .calendar-body .calendar-month .calendar-month-grid{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:4px;padding-bottom:4px;grid-template-rows:repeat(6, 1fr)}:host .calendar-day{width:42px;min-width:42px;height:42px;font-size:0.875rem}:host .calendar-day.calendar-day-today{border:1px solid var(--ion-color-base);color:var(--ion-color-base)}:host .calendar-day.calendar-day-active,:host .calendar-day.calendar-day-adjacent-day.calendar-day-active{color:var(--ion-color-contrast)}.calendar-day.calendar-day-active,.calendar-day.calendar-day-active:focus{border:1px solid var(--ion-color-base);background:var(--ion-color-base)}:host .calendar-day.calendar-day-adjacent-day{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host .datetime-time{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:8px;padding-bottom:8px}:host .time-header{color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.datetime-presentation-month) .datetime-year,:host(.datetime-presentation-year) .datetime-year,:host(.datetime-presentation-month-year) .datetime-year{margin-top:20px;margin-bottom:20px}:host .datetime-buttons{-webkit-padding-start:10px;padding-inline-start:10px;-webkit-padding-end:10px;padding-inline-end:10px;padding-top:10px;padding-bottom:10px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:end;justify-content:flex-end}";
|
|
12488
12666
|
|
|
12489
12667
|
/**
|
|
12490
12668
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
@@ -13061,6 +13239,27 @@ class Datetime {
|
|
|
13061
13239
|
destroyKeyboardMO();
|
|
13062
13240
|
}
|
|
13063
13241
|
};
|
|
13242
|
+
/**
|
|
13243
|
+
* Fallback to ensure the datetime becomes ready even if
|
|
13244
|
+
* IntersectionObserver never reports it as intersecting.
|
|
13245
|
+
*
|
|
13246
|
+
* This is primarily used in environments where the observer
|
|
13247
|
+
* might not fire as expected, such as when running under
|
|
13248
|
+
* synthetic tests that stub IntersectionObserver.
|
|
13249
|
+
*/
|
|
13250
|
+
this.ensureReadyIfVisible = () => {
|
|
13251
|
+
if (this.el.classList.contains('datetime-ready')) {
|
|
13252
|
+
return;
|
|
13253
|
+
}
|
|
13254
|
+
const rect = this.el.getBoundingClientRect();
|
|
13255
|
+
if (rect.width === 0 || rect.height === 0) {
|
|
13256
|
+
return;
|
|
13257
|
+
}
|
|
13258
|
+
this.initializeListeners();
|
|
13259
|
+
writeTask(() => {
|
|
13260
|
+
this.el.classList.add('datetime-ready');
|
|
13261
|
+
});
|
|
13262
|
+
};
|
|
13064
13263
|
this.processValue = (value) => {
|
|
13065
13264
|
const hasValue = value !== null && value !== undefined && value !== '' && (!Array.isArray(value) || value.length > 0);
|
|
13066
13265
|
const valueToProcess = hasValue ? parseDate(value) : this.defaultParts;
|
|
@@ -13378,6 +13577,20 @@ class Datetime {
|
|
|
13378
13577
|
* triggering the `hiddenIO` observer below.
|
|
13379
13578
|
*/
|
|
13380
13579
|
raf(() => visibleIO === null || visibleIO === void 0 ? void 0 : visibleIO.observe(intersectionTrackerRef));
|
|
13580
|
+
/**
|
|
13581
|
+
* Fallback: If IntersectionObserver never reports that the
|
|
13582
|
+
* datetime is visible but the host clearly has layout, ensure
|
|
13583
|
+
* we still initialize listeners and mark the component as ready.
|
|
13584
|
+
*
|
|
13585
|
+
* We schedule this a couple of frames after load so that any
|
|
13586
|
+
* initial layout/animations (such as a parent modal presenting)
|
|
13587
|
+
* have had a chance to run.
|
|
13588
|
+
*/
|
|
13589
|
+
raf(() => {
|
|
13590
|
+
raf(() => {
|
|
13591
|
+
this.ensureReadyIfVisible();
|
|
13592
|
+
});
|
|
13593
|
+
});
|
|
13381
13594
|
/**
|
|
13382
13595
|
* We need to clean up listeners when the datetime is hidden
|
|
13383
13596
|
* in a popover/modal so that we can properly scroll containers
|
|
@@ -14133,7 +14346,7 @@ class Datetime {
|
|
|
14133
14346
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
14134
14347
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
14135
14348
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
14136
|
-
return (hAsync(Host, { key: '
|
|
14349
|
+
return (hAsync(Host, { key: 'd6631dd1023a06278cab24867a7a4ab1ef066f69', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
|
|
14137
14350
|
[mode]: true,
|
|
14138
14351
|
['datetime-readonly']: readonly,
|
|
14139
14352
|
['datetime-disabled']: disabled,
|
|
@@ -14143,7 +14356,7 @@ class Datetime {
|
|
|
14143
14356
|
[`datetime-size-${size}`]: true,
|
|
14144
14357
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
14145
14358
|
[`datetime-grid`]: isGridStyle,
|
|
14146
|
-
})) }, hAsync("div", { key: '
|
|
14359
|
+
})) }, hAsync("div", { key: 'f5886666d38db4c5cfa47759d6fd993d2934ecdd', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
14147
14360
|
}
|
|
14148
14361
|
get el() { return getElement(this); }
|
|
14149
14362
|
static get watchers() { return {
|
|
@@ -16351,202 +16564,6 @@ class InfiniteScrollContent {
|
|
|
16351
16564
|
}; }
|
|
16352
16565
|
}
|
|
16353
16566
|
|
|
16354
|
-
/**
|
|
16355
|
-
* A utility to calculate the size of an outline notch
|
|
16356
|
-
* width relative to the content passed. This is used in
|
|
16357
|
-
* components such as `ion-select` with `fill="outline"`
|
|
16358
|
-
* where we need to pass slotted HTML content. This is not
|
|
16359
|
-
* needed when rendering plaintext content because we can
|
|
16360
|
-
* render the plaintext again hidden with `opacity: 0` inside
|
|
16361
|
-
* of the notch. As a result we can rely on the intrinsic size
|
|
16362
|
-
* of the element to correctly compute the notch width. We
|
|
16363
|
-
* cannot do this with slotted content because we cannot project
|
|
16364
|
-
* it into 2 places at once.
|
|
16365
|
-
*
|
|
16366
|
-
* @internal
|
|
16367
|
-
* @param el: The host element
|
|
16368
|
-
* @param getNotchSpacerEl: A function that returns a reference to the notch spacer element inside of the component template.
|
|
16369
|
-
* @param getLabelSlot: A function that returns a reference to the slotted content.
|
|
16370
|
-
*/
|
|
16371
|
-
const createNotchController = (el, getNotchSpacerEl, getLabelSlot) => {
|
|
16372
|
-
let notchVisibilityIO;
|
|
16373
|
-
const needsExplicitNotchWidth = () => {
|
|
16374
|
-
const notchSpacerEl = getNotchSpacerEl();
|
|
16375
|
-
if (
|
|
16376
|
-
/**
|
|
16377
|
-
* If the notch is not being used
|
|
16378
|
-
* then we do not need to set the notch width.
|
|
16379
|
-
*/
|
|
16380
|
-
notchSpacerEl === undefined ||
|
|
16381
|
-
/**
|
|
16382
|
-
* If either the label property is being
|
|
16383
|
-
* used or the label slot is not defined,
|
|
16384
|
-
* then we do not need to estimate the notch width.
|
|
16385
|
-
*/
|
|
16386
|
-
el.label !== undefined ||
|
|
16387
|
-
getLabelSlot() === null) {
|
|
16388
|
-
return false;
|
|
16389
|
-
}
|
|
16390
|
-
return true;
|
|
16391
|
-
};
|
|
16392
|
-
const calculateNotchWidth = () => {
|
|
16393
|
-
if (needsExplicitNotchWidth()) {
|
|
16394
|
-
/**
|
|
16395
|
-
* Run this the frame after
|
|
16396
|
-
* the browser has re-painted the host element.
|
|
16397
|
-
* Otherwise, the label element may have a width
|
|
16398
|
-
* of 0 and the IntersectionObserver will be used.
|
|
16399
|
-
*/
|
|
16400
|
-
raf(() => {
|
|
16401
|
-
setNotchWidth();
|
|
16402
|
-
});
|
|
16403
|
-
}
|
|
16404
|
-
};
|
|
16405
|
-
/**
|
|
16406
|
-
* When using a label prop we can render
|
|
16407
|
-
* the label value inside of the notch and
|
|
16408
|
-
* let the browser calculate the size of the notch.
|
|
16409
|
-
* However, we cannot render the label slot in multiple
|
|
16410
|
-
* places so we need to manually calculate the notch dimension
|
|
16411
|
-
* based on the size of the slotted content.
|
|
16412
|
-
*
|
|
16413
|
-
* This function should only be used to set the notch width
|
|
16414
|
-
* on slotted label content. The notch width for label prop
|
|
16415
|
-
* content is automatically calculated based on the
|
|
16416
|
-
* intrinsic size of the label text.
|
|
16417
|
-
*/
|
|
16418
|
-
const setNotchWidth = () => {
|
|
16419
|
-
const notchSpacerEl = getNotchSpacerEl();
|
|
16420
|
-
if (notchSpacerEl === undefined) {
|
|
16421
|
-
return;
|
|
16422
|
-
}
|
|
16423
|
-
if (!needsExplicitNotchWidth()) {
|
|
16424
|
-
notchSpacerEl.style.removeProperty('width');
|
|
16425
|
-
return;
|
|
16426
|
-
}
|
|
16427
|
-
const width = getLabelSlot().scrollWidth;
|
|
16428
|
-
if (
|
|
16429
|
-
/**
|
|
16430
|
-
* If the computed width of the label is 0
|
|
16431
|
-
* and notchSpacerEl's offsetParent is null
|
|
16432
|
-
* then that means the element is hidden.
|
|
16433
|
-
* As a result, we need to wait for the element
|
|
16434
|
-
* to become visible before setting the notch width.
|
|
16435
|
-
*
|
|
16436
|
-
* We do not check el.offsetParent because
|
|
16437
|
-
* that can be null if the host element has
|
|
16438
|
-
* position: fixed applied to it.
|
|
16439
|
-
* notchSpacerEl does not have position: fixed.
|
|
16440
|
-
*/
|
|
16441
|
-
width === 0 &&
|
|
16442
|
-
notchSpacerEl.offsetParent === null &&
|
|
16443
|
-
win$1 !== undefined &&
|
|
16444
|
-
'IntersectionObserver' in win$1) {
|
|
16445
|
-
/**
|
|
16446
|
-
* If there is an IO already attached
|
|
16447
|
-
* then that will update the notch
|
|
16448
|
-
* once the element becomes visible.
|
|
16449
|
-
* As a result, there is no need to create
|
|
16450
|
-
* another one.
|
|
16451
|
-
*/
|
|
16452
|
-
if (notchVisibilityIO !== undefined) {
|
|
16453
|
-
return;
|
|
16454
|
-
}
|
|
16455
|
-
const io = (notchVisibilityIO = new IntersectionObserver((ev) => {
|
|
16456
|
-
/**
|
|
16457
|
-
* If the element is visible then we
|
|
16458
|
-
* can try setting the notch width again.
|
|
16459
|
-
*/
|
|
16460
|
-
if (ev[0].intersectionRatio === 1) {
|
|
16461
|
-
setNotchWidth();
|
|
16462
|
-
io.disconnect();
|
|
16463
|
-
notchVisibilityIO = undefined;
|
|
16464
|
-
}
|
|
16465
|
-
},
|
|
16466
|
-
/**
|
|
16467
|
-
* Set the root to be the host element
|
|
16468
|
-
* This causes the IO callback
|
|
16469
|
-
* to be fired in WebKit as soon as the element
|
|
16470
|
-
* is visible. If we used the default root value
|
|
16471
|
-
* then WebKit would only fire the IO callback
|
|
16472
|
-
* after any animations (such as a modal transition)
|
|
16473
|
-
* finished, and there would potentially be a flicker.
|
|
16474
|
-
*/
|
|
16475
|
-
{ threshold: 0.01, root: el }));
|
|
16476
|
-
io.observe(notchSpacerEl);
|
|
16477
|
-
return;
|
|
16478
|
-
}
|
|
16479
|
-
/**
|
|
16480
|
-
* If the element is visible then we can set the notch width.
|
|
16481
|
-
* The notch is only visible when the label is scaled,
|
|
16482
|
-
* which is why we multiply the width by 0.75 as this is
|
|
16483
|
-
* the same amount the label element is scaled by in the host CSS.
|
|
16484
|
-
* (See $form-control-label-stacked-scale in ionic.globals.scss).
|
|
16485
|
-
*/
|
|
16486
|
-
notchSpacerEl.style.setProperty('width', `${width * 0.75}px`);
|
|
16487
|
-
};
|
|
16488
|
-
const destroy = () => {
|
|
16489
|
-
if (notchVisibilityIO) {
|
|
16490
|
-
notchVisibilityIO.disconnect();
|
|
16491
|
-
notchVisibilityIO = undefined;
|
|
16492
|
-
}
|
|
16493
|
-
};
|
|
16494
|
-
return {
|
|
16495
|
-
calculateNotchWidth,
|
|
16496
|
-
destroy,
|
|
16497
|
-
};
|
|
16498
|
-
};
|
|
16499
|
-
|
|
16500
|
-
/**
|
|
16501
|
-
* Uses the compareWith param to compare two values to determine if they are equal.
|
|
16502
|
-
*
|
|
16503
|
-
* @param currentValue The current value of the control.
|
|
16504
|
-
* @param compareValue The value to compare against.
|
|
16505
|
-
* @param compareWith The function or property name to use to compare values.
|
|
16506
|
-
*/
|
|
16507
|
-
const compareOptions = (currentValue, compareValue, compareWith) => {
|
|
16508
|
-
if (typeof compareWith === 'function') {
|
|
16509
|
-
return compareWith(currentValue, compareValue);
|
|
16510
|
-
}
|
|
16511
|
-
else if (typeof compareWith === 'string') {
|
|
16512
|
-
return currentValue[compareWith] === compareValue[compareWith];
|
|
16513
|
-
}
|
|
16514
|
-
else {
|
|
16515
|
-
return Array.isArray(compareValue) ? compareValue.includes(currentValue) : currentValue === compareValue;
|
|
16516
|
-
}
|
|
16517
|
-
};
|
|
16518
|
-
/**
|
|
16519
|
-
* Compares a value against the current value(s) to determine if it is selected.
|
|
16520
|
-
*
|
|
16521
|
-
* @param currentValue The current value of the control.
|
|
16522
|
-
* @param compareValue The value to compare against.
|
|
16523
|
-
* @param compareWith The function or property name to use to compare values.
|
|
16524
|
-
*/
|
|
16525
|
-
const isOptionSelected = (currentValue, compareValue, compareWith) => {
|
|
16526
|
-
if (currentValue === undefined) {
|
|
16527
|
-
return false;
|
|
16528
|
-
}
|
|
16529
|
-
if (Array.isArray(currentValue)) {
|
|
16530
|
-
return currentValue.some((val) => compareOptions(val, compareValue, compareWith));
|
|
16531
|
-
}
|
|
16532
|
-
else {
|
|
16533
|
-
return compareOptions(currentValue, compareValue, compareWith);
|
|
16534
|
-
}
|
|
16535
|
-
};
|
|
16536
|
-
|
|
16537
|
-
/**
|
|
16538
|
-
* Checks if the form element is in an invalid state based on
|
|
16539
|
-
* Ionic validation classes.
|
|
16540
|
-
*
|
|
16541
|
-
* @param el The form element to check.
|
|
16542
|
-
* @returns `true` if the element is invalid, `false` otherwise.
|
|
16543
|
-
*/
|
|
16544
|
-
const checkInvalidState = (el) => {
|
|
16545
|
-
const hasIonTouched = el.classList.contains('ion-touched');
|
|
16546
|
-
const hasIonInvalid = el.classList.contains('ion-invalid');
|
|
16547
|
-
return hasIonTouched && hasIonInvalid;
|
|
16548
|
-
};
|
|
16549
|
-
|
|
16550
16567
|
/**
|
|
16551
16568
|
* Used to update a scoped component that uses emulated slots. This fires when
|
|
16552
16569
|
* content is passed into the slot or when the content inside of a slot changes.
|
|
@@ -16741,7 +16758,7 @@ class Input {
|
|
|
16741
16758
|
/**
|
|
16742
16759
|
* Whether auto correction should be enabled when the user is entering/editing the text value.
|
|
16743
16760
|
*/
|
|
16744
|
-
this.autocorrect =
|
|
16761
|
+
this.autocorrect = 'off';
|
|
16745
16762
|
/**
|
|
16746
16763
|
* Sets the [`autofocus` attribute](https://developer.mozilla.org/en-US/docs/Web/HTML/Global_attributes/autofocus) on the native input element.
|
|
16747
16764
|
*
|
|
@@ -17171,7 +17188,7 @@ class Input {
|
|
|
17171
17188
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
17172
17189
|
*/
|
|
17173
17190
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
17174
|
-
return (hAsync(Host, { key: '
|
|
17191
|
+
return (hAsync(Host, { key: '97b5308021064d9e7434ef2d3d96f27045c1b0c4', class: createColorClasses$1(this.color, {
|
|
17175
17192
|
[mode]: true,
|
|
17176
17193
|
'has-value': hasValue,
|
|
17177
17194
|
'has-focus': hasFocus,
|
|
@@ -17182,14 +17199,14 @@ class Input {
|
|
|
17182
17199
|
'in-item': inItem,
|
|
17183
17200
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
17184
17201
|
'input-disabled': disabled,
|
|
17185
|
-
}) }, hAsync("label", { key: '
|
|
17202
|
+
}) }, hAsync("label", { key: '353f68726ce180299bd9adc81e5ff7d26a48f54f', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '2034b4bad04fc157f3298a1805819216b6f439d0', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: '96bb5e30176b2bd76dfb75bfbf6c1c3d4403f4bb', name: "start" }), hAsync("input", Object.assign({ key: '1a1d75b0e414a95c89d5a760757c33548d234aca', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: '95f3df17b7691d9a2e7dcd4a51f16a94aa3ca36f', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
17186
17203
|
/**
|
|
17187
17204
|
* This prevents mobile browsers from
|
|
17188
17205
|
* blurring the input when the clear
|
|
17189
17206
|
* button is activated.
|
|
17190
17207
|
*/
|
|
17191
17208
|
ev.preventDefault();
|
|
17192
|
-
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '
|
|
17209
|
+
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '16b0af75eed50c8115fb5597f73b5fbf71c2530e', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: 'c48da0f8ddb3764ac43efa705bb4a6bb2d9cc2fd', name: "end" })), shouldRenderHighlight && hAsync("div", { key: 'f15238481fc20de56ca7ecb6e350b3c024cc755e', class: "input-highlight" })), this.renderBottomContent()));
|
|
17193
17210
|
}
|
|
17194
17211
|
get el() { return getElement(this); }
|
|
17195
17212
|
static get watchers() { return {
|
|
@@ -17209,7 +17226,7 @@ class Input {
|
|
|
17209
17226
|
"color": [513],
|
|
17210
17227
|
"autocapitalize": [1],
|
|
17211
17228
|
"autocomplete": [1],
|
|
17212
|
-
"autocorrect": [
|
|
17229
|
+
"autocorrect": [1],
|
|
17213
17230
|
"autofocus": [4],
|
|
17214
17231
|
"clearInput": [4, "clear-input"],
|
|
17215
17232
|
"clearInputIcon": [1, "clear-input-icon"],
|
|
@@ -28088,6 +28105,10 @@ class RadioGroup {
|
|
|
28088
28105
|
this.helperTextId = `${this.inputId}-helper-text`;
|
|
28089
28106
|
this.errorTextId = `${this.inputId}-error-text`;
|
|
28090
28107
|
this.labelId = `${this.inputId}-lbl`;
|
|
28108
|
+
/**
|
|
28109
|
+
* Track validation state for proper aria-live announcements.
|
|
28110
|
+
*/
|
|
28111
|
+
this.isInvalid = false;
|
|
28091
28112
|
/**
|
|
28092
28113
|
* If `true`, the radios can be deselected.
|
|
28093
28114
|
*/
|
|
@@ -28169,6 +28190,18 @@ class RadioGroup {
|
|
|
28169
28190
|
this.labelId = label.id = this.name + '-lbl';
|
|
28170
28191
|
}
|
|
28171
28192
|
}
|
|
28193
|
+
// Always set initial state
|
|
28194
|
+
this.isInvalid = checkInvalidState(this.el);
|
|
28195
|
+
}
|
|
28196
|
+
componentWillLoad() {
|
|
28197
|
+
this.hintTextId = this.getHintTextId();
|
|
28198
|
+
}
|
|
28199
|
+
disconnectedCallback() {
|
|
28200
|
+
// Clean up validation observer to prevent memory leaks.
|
|
28201
|
+
if (this.validationObserver) {
|
|
28202
|
+
this.validationObserver.disconnect();
|
|
28203
|
+
this.validationObserver = undefined;
|
|
28204
|
+
}
|
|
28172
28205
|
}
|
|
28173
28206
|
getRadios() {
|
|
28174
28207
|
return Array.from(this.el.querySelectorAll('ion-radio'));
|
|
@@ -28244,16 +28277,16 @@ class RadioGroup {
|
|
|
28244
28277
|
* Renders the helper text or error text values
|
|
28245
28278
|
*/
|
|
28246
28279
|
renderHintText() {
|
|
28247
|
-
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
28280
|
+
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
28248
28281
|
const hasHintText = !!helperText || !!errorText;
|
|
28249
28282
|
if (!hasHintText) {
|
|
28250
28283
|
return;
|
|
28251
28284
|
}
|
|
28252
|
-
return (hAsync("div", { class: "radio-group-top" }, hAsync("div", { id: helperTextId, class: "helper-text" }, helperText), hAsync("div", { id: errorTextId, class: "error-text" }, errorText)));
|
|
28285
|
+
return (hAsync("div", { class: "radio-group-top" }, hAsync("div", { id: helperTextId, class: "helper-text", "aria-live": "polite" }, !isInvalid ? helperText : null), hAsync("div", { id: errorTextId, class: "error-text", role: "alert" }, isInvalid ? errorText : null)));
|
|
28253
28286
|
}
|
|
28254
|
-
|
|
28255
|
-
const {
|
|
28256
|
-
if (
|
|
28287
|
+
getHintTextId() {
|
|
28288
|
+
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
28289
|
+
if (isInvalid && errorText) {
|
|
28257
28290
|
return errorTextId;
|
|
28258
28291
|
}
|
|
28259
28292
|
if (helperText) {
|
|
@@ -28265,7 +28298,7 @@ class RadioGroup {
|
|
|
28265
28298
|
const { label, labelId, el, name, value } = this;
|
|
28266
28299
|
const mode = getIonMode$1(this);
|
|
28267
28300
|
renderHiddenInput(true, el, name, value, false);
|
|
28268
|
-
return (hAsync(Host, { key: '
|
|
28301
|
+
return (hAsync(Host, { key: 'db593b3ed511e9395e3c7bfd91b787328692cd6d', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), hAsync("div", { key: '85045b45a0100a45f3b9a35d1c5a25ec63d525c4', class: "radio-group-wrapper" }, hAsync("slot", { key: '53dacb87ce62398e78771fb2efaf839ab922d946' }))));
|
|
28269
28302
|
}
|
|
28270
28303
|
get el() { return getElement(this); }
|
|
28271
28304
|
static get watchers() { return {
|
|
@@ -28285,6 +28318,8 @@ class RadioGroup {
|
|
|
28285
28318
|
"value": [1032],
|
|
28286
28319
|
"helperText": [1, "helper-text"],
|
|
28287
28320
|
"errorText": [1, "error-text"],
|
|
28321
|
+
"isInvalid": [32],
|
|
28322
|
+
"hintTextId": [32],
|
|
28288
28323
|
"setFocus": [64]
|
|
28289
28324
|
},
|
|
28290
28325
|
"$listeners$": [[4, "keydown", "onKeydown"]],
|
|
@@ -31898,7 +31933,7 @@ class Searchbar {
|
|
|
31898
31933
|
/**
|
|
31899
31934
|
* Set the input's autocorrect property.
|
|
31900
31935
|
*/
|
|
31901
|
-
this.autocorrect =
|
|
31936
|
+
this.autocorrect = 'off';
|
|
31902
31937
|
/**
|
|
31903
31938
|
* Set the cancel button icon. Only applies to `md` mode.
|
|
31904
31939
|
* Defaults to `arrow-back-sharp`.
|
|
@@ -32287,8 +32322,8 @@ class Searchbar {
|
|
|
32287
32322
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
32288
32323
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
32289
32324
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
32290
|
-
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '
|
|
32291
|
-
return (hAsync(Host, { key: '
|
|
32325
|
+
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '19e18775856db87daeb4b9e3d7bca0461915a0df', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: 'b3bbdcc033f3bd3441d619e4a252cef0dad4d07e', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
32326
|
+
return (hAsync(Host, { key: '074aa60e051bfb3225e87d44bbb6346c59c73574', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
|
|
32292
32327
|
[mode]: true,
|
|
32293
32328
|
'searchbar-animated': animated,
|
|
32294
32329
|
'searchbar-disabled': this.disabled,
|
|
@@ -32298,14 +32333,14 @@ class Searchbar {
|
|
|
32298
32333
|
'searchbar-has-focus': this.focused,
|
|
32299
32334
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
32300
32335
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
32301
|
-
}) }, hAsync("div", { key: '
|
|
32336
|
+
}) }, hAsync("div", { key: '54f58a79fe36e85d9295157303f1be89c98bbdaf', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: 'f991a37fcf54d26b7ad10d89084764e03d97b9de', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '8b44dd90a3292c5cf872ef16a8520675f5673494', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '79d9cfed8f01268044f82811a35d323a12dca749', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
32302
32337
|
/**
|
|
32303
32338
|
* This prevents mobile browsers from
|
|
32304
32339
|
* blurring the input when the clear
|
|
32305
32340
|
* button is activated.
|
|
32306
32341
|
*/
|
|
32307
32342
|
ev.preventDefault();
|
|
32308
|
-
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '
|
|
32343
|
+
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'aa3b9fa8a61f853236783ac7bcd0b113ea65ece2', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
32309
32344
|
}
|
|
32310
32345
|
get el() { return getElement(this); }
|
|
32311
32346
|
static get watchers() { return {
|
|
@@ -32327,7 +32362,7 @@ class Searchbar {
|
|
|
32327
32362
|
"animated": [4],
|
|
32328
32363
|
"autocapitalize": [1],
|
|
32329
32364
|
"autocomplete": [1],
|
|
32330
|
-
"autocorrect": [
|
|
32365
|
+
"autocorrect": [1],
|
|
32331
32366
|
"cancelButtonIcon": [1, "cancel-button-icon"],
|
|
32332
32367
|
"cancelButtonText": [1, "cancel-button-text"],
|
|
32333
32368
|
"clearIcon": [1, "clear-icon"],
|
|
@@ -33412,7 +33447,7 @@ class Select {
|
|
|
33412
33447
|
}
|
|
33413
33448
|
componentWillLoad() {
|
|
33414
33449
|
this.inheritedAttributes = inheritAttributes$1(this.el, ['aria-label']);
|
|
33415
|
-
this.
|
|
33450
|
+
this.hintTextId = this.getHintTextId();
|
|
33416
33451
|
}
|
|
33417
33452
|
componentDidLoad() {
|
|
33418
33453
|
/**
|
|
@@ -33911,9 +33946,9 @@ class Select {
|
|
|
33911
33946
|
}
|
|
33912
33947
|
renderListbox() {
|
|
33913
33948
|
const { disabled, inputId, isExpanded, required } = this;
|
|
33914
|
-
return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-describedby": this.
|
|
33949
|
+
return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
33915
33950
|
}
|
|
33916
|
-
|
|
33951
|
+
getHintTextId() {
|
|
33917
33952
|
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
33918
33953
|
if (isInvalid && errorText) {
|
|
33919
33954
|
return errorTextId;
|
|
@@ -34038,7 +34073,7 @@ class Select {
|
|
|
34038
34073
|
"isExpanded": [32],
|
|
34039
34074
|
"hasFocus": [32],
|
|
34040
34075
|
"isInvalid": [32],
|
|
34041
|
-
"
|
|
34076
|
+
"hintTextId": [32],
|
|
34042
34077
|
"open": [64]
|
|
34043
34078
|
},
|
|
34044
34079
|
"$listeners$": undefined,
|
|
@@ -36509,6 +36544,10 @@ class Toggle {
|
|
|
36509
36544
|
this.inheritedAttributes = {};
|
|
36510
36545
|
this.didLoad = false;
|
|
36511
36546
|
this.activated = false;
|
|
36547
|
+
/**
|
|
36548
|
+
* Track validation state for proper aria-live announcements.
|
|
36549
|
+
*/
|
|
36550
|
+
this.isInvalid = false;
|
|
36512
36551
|
/**
|
|
36513
36552
|
* The name of the control, which is submitted with the form data.
|
|
36514
36553
|
*/
|
|
@@ -36622,15 +36661,18 @@ class Toggle {
|
|
|
36622
36661
|
});
|
|
36623
36662
|
}
|
|
36624
36663
|
async connectedCallback() {
|
|
36664
|
+
const { didLoad, el } = this;
|
|
36625
36665
|
/**
|
|
36626
36666
|
* If we have not yet rendered
|
|
36627
36667
|
* ion-toggle, then toggleTrack is not defined.
|
|
36628
36668
|
* But if we are moving ion-toggle via appendChild,
|
|
36629
36669
|
* then toggleTrack will be defined.
|
|
36630
36670
|
*/
|
|
36631
|
-
if (
|
|
36671
|
+
if (didLoad) {
|
|
36632
36672
|
this.setupGesture();
|
|
36633
36673
|
}
|
|
36674
|
+
// Always set initial state
|
|
36675
|
+
this.isInvalid = checkInvalidState(el);
|
|
36634
36676
|
}
|
|
36635
36677
|
componentDidLoad() {
|
|
36636
36678
|
this.setupGesture();
|
|
@@ -36641,9 +36683,15 @@ class Toggle {
|
|
|
36641
36683
|
this.gesture.destroy();
|
|
36642
36684
|
this.gesture = undefined;
|
|
36643
36685
|
}
|
|
36686
|
+
// Clean up validation observer to prevent memory leaks.
|
|
36687
|
+
if (this.validationObserver) {
|
|
36688
|
+
this.validationObserver.disconnect();
|
|
36689
|
+
this.validationObserver = undefined;
|
|
36690
|
+
}
|
|
36644
36691
|
}
|
|
36645
36692
|
componentWillLoad() {
|
|
36646
36693
|
this.inheritedAttributes = Object.assign({}, inheritAriaAttributes(this.el));
|
|
36694
|
+
this.hintTextId = this.getHintTextId();
|
|
36647
36695
|
}
|
|
36648
36696
|
onStart() {
|
|
36649
36697
|
this.activated = true;
|
|
@@ -36684,9 +36732,9 @@ class Toggle {
|
|
|
36684
36732
|
get hasLabel() {
|
|
36685
36733
|
return this.el.textContent !== '';
|
|
36686
36734
|
}
|
|
36687
|
-
|
|
36688
|
-
const {
|
|
36689
|
-
if (
|
|
36735
|
+
getHintTextId() {
|
|
36736
|
+
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
36737
|
+
if (isInvalid && errorText) {
|
|
36690
36738
|
return errorTextId;
|
|
36691
36739
|
}
|
|
36692
36740
|
if (helperText) {
|
|
@@ -36699,7 +36747,7 @@ class Toggle {
|
|
|
36699
36747
|
* This element should only be rendered if hint text is set.
|
|
36700
36748
|
*/
|
|
36701
36749
|
renderHintText() {
|
|
36702
|
-
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
36750
|
+
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
36703
36751
|
/**
|
|
36704
36752
|
* undefined and empty string values should
|
|
36705
36753
|
* be treated as not having helper/error text.
|
|
@@ -36708,15 +36756,15 @@ class Toggle {
|
|
|
36708
36756
|
if (!hasHintText) {
|
|
36709
36757
|
return;
|
|
36710
36758
|
}
|
|
36711
|
-
return (hAsync("div", { class: "toggle-bottom" }, hAsync("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text" }, helperText), hAsync("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text" }, errorText)));
|
|
36759
|
+
return (hAsync("div", { class: "toggle-bottom" }, hAsync("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text", "aria-live": "polite" }, !isInvalid ? helperText : null), hAsync("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text", role: "alert" }, isInvalid ? errorText : null)));
|
|
36712
36760
|
}
|
|
36713
36761
|
render() {
|
|
36714
|
-
const { activated, alignment, checked, color, disabled, el,
|
|
36762
|
+
const { activated, alignment, checked, color, disabled, el, hasLabel, inheritedAttributes, inputId, inputLabelId, justify, labelPlacement, name, required, } = this;
|
|
36715
36763
|
const mode = getIonMode$1(this);
|
|
36716
36764
|
const value = this.getValue();
|
|
36717
36765
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
36718
36766
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
36719
|
-
return (hAsync(Host, { key: '
|
|
36767
|
+
return (hAsync(Host, { key: 'f569148edd89ee041a4719ffc4733c16b05229bd', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
|
|
36720
36768
|
[mode]: true,
|
|
36721
36769
|
'in-item': hostContext('ion-item', el),
|
|
36722
36770
|
'toggle-activated': activated,
|
|
@@ -36726,10 +36774,10 @@ class Toggle {
|
|
|
36726
36774
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
36727
36775
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
36728
36776
|
[`toggle-${rtl}`]: true,
|
|
36729
|
-
}) }, hAsync("label", { key: '
|
|
36777
|
+
}) }, hAsync("label", { key: '3027f2ac4be6de422a14486d847fbee77f615db1', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: '4b0304c9e879e432b80184b4e5de37d55c11b436', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: '8ef265ec942e7f01ff31cbb202ed146c6bf94e02', class: {
|
|
36730
36778
|
'label-text-wrapper': true,
|
|
36731
36779
|
'label-text-wrapper-hidden': !hasLabel,
|
|
36732
|
-
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '
|
|
36780
|
+
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '7b162b7dd27199cca2a4c995276a18b9f8e44aaf' }), this.renderHintText()), hAsync("div", { key: 'd13c34bd42fca01cc73ddb4ea7e471b33a282a3e', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
36733
36781
|
}
|
|
36734
36782
|
get el() { return getElement(this); }
|
|
36735
36783
|
static get watchers() { return {
|
|
@@ -36755,7 +36803,9 @@ class Toggle {
|
|
|
36755
36803
|
"justify": [1],
|
|
36756
36804
|
"alignment": [1],
|
|
36757
36805
|
"required": [4],
|
|
36758
|
-
"activated": [32]
|
|
36806
|
+
"activated": [32],
|
|
36807
|
+
"isInvalid": [32],
|
|
36808
|
+
"hintTextId": [32]
|
|
36759
36809
|
},
|
|
36760
36810
|
"$listeners$": undefined,
|
|
36761
36811
|
"$lazyBundleId$": "-",
|
|
@@ -37912,7 +37962,7 @@ var NAMESPACE = (
|
|
|
37912
37962
|
);
|
|
37913
37963
|
|
|
37914
37964
|
/*
|
|
37915
|
-
Stencil Hydrate Runner v4.38.
|
|
37965
|
+
Stencil Hydrate Runner v4.38.0 | MIT Licensed | https://stenciljs.com
|
|
37916
37966
|
*/
|
|
37917
37967
|
var __defProp = Object.defineProperty;
|
|
37918
37968
|
var __export = (target, all) => {
|
|
@@ -38073,6 +38123,82 @@ var MockAttr = class {
|
|
|
38073
38123
|
}
|
|
38074
38124
|
};
|
|
38075
38125
|
|
|
38126
|
+
// src/mock-doc/class-list.ts
|
|
38127
|
+
var MockClassList = class {
|
|
38128
|
+
constructor(elm) {
|
|
38129
|
+
this.elm = elm;
|
|
38130
|
+
}
|
|
38131
|
+
add(...classNames) {
|
|
38132
|
+
const clsNames = getItems(this.elm);
|
|
38133
|
+
let updated = false;
|
|
38134
|
+
classNames.forEach((className) => {
|
|
38135
|
+
className = String(className);
|
|
38136
|
+
validateClass(className);
|
|
38137
|
+
if (clsNames.includes(className) === false) {
|
|
38138
|
+
clsNames.push(className);
|
|
38139
|
+
updated = true;
|
|
38140
|
+
}
|
|
38141
|
+
});
|
|
38142
|
+
if (updated) {
|
|
38143
|
+
this.elm.setAttributeNS(null, "class", clsNames.join(" "));
|
|
38144
|
+
}
|
|
38145
|
+
}
|
|
38146
|
+
remove(...classNames) {
|
|
38147
|
+
const clsNames = getItems(this.elm);
|
|
38148
|
+
let updated = false;
|
|
38149
|
+
classNames.forEach((className) => {
|
|
38150
|
+
className = String(className);
|
|
38151
|
+
validateClass(className);
|
|
38152
|
+
const index = clsNames.indexOf(className);
|
|
38153
|
+
if (index > -1) {
|
|
38154
|
+
clsNames.splice(index, 1);
|
|
38155
|
+
updated = true;
|
|
38156
|
+
}
|
|
38157
|
+
});
|
|
38158
|
+
if (updated) {
|
|
38159
|
+
this.elm.setAttributeNS(null, "class", clsNames.filter((c) => c.length > 0).join(" "));
|
|
38160
|
+
}
|
|
38161
|
+
}
|
|
38162
|
+
contains(className) {
|
|
38163
|
+
className = String(className);
|
|
38164
|
+
return getItems(this.elm).includes(className);
|
|
38165
|
+
}
|
|
38166
|
+
toggle(className) {
|
|
38167
|
+
className = String(className);
|
|
38168
|
+
if (this.contains(className) === true) {
|
|
38169
|
+
this.remove(className);
|
|
38170
|
+
} else {
|
|
38171
|
+
this.add(className);
|
|
38172
|
+
}
|
|
38173
|
+
}
|
|
38174
|
+
get length() {
|
|
38175
|
+
return getItems(this.elm).length;
|
|
38176
|
+
}
|
|
38177
|
+
item(index) {
|
|
38178
|
+
return getItems(this.elm)[index];
|
|
38179
|
+
}
|
|
38180
|
+
toString() {
|
|
38181
|
+
return getItems(this.elm).join(" ");
|
|
38182
|
+
}
|
|
38183
|
+
};
|
|
38184
|
+
function validateClass(className) {
|
|
38185
|
+
if (className === "") {
|
|
38186
|
+
throw new Error("The token provided must not be empty.");
|
|
38187
|
+
}
|
|
38188
|
+
if (/\s/.test(className)) {
|
|
38189
|
+
throw new Error(
|
|
38190
|
+
`The token provided ('${className}') contains HTML space characters, which are not valid in tokens.`
|
|
38191
|
+
);
|
|
38192
|
+
}
|
|
38193
|
+
}
|
|
38194
|
+
function getItems(elm) {
|
|
38195
|
+
const className = elm.getAttribute("class");
|
|
38196
|
+
if (typeof className === "string" && className.length > 0) {
|
|
38197
|
+
return className.trim().split(" ").filter((c) => c.length > 0);
|
|
38198
|
+
}
|
|
38199
|
+
return [];
|
|
38200
|
+
}
|
|
38201
|
+
|
|
38076
38202
|
// src/mock-doc/css-style-declaration.ts
|
|
38077
38203
|
var MockCSSStyleDeclaration = class {
|
|
38078
38204
|
constructor() {
|
|
@@ -48588,81 +48714,6 @@ var STRUCTURE_ELEMENTS = /* @__PURE__ */ new Set([
|
|
|
48588
48714
|
"style"
|
|
48589
48715
|
]);
|
|
48590
48716
|
|
|
48591
|
-
// src/mock-doc/token-list.ts
|
|
48592
|
-
var MockTokenList = class {
|
|
48593
|
-
constructor(elm, attr) {
|
|
48594
|
-
this.elm = elm;
|
|
48595
|
-
this.attr = attr;
|
|
48596
|
-
}
|
|
48597
|
-
add(...tokens) {
|
|
48598
|
-
const items = getItems(this.elm, this.attr);
|
|
48599
|
-
let updated = false;
|
|
48600
|
-
tokens.forEach((token) => {
|
|
48601
|
-
token = String(token);
|
|
48602
|
-
validateToken(token);
|
|
48603
|
-
if (items.includes(token) === false) {
|
|
48604
|
-
items.push(token);
|
|
48605
|
-
updated = true;
|
|
48606
|
-
}
|
|
48607
|
-
});
|
|
48608
|
-
if (updated) {
|
|
48609
|
-
this.elm.setAttributeNS(null, this.attr, items.join(" "));
|
|
48610
|
-
}
|
|
48611
|
-
}
|
|
48612
|
-
remove(...tokens) {
|
|
48613
|
-
const items = getItems(this.elm, this.attr);
|
|
48614
|
-
let updated = false;
|
|
48615
|
-
tokens.forEach((token) => {
|
|
48616
|
-
token = String(token);
|
|
48617
|
-
validateToken(token);
|
|
48618
|
-
const index = items.indexOf(token);
|
|
48619
|
-
if (index > -1) {
|
|
48620
|
-
items.splice(index, 1);
|
|
48621
|
-
updated = true;
|
|
48622
|
-
}
|
|
48623
|
-
});
|
|
48624
|
-
if (updated) {
|
|
48625
|
-
this.elm.setAttributeNS(null, this.attr, items.filter((c) => c.length > 0).join(" "));
|
|
48626
|
-
}
|
|
48627
|
-
}
|
|
48628
|
-
contains(token) {
|
|
48629
|
-
token = String(token);
|
|
48630
|
-
return getItems(this.elm, this.attr).includes(token);
|
|
48631
|
-
}
|
|
48632
|
-
toggle(token) {
|
|
48633
|
-
token = String(token);
|
|
48634
|
-
if (this.contains(token) === true) {
|
|
48635
|
-
this.remove(token);
|
|
48636
|
-
} else {
|
|
48637
|
-
this.add(token);
|
|
48638
|
-
}
|
|
48639
|
-
}
|
|
48640
|
-
get length() {
|
|
48641
|
-
return getItems(this.elm, this.attr).length;
|
|
48642
|
-
}
|
|
48643
|
-
item(index) {
|
|
48644
|
-
return getItems(this.elm, this.attr)[index];
|
|
48645
|
-
}
|
|
48646
|
-
toString() {
|
|
48647
|
-
return getItems(this.elm, this.attr).join(" ");
|
|
48648
|
-
}
|
|
48649
|
-
};
|
|
48650
|
-
function validateToken(token) {
|
|
48651
|
-
if (token === "") {
|
|
48652
|
-
throw new Error("The token provided must not be empty.");
|
|
48653
|
-
}
|
|
48654
|
-
if (/\s/.test(token)) {
|
|
48655
|
-
throw new Error(`The token provided ('${token}') contains HTML space characters, which are not valid in tokens.`);
|
|
48656
|
-
}
|
|
48657
|
-
}
|
|
48658
|
-
function getItems(elm, attr) {
|
|
48659
|
-
const value = elm.getAttribute(attr);
|
|
48660
|
-
if (typeof value === "string" && value.length > 0) {
|
|
48661
|
-
return value.trim().split(" ").filter((c) => c.length > 0);
|
|
48662
|
-
}
|
|
48663
|
-
return [];
|
|
48664
|
-
}
|
|
48665
|
-
|
|
48666
48717
|
// src/mock-doc/node.ts
|
|
48667
48718
|
var MockNode2 = class {
|
|
48668
48719
|
constructor(ownerDocument, nodeType, nodeName, nodeValue) {
|
|
@@ -48930,10 +48981,7 @@ var MockElement = class extends MockNode2 {
|
|
|
48930
48981
|
this.setAttributeNS(null, "class", value);
|
|
48931
48982
|
}
|
|
48932
48983
|
get classList() {
|
|
48933
|
-
return new
|
|
48934
|
-
}
|
|
48935
|
-
get part() {
|
|
48936
|
-
return new MockTokenList(this, "part");
|
|
48984
|
+
return new MockClassList(this);
|
|
48937
48985
|
}
|
|
48938
48986
|
click() {
|
|
48939
48987
|
dispatchEvent(this, new MockEvent("click", { bubbles: true, cancelable: true, composed: true }));
|
|
@@ -51816,7 +51864,7 @@ var MockDocument = class _MockDocument extends MockHTMLElement {
|
|
|
51816
51864
|
}
|
|
51817
51865
|
set location(val) {
|
|
51818
51866
|
if (this.defaultView != null) {
|
|
51819
|
-
this.defaultView.location
|
|
51867
|
+
this.defaultView.location = val;
|
|
51820
51868
|
}
|
|
51821
51869
|
}
|
|
51822
51870
|
get baseURI() {
|