@ionic/core 7.7.5 → 7.8.1-dev.11710449785.14ebd5a0
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/data.js +23 -38
- package/components/ion-datetime-button.js +11 -10
- package/components/ion-datetime.js +75 -12
- package/components/ion-fab-button.js +2 -2
- package/components/ion-fab-list.js +2 -2
- package/components/ion-fab.js +2 -2
- package/components/ion-footer.js +2 -2
- package/components/ion-grid.js +2 -2
- package/components/ion-header.js +2 -2
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +2 -2
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-item-divider.js +2 -2
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +2 -2
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-loading.js +2 -2
- package/components/ion-menu-button.js +2 -2
- package/components/ion-menu-toggle.js +2 -2
- package/components/ion-menu.js +2 -2
- package/components/ion-modal.js +3 -3
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-picker.js +2 -2
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-router-link.js +2 -2
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +34 -5
- package/components/ion-segment-button.js +3 -3
- package/components/ion-segment.js +2 -2
- package/components/ion-select-option.js +1 -1
- package/components/ion-skeleton-text.js +2 -2
- package/components/ion-split-pane.js +2 -2
- package/components/ion-tab-bar.js +2 -2
- package/components/ion-tab-button.js +2 -2
- package/components/ion-tab.js +2 -2
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +2 -2
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +2 -2
- package/components/ion-toast.js +2 -2
- package/components/ion-toolbar.js +2 -2
- package/components/label.js +1 -1
- package/components/list-header.js +2 -2
- package/components/list.js +1 -1
- package/components/note.js +2 -2
- package/components/picker-column-internal.js +8 -4
- package/components/picker-column.js +2 -2
- package/components/picker-internal.js +2 -2
- package/components/popover.js +2 -2
- package/components/radio-group.js +1 -1
- package/components/ripple-effect.js +1 -1
- package/components/select-popover.js +1 -1
- package/components/spinner.js +1 -1
- package/dist/cjs/{data-a5109f09.js → data-4487a815.js} +22 -39
- package/dist/cjs/ion-app_8.cjs.entry.js +9 -9
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-datetime-button.cjs.entry.js +11 -10
- package/dist/cjs/ion-datetime_3.cjs.entry.js +76 -16
- package/dist/cjs/ion-fab_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-img.cjs.entry.js +1 -1
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +11 -11
- package/dist/cjs/ion-loading.cjs.entry.js +2 -2
- package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-modal.cjs.entry.js +3 -3
- package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-column-internal.cjs.entry.js +8 -4
- package/dist/cjs/ion-picker-internal.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +2 -2
- package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +28 -4
- package/dist/cjs/ion-segment_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-select_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- 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-toast.cjs.entry.js +2 -2
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/alert/test/a11y/alert.e2e.js +4 -0
- package/dist/collection/components/datetime/datetime.js +56 -12
- package/dist/collection/components/datetime/test/basic/datetime.e2e.js +77 -0
- package/dist/collection/components/datetime/test/format.spec.js +65 -15
- package/dist/collection/components/datetime/utils/format.js +24 -37
- package/dist/collection/components/datetime/utils/validate.js +45 -0
- package/dist/collection/components/datetime-button/datetime-button.js +11 -10
- package/dist/collection/components/datetime-button/test/basic/datetime-button.e2e.js +65 -0
- package/dist/collection/components/fab/fab.js +2 -2
- package/dist/collection/components/fab-button/fab-button.js +2 -2
- package/dist/collection/components/fab-list/fab-list.js +2 -2
- package/dist/collection/components/footer/footer.js +2 -2
- package/dist/collection/components/grid/grid.js +2 -2
- package/dist/collection/components/header/header.js +2 -2
- package/dist/collection/components/img/img.js +1 -1
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
- package/dist/collection/components/item-divider/item-divider.js +2 -2
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +2 -2
- package/dist/collection/components/item-options/item-options.js +1 -1
- package/dist/collection/components/item-sliding/item-sliding.js +1 -1
- package/dist/collection/components/label/label.js +1 -1
- package/dist/collection/components/list/list.js +1 -1
- package/dist/collection/components/list-header/list-header.js +2 -2
- package/dist/collection/components/loading/loading.js +2 -2
- package/dist/collection/components/menu/menu.js +2 -2
- package/dist/collection/components/menu-button/menu-button.js +2 -2
- package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
- package/dist/collection/components/modal/modal.js +3 -3
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/nav-link/nav-link.js +1 -1
- package/dist/collection/components/note/note.js +2 -2
- package/dist/collection/components/picker/picker.js +2 -2
- package/dist/collection/components/picker-column/picker-column.js +2 -2
- package/dist/collection/components/picker-column-internal/picker-column-internal.js +8 -4
- package/dist/collection/components/picker-internal/picker-internal.js +2 -2
- package/dist/collection/components/popover/popover.js +2 -2
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/refresher/refresher.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +1 -1
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +84 -5
- package/dist/collection/components/searchbar/test/searchbar.spec.js +20 -2
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment-button/segment-button.js +3 -3
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/select-popover/select-popover.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.js +1 -1
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/docs.json +114 -2
- package/dist/esm/{data-0f3ab200.js → data-bb424ba8.js} +23 -38
- package/dist/esm/ion-app_8.entry.js +9 -9
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +3 -3
- package/dist/esm/ion-datetime-button.entry.js +11 -10
- package/dist/esm/ion-datetime_3.entry.js +76 -16
- package/dist/esm/ion-fab_3.entry.js +6 -6
- package/dist/esm/ion-img.entry.js +1 -1
- package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +11 -11
- package/dist/esm/ion-loading.entry.js +2 -2
- package/dist/esm/ion-menu_3.entry.js +6 -6
- package/dist/esm/ion-modal.entry.js +3 -3
- package/dist/esm/ion-nav_2.entry.js +2 -2
- package/dist/esm/ion-picker-column-internal.entry.js +8 -4
- package/dist/esm/ion-picker-internal.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +2 -2
- package/dist/esm/ion-progress-bar.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +1 -1
- package/dist/esm/ion-refresher_2.entry.js +2 -2
- package/dist/esm/ion-reorder_2.entry.js +2 -2
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +29 -5
- package/dist/esm/ion-segment_2.entry.js +5 -5
- package/dist/esm/ion-select_3.entry.js +2 -2
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +2 -2
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm-es5/data-bb424ba8.js +4 -0
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-col_3.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-img.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-internal.entry.js +1 -1
- package/dist/esm-es5/ion-picker-internal.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/html.html-data.json +13 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-08a5d8eb.entry.js → p-0188824c.entry.js} +1 -1
- package/dist/ionic/{p-ba385465.system.entry.js → p-079817f9.system.entry.js} +1 -1
- package/dist/ionic/{p-b13b7128.system.entry.js → p-0971ee6d.system.entry.js} +1 -1
- package/dist/ionic/{p-db6a5af3.system.entry.js → p-0dbbf52a.system.entry.js} +1 -1
- package/dist/ionic/{p-f5bc27d6.system.entry.js → p-0eb111e7.system.entry.js} +1 -1
- package/dist/ionic/{p-996922b4.system.entry.js → p-0ef05e5d.system.entry.js} +1 -1
- package/dist/ionic/{p-86438241.system.entry.js → p-0fa9c8f7.system.entry.js} +1 -1
- package/dist/ionic/{p-8f466a2c.system.entry.js → p-11d480a7.system.entry.js} +1 -1
- package/dist/ionic/{p-f9f7b24a.system.entry.js → p-1561982b.system.entry.js} +1 -1
- package/dist/ionic/{p-45ea497f.entry.js → p-15ced5aa.entry.js} +1 -1
- package/dist/ionic/p-2055bdba.entry.js +4 -0
- package/dist/ionic/{p-cf88a096.system.entry.js → p-25f56cd7.system.entry.js} +1 -1
- package/dist/ionic/{p-6a0a3e18.system.entry.js → p-2791b018.system.entry.js} +1 -1
- package/dist/ionic/{p-e59803ca.entry.js → p-2b78245e.entry.js} +1 -1
- package/dist/ionic/{p-72c8ca65.system.entry.js → p-2bc25d50.system.entry.js} +2 -2
- package/dist/ionic/{p-479402e1.entry.js → p-2c94053b.entry.js} +1 -1
- package/dist/ionic/{p-9074a84e.system.entry.js → p-2d88f64e.system.entry.js} +1 -1
- package/dist/ionic/p-2fec06f2.entry.js +4 -0
- package/dist/ionic/p-327f8d66.entry.js +4 -0
- package/dist/ionic/p-3789920e.js +4 -0
- package/dist/ionic/{p-c7d8cec2.entry.js → p-3b85bb44.entry.js} +1 -1
- package/dist/ionic/{p-059fcb53.system.entry.js → p-43438ce1.system.entry.js} +2 -2
- package/dist/ionic/p-45362829.system.entry.js +4 -0
- package/dist/ionic/p-46ca8bb1.entry.js +4 -0
- package/dist/ionic/{p-08410e29.system.entry.js → p-4e74f845.system.entry.js} +1 -1
- package/dist/ionic/{p-7b809cc0.system.entry.js → p-4f73a163.system.entry.js} +1 -1
- package/dist/ionic/{p-345e2dac.system.entry.js → p-51dd4f12.system.entry.js} +1 -1
- package/dist/ionic/{p-5d8fca58.entry.js → p-51ebe7c6.entry.js} +1 -1
- package/dist/ionic/{p-cfe767f1.entry.js → p-526258be.entry.js} +1 -1
- package/dist/ionic/{p-fef4907e.system.entry.js → p-58b335fd.system.entry.js} +1 -1
- package/dist/ionic/{p-3377236e.entry.js → p-5e3e64b5.entry.js} +1 -1
- package/dist/ionic/{p-b9b8e462.system.entry.js → p-5f3fc112.system.entry.js} +1 -1
- package/dist/ionic/p-60c9fd9e.system.js +1 -1
- package/dist/ionic/{p-3ca0c7f2.entry.js → p-62f36e54.entry.js} +1 -1
- package/dist/ionic/{p-e8d46a2e.entry.js → p-65409f36.entry.js} +1 -1
- package/dist/ionic/p-6a110cb2.entry.js +4 -0
- package/dist/ionic/p-6ec0c1ee.system.entry.js +4 -0
- package/dist/ionic/{p-4830fae8.system.entry.js → p-7126abb8.system.entry.js} +1 -1
- package/dist/ionic/{p-b0ccd173.system.entry.js → p-7186eb03.system.entry.js} +1 -1
- package/dist/ionic/{p-6b5630b9.system.entry.js → p-7c91266e.system.entry.js} +1 -1
- package/dist/ionic/{p-f5dce0c6.entry.js → p-80808af6.entry.js} +1 -1
- package/dist/ionic/p-8a1b0abb.system.js +4 -0
- package/dist/ionic/{p-33dd4d0b.system.entry.js → p-8a21c7b4.system.entry.js} +1 -1
- package/dist/ionic/{p-09fc100a.entry.js → p-8be61e52.entry.js} +1 -1
- package/dist/ionic/{p-e4bf5d87.system.entry.js → p-8e127a08.system.entry.js} +1 -1
- package/dist/ionic/{p-0e7c8334.system.entry.js → p-966a5ae4.system.entry.js} +1 -1
- package/dist/ionic/{p-ae3aeb39.entry.js → p-98bac954.entry.js} +1 -1
- package/dist/ionic/{p-231a3636.system.entry.js → p-a53d569a.system.entry.js} +1 -1
- package/dist/ionic/{p-3270e211.entry.js → p-a7959307.entry.js} +1 -1
- package/dist/ionic/{p-7f865669.entry.js → p-ab7c79d9.entry.js} +1 -1
- package/dist/ionic/p-b7aec03b.entry.js +4 -0
- package/dist/ionic/p-bbb655e2.system.entry.js +4 -0
- package/dist/ionic/{p-ca935c03.entry.js → p-bc68a14a.entry.js} +1 -1
- package/dist/ionic/{p-36a80e5c.entry.js → p-c0d7aace.entry.js} +1 -1
- package/dist/ionic/{p-04721936.system.entry.js → p-c1a58ab3.system.entry.js} +1 -1
- package/dist/ionic/{p-84283745.entry.js → p-c63a69cd.entry.js} +1 -1
- package/dist/ionic/{p-8ce6d551.entry.js → p-c99bfffe.entry.js} +1 -1
- package/dist/ionic/{p-c6f9f608.entry.js → p-d637b857.entry.js} +1 -1
- package/dist/ionic/{p-09b047e0.entry.js → p-dd5a925f.entry.js} +1 -1
- package/dist/ionic/{p-c711b464.entry.js → p-deb09b58.entry.js} +1 -1
- package/dist/ionic/{p-95c2fa04.entry.js → p-e2236935.entry.js} +1 -1
- package/dist/ionic/{p-abcc9680.entry.js → p-e631799d.entry.js} +1 -1
- package/dist/ionic/{p-e155f315.system.entry.js → p-e6c115f6.system.entry.js} +1 -1
- package/dist/ionic/{p-8c74bd0e.system.entry.js → p-e7bdaac8.system.entry.js} +2 -2
- package/dist/ionic/p-f520f6a5.entry.js +4 -0
- package/dist/ionic/p-f89380a5.system.entry.js +4 -0
- package/dist/ionic/p-f98bd898.entry.js +4 -0
- package/dist/types/components/datetime/datetime-interface.d.ts +10 -0
- package/dist/types/components/datetime/datetime.d.ts +10 -1
- package/dist/types/components/datetime/utils/format.d.ts +7 -13
- package/dist/types/components/datetime/utils/validate.d.ts +8 -0
- package/dist/types/components/searchbar/searchbar.d.ts +38 -0
- package/dist/types/components/toggle/toggle.d.ts +1 -1
- package/dist/types/components.d.ts +36 -4
- package/hydrate/index.js +230 -154
- package/package.json +1 -1
- package/dist/esm-es5/data-0f3ab200.js +0 -4
- package/dist/ionic/p-1522bf28.entry.js +0 -4
- package/dist/ionic/p-6f5b32c7.system.entry.js +0 -4
- package/dist/ionic/p-7330c044.system.js +0 -4
- package/dist/ionic/p-76afa95f.entry.js +0 -4
- package/dist/ionic/p-81f18ed1.system.entry.js +0 -4
- package/dist/ionic/p-addb7662.entry.js +0 -4
- package/dist/ionic/p-b80ef521.entry.js +0 -4
- package/dist/ionic/p-c05202a7.entry.js +0 -4
- package/dist/ionic/p-c67c9644.entry.js +0 -4
- package/dist/ionic/p-d070ab1e.system.entry.js +0 -4
- package/dist/ionic/p-de0392f4.entry.js +0 -4
- package/dist/ionic/p-e447e552.entry.js +0 -4
- package/dist/ionic/p-ef269a56.system.entry.js +0 -4
- package/dist/ionic/p-f7dce541.js +0 -4
|
@@ -562,9 +562,9 @@ export class Modal {
|
|
|
562
562
|
const mode = getIonMode(this);
|
|
563
563
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
564
564
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
565
|
-
return (h(Host, Object.assign({ key: '
|
|
565
|
+
return (h(Host, Object.assign({ key: '67ef0269a5e9b542d0c2acaa03a2f7f46b8cf0b5', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
566
566
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
567
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '
|
|
567
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: 'edd98375e98d887dbea232adb81b74f164fa058b', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { class: "modal-shadow" }), h("div", Object.assign({ key: '40437670391544b57b8a9943ef3b49de7acbd873',
|
|
568
568
|
/*
|
|
569
569
|
role and aria-modal must be used on the
|
|
570
570
|
same element. They must also be set inside the
|
|
@@ -573,7 +573,7 @@ export class Modal {
|
|
|
573
573
|
*/
|
|
574
574
|
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { class: "modal-handle",
|
|
575
575
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
576
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '
|
|
576
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: 'dfe2095d9e1adb075dc09d1927ef24ea09ea5435' }))));
|
|
577
577
|
}
|
|
578
578
|
static get is() { return "ion-modal"; }
|
|
579
579
|
static get encapsulation() { return "shadow"; }
|
|
@@ -827,7 +827,7 @@ export class Nav {
|
|
|
827
827
|
}
|
|
828
828
|
}
|
|
829
829
|
render() {
|
|
830
|
-
return h("slot", { key: '
|
|
830
|
+
return h("slot", { key: '8254ea10bef0575c13f8b0ddbe4643bec19f2366' });
|
|
831
831
|
}
|
|
832
832
|
static get is() { return "ion-nav"; }
|
|
833
833
|
static get encapsulation() { return "shadow"; }
|
|
@@ -14,7 +14,7 @@ export class NavLink {
|
|
|
14
14
|
this.routerAnimation = undefined;
|
|
15
15
|
}
|
|
16
16
|
render() {
|
|
17
|
-
return h(Host, { key: '
|
|
17
|
+
return h(Host, { key: 'dfbfc1a69c48248a8861463ed31c693be6543f32', onClick: this.onClick });
|
|
18
18
|
}
|
|
19
19
|
static get is() { return "ion-nav-link"; }
|
|
20
20
|
static get properties() {
|
|
@@ -13,9 +13,9 @@ export class Note {
|
|
|
13
13
|
}
|
|
14
14
|
render() {
|
|
15
15
|
const mode = getIonMode(this);
|
|
16
|
-
return (h(Host, { key: '
|
|
16
|
+
return (h(Host, { key: 'de9f59a3e1700776780e61def3044901e1d1bef5', class: createColorClasses(this.color, {
|
|
17
17
|
[mode]: true,
|
|
18
|
-
}) }, h("slot", { key: '
|
|
18
|
+
}) }, h("slot", { key: '30f98649d4d31a297ab71d23ed38fa021540a8f2' })));
|
|
19
19
|
}
|
|
20
20
|
static get is() { return "ion-note"; }
|
|
21
21
|
static get encapsulation() { return "shadow"; }
|
|
@@ -184,11 +184,11 @@ export class Picker {
|
|
|
184
184
|
render() {
|
|
185
185
|
const { htmlAttributes } = this;
|
|
186
186
|
const mode = getIonMode(this);
|
|
187
|
-
return (h(Host, Object.assign({ key: '
|
|
187
|
+
return (h(Host, Object.assign({ key: 'd2a0406625c8de0604a926a807f63c7f25bf4bab', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
|
|
188
188
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
189
189
|
}, class: Object.assign({ [mode]: true,
|
|
190
190
|
// Used internally for styling
|
|
191
|
-
[`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: '
|
|
191
|
+
[`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), h("ion-backdrop", { key: '776a45c3df93ab4683727bb5c8ba0085f4336586', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: 'fc34d3838cfc5c38097dac9e749dbf7433e1a10a', tabindex: "0" }), h("div", { key: '49bf9e92e301cbe12e2e683df110cccd6c9b8042', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, h("div", { key: 'f2810a07ea067be31c169f36cbb44ca8a5dc219b', class: "picker-toolbar" }, this.buttons.map((b) => (h("div", { class: buttonWrapperClass(b) }, h("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass(b) }, b.text))))), h("div", { key: 'f2d2a4652a8e368e40d4462d2b5e4c8095001b64', class: "picker-columns" }, h("div", { key: '143ee78c8e0543f3a2f897097ff09e18f5b68016', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => h("ion-picker-column", { col: c })), h("div", { key: '47716d2e923ca096a0bd48a07fee2deae1b1a567', class: "picker-below-highlight" }))), h("div", { key: 'ecd3b459cae6492330c7c5847c2b4cd214c9c615', tabindex: "0" })));
|
|
192
192
|
}
|
|
193
193
|
static get is() { return "ion-picker"; }
|
|
194
194
|
static get encapsulation() { return "scoped"; }
|
|
@@ -336,9 +336,9 @@ export class PickerColumnCmp {
|
|
|
336
336
|
render() {
|
|
337
337
|
const col = this.col;
|
|
338
338
|
const mode = getIonMode(this);
|
|
339
|
-
return (h(Host, { key: '
|
|
339
|
+
return (h(Host, { key: 'b0d3c8b8315f130f1bcddcbc53ee9949676423bf', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
|
|
340
340
|
'max-width': this.col.columnWidth,
|
|
341
|
-
} }, col.prefix && (h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '
|
|
341
|
+
} }, col.prefix && (h("div", { class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), h("div", { key: '2c0471c265bc3dfa2d415da77b8a70850e74458e', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (h("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (h("div", { class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
|
|
342
342
|
}
|
|
343
343
|
static get is() { return "ion-picker-column"; }
|
|
344
344
|
static get originalStyleUrls() {
|
|
@@ -244,7 +244,11 @@ export class PickerColumnInternal {
|
|
|
244
244
|
*/
|
|
245
245
|
componentWillLoad() {
|
|
246
246
|
const visibleCallback = (entries) => {
|
|
247
|
-
|
|
247
|
+
/**
|
|
248
|
+
* Browsers will sometimes group multiple IO events into a single callback.
|
|
249
|
+
* As a result, we want to grab the last/most recent event in case there are multiple events.
|
|
250
|
+
*/
|
|
251
|
+
const ev = entries[entries.length - 1];
|
|
248
252
|
if (ev.isIntersecting) {
|
|
249
253
|
const { activeItem, el } = this;
|
|
250
254
|
this.isColumnVisible = true;
|
|
@@ -333,11 +337,11 @@ export class PickerColumnInternal {
|
|
|
333
337
|
* the attribute can be moved to datetime.tsx and set on every
|
|
334
338
|
* instance of ion-picker-column-internal there instead.
|
|
335
339
|
*/
|
|
336
|
-
return (h(Host, { key: '
|
|
340
|
+
return (h(Host, { key: 'eeb70e31fca7bff943a2fc29a3da0383520fdd84', exportparts: `${PICKER_ITEM_PART}, ${PICKER_ITEM_ACTIVE_PART}`, disabled: pickerDisabled, tabindex: pickerDisabled ? null : 0, class: createColorClasses(color, {
|
|
337
341
|
[mode]: true,
|
|
338
342
|
['picker-column-active']: isActive,
|
|
339
343
|
['picker-column-numeric-input']: numericInput,
|
|
340
|
-
}) }, h("div", { key: '
|
|
344
|
+
}) }, h("div", { key: '08cffb51ab2ce1a4b83e35b25afd2880d6949d8e', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '88389ba5287ee5e251fa36a0e13a888c8dfbf8e8', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '2dc958f37a939a0fbbc35d92482e9c64741d8f5a', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), items.map((item, index) => {
|
|
341
345
|
const isItemDisabled = pickerDisabled || item.disabled || false;
|
|
342
346
|
{
|
|
343
347
|
/*
|
|
@@ -354,7 +358,7 @@ export class PickerColumnInternal {
|
|
|
354
358
|
}, "data-value": item.value, "data-index": index, onClick: (ev) => {
|
|
355
359
|
this.centerPickerItemInView(ev.target, true);
|
|
356
360
|
}, disabled: isItemDisabled, part: PICKER_ITEM_PART }, item.text));
|
|
357
|
-
}), h("div", { key: '
|
|
361
|
+
}), h("div", { key: 'd31f134aa67a10ad1b796a4e1ffbea439b2b3723', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '3015f7f774b44d349f445e585b73295814c76326', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'df165c76253e51bd6968bdcd8071ad69467bda4c', class: "picker-item picker-item-empty", "aria-hidden": "true" }, "\u00A0")));
|
|
358
362
|
}
|
|
359
363
|
static get is() { return "ion-picker-column-internal"; }
|
|
360
364
|
static get encapsulation() { return "shadow"; }
|
|
@@ -468,7 +468,7 @@ export class PickerInternal {
|
|
|
468
468
|
this.emitInputModeChange();
|
|
469
469
|
}
|
|
470
470
|
render() {
|
|
471
|
-
return (h(Host, { key: '
|
|
471
|
+
return (h(Host, { key: '49581a3c11cd7808555c576c46b833ac9d60f71a', onPointerDown: (ev) => this.onPointerDown(ev), onClick: () => this.onClick() }, h("input", { key: '92628e29f76914b955aa11d4e45797a941821159', "aria-hidden": "true", tabindex: -1, inputmode: "numeric", type: "number", onKeyDown: (ev) => {
|
|
472
472
|
var _a;
|
|
473
473
|
/**
|
|
474
474
|
* The "Enter" key represents
|
|
@@ -483,7 +483,7 @@ export class PickerInternal {
|
|
|
483
483
|
if (ev.key === 'Enter') {
|
|
484
484
|
(_a = this.inputEl) === null || _a === void 0 ? void 0 : _a.blur();
|
|
485
485
|
}
|
|
486
|
-
}, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: '
|
|
486
|
+
}, ref: (el) => (this.inputEl = el), onInput: () => this.onInputChange(), onBlur: () => this.exitInputMode() }), h("div", { key: '455d7ef6dd1425e882d86f49e0d817883fe222b2', class: "picker-before" }), h("div", { key: '0351296cf171d22840542eb178ec3fae1e90f5d5', class: "picker-after" }), h("div", { key: 'b4ecaa88d0bbbd69e72b3d4f27ad3bd91f3da84d', class: "picker-highlight", ref: (el) => (this.highlightEl = el) }), h("slot", { key: 'fac29c179707002861f39d2ba1ea53479d0d9b74' })));
|
|
487
487
|
}
|
|
488
488
|
static get is() { return "ion-picker-internal"; }
|
|
489
489
|
static get encapsulation() { return "shadow"; }
|
|
@@ -335,9 +335,9 @@ export class Popover {
|
|
|
335
335
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes } = this;
|
|
336
336
|
const desktop = isPlatform('desktop');
|
|
337
337
|
const enableArrow = arrow && !parentPopover;
|
|
338
|
-
return (h(Host, Object.assign({ key: '
|
|
338
|
+
return (h(Host, Object.assign({ key: 'b35e04a59d2feff922709efc5045e4e9f65db80d', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
339
339
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
340
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '
|
|
340
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '99d26b7ebd403061f4fe75c10b8106d5795cbbc0', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { class: "popover-arrow", part: "arrow" }), h("div", { key: '6179601846f042b7b3be20c93845464ec8bef98a', class: "popover-content", part: "content" }, h("slot", { key: '2ba4f3ba26adfd3d42fa78ca6b6561d4088be8a8' })))));
|
|
341
341
|
}
|
|
342
342
|
static get is() { return "ion-popover"; }
|
|
343
343
|
static get encapsulation() { return "shadow"; }
|
|
@@ -26,7 +26,7 @@ export class ProgressBar {
|
|
|
26
26
|
const { color, type, reversed, value, buffer } = this;
|
|
27
27
|
const paused = config.getBoolean('_testing');
|
|
28
28
|
const mode = getIonMode(this);
|
|
29
|
-
return (h(Host, { key: '
|
|
29
|
+
return (h(Host, { key: '4dbdfe17c039ed9b2e0badec30655cb9e7dac768', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
|
|
30
30
|
[mode]: true,
|
|
31
31
|
[`progress-bar-${type}`]: true,
|
|
32
32
|
'progress-paused': paused,
|
|
@@ -153,7 +153,7 @@ export class RadioGroup {
|
|
|
153
153
|
const { label, labelId, el, name, value } = this;
|
|
154
154
|
const mode = getIonMode(this);
|
|
155
155
|
renderHiddenInput(true, el, name, value, false);
|
|
156
|
-
return h(Host, { key: '
|
|
156
|
+
return h(Host, { key: 'c0784903ad0b3914f448cca4b91172ad3af3ed70', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
|
|
157
157
|
}
|
|
158
158
|
static get is() { return "ion-radio-group"; }
|
|
159
159
|
static get properties() {
|
|
@@ -594,7 +594,7 @@ export class Refresher {
|
|
|
594
594
|
}
|
|
595
595
|
render() {
|
|
596
596
|
const mode = getIonMode(this);
|
|
597
|
-
return (h(Host, { key: '
|
|
597
|
+
return (h(Host, { key: 'af60b9453ee4bbf61ed9651d509700fddd91f2c2', slot: "fixed", class: {
|
|
598
598
|
[mode]: true,
|
|
599
599
|
// Used internally for styling
|
|
600
600
|
[`refresher-${mode}`]: true,
|
|
@@ -52,7 +52,7 @@ export class RefresherContent {
|
|
|
52
52
|
const pullingIcon = this.pullingIcon;
|
|
53
53
|
const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
|
|
54
54
|
const mode = getIonMode(this);
|
|
55
|
-
return (h(Host, { key: '
|
|
55
|
+
return (h(Host, { key: '85e47044192d174d82e0a8cc6171e862c395f385', class: mode }, h("div", { key: 'e8ce4fc1cad510da18988cb8c1e095c62a7af418', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { class: "refresher-pulling-icon" }, h("div", { class: "spinner-arrow-container" }, h("ion-spinner", { name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { class: "arrow-container" }, h("ion-icon", { icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { class: "refresher-pulling-icon" }, h("ion-icon", { icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: 'a55e3bd94ae381d1502da2799472b6bd1402487c', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { class: "refresher-refreshing-icon" }, h("ion-spinner", { name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
|
|
56
56
|
}
|
|
57
57
|
static get is() { return "ion-refresher-content"; }
|
|
58
58
|
static get properties() {
|
|
@@ -20,7 +20,7 @@ export class Reorder {
|
|
|
20
20
|
render() {
|
|
21
21
|
const mode = getIonMode(this);
|
|
22
22
|
const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
|
|
23
|
-
return (h(Host, { key: '
|
|
23
|
+
return (h(Host, { key: '811f71aa6f4b45ee8a597f504af6c43d34cc8c53', class: mode }, h("slot", { key: '78e1898b412b322053fe924db7934d5840184bfc' }, h("ion-icon", { key: '171f86c625d64ce3c5b5ebc54372a6573fc437ef', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
|
|
24
24
|
}
|
|
25
25
|
static get is() { return "ion-reorder"; }
|
|
26
26
|
static get encapsulation() { return "shadow"; }
|
|
@@ -238,7 +238,7 @@ export class ReorderGroup {
|
|
|
238
238
|
}
|
|
239
239
|
render() {
|
|
240
240
|
const mode = getIonMode(this);
|
|
241
|
-
return (h(Host, { key: '
|
|
241
|
+
return (h(Host, { key: '5a8c5c11fa48ff2cec319a1a07ba74427c2a42e5', class: {
|
|
242
242
|
[mode]: true,
|
|
243
243
|
'reorder-enabled': !this.disabled,
|
|
244
244
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -59,7 +59,7 @@ export class RippleEffect {
|
|
|
59
59
|
}
|
|
60
60
|
render() {
|
|
61
61
|
const mode = getIonMode(this);
|
|
62
|
-
return (h(Host, { key: '
|
|
62
|
+
return (h(Host, { key: '9f2578664e5ff8a0a7e27cd90b2339bd430e72b8', role: "presentation", class: {
|
|
63
63
|
[mode]: true,
|
|
64
64
|
unbounded: this.unbounded,
|
|
65
65
|
} }));
|
|
@@ -23,10 +23,10 @@ export class RouterLink {
|
|
|
23
23
|
rel: this.rel,
|
|
24
24
|
target: this.target,
|
|
25
25
|
};
|
|
26
|
-
return (h(Host, { key: '
|
|
26
|
+
return (h(Host, { key: 'ca8b357234ae511a20f6a47487bb86cbaaa5f5ef', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
27
27
|
[mode]: true,
|
|
28
28
|
'ion-activatable': true,
|
|
29
|
-
}) }, h("a", Object.assign({ key: '
|
|
29
|
+
}) }, h("a", Object.assign({ key: 'f590738389776d480014f18f599d753c68840e49' }, attrs), h("slot", { key: '525ff073d71ede310e9f790b49f7414bf5a0919b' }))));
|
|
30
30
|
}
|
|
31
31
|
static get is() { return "ion-router-link"; }
|
|
32
32
|
static get encapsulation() { return "shadow"; }
|
|
@@ -177,7 +177,7 @@ export class RouterOutlet {
|
|
|
177
177
|
return true;
|
|
178
178
|
}
|
|
179
179
|
render() {
|
|
180
|
-
return h("slot", { key: '
|
|
180
|
+
return h("slot", { key: 'e4eaa40478f70742d0ff7602ed5f83879da9f1b4' });
|
|
181
181
|
}
|
|
182
182
|
static get is() { return "ion-router-outlet"; }
|
|
183
183
|
static get encapsulation() { return "shadow"; }
|
|
@@ -5,7 +5,7 @@ import { Host, h } from "@stencil/core";
|
|
|
5
5
|
import { getIonMode } from "../../global/ionic-global";
|
|
6
6
|
export class Row {
|
|
7
7
|
render() {
|
|
8
|
-
return (h(Host, { key: '
|
|
8
|
+
return (h(Host, { key: '36d12784e6f8339a1d03ff6f03af5c7b3f437293', class: getIonMode(this) }, h("slot", { key: '54cc627f95bb091d31a550aca00b14ab73d2f1bf' })));
|
|
9
9
|
}
|
|
10
10
|
static get is() { return "ion-row"; }
|
|
11
11
|
static get encapsulation() { return "shadow"; }
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { Host, forceUpdate, h } from "@stencil/core";
|
|
5
|
-
import { debounceEvent, raf, componentOnReady } from "../../utils/helpers";
|
|
5
|
+
import { debounceEvent, raf, componentOnReady, inheritAttributes } from "../../utils/helpers";
|
|
6
6
|
import { isRTL } from "../../utils/rtl/index";
|
|
7
7
|
import { createColorClasses } from "../../utils/theme";
|
|
8
8
|
import { arrowBackSharp, closeCircle, closeSharp, searchOutline, searchSharp } from "ionicons/icons";
|
|
@@ -16,6 +16,7 @@ export class Searchbar {
|
|
|
16
16
|
this.isCancelVisible = false;
|
|
17
17
|
this.shouldAlignLeft = true;
|
|
18
18
|
this.inputId = `ion-searchbar-${searchbarIds++}`;
|
|
19
|
+
this.inheritedAttributes = {};
|
|
19
20
|
/**
|
|
20
21
|
* Clears the input field and triggers the control change.
|
|
21
22
|
*/
|
|
@@ -116,6 +117,7 @@ export class Searchbar {
|
|
|
116
117
|
this.noAnimate = true;
|
|
117
118
|
this.color = undefined;
|
|
118
119
|
this.animated = false;
|
|
120
|
+
this.autocapitalize = undefined;
|
|
119
121
|
this.autocomplete = 'off';
|
|
120
122
|
this.autocorrect = 'off';
|
|
121
123
|
this.cancelButtonIcon = config.get('backButtonIcon', arrowBackSharp);
|
|
@@ -125,6 +127,8 @@ export class Searchbar {
|
|
|
125
127
|
this.disabled = false;
|
|
126
128
|
this.inputmode = undefined;
|
|
127
129
|
this.enterkeyhint = undefined;
|
|
130
|
+
this.maxlength = undefined;
|
|
131
|
+
this.minlength = undefined;
|
|
128
132
|
this.name = this.inputId;
|
|
129
133
|
this.placeholder = 'Search';
|
|
130
134
|
this.searchIcon = undefined;
|
|
@@ -134,6 +138,21 @@ export class Searchbar {
|
|
|
134
138
|
this.type = 'search';
|
|
135
139
|
this.value = '';
|
|
136
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* lang and dir are globally enumerated attributes.
|
|
143
|
+
* As a result, creating these as properties
|
|
144
|
+
* can have unintended side effects. Instead, we
|
|
145
|
+
* listen for attribute changes and inherit them
|
|
146
|
+
* to the inner `<input>` element.
|
|
147
|
+
*/
|
|
148
|
+
onLangChanged(newValue) {
|
|
149
|
+
this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { lang: newValue });
|
|
150
|
+
forceUpdate(this);
|
|
151
|
+
}
|
|
152
|
+
onDirChanged(newValue) {
|
|
153
|
+
this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { dir: newValue });
|
|
154
|
+
forceUpdate(this);
|
|
155
|
+
}
|
|
137
156
|
debounceChanged() {
|
|
138
157
|
const { ionInput, debounce, originalIonInput } = this;
|
|
139
158
|
/**
|
|
@@ -158,6 +177,9 @@ export class Searchbar {
|
|
|
158
177
|
connectedCallback() {
|
|
159
178
|
this.emitStyle();
|
|
160
179
|
}
|
|
180
|
+
componentWillLoad() {
|
|
181
|
+
this.inheritedAttributes = Object.assign({}, inheritAttributes(this.el, ['lang', 'dir']));
|
|
182
|
+
}
|
|
161
183
|
componentDidLoad() {
|
|
162
184
|
this.originalIonInput = this.ionInput;
|
|
163
185
|
this.positionElements();
|
|
@@ -356,8 +378,8 @@ export class Searchbar {
|
|
|
356
378
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
357
379
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
358
380
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
359
|
-
const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '
|
|
360
|
-
return (h(Host, { key: '
|
|
381
|
+
const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '31e1551828be00d292dbccc68acd43a0df27839e', "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" }, h("div", { key: '925d1e54980c00c7e268d4bb1fb591d7c473f1e7', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
382
|
+
return (h(Host, { key: 'c677626a8d9395063dd41dc4b1df8eeefde0fb4c', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
|
|
361
383
|
[mode]: true,
|
|
362
384
|
'searchbar-animated': animated,
|
|
363
385
|
'searchbar-disabled': this.disabled,
|
|
@@ -367,14 +389,14 @@ export class Searchbar {
|
|
|
367
389
|
'searchbar-has-focus': this.focused,
|
|
368
390
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
369
391
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
370
|
-
}) }, h("div", { key: '
|
|
392
|
+
}) }, h("div", { key: '6752074931e6ce320a7f05844d471627bd896cf2', class: "searchbar-input-container" }, h("input", Object.assign({ key: 'f74ba66f1eb9ec26ec3e8a0d149d11eadf106a67', "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: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, h("ion-icon", { key: '7817d383dab14abf89638ffdde796cf4412fde9e', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: 'edd2093966b8250cb158a053ebb8a2cd5525b589', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
371
393
|
/**
|
|
372
394
|
* This prevents mobile browsers from
|
|
373
395
|
* blurring the input when the clear
|
|
374
396
|
* button is activated.
|
|
375
397
|
*/
|
|
376
398
|
ev.preventDefault();
|
|
377
|
-
}, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '
|
|
399
|
+
}, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: 'a1deef96cfdeb19f28fc77fda63c04c7424348c7', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
378
400
|
}
|
|
379
401
|
static get is() { return "ion-searchbar"; }
|
|
380
402
|
static get encapsulation() { return "scoped"; }
|
|
@@ -433,6 +455,23 @@ export class Searchbar {
|
|
|
433
455
|
"reflect": false,
|
|
434
456
|
"defaultValue": "false"
|
|
435
457
|
},
|
|
458
|
+
"autocapitalize": {
|
|
459
|
+
"type": "string",
|
|
460
|
+
"mutable": false,
|
|
461
|
+
"complexType": {
|
|
462
|
+
"original": "string",
|
|
463
|
+
"resolved": "string",
|
|
464
|
+
"references": {}
|
|
465
|
+
},
|
|
466
|
+
"required": true,
|
|
467
|
+
"optional": false,
|
|
468
|
+
"docs": {
|
|
469
|
+
"tags": [],
|
|
470
|
+
"text": "Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.\nAvailable options: `\"off\"`, `\"none\"`, `\"on\"`, `\"sentences\"`, `\"words\"`, `\"characters\"`."
|
|
471
|
+
},
|
|
472
|
+
"attribute": "autocapitalize",
|
|
473
|
+
"reflect": false
|
|
474
|
+
},
|
|
436
475
|
"autocomplete": {
|
|
437
476
|
"type": "string",
|
|
438
477
|
"mutable": false,
|
|
@@ -597,6 +636,40 @@ export class Searchbar {
|
|
|
597
636
|
"attribute": "enterkeyhint",
|
|
598
637
|
"reflect": false
|
|
599
638
|
},
|
|
639
|
+
"maxlength": {
|
|
640
|
+
"type": "number",
|
|
641
|
+
"mutable": false,
|
|
642
|
+
"complexType": {
|
|
643
|
+
"original": "number",
|
|
644
|
+
"resolved": "number | undefined",
|
|
645
|
+
"references": {}
|
|
646
|
+
},
|
|
647
|
+
"required": false,
|
|
648
|
+
"optional": true,
|
|
649
|
+
"docs": {
|
|
650
|
+
"tags": [],
|
|
651
|
+
"text": "This attribute specifies the maximum number of characters that the user can enter."
|
|
652
|
+
},
|
|
653
|
+
"attribute": "maxlength",
|
|
654
|
+
"reflect": false
|
|
655
|
+
},
|
|
656
|
+
"minlength": {
|
|
657
|
+
"type": "number",
|
|
658
|
+
"mutable": false,
|
|
659
|
+
"complexType": {
|
|
660
|
+
"original": "number",
|
|
661
|
+
"resolved": "number | undefined",
|
|
662
|
+
"references": {}
|
|
663
|
+
},
|
|
664
|
+
"required": false,
|
|
665
|
+
"optional": true,
|
|
666
|
+
"docs": {
|
|
667
|
+
"tags": [],
|
|
668
|
+
"text": "This attribute specifies the minimum number of characters that the user can enter."
|
|
669
|
+
},
|
|
670
|
+
"attribute": "minlength",
|
|
671
|
+
"reflect": false
|
|
672
|
+
},
|
|
600
673
|
"name": {
|
|
601
674
|
"type": "string",
|
|
602
675
|
"mutable": false,
|
|
@@ -922,6 +995,12 @@ export class Searchbar {
|
|
|
922
995
|
static get elementRef() { return "el"; }
|
|
923
996
|
static get watchers() {
|
|
924
997
|
return [{
|
|
998
|
+
"propName": "lang",
|
|
999
|
+
"methodName": "onLangChanged"
|
|
1000
|
+
}, {
|
|
1001
|
+
"propName": "dir",
|
|
1002
|
+
"methodName": "onDirChanged"
|
|
1003
|
+
}, {
|
|
925
1004
|
"propName": "debounce",
|
|
926
1005
|
"methodName": "debounceChanged"
|
|
927
1006
|
}, {
|
|
@@ -4,12 +4,30 @@
|
|
|
4
4
|
import { newSpecPage } from "@stencil/core/testing";
|
|
5
5
|
import { Searchbar } from "../searchbar";
|
|
6
6
|
describe('searchbar: rendering', () => {
|
|
7
|
-
it('should inherit
|
|
7
|
+
it('should inherit properties on load', async () => {
|
|
8
8
|
const page = await newSpecPage({
|
|
9
9
|
components: [Searchbar],
|
|
10
|
-
html: '<ion-searchbar name="search"></ion-searchbar>',
|
|
10
|
+
html: '<ion-searchbar autocapitalize="off" maxlength="4" minlength="2" name="search"></ion-searchbar>',
|
|
11
11
|
});
|
|
12
12
|
const nativeEl = page.body.querySelector('ion-searchbar input');
|
|
13
13
|
expect(nativeEl.getAttribute('name')).toBe('search');
|
|
14
|
+
expect(nativeEl.getAttribute('maxlength')).toBe('4');
|
|
15
|
+
expect(nativeEl.getAttribute('minlength')).toBe('2');
|
|
16
|
+
expect(nativeEl.getAttribute('autocapitalize')).toBe('off');
|
|
17
|
+
});
|
|
18
|
+
it('should inherit watched attributes', async () => {
|
|
19
|
+
const page = await newSpecPage({
|
|
20
|
+
components: [Searchbar],
|
|
21
|
+
html: '<ion-searchbar dir="ltr" lang="en-US"></ion-searchbar>',
|
|
22
|
+
});
|
|
23
|
+
const searchbarEl = page.body.querySelector('ion-searchbar');
|
|
24
|
+
const nativeEl = searchbarEl.querySelector('input');
|
|
25
|
+
expect(nativeEl.getAttribute('lang')).toBe('en-US');
|
|
26
|
+
expect(nativeEl.getAttribute('dir')).toBe('ltr');
|
|
27
|
+
searchbarEl.setAttribute('lang', 'es-ES');
|
|
28
|
+
searchbarEl.setAttribute('dir', 'rtl');
|
|
29
|
+
await page.waitForChanges();
|
|
30
|
+
expect(nativeEl.getAttribute('lang')).toBe('es-ES');
|
|
31
|
+
expect(nativeEl.getAttribute('dir')).toBe('rtl');
|
|
14
32
|
});
|
|
15
33
|
});
|
|
@@ -420,14 +420,14 @@ export class Segment {
|
|
|
420
420
|
}
|
|
421
421
|
render() {
|
|
422
422
|
const mode = getIonMode(this);
|
|
423
|
-
return (h(Host, { key: '
|
|
423
|
+
return (h(Host, { key: '0cf2e11e5599a0de2b0c7dc2a46917f4894ceb05', role: "tablist", onClick: this.onClick, class: createColorClasses(this.color, {
|
|
424
424
|
[mode]: true,
|
|
425
425
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
426
426
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
427
427
|
'segment-activated': this.activated,
|
|
428
428
|
'segment-disabled': this.disabled,
|
|
429
429
|
'segment-scrollable': this.scrollable,
|
|
430
|
-
}) }, h("slot", { key: '
|
|
430
|
+
}) }, h("slot", { key: '913f2e4a823d3a58ea074dfb95314651c46739db' })));
|
|
431
431
|
}
|
|
432
432
|
static get is() { return "ion-segment"; }
|
|
433
433
|
static get encapsulation() { return "shadow"; }
|
|
@@ -78,7 +78,7 @@ export class SegmentButton {
|
|
|
78
78
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
79
79
|
const mode = getIonMode(this);
|
|
80
80
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
81
|
-
return (h(Host, { key: '
|
|
81
|
+
return (h(Host, { key: '5fda697569eb875991bb948be553ee0716ac9aa2', class: {
|
|
82
82
|
[mode]: true,
|
|
83
83
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
84
84
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -94,10 +94,10 @@ export class SegmentButton {
|
|
|
94
94
|
'ion-activatable': true,
|
|
95
95
|
'ion-activatable-instant': true,
|
|
96
96
|
'ion-focusable': true,
|
|
97
|
-
} }, h("button", Object.assign({ key: '
|
|
97
|
+
} }, h("button", Object.assign({ key: '86686e25d3bb8f487869a4d34c1e99a5d04105ec', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), h("span", { key: '5c22e853fd385e2b7825335113346537ecefed31', class: "button-inner" }, h("slot", { key: 'cef944331f246a820747f98dff55e844281cb822' })), mode === 'md' && h("ion-ripple-effect", null)), h("div", { key: '737b4b08c122a7738d5a5ed7a44f544da4c67649', part: "indicator", class: {
|
|
98
98
|
'segment-button-indicator': true,
|
|
99
99
|
'segment-button-indicator-animated': true,
|
|
100
|
-
} }, h("div", { key: '
|
|
100
|
+
} }, h("div", { key: 'e78696ff315d7e8ba76b97b82ea341379e9be7e5', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
101
101
|
}
|
|
102
102
|
static get is() { return "ion-segment-button"; }
|
|
103
103
|
static get encapsulation() { return "shadow"; }
|
|
@@ -10,7 +10,7 @@ export class SelectOption {
|
|
|
10
10
|
this.value = undefined;
|
|
11
11
|
}
|
|
12
12
|
render() {
|
|
13
|
-
return h(Host, { key: '
|
|
13
|
+
return h(Host, { key: '69bd6a2dbbc0ab32cc607a74df10f3fb3d6e3295', role: "option", id: this.inputId, class: getIonMode(this) });
|
|
14
14
|
}
|
|
15
15
|
static get is() { return "ion-select-option"; }
|
|
16
16
|
static get encapsulation() { return "shadow"; }
|
|
@@ -102,7 +102,7 @@ export class SelectPopover {
|
|
|
102
102
|
render() {
|
|
103
103
|
const { header, message, options, subHeader } = this;
|
|
104
104
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
105
|
-
return (h(Host, { key: '
|
|
105
|
+
return (h(Host, { key: '46e495ce7001131eb8b54073018de89401a99b81', class: getIonMode(this) }, h("ion-list", { key: 'afdb72359c3751c6b372af1a778398463d1da397' }, header !== undefined && h("ion-list-header", null, header), hasSubHeaderOrMessage && (h("ion-item", null, h("ion-label", { class: "ion-text-wrap" }, subHeader !== undefined && h("h3", null, subHeader), message !== undefined && h("p", null, message)))), this.renderOptions(options))));
|
|
106
106
|
}
|
|
107
107
|
static get is() { return "ion-select-popover"; }
|
|
108
108
|
static get encapsulation() { return "scoped"; }
|
|
@@ -25,11 +25,11 @@ export class SkeletonText {
|
|
|
25
25
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
26
26
|
const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
|
|
27
27
|
const mode = getIonMode(this);
|
|
28
|
-
return (h(Host, { key: '
|
|
28
|
+
return (h(Host, { key: '2d9e785d3026faf76d0e970e3bfe33258f29046b', class: {
|
|
29
29
|
[mode]: true,
|
|
30
30
|
'skeleton-text-animated': animated,
|
|
31
31
|
'in-media': inMedia,
|
|
32
|
-
} }, h("span", { key: '
|
|
32
|
+
} }, h("span", { key: 'd1800f5fd176a8daa216e8b889e427770bf64a05' }, "\u00A0")));
|
|
33
33
|
}
|
|
34
34
|
static get is() { return "ion-skeleton-text"; }
|
|
35
35
|
static get encapsulation() { return "shadow"; }
|
|
@@ -39,7 +39,7 @@ export class Spinner {
|
|
|
39
39
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
|
-
return (h(Host, { key: '
|
|
42
|
+
return (h(Host, { key: 'cfd0e19ebf41412300d1ba80721c12b4b8d32263', class: createColorClasses(self.color, {
|
|
43
43
|
[mode]: true,
|
|
44
44
|
[`spinner-${spinnerName}`]: true,
|
|
45
45
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|
|
@@ -108,12 +108,12 @@ export class SplitPane {
|
|
|
108
108
|
}
|
|
109
109
|
render() {
|
|
110
110
|
const mode = getIonMode(this);
|
|
111
|
-
return (h(Host, { key: '
|
|
111
|
+
return (h(Host, { key: '220208ab603f4f307672a73c4e9e8218aa5196dc', class: {
|
|
112
112
|
[mode]: true,
|
|
113
113
|
// Used internally for styling
|
|
114
114
|
[`split-pane-${mode}`]: true,
|
|
115
115
|
'split-pane-visible': this.visible,
|
|
116
|
-
} }, h("slot", { key: '
|
|
116
|
+
} }, h("slot", { key: 'bbf9321d4728265a04bb969a74ffa574206b9060' })));
|
|
117
117
|
}
|
|
118
118
|
static get is() { return "ion-split-pane"; }
|
|
119
119
|
static get encapsulation() { return "shadow"; }
|