@venite/components 0.16.2 → 0.16.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ion-button_13.cjs.entry.js +1787 -0
- package/dist/cjs/ion-checkbox_3.cjs.entry.js +235 -0
- package/dist/cjs/ion-segment_16.cjs.entry.js +5 -4
- package/dist/cjs/ldf-day-name_5.cjs.entry.js +1 -2
- package/dist/cjs/ldf-editable-add-block-menu.cjs.entry.js +2 -2
- package/dist/cjs/ldf-editable-filter-documents.cjs.entry.js +1 -1
- package/dist/cjs/ldf-editable-lookup_2.cjs.entry.js +3 -3
- package/dist/cjs/ldf-editable-metadata.cjs.entry.js +3 -3
- package/dist/cjs/ldf.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{option-a9f12c93.js → option-1ebd4514.js} +6 -2
- package/dist/cjs/{rubric-85fc7418.js → rubric-662d8baa.js} +44 -5
- package/dist/cjs/{specific-class-acf1bb37.js → specific-class-d80d272a.js} +2 -2
- package/dist/collection/components/liturgical-document/dist/liturgical-document.js +6 -1
- package/dist/collection/components/liturgical-document/liturgical-document.js +21 -1
- package/dist/collection/components/option/dist/option.js +318 -0
- package/dist/collection/components/prayers-and-thanksgivings/dist/prayers-and-thanksgivings.js +258 -0
- package/dist/collection/components/prayers-and-thanksgivings/prayers-and-thanksgivings.js +55 -36
- package/dist/collection/components/psalm/dist/psalm.js +0 -1
- package/dist/collection/components/psalm/psalm.js +0 -1
- package/dist/collection/components/string/dist/string.js +0 -1
- package/dist/collection/components/string/string.js +0 -1
- package/dist/collection/components/text/dist/text.js +1 -1
- package/dist/collection/components/text/text.js +1 -1
- package/dist/esm/{app-globals-2b41bd8d.js → app-globals-729b03cf.js} +1 -1
- package/dist/esm/{index-1885f1b8.js → index-734a6b69.js} +1 -1
- package/dist/esm/{index-8b9e221a.js → index-9579282b.js} +3 -3
- package/dist/esm/{index-dcd553ac.js → index-f0f6a379.js} +1 -1
- package/dist/esm/ion-action-sheet.entry.js +3 -3
- package/dist/esm/ion-alert.entry.js +3 -3
- package/dist/esm/ion-app.entry.js +3 -3
- package/dist/esm/ion-avatar.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-badge.entry.js +2 -2
- package/dist/esm/ion-button_13.entry.js +1771 -0
- package/dist/esm/ion-card-content_6.entry.js +3 -3
- package/dist/esm/ion-card-subtitle.entry.js +2 -2
- package/dist/esm/ion-card_2.entry.js +2 -2
- package/dist/esm/ion-checkbox_3.entry.js +229 -0
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-datetime_2.entry.js +3 -3
- package/dist/esm/ion-fab-button.entry.js +2 -2
- package/dist/esm/ion-fab-list.entry.js +2 -2
- package/dist/esm/ion-fab.entry.js +2 -2
- package/dist/esm/ion-footer.entry.js +2 -2
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll-content.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll.entry.js +2 -2
- package/dist/esm/ion-input_2.entry.js +2 -2
- package/dist/esm/ion-item-divider.entry.js +2 -2
- package/dist/esm/ion-item-group.entry.js +2 -2
- package/dist/esm/ion-item-option.entry.js +2 -2
- package/dist/esm/ion-item-options.entry.js +2 -2
- package/dist/esm/ion-item-sliding.entry.js +2 -2
- package/dist/esm/ion-list-header.entry.js +2 -2
- package/dist/esm/ion-loading.entry.js +3 -3
- package/dist/esm/ion-menu-button.entry.js +4 -4
- package/dist/esm/ion-menu-toggle.entry.js +4 -4
- package/dist/esm/ion-menu.entry.js +3 -3
- package/dist/esm/ion-modal.entry.js +4 -4
- package/dist/esm/ion-nav-link.entry.js +1 -1
- package/dist/esm/ion-nav.entry.js +3 -3
- package/dist/esm/ion-note.entry.js +2 -2
- package/dist/esm/ion-picker-column.entry.js +2 -2
- package/dist/esm/ion-picker.entry.js +3 -3
- package/dist/esm/ion-popover.entry.js +4 -4
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +2 -2
- package/dist/esm/ion-range.entry.js +2 -2
- package/dist/esm/ion-refresher-content.entry.js +2 -2
- package/dist/esm/ion-refresher.entry.js +2 -2
- package/dist/esm/ion-reorder-group.entry.js +2 -2
- package/dist/esm/ion-reorder.entry.js +2 -2
- package/dist/esm/ion-route-redirect.entry.js +1 -1
- package/dist/esm/ion-route.entry.js +1 -1
- package/dist/esm/ion-router-link.entry.js +2 -2
- package/dist/esm/ion-router-outlet.entry.js +3 -3
- package/dist/esm/ion-router.entry.js +1 -1
- package/dist/esm/ion-segment_16.entry.js +8 -7
- package/dist/esm/ion-select-popover.entry.js +3 -3
- package/dist/esm/ion-select_2.entry.js +3 -3
- package/dist/esm/ion-slide.entry.js +2 -2
- package/dist/esm/ion-slides.entry.js +2 -2
- 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.entry.js +2 -2
- package/dist/esm/ion-tab-button.entry.js +2 -2
- package/dist/esm/ion-tab.entry.js +1 -1
- package/dist/esm/ion-tabs.entry.js +1 -1
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-thumbnail.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +3 -3
- package/dist/esm/ion-virtual-scroll.entry.js +1 -1
- package/dist/esm/{ionic-global-fef4299f.js → ionic-global-ef89a0a5.js} +1 -1
- package/dist/esm/{ios.transition-2460f61e.js → ios.transition-b1be0863.js} +2 -2
- package/dist/esm/ldf-day-name_5.entry.js +4 -5
- package/dist/esm/ldf-editable-add-block-menu.entry.js +3 -3
- package/dist/esm/ldf-editable-condition-piece.entry.js +1 -1
- package/dist/esm/ldf-editable-condition.entry.js +1 -1
- package/dist/esm/ldf-editable-filter-documents.entry.js +2 -2
- package/dist/esm/ldf-editable-lookup_2.entry.js +4 -4
- package/dist/esm/ldf-editable-metadata.entry.js +4 -4
- package/dist/esm/ldf-editable-preference-option.entry.js +1 -1
- package/dist/esm/ldf-editable-preference.entry.js +1 -1
- package/dist/esm/ldf-editable-preferences.entry.js +3 -3
- package/dist/esm/ldf-editable-string-list.entry.js +1 -1
- package/dist/esm/ldf-editor-cursors.entry.js +1 -1
- package/dist/esm/ldf-editor.entry.js +1 -1
- package/dist/esm/ldf.js +4 -4
- package/dist/esm/loader.js +4 -4
- package/dist/esm/{md.transition-7eb37dd1.js → md.transition-1763f475.js} +2 -2
- package/dist/esm/{menu-toggle-util-d6bed342.js → menu-toggle-util-29e61ff3.js} +1 -1
- package/dist/esm/{option-042c9673.js → option-47d50244.js} +6 -2
- package/dist/esm/{overlays-e1d5aa58.js → overlays-06b43b65.js} +2 -2
- package/dist/esm/{rubric-9c750946.js → rubric-2330a030.js} +44 -5
- package/dist/esm/{specific-class-2df4b72a.js → specific-class-28e26e40.js} +2 -2
- package/dist/esm/{status-tap-900b721a.js → status-tap-7458bd71.js} +1 -1
- package/dist/ldf/ldf.esm.js +1 -1
- package/dist/ldf/{p-a7a10747.entry.js → p-018e57db.entry.js} +1 -1
- package/dist/ldf/p-02ef484e.entry.js +1 -0
- package/dist/ldf/{p-5bfa9969.entry.js → p-04715bf0.entry.js} +1 -1
- package/dist/ldf/{p-8cb241a8.entry.js → p-0651768a.entry.js} +1 -1
- package/dist/ldf/{p-a80bce6a.entry.js → p-07d6d3ad.entry.js} +1 -1
- package/dist/ldf/p-08584ccc.entry.js +1 -0
- package/dist/ldf/{p-d3a17399.entry.js → p-0873a34a.entry.js} +1 -1
- package/dist/ldf/{p-5febfbde.entry.js → p-0f69db87.entry.js} +1 -1
- package/dist/ldf/{p-6b6b9f77.entry.js → p-1504379f.entry.js} +1 -1
- package/dist/ldf/{p-110c6e85.entry.js → p-1a8e2899.entry.js} +1 -1
- package/dist/ldf/p-21e2f0a3.entry.js +1 -0
- package/dist/ldf/{p-6c3d4341.entry.js → p-25a736f1.entry.js} +1 -1
- package/dist/ldf/{p-43d7a734.entry.js → p-2c36a583.entry.js} +1 -1
- package/dist/ldf/{p-4c8f895f.entry.js → p-2fa1c501.entry.js} +1 -1
- package/dist/ldf/{p-a0b9b689.entry.js → p-302dc0d5.entry.js} +1 -1
- package/dist/ldf/{p-54f83929.entry.js → p-327b14ac.entry.js} +1 -1
- package/dist/ldf/{p-4d5b52ad.entry.js → p-32f7ba8e.entry.js} +1 -1
- package/dist/ldf/{p-8a064810.entry.js → p-3545fcdc.entry.js} +1 -1
- package/dist/ldf/{p-8c8bf861.entry.js → p-374118d7.entry.js} +1 -1
- package/dist/ldf/p-37f356a4.entry.js +1 -0
- package/dist/ldf/{p-7f7de09a.entry.js → p-380f8655.entry.js} +1 -1
- package/dist/ldf/{p-7df0687c.entry.js → p-3c9930ff.entry.js} +1 -1
- package/dist/ldf/{p-dbdb2b0a.entry.js → p-3f39c2ad.entry.js} +1 -1
- package/dist/ldf/{p-35680ca6.entry.js → p-430c418a.entry.js} +1 -1
- package/dist/ldf/{p-986921d2.js → p-48e44122.js} +1 -1
- package/dist/ldf/{p-4b154310.entry.js → p-4a4380fa.entry.js} +1 -1
- package/dist/ldf/p-4b80de48.js +1 -0
- package/dist/ldf/{p-06bc76d9.entry.js → p-4d392128.entry.js} +1 -1
- package/dist/ldf/p-4e0b3c0f.entry.js +1 -0
- package/dist/ldf/{p-b631cadf.entry.js → p-52656429.entry.js} +1 -1
- package/dist/ldf/p-53c807a4.js +1 -0
- package/dist/ldf/{p-91969280.js → p-55d797c1.js} +1 -1
- package/dist/ldf/{p-71ed0c0f.entry.js → p-59340423.entry.js} +1 -1
- package/dist/ldf/{p-0c8f1542.entry.js → p-5be7ff17.entry.js} +1 -1
- package/dist/ldf/p-5bf20b51.js +1 -0
- package/dist/ldf/{p-ae3cd06a.entry.js → p-63b5daf6.entry.js} +1 -1
- package/dist/ldf/{p-0afd3d32.entry.js → p-66a7385e.entry.js} +1 -1
- package/dist/ldf/p-698a3399.entry.js +1 -0
- package/dist/ldf/{p-4d92e32b.entry.js → p-69f85ad3.entry.js} +1 -1
- package/dist/ldf/{p-0cb749f6.entry.js → p-6fe24d85.entry.js} +1 -1
- package/dist/ldf/{p-ceb4c199.entry.js → p-70e47f8b.entry.js} +1 -1
- package/dist/ldf/{p-e778bf3c.entry.js → p-73a16936.entry.js} +1 -1
- package/dist/ldf/{p-bacac874.entry.js → p-79a526a1.entry.js} +1 -1
- package/dist/ldf/{p-20f5f7c0.entry.js → p-7abeb82c.entry.js} +1 -1
- package/dist/ldf/{p-79997a72.entry.js → p-7df11f48.entry.js} +1 -1
- package/dist/ldf/{p-91cef52f.entry.js → p-7efa633b.entry.js} +1 -1
- package/dist/ldf/{p-8ed588f7.entry.js → p-84f38db6.entry.js} +1 -1
- package/dist/ldf/{p-5a74ad40.entry.js → p-8767a74e.entry.js} +1 -1
- package/dist/ldf/{p-7fba586d.entry.js → p-8932ec85.entry.js} +1 -1
- package/dist/ldf/{p-74e1596c.entry.js → p-8c2727db.entry.js} +1 -1
- package/dist/ldf/{p-913c92ca.entry.js → p-972e4f2a.entry.js} +1 -1
- package/dist/ldf/{p-0ce10dcd.js → p-978e2c6d.js} +1 -1
- package/dist/ldf/p-9bd5d1d4.entry.js +1 -0
- package/dist/ldf/{p-5fa1dcfb.entry.js → p-9c397c49.entry.js} +1 -1
- package/dist/ldf/p-9e2c172e.entry.js +1 -0
- package/dist/ldf/{p-6b0fab5d.js → p-9e82b403.js} +2 -2
- package/dist/ldf/{p-2b9556d3.entry.js → p-a98c89d1.entry.js} +1 -1
- package/dist/ldf/{p-c3dbb344.entry.js → p-ac7a17ce.entry.js} +1 -1
- package/dist/ldf/{p-3b236b73.js → p-acbbd1ec.js} +1 -1
- package/dist/ldf/p-b1242016.js +1 -0
- package/dist/ldf/{p-50d56c76.entry.js → p-b7388aec.entry.js} +1 -1
- package/dist/ldf/{p-37ead536.entry.js → p-b78336d7.entry.js} +1 -1
- package/dist/ldf/{p-9282f514.entry.js → p-ba021918.entry.js} +1 -1
- package/dist/ldf/{p-65c80b87.entry.js → p-c1bcd0a9.entry.js} +1 -1
- package/dist/ldf/{p-4c825920.entry.js → p-c1df632d.entry.js} +1 -1
- package/dist/ldf/{p-a467efd9.entry.js → p-c3042920.entry.js} +1 -1
- package/dist/ldf/{p-860e2e8c.entry.js → p-c3807857.entry.js} +1 -1
- package/dist/ldf/{p-faf3cb15.entry.js → p-c3841978.entry.js} +1 -1
- package/dist/ldf/{p-b7fe7b29.entry.js → p-c41e055c.entry.js} +1 -1
- package/dist/ldf/{p-5cefe450.entry.js → p-c6163f81.entry.js} +1 -1
- package/dist/ldf/{p-944c44a7.entry.js → p-c6b42618.entry.js} +1 -1
- package/dist/ldf/{p-1d8e06c7.entry.js → p-c74d3fd0.entry.js} +1 -1
- package/dist/ldf/{p-741e1b4e.entry.js → p-c82dd468.entry.js} +1 -1
- package/dist/ldf/{p-342e45c0.entry.js → p-ca698b8f.entry.js} +1 -1
- package/dist/ldf/p-ca7e0de9.entry.js +1 -0
- package/dist/ldf/{p-059fcd05.entry.js → p-cbfbb80c.entry.js} +1 -1
- package/dist/ldf/{p-a8264864.entry.js → p-d195c957.entry.js} +1 -1
- package/dist/ldf/{p-664b2872.js → p-d282d4f9.js} +1 -1
- package/dist/ldf/{p-bc59e89e.entry.js → p-d7966e9b.entry.js} +1 -1
- package/dist/ldf/{p-f562ae50.js → p-d7f8c770.js} +1 -1
- package/dist/ldf/{p-396025ba.entry.js → p-d7fa99cc.entry.js} +1 -1
- package/dist/ldf/{p-ae136041.entry.js → p-db435131.entry.js} +1 -1
- package/dist/ldf/{p-ae287f67.entry.js → p-dc445c36.entry.js} +1 -1
- package/dist/ldf/{p-385a3ecf.entry.js → p-dd99e42a.entry.js} +1 -1
- package/dist/ldf/{p-b8a8f9c8.js → p-de5bb5ad.js} +1 -1
- package/dist/ldf/{p-7e388cb7.entry.js → p-e0e12ae3.entry.js} +1 -1
- package/dist/ldf/{p-128ac9e9.entry.js → p-e215fd02.entry.js} +1 -1
- package/dist/ldf/{p-4b7027b1.entry.js → p-e4be11ad.entry.js} +1 -1
- package/dist/ldf/{p-8d6f1d6b.entry.js → p-ea66c343.entry.js} +1 -1
- package/dist/ldf/{p-ac9a93aa.entry.js → p-ec5eecdc.entry.js} +1 -1
- package/dist/ldf/{p-64c46765.js → p-f2ce126e.js} +1 -1
- package/dist/ldf/{p-186eed18.entry.js → p-fe59a676.entry.js} +1 -1
- package/dist/ldf/p-ff51dbd0.entry.js +1 -0
- package/dist/types/components/liturgical-document/liturgical-document.d.ts +2 -0
- package/dist/types/components/prayers-and-thanksgivings/prayers-and-thanksgivings.d.ts +1 -1
- package/dist/types/components.d.ts +8 -0
- package/package.json +2 -2
- package/dist/cjs/ion-button_3.cjs.entry.js +0 -413
- package/dist/cjs/ion-buttons_6.cjs.entry.js +0 -584
- package/dist/cjs/ion-content.cjs.entry.js +0 -303
- package/dist/cjs/ion-item_2.cjs.entry.js +0 -168
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +0 -93
- package/dist/cjs/ion-searchbar.cjs.entry.js +0 -330
- package/dist/cjs/ion-title.cjs.entry.js +0 -48
- package/dist/cjs/ldf-prayers-and-thanksgivings.cjs.entry.js +0 -108
- package/dist/esm/ion-button_3.entry.js +0 -407
- package/dist/esm/ion-buttons_6.entry.js +0 -575
- package/dist/esm/ion-content.entry.js +0 -299
- package/dist/esm/ion-item_2.entry.js +0 -163
- package/dist/esm/ion-ripple-effect.entry.js +0 -89
- package/dist/esm/ion-searchbar.entry.js +0 -326
- package/dist/esm/ion-title.entry.js +0 -44
- package/dist/esm/ldf-prayers-and-thanksgivings.entry.js +0 -104
- package/dist/ldf/p-01655d40.js +0 -1
- package/dist/ldf/p-07e48862.entry.js +0 -1
- package/dist/ldf/p-2471a9c7.entry.js +0 -1
- package/dist/ldf/p-356f9ee6.entry.js +0 -1
- package/dist/ldf/p-68f963c7.entry.js +0 -1
- package/dist/ldf/p-72718314.entry.js +0 -1
- package/dist/ldf/p-78ed7ef0.entry.js +0 -1
- package/dist/ldf/p-7aecb410.js +0 -1
- package/dist/ldf/p-7ccf2257.entry.js +0 -1
- package/dist/ldf/p-867f7c02.js +0 -1
- package/dist/ldf/p-8e1286c3.entry.js +0 -1
- package/dist/ldf/p-92461769.entry.js +0 -1
- package/dist/ldf/p-9382bbe1.entry.js +0 -1
- package/dist/ldf/p-96967103.entry.js +0 -1
- package/dist/ldf/p-accacaed.entry.js +0 -1
- package/dist/ldf/p-bcb82c8e.js +0 -1
- package/dist/ldf/p-c7c0acf1.entry.js +0 -1
- package/dist/ldf/p-cee7604d.entry.js +0 -1
- package/dist/ldf/p-e3ce57d7.entry.js +0 -1
- package/dist/ldf/p-ecb2e631.entry.js +0 -1
|
@@ -1,299 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, c as createEvent, a as readTask, f as forceUpdate, h, H as Host, d as getElement } from './index-dcd553ac.js';
|
|
2
|
-
import { g as getIonMode, i as isPlatform, c as config } from './ionic-global-fef4299f.js';
|
|
3
|
-
import { c as createColorClasses, h as hostContext } from './theme-74c22054.js';
|
|
4
|
-
|
|
5
|
-
const contentCss = ":host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.outer-content){--background:var(--ion-color-step-50, #f2f2f2)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);box-sizing:border-box;overflow:hidden}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.inner-scroll{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;will-change:scroll-position}.scroll-y{touch-action:pan-y;overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{touch-action:pan-x;overflow-x:var(--overflow);overscroll-behavior-x:contain}.scroll-x.scroll-y{touch-action:auto}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:\"\"}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){contain:none}:host(.content-sizing) .inner-scroll{position:relative}.transition-effect{display:none;position:absolute;left:-100%;width:100%;height:100%;opacity:0;pointer-events:none}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;right:0;width:10px;height:100%;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAgCAYAAAAIXrg4AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyhpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQ1IDc5LjE2MzQ5OSwgMjAxOC8wOC8xMy0xNjo0MDoyMiAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIDIwMTkgKE1hY2ludG9zaCkiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MTE3MDgzRkQ5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MTE3MDgzRkU5QTkyMTFFOUEwNzQ5MkJFREE1NUY2MjQiPiA8eG1wTU06RGVyaXZlZEZyb20gc3RSZWY6aW5zdGFuY2VJRD0ieG1wLmlpZDoxMTcwODNGQjlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIgc3RSZWY6ZG9jdW1lbnRJRD0ieG1wLmRpZDoxMTcwODNGQzlBOTIxMUU5QTA3NDkyQkVEQTU1RjYyNCIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PmePEuQAAABNSURBVHjaYvz//z8DIxAwMDAwATGMhmFmPDQuOSZks0AMmoJBaQHjkPfB0Lfg/2gQjVow+HPy/yHvg9GiYjQfjMbBqAWjFgy/4hogwADYqwdzxy5BuwAAAABJRU5ErkJggg==);background-repeat:repeat-y;background-size:10px 16px}::slotted([slot=fixed]){position:absolute}";
|
|
6
|
-
|
|
7
|
-
const Content = class {
|
|
8
|
-
constructor(hostRef) {
|
|
9
|
-
registerInstance(this, hostRef);
|
|
10
|
-
this.ionScrollStart = createEvent(this, "ionScrollStart", 7);
|
|
11
|
-
this.ionScroll = createEvent(this, "ionScroll", 7);
|
|
12
|
-
this.ionScrollEnd = createEvent(this, "ionScrollEnd", 7);
|
|
13
|
-
this.isScrolling = false;
|
|
14
|
-
this.lastScroll = 0;
|
|
15
|
-
this.queued = false;
|
|
16
|
-
this.cTop = -1;
|
|
17
|
-
this.cBottom = -1;
|
|
18
|
-
// Detail is used in a hot loop in the scroll event, by allocating it here
|
|
19
|
-
// V8 will be able to inline any read/write to it since it's a monomorphic class.
|
|
20
|
-
// https://mrale.ph/blog/2015/01/11/whats-up-with-monomorphism.html
|
|
21
|
-
this.detail = {
|
|
22
|
-
scrollTop: 0,
|
|
23
|
-
scrollLeft: 0,
|
|
24
|
-
type: 'scroll',
|
|
25
|
-
event: undefined,
|
|
26
|
-
startX: 0,
|
|
27
|
-
startY: 0,
|
|
28
|
-
startTime: 0,
|
|
29
|
-
currentX: 0,
|
|
30
|
-
currentY: 0,
|
|
31
|
-
velocityX: 0,
|
|
32
|
-
velocityY: 0,
|
|
33
|
-
deltaX: 0,
|
|
34
|
-
deltaY: 0,
|
|
35
|
-
currentTime: 0,
|
|
36
|
-
data: undefined,
|
|
37
|
-
isScrolling: true,
|
|
38
|
-
};
|
|
39
|
-
/**
|
|
40
|
-
* If `true`, the content will scroll behind the headers
|
|
41
|
-
* and footers. This effect can easily be seen by setting the toolbar
|
|
42
|
-
* to transparent.
|
|
43
|
-
*/
|
|
44
|
-
this.fullscreen = false;
|
|
45
|
-
/**
|
|
46
|
-
* If you want to enable the content scrolling in the X axis, set this property to `true`.
|
|
47
|
-
*/
|
|
48
|
-
this.scrollX = false;
|
|
49
|
-
/**
|
|
50
|
-
* If you want to disable the content scrolling in the Y axis, set this property to `false`.
|
|
51
|
-
*/
|
|
52
|
-
this.scrollY = true;
|
|
53
|
-
/**
|
|
54
|
-
* Because of performance reasons, ionScroll events are disabled by default, in order to enable them
|
|
55
|
-
* and start listening from (ionScroll), set this property to `true`.
|
|
56
|
-
*/
|
|
57
|
-
this.scrollEvents = false;
|
|
58
|
-
}
|
|
59
|
-
disconnectedCallback() {
|
|
60
|
-
this.onScrollEnd();
|
|
61
|
-
}
|
|
62
|
-
onAppLoad() {
|
|
63
|
-
this.resize();
|
|
64
|
-
}
|
|
65
|
-
onClick(ev) {
|
|
66
|
-
if (this.isScrolling) {
|
|
67
|
-
ev.preventDefault();
|
|
68
|
-
ev.stopPropagation();
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
shouldForceOverscroll() {
|
|
72
|
-
const { forceOverscroll } = this;
|
|
73
|
-
const mode = getIonMode(this);
|
|
74
|
-
return forceOverscroll === undefined
|
|
75
|
-
? mode === 'ios' && isPlatform('ios')
|
|
76
|
-
: forceOverscroll;
|
|
77
|
-
}
|
|
78
|
-
resize() {
|
|
79
|
-
if (this.fullscreen) {
|
|
80
|
-
readTask(() => this.readDimensions());
|
|
81
|
-
}
|
|
82
|
-
else if (this.cTop !== 0 || this.cBottom !== 0) {
|
|
83
|
-
this.cTop = this.cBottom = 0;
|
|
84
|
-
forceUpdate(this);
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
readDimensions() {
|
|
88
|
-
const page = getPageElement(this.el);
|
|
89
|
-
const top = Math.max(this.el.offsetTop, 0);
|
|
90
|
-
const bottom = Math.max(page.offsetHeight - top - this.el.offsetHeight, 0);
|
|
91
|
-
const dirty = top !== this.cTop || bottom !== this.cBottom;
|
|
92
|
-
if (dirty) {
|
|
93
|
-
this.cTop = top;
|
|
94
|
-
this.cBottom = bottom;
|
|
95
|
-
forceUpdate(this);
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
onScroll(ev) {
|
|
99
|
-
const timeStamp = Date.now();
|
|
100
|
-
const shouldStart = !this.isScrolling;
|
|
101
|
-
this.lastScroll = timeStamp;
|
|
102
|
-
if (shouldStart) {
|
|
103
|
-
this.onScrollStart();
|
|
104
|
-
}
|
|
105
|
-
if (!this.queued && this.scrollEvents) {
|
|
106
|
-
this.queued = true;
|
|
107
|
-
readTask(ts => {
|
|
108
|
-
this.queued = false;
|
|
109
|
-
this.detail.event = ev;
|
|
110
|
-
updateScrollDetail(this.detail, this.scrollEl, ts, shouldStart);
|
|
111
|
-
this.ionScroll.emit(this.detail);
|
|
112
|
-
});
|
|
113
|
-
}
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Get the element where the actual scrolling takes place.
|
|
117
|
-
* This element can be used to subscribe to `scroll` events or manually modify
|
|
118
|
-
* `scrollTop`. However, it's recommended to use the API provided by `ion-content`:
|
|
119
|
-
*
|
|
120
|
-
* i.e. Using `ionScroll`, `ionScrollStart`, `ionScrollEnd` for scrolling events
|
|
121
|
-
* and `scrollToPoint()` to scroll the content into a certain point.
|
|
122
|
-
*/
|
|
123
|
-
getScrollElement() {
|
|
124
|
-
return Promise.resolve(this.scrollEl);
|
|
125
|
-
}
|
|
126
|
-
/**
|
|
127
|
-
* Scroll to the top of the component.
|
|
128
|
-
*
|
|
129
|
-
* @param duration The amount of time to take scrolling to the top. Defaults to `0`.
|
|
130
|
-
*/
|
|
131
|
-
scrollToTop(duration = 0) {
|
|
132
|
-
return this.scrollToPoint(undefined, 0, duration);
|
|
133
|
-
}
|
|
134
|
-
/**
|
|
135
|
-
* Scroll to the bottom of the component.
|
|
136
|
-
*
|
|
137
|
-
* @param duration The amount of time to take scrolling to the bottom. Defaults to `0`.
|
|
138
|
-
*/
|
|
139
|
-
scrollToBottom(duration = 0) {
|
|
140
|
-
const y = this.scrollEl.scrollHeight - this.scrollEl.clientHeight;
|
|
141
|
-
return this.scrollToPoint(undefined, y, duration);
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Scroll by a specified X/Y distance in the component.
|
|
145
|
-
*
|
|
146
|
-
* @param x The amount to scroll by on the horizontal axis.
|
|
147
|
-
* @param y The amount to scroll by on the vertical axis.
|
|
148
|
-
* @param duration The amount of time to take scrolling by that amount.
|
|
149
|
-
*/
|
|
150
|
-
scrollByPoint(x, y, duration) {
|
|
151
|
-
return this.scrollToPoint(x + this.scrollEl.scrollLeft, y + this.scrollEl.scrollTop, duration);
|
|
152
|
-
}
|
|
153
|
-
/**
|
|
154
|
-
* Scroll to a specified X/Y location in the component.
|
|
155
|
-
*
|
|
156
|
-
* @param x The point to scroll to on the horizontal axis.
|
|
157
|
-
* @param y The point to scroll to on the vertical axis.
|
|
158
|
-
* @param duration The amount of time to take scrolling to that point. Defaults to `0`.
|
|
159
|
-
*/
|
|
160
|
-
async scrollToPoint(x, y, duration = 0) {
|
|
161
|
-
const el = this.scrollEl;
|
|
162
|
-
if (duration < 32) {
|
|
163
|
-
if (y != null) {
|
|
164
|
-
el.scrollTop = y;
|
|
165
|
-
}
|
|
166
|
-
if (x != null) {
|
|
167
|
-
el.scrollLeft = x;
|
|
168
|
-
}
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
let resolve;
|
|
172
|
-
let startTime = 0;
|
|
173
|
-
const promise = new Promise(r => resolve = r);
|
|
174
|
-
const fromY = el.scrollTop;
|
|
175
|
-
const fromX = el.scrollLeft;
|
|
176
|
-
const deltaY = y != null ? y - fromY : 0;
|
|
177
|
-
const deltaX = x != null ? x - fromX : 0;
|
|
178
|
-
// scroll loop
|
|
179
|
-
const step = (timeStamp) => {
|
|
180
|
-
const linearTime = Math.min(1, ((timeStamp - startTime) / duration)) - 1;
|
|
181
|
-
const easedT = Math.pow(linearTime, 3) + 1;
|
|
182
|
-
if (deltaY !== 0) {
|
|
183
|
-
el.scrollTop = Math.floor((easedT * deltaY) + fromY);
|
|
184
|
-
}
|
|
185
|
-
if (deltaX !== 0) {
|
|
186
|
-
el.scrollLeft = Math.floor((easedT * deltaX) + fromX);
|
|
187
|
-
}
|
|
188
|
-
if (easedT < 1) {
|
|
189
|
-
// do not use DomController here
|
|
190
|
-
// must use nativeRaf in order to fire in the next frame
|
|
191
|
-
// TODO: remove as any
|
|
192
|
-
requestAnimationFrame(step);
|
|
193
|
-
}
|
|
194
|
-
else {
|
|
195
|
-
resolve();
|
|
196
|
-
}
|
|
197
|
-
};
|
|
198
|
-
// chill out for a frame first
|
|
199
|
-
requestAnimationFrame(ts => {
|
|
200
|
-
startTime = ts;
|
|
201
|
-
step(ts);
|
|
202
|
-
});
|
|
203
|
-
return promise;
|
|
204
|
-
}
|
|
205
|
-
onScrollStart() {
|
|
206
|
-
this.isScrolling = true;
|
|
207
|
-
this.ionScrollStart.emit({
|
|
208
|
-
isScrolling: true
|
|
209
|
-
});
|
|
210
|
-
if (this.watchDog) {
|
|
211
|
-
clearInterval(this.watchDog);
|
|
212
|
-
}
|
|
213
|
-
// watchdog
|
|
214
|
-
this.watchDog = setInterval(() => {
|
|
215
|
-
if (this.lastScroll < Date.now() - 120) {
|
|
216
|
-
this.onScrollEnd();
|
|
217
|
-
}
|
|
218
|
-
}, 100);
|
|
219
|
-
}
|
|
220
|
-
onScrollEnd() {
|
|
221
|
-
clearInterval(this.watchDog);
|
|
222
|
-
this.watchDog = null;
|
|
223
|
-
if (this.isScrolling) {
|
|
224
|
-
this.isScrolling = false;
|
|
225
|
-
this.ionScrollEnd.emit({
|
|
226
|
-
isScrolling: false
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
render() {
|
|
231
|
-
const { scrollX, scrollY } = this;
|
|
232
|
-
const mode = getIonMode(this);
|
|
233
|
-
const forceOverscroll = this.shouldForceOverscroll();
|
|
234
|
-
const transitionShadow = (mode === 'ios' && config.getBoolean('experimentalTransitionShadow', true));
|
|
235
|
-
this.resize();
|
|
236
|
-
return (h(Host, { class: Object.assign(Object.assign({}, createColorClasses(this.color)), { [mode]: true, 'content-sizing': hostContext('ion-popover', this.el), 'overscroll': forceOverscroll }), style: {
|
|
237
|
-
'--offset-top': `${this.cTop}px`,
|
|
238
|
-
'--offset-bottom': `${this.cBottom}px`,
|
|
239
|
-
} }, h("div", { id: "background-content", part: "background" }), h("main", { class: {
|
|
240
|
-
'inner-scroll': true,
|
|
241
|
-
'scroll-x': scrollX,
|
|
242
|
-
'scroll-y': scrollY,
|
|
243
|
-
'overscroll': (scrollX || scrollY) && forceOverscroll
|
|
244
|
-
}, ref: el => this.scrollEl = el, onScroll: (this.scrollEvents) ? ev => this.onScroll(ev) : undefined, part: "scroll" }, h("slot", null)), transitionShadow ? (h("div", { class: "transition-effect" }, h("div", { class: "transition-cover" }), h("div", { class: "transition-shadow" }))) : null, h("slot", { name: "fixed" })));
|
|
245
|
-
}
|
|
246
|
-
get el() { return getElement(this); }
|
|
247
|
-
};
|
|
248
|
-
const getParentElement = (el) => {
|
|
249
|
-
if (el.parentElement) {
|
|
250
|
-
// normal element with a parent element
|
|
251
|
-
return el.parentElement;
|
|
252
|
-
}
|
|
253
|
-
if (el.parentNode && el.parentNode.host) {
|
|
254
|
-
// shadow dom's document fragment
|
|
255
|
-
return el.parentNode.host;
|
|
256
|
-
}
|
|
257
|
-
return null;
|
|
258
|
-
};
|
|
259
|
-
const getPageElement = (el) => {
|
|
260
|
-
const tabs = el.closest('ion-tabs');
|
|
261
|
-
if (tabs) {
|
|
262
|
-
return tabs;
|
|
263
|
-
}
|
|
264
|
-
const page = el.closest('ion-app,ion-page,.ion-page,page-inner');
|
|
265
|
-
if (page) {
|
|
266
|
-
return page;
|
|
267
|
-
}
|
|
268
|
-
return getParentElement(el);
|
|
269
|
-
};
|
|
270
|
-
// ******** DOM READ ****************
|
|
271
|
-
const updateScrollDetail = (detail, el, timestamp, shouldStart) => {
|
|
272
|
-
const prevX = detail.currentX;
|
|
273
|
-
const prevY = detail.currentY;
|
|
274
|
-
const prevT = detail.currentTime;
|
|
275
|
-
const currentX = el.scrollLeft;
|
|
276
|
-
const currentY = el.scrollTop;
|
|
277
|
-
const timeDelta = timestamp - prevT;
|
|
278
|
-
if (shouldStart) {
|
|
279
|
-
// remember the start positions
|
|
280
|
-
detail.startTime = timestamp;
|
|
281
|
-
detail.startX = currentX;
|
|
282
|
-
detail.startY = currentY;
|
|
283
|
-
detail.velocityX = detail.velocityY = 0;
|
|
284
|
-
}
|
|
285
|
-
detail.currentTime = timestamp;
|
|
286
|
-
detail.currentX = detail.scrollLeft = currentX;
|
|
287
|
-
detail.currentY = detail.scrollTop = currentY;
|
|
288
|
-
detail.deltaX = currentX - detail.startX;
|
|
289
|
-
detail.deltaY = currentY - detail.startY;
|
|
290
|
-
if (timeDelta > 0 && timeDelta < 100) {
|
|
291
|
-
const velocityX = (currentX - prevX) / timeDelta;
|
|
292
|
-
const velocityY = (currentY - prevY) / timeDelta;
|
|
293
|
-
detail.velocityX = velocityX * 0.7 + detail.velocityX * 0.3;
|
|
294
|
-
detail.velocityY = velocityY * 0.7 + detail.velocityY * 0.3;
|
|
295
|
-
}
|
|
296
|
-
};
|
|
297
|
-
Content.style = contentCss;
|
|
298
|
-
|
|
299
|
-
export { Content as ion_content };
|
|
@@ -1,163 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, f as forceUpdate, h, H as Host, d as getElement } from './index-dcd553ac.js';
|
|
2
|
-
import { g as getIonMode } from './ionic-global-fef4299f.js';
|
|
3
|
-
import { o as openURL, c as createColorClasses, h as hostContext } from './theme-74c22054.js';
|
|
4
|
-
|
|
5
|
-
const itemIosCss = ":host{--border-radius:0px;--border-width:0px;--border-style:solid;--padding-top:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--inner-border-width:0px;--inner-padding-top:0px;--inner-padding-bottom:0px;--inner-padding-start:0px;--inner-padding-end:0px;--inner-box-shadow:none;--show-full-highlight:0;--show-inset-highlight:0;--detail-icon-color:initial;--detail-icon-font-size:20px;--detail-icon-opacity:0.25;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--ripple-color:currentColor;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:initial;text-decoration:none;box-sizing:border-box;overflow:hidden}:host(.ion-color) .item-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.ion-color) .item-native,:host(.ion-color) .item-inner{border-color:var(--ion-color-shade)}:host(.ion-activated) .item-native{color:var(--color-activated)}:host(.ion-activated) .item-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.ion-color.ion-activated) .item-native{color:var(--ion-color-contrast)}:host(.ion-focused) .item-native{color:var(--color-focused)}:host(.ion-focused) .item-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}:host(.ion-color.ion-focused) .item-native{color:var(--ion-color-contrast)}:host(.ion-color.ion-focused) .item-native::after{background:var(--ion-color-contrast)}@media (any-hover: hover){:host(.ion-activatable:hover) .item-native{color:var(--color-hover)}:host(.ion-activatable:hover) .item-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}:host(.ion-color.ion-activatable:hover) .item-native{color:var(--ion-color-contrast)}:host(.ion-color.ion-activatable:hover) .item-native::after{background:var(--ion-color-contrast)}}:host(.item-interactive-disabled:not(.item-multiple-inputs)){cursor:default;pointer-events:none}:host(.item-disabled){cursor:default;opacity:0.3;pointer-events:none}.item-native{border-radius:var(--border-radius);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);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;display:flex;position:relative;align-items:center;justify-content:space-between;width:100%;min-height:var(--min-height);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);overflow:inherit;box-sizing:border-box;z-index:1}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.item-native{padding-left:unset;padding-right:unset;-webkit-padding-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-inline-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.item-native::-moz-focus-inner{border:0}.item-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0;transition:var(--transition);z-index:-1}button,a{cursor:pointer;user-select:none;-webkit-user-drag:none}.item-inner{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--inner-padding-start);padding-right:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-top:var(--inner-padding-top);padding-bottom:var(--inner-padding-bottom);display:flex;position:relative;flex:1;flex-direction:inherit;align-items:inherit;align-self:stretch;min-height:inherit;border-width:var(--inner-border-width);border-style:var(--border-style);border-color:var(--border-color);box-shadow:var(--inner-box-shadow);overflow:inherit;box-sizing:border-box}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.item-inner{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--inner-padding-start);padding-inline-start:var(--inner-padding-start);-webkit-padding-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-inline-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end))}}.item-detail-icon{color:var(--detail-icon-color);font-size:var(--detail-icon-font-size);opacity:var(--detail-icon-opacity)}::slotted(ion-icon){font-size:1.6em}::slotted(ion-button){--margin-top:0;--margin-bottom:0;--margin-start:0;--margin-end:0;z-index:1}::slotted(ion-label){flex:1}:host([vertical-align-top]),:host(.item-input){align-items:flex-start}.input-wrapper{display:flex;flex:1;flex-direction:inherit;align-items:inherit;align-self:stretch;text-overflow:ellipsis;overflow:hidden;box-sizing:border-box}:host(.item-label-stacked) .item-native,:host(.item-label-floating) .item-native{align-items:start}:host(.item-label-stacked) .input-wrapper,:host(.item-label-floating) .input-wrapper{flex:1;flex-direction:column}.item-highlight,.item-inner-highlight{left:0;right:0;bottom:0;position:absolute;background:var(--highlight-background);z-index:1}.item-highlight{height:var(--full-highlight-height)}.item-inner-highlight{height:var(--inset-highlight-height)}:host(.item-interactive.item-has-focus),:host(.item-interactive.ion-touched.ion-invalid){--full-highlight-height:calc(var(--highlight-height) * var(--show-full-highlight));--inset-highlight-height:calc(var(--highlight-height) * var(--show-inset-highlight))}:host(.item-interactive.item-has-focus){--highlight-background:var(--highlight-color-focused)}:host(.item-interactive.ion-valid){--highlight-background:var(--highlight-color-valid)}:host(.item-interactive.ion-invalid){--highlight-background:var(--highlight-color-invalid)}:host(.item-label-stacked) ::slotted(ion-select),:host(.item-label-floating) ::slotted(ion-select){--padding-start:0;align-self:stretch;width:100%;max-width:100%}:host(.item-label-stacked) ::slotted(ion-datetime),:host(.item-label-floating) ::slotted(ion-datetime){--padding-start:0;width:100%}:host(.item-multiple-inputs) ::slotted(ion-checkbox),:host(.item-multiple-inputs) ::slotted(ion-datetime),:host(.item-multiple-inputs) ::slotted(ion-radio),:host(.item-multiple-inputs) ::slotted(ion-select){position:relative}:host(.item-textarea){align-items:stretch}::slotted(ion-reorder[slot]){margin-top:0;margin-bottom:0}ion-ripple-effect{color:var(--ripple-color)}:host{--min-height:44px;--transition:background-color 200ms linear, opacity 200ms linear;--padding-start:20px;--inner-padding-end:10px;--inner-border-width:0px 0px 0.55px 0px;--background:var(--ion-item-background, var(--ion-background-color, #fff));--background-activated:#000;--background-focused:#000;--background-hover:currentColor;--background-activated-opacity:.12;--background-focused-opacity:.15;--background-hover-opacity:.04;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--color:var(--ion-item-color, var(--ion-text-color, #000));--highlight-height:0;--highlight-color-focused:var(--ion-color-primary, #3880ff);--highlight-color-valid:var(--ion-color-success, #2dd36f);--highlight-color-invalid:var(--ion-color-danger, #eb445a);font-size:17px}:host(.ion-activated){--transition:none}:host(.ion-color.ion-focused) .item-native::after{background:#000;opacity:0.15}:host(.ion-color.ion-activated) .item-native::after{background:#000;opacity:0.12}:host(.item-interactive){--show-full-highlight:0;--show-inset-highlight:1}:host(.item-lines-full){--border-width:0px 0px 0.55px 0px;--show-full-highlight:1;--show-inset-highlight:0}:host(.item-lines-inset){--inner-border-width:0px 0px 0.55px 0px;--show-full-highlight:0;--show-inset-highlight:1}:host(.item-lines-inset),:host(.item-lines-none){--border-width:0px;--show-full-highlight:0}:host(.item-lines-full),:host(.item-lines-none){--inner-border-width:0px;--show-inset-highlight:0}::slotted([slot=start]){margin-left:0;margin-right:20px;margin-top:2px;margin-bottom:2px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:20px;margin-inline-end:20px}}::slotted([slot=end]){margin-left:10px;margin-right:10px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}::slotted(ion-icon[slot=start]),::slotted(ion-icon[slot=end]){margin-top:7px;margin-bottom:7px}::slotted(ion-toggle[slot=start]),::slotted(ion-toggle[slot=end]){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}:host(.item-label-stacked) ::slotted([slot=end]),:host(.item-label-floating) ::slotted([slot=end]){margin-top:7px;margin-bottom:7px}::slotted(.button-small){--padding-top:0px;--padding-bottom:0px;--padding-start:.5em;--padding-end:.5em;height:24px;font-size:13px}::slotted(ion-avatar){width:36px;height:36px}::slotted(ion-thumbnail){width:56px;height:56px}::slotted(ion-avatar[slot=end]),::slotted(ion-thumbnail[slot=end]){margin-left:10px;margin-right:10px;margin-top:10px;margin-bottom:10px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted(ion-avatar[slot=end]),::slotted(ion-thumbnail[slot=end]){margin-left:unset;margin-right:unset;-webkit-margin-start:10px;margin-inline-start:10px;-webkit-margin-end:10px;margin-inline-end:10px}}:host(.item-radio) ::slotted(ion-label),:host(.item-toggle) ::slotted(ion-label){margin-left:0px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.item-radio) ::slotted(ion-label),:host(.item-toggle) ::slotted(ion-label){margin-left:unset;-webkit-margin-start:0px;margin-inline-start:0px}}::slotted(ion-label){margin-left:0;margin-right:8px;margin-top:10px;margin-bottom:10px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted(ion-label){margin-left:unset;margin-right:unset;-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:8px;margin-inline-end:8px}}:host(.item-label-floating),:host(.item-label-stacked){--min-height:68px}:host(.item-label-stacked) ::slotted(ion-select),:host(.item-label-floating) ::slotted(ion-select){--padding-top:8px;--padding-bottom:8px;--padding-start:0px}";
|
|
6
|
-
|
|
7
|
-
const itemMdCss = ":host{--border-radius:0px;--border-width:0px;--border-style:solid;--padding-top:0px;--padding-bottom:0px;--padding-end:0px;--padding-start:0px;--inner-border-width:0px;--inner-padding-top:0px;--inner-padding-bottom:0px;--inner-padding-start:0px;--inner-padding-end:0px;--inner-box-shadow:none;--show-full-highlight:0;--show-inset-highlight:0;--detail-icon-color:initial;--detail-icon-font-size:20px;--detail-icon-opacity:0.25;--color-activated:var(--color);--color-focused:var(--color);--color-hover:var(--color);--ripple-color:currentColor;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);text-align:initial;text-decoration:none;box-sizing:border-box;overflow:hidden}:host(.ion-color) .item-native{background:var(--ion-color-base);color:var(--ion-color-contrast)}:host(.ion-color) .item-native,:host(.ion-color) .item-inner{border-color:var(--ion-color-shade)}:host(.ion-activated) .item-native{color:var(--color-activated)}:host(.ion-activated) .item-native::after{background:var(--background-activated);opacity:var(--background-activated-opacity)}:host(.ion-color.ion-activated) .item-native{color:var(--ion-color-contrast)}:host(.ion-focused) .item-native{color:var(--color-focused)}:host(.ion-focused) .item-native::after{background:var(--background-focused);opacity:var(--background-focused-opacity)}:host(.ion-color.ion-focused) .item-native{color:var(--ion-color-contrast)}:host(.ion-color.ion-focused) .item-native::after{background:var(--ion-color-contrast)}@media (any-hover: hover){:host(.ion-activatable:hover) .item-native{color:var(--color-hover)}:host(.ion-activatable:hover) .item-native::after{background:var(--background-hover);opacity:var(--background-hover-opacity)}:host(.ion-color.ion-activatable:hover) .item-native{color:var(--ion-color-contrast)}:host(.ion-color.ion-activatable:hover) .item-native::after{background:var(--ion-color-contrast)}}:host(.item-interactive-disabled:not(.item-multiple-inputs)){cursor:default;pointer-events:none}:host(.item-disabled){cursor:default;opacity:0.3;pointer-events:none}.item-native{border-radius:var(--border-radius);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);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;display:flex;position:relative;align-items:center;justify-content:space-between;width:100%;min-height:var(--min-height);transition:var(--transition);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);outline:none;background:var(--background);overflow:inherit;box-sizing:border-box;z-index:1}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.item-native{padding-left:unset;padding-right:unset;-webkit-padding-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));padding-inline-start:calc(var(--padding-start) + var(--ion-safe-area-left, 0px));-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}.item-native::-moz-focus-inner{border:0}.item-native::after{left:0;right:0;top:0;bottom:0;position:absolute;content:\"\";opacity:0;transition:var(--transition);z-index:-1}button,a{cursor:pointer;user-select:none;-webkit-user-drag:none}.item-inner{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:var(--inner-padding-start);padding-right:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-top:var(--inner-padding-top);padding-bottom:var(--inner-padding-bottom);display:flex;position:relative;flex:1;flex-direction:inherit;align-items:inherit;align-self:stretch;min-height:inherit;border-width:var(--inner-border-width);border-style:var(--border-style);border-color:var(--border-color);box-shadow:var(--inner-box-shadow);overflow:inherit;box-sizing:border-box}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.item-inner{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--inner-padding-start);padding-inline-start:var(--inner-padding-start);-webkit-padding-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end));padding-inline-end:calc(var(--ion-safe-area-right, 0px) + var(--inner-padding-end))}}.item-detail-icon{color:var(--detail-icon-color);font-size:var(--detail-icon-font-size);opacity:var(--detail-icon-opacity)}::slotted(ion-icon){font-size:1.6em}::slotted(ion-button){--margin-top:0;--margin-bottom:0;--margin-start:0;--margin-end:0;z-index:1}::slotted(ion-label){flex:1}:host([vertical-align-top]),:host(.item-input){align-items:flex-start}.input-wrapper{display:flex;flex:1;flex-direction:inherit;align-items:inherit;align-self:stretch;text-overflow:ellipsis;overflow:hidden;box-sizing:border-box}:host(.item-label-stacked) .item-native,:host(.item-label-floating) .item-native{align-items:start}:host(.item-label-stacked) .input-wrapper,:host(.item-label-floating) .input-wrapper{flex:1;flex-direction:column}.item-highlight,.item-inner-highlight{left:0;right:0;bottom:0;position:absolute;background:var(--highlight-background);z-index:1}.item-highlight{height:var(--full-highlight-height)}.item-inner-highlight{height:var(--inset-highlight-height)}:host(.item-interactive.item-has-focus),:host(.item-interactive.ion-touched.ion-invalid){--full-highlight-height:calc(var(--highlight-height) * var(--show-full-highlight));--inset-highlight-height:calc(var(--highlight-height) * var(--show-inset-highlight))}:host(.item-interactive.item-has-focus){--highlight-background:var(--highlight-color-focused)}:host(.item-interactive.ion-valid){--highlight-background:var(--highlight-color-valid)}:host(.item-interactive.ion-invalid){--highlight-background:var(--highlight-color-invalid)}:host(.item-label-stacked) ::slotted(ion-select),:host(.item-label-floating) ::slotted(ion-select){--padding-start:0;align-self:stretch;width:100%;max-width:100%}:host(.item-label-stacked) ::slotted(ion-datetime),:host(.item-label-floating) ::slotted(ion-datetime){--padding-start:0;width:100%}:host(.item-multiple-inputs) ::slotted(ion-checkbox),:host(.item-multiple-inputs) ::slotted(ion-datetime),:host(.item-multiple-inputs) ::slotted(ion-radio),:host(.item-multiple-inputs) ::slotted(ion-select){position:relative}:host(.item-textarea){align-items:stretch}::slotted(ion-reorder[slot]){margin-top:0;margin-bottom:0}ion-ripple-effect{color:var(--ripple-color)}:host{--min-height:48px;--background:var(--ion-item-background, var(--ion-background-color, #fff));--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--background-activated-opacity:0;--background-focused-opacity:.12;--background-hover-opacity:.04;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--color:var(--ion-item-color, var(--ion-text-color, #000));--transition:opacity 15ms linear, background-color 15ms linear;--padding-start:16px;--color:var(--ion-item-color, var(--ion-text-color, #000));--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--inner-padding-end:16px;--inner-border-width:0 0 1px 0;--highlight-height:2px;--highlight-color-focused:var(--ion-color-primary, #3880ff);--highlight-color-valid:var(--ion-color-success, #2dd36f);--highlight-color-invalid:var(--ion-color-danger, #eb445a);font-size:16px;font-weight:normal;text-transform:none}:host(.ion-color.ion-activated) .item-native::after{background:transparent}:host(.item-interactive){--border-width:0 0 1px 0;--inner-border-width:0;--show-full-highlight:1;--show-inset-highlight:0}:host(.item-lines-full){--border-width:0 0 1px 0;--show-full-highlight:1;--show-inset-highlight:0}:host(.item-lines-inset){--inner-border-width:0 0 1px 0;--show-full-highlight:0;--show-inset-highlight:1}:host(.item-lines-inset),:host(.item-lines-none){--border-width:0;--show-full-highlight:0}:host(.item-lines-full),:host(.item-lines-none){--inner-border-width:0;--show-inset-highlight:0}:host(.item-multi-line) ::slotted([slot=start]),:host(.item-multi-line) ::slotted([slot=end]){margin-top:16px;margin-bottom:16px;align-self:flex-start}::slotted([slot=start]){margin-right:32px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted([slot=start]){margin-right:unset;-webkit-margin-end:32px;margin-inline-end:32px}}::slotted([slot=end]){margin-left:32px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted([slot=end]){margin-left:unset;-webkit-margin-start:32px;margin-inline-start:32px}}::slotted(ion-icon){color:rgba(var(--ion-text-color-rgb, 0, 0, 0), 0.54);font-size:24px}:host(.ion-color) ::slotted(ion-icon){color:var(--ion-color-contrast)}::slotted(ion-icon[slot]){margin-top:12px;margin-bottom:12px}::slotted(ion-icon[slot=start]){margin-right:32px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=start]){margin-right:unset;-webkit-margin-end:32px;margin-inline-end:32px}}::slotted(ion-icon[slot=end]){margin-left:16px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted(ion-icon[slot=end]){margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}::slotted(ion-toggle[slot=start]),::slotted(ion-toggle[slot=end]){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}::slotted(ion-note){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;align-self:flex-start;font-size:11px}::slotted(ion-note[slot]){padding-left:0;padding-right:0;padding-top:18px;padding-bottom:10px}::slotted(ion-note[slot=start]){padding-right:16px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted(ion-note[slot=start]){padding-right:unset;-webkit-padding-end:16px;padding-inline-end:16px}}::slotted(ion-note[slot=end]){padding-left:16px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted(ion-note[slot=end]){padding-left:unset;-webkit-padding-start:16px;padding-inline-start:16px}}::slotted(ion-avatar){width:40px;height:40px}::slotted(ion-thumbnail){width:56px;height:56px}::slotted(ion-avatar),::slotted(ion-thumbnail){margin-top:8px;margin-bottom:8px}::slotted(ion-avatar[slot=start]),::slotted(ion-thumbnail[slot=start]){margin-right:16px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted(ion-avatar[slot=start]),::slotted(ion-thumbnail[slot=start]){margin-right:unset;-webkit-margin-end:16px;margin-inline-end:16px}}::slotted(ion-avatar[slot=end]),::slotted(ion-thumbnail[slot=end]){margin-left:16px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){::slotted(ion-avatar[slot=end]),::slotted(ion-thumbnail[slot=end]){margin-left:unset;-webkit-margin-start:16px;margin-inline-start:16px}}::slotted(ion-label){margin-left:0;margin-right:0;margin-top:11px;margin-bottom:10px}:host(.item-label-stacked) ::slotted([slot=end]),:host(.item-label-floating) ::slotted([slot=end]){margin-top:7px;margin-bottom:7px}:host(.item-toggle) ::slotted(ion-label),:host(.item-radio) ::slotted(ion-label){margin-left:0}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){:host(.item-toggle) ::slotted(ion-label),:host(.item-radio) ::slotted(ion-label){margin-left:unset;-webkit-margin-start:0;margin-inline-start:0}}::slotted(.button-small){--padding-top:0;--padding-bottom:0;--padding-start:.6em;--padding-end:.6em;height:25px;font-size:12px}:host(.item-label-floating),:host(.item-label-stacked){--min-height:55px}:host(.item-label-stacked) ::slotted(ion-select),:host(.item-label-floating) ::slotted(ion-select){--padding-top:8px;--padding-bottom:8px;--padding-start:0}:host(.item-has-focus:not(.ion-color)) ::slotted(.label-stacked),:host(.item-has-focus:not(.ion-color)) ::slotted(.label-floating){color:var(--ion-color-primary, #3880ff)}";
|
|
8
|
-
|
|
9
|
-
const Item = class {
|
|
10
|
-
constructor(hostRef) {
|
|
11
|
-
registerInstance(this, hostRef);
|
|
12
|
-
this.itemStyles = new Map();
|
|
13
|
-
this.multipleInputs = false;
|
|
14
|
-
/**
|
|
15
|
-
* If `true`, a button tag will be rendered and the item will be tappable.
|
|
16
|
-
*/
|
|
17
|
-
this.button = false;
|
|
18
|
-
/**
|
|
19
|
-
* The icon to use when `detail` is set to `true`.
|
|
20
|
-
*/
|
|
21
|
-
this.detailIcon = 'chevron-forward';
|
|
22
|
-
/**
|
|
23
|
-
* If `true`, the user cannot interact with the item.
|
|
24
|
-
*/
|
|
25
|
-
this.disabled = false;
|
|
26
|
-
/**
|
|
27
|
-
* When using a router, it specifies the transition direction when navigating to
|
|
28
|
-
* another page using `href`.
|
|
29
|
-
*/
|
|
30
|
-
this.routerDirection = 'forward';
|
|
31
|
-
/**
|
|
32
|
-
* The type of the button. Only used when an `onclick` or `button` property is present.
|
|
33
|
-
*/
|
|
34
|
-
this.type = 'button';
|
|
35
|
-
}
|
|
36
|
-
itemStyle(ev) {
|
|
37
|
-
ev.stopPropagation();
|
|
38
|
-
const tagName = ev.target.tagName;
|
|
39
|
-
const updatedStyles = ev.detail;
|
|
40
|
-
const newStyles = {};
|
|
41
|
-
const childStyles = this.itemStyles.get(tagName) || {};
|
|
42
|
-
let hasStyleChange = false;
|
|
43
|
-
Object.keys(updatedStyles).forEach(key => {
|
|
44
|
-
if (updatedStyles[key]) {
|
|
45
|
-
const itemKey = `item-${key}`;
|
|
46
|
-
if (!childStyles[itemKey]) {
|
|
47
|
-
hasStyleChange = true;
|
|
48
|
-
}
|
|
49
|
-
newStyles[itemKey] = true;
|
|
50
|
-
}
|
|
51
|
-
});
|
|
52
|
-
if (!hasStyleChange && Object.keys(newStyles).length !== Object.keys(childStyles).length) {
|
|
53
|
-
hasStyleChange = true;
|
|
54
|
-
}
|
|
55
|
-
if (hasStyleChange) {
|
|
56
|
-
this.itemStyles.set(tagName, newStyles);
|
|
57
|
-
forceUpdate(this);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
componentDidLoad() {
|
|
61
|
-
// The following elements have a clickable cover that is relative to the entire item
|
|
62
|
-
const covers = this.el.querySelectorAll('ion-checkbox, ion-datetime, ion-select, ion-radio');
|
|
63
|
-
// The following elements can accept focus alongside the previous elements
|
|
64
|
-
// therefore if these elements are also a child of item, we don't want the
|
|
65
|
-
// input cover on top of those interfering with their clicks
|
|
66
|
-
const inputs = this.el.querySelectorAll('ion-input, ion-range, ion-searchbar, ion-segment, ion-textarea, ion-toggle');
|
|
67
|
-
// The following elements should also stay clickable when an input with cover is present
|
|
68
|
-
const clickables = this.el.querySelectorAll('ion-anchor, ion-button, a, button');
|
|
69
|
-
// Check for multiple inputs to change the position of the input cover to relative
|
|
70
|
-
// for all of the covered inputs above
|
|
71
|
-
this.multipleInputs = covers.length + inputs.length > 1
|
|
72
|
-
|| covers.length + clickables.length > 1
|
|
73
|
-
|| covers.length > 0 && this.isClickable();
|
|
74
|
-
}
|
|
75
|
-
// If the item contains an input including a checkbox, datetime, select, or radio
|
|
76
|
-
// then the item will have a clickable input cover that covers the item
|
|
77
|
-
// that should get the hover, focused and activated states UNLESS it has multiple
|
|
78
|
-
// inputs, then those need to individually get each click
|
|
79
|
-
hasCover() {
|
|
80
|
-
const inputs = this.el.querySelectorAll('ion-checkbox, ion-datetime, ion-select, ion-radio');
|
|
81
|
-
return inputs.length === 1 && !this.multipleInputs;
|
|
82
|
-
}
|
|
83
|
-
// If the item has an href or button property it will render a native
|
|
84
|
-
// anchor or button that is clickable
|
|
85
|
-
isClickable() {
|
|
86
|
-
return (this.href !== undefined || this.button);
|
|
87
|
-
}
|
|
88
|
-
canActivate() {
|
|
89
|
-
return (this.isClickable() || this.hasCover());
|
|
90
|
-
}
|
|
91
|
-
render() {
|
|
92
|
-
const { detail, detailIcon, download, lines, disabled, href, rel, target, routerDirection } = this;
|
|
93
|
-
const childStyles = {};
|
|
94
|
-
const mode = getIonMode(this);
|
|
95
|
-
const clickable = this.isClickable();
|
|
96
|
-
const canActivate = this.canActivate();
|
|
97
|
-
const TagType = clickable ? (href === undefined ? 'button' : 'a') : 'div';
|
|
98
|
-
const attrs = (TagType === 'button')
|
|
99
|
-
? { type: this.type }
|
|
100
|
-
: {
|
|
101
|
-
download,
|
|
102
|
-
href,
|
|
103
|
-
rel,
|
|
104
|
-
target
|
|
105
|
-
};
|
|
106
|
-
const showDetail = detail !== undefined ? detail : mode === 'ios' && clickable;
|
|
107
|
-
this.itemStyles.forEach(value => {
|
|
108
|
-
Object.assign(childStyles, value);
|
|
109
|
-
});
|
|
110
|
-
return (h(Host, { "aria-disabled": disabled ? 'true' : null, class: Object.assign(Object.assign(Object.assign({}, childStyles), createColorClasses(this.color)), { 'item': true, [mode]: true, [`item-lines-${lines}`]: lines !== undefined, 'item-disabled': disabled, 'in-list': hostContext('ion-list', this.el), 'item-multiple-inputs': this.multipleInputs, 'ion-activatable': canActivate, 'ion-focusable': true }) }, h(TagType, Object.assign({}, attrs, { class: "item-native", disabled: disabled, onClick: (ev) => openURL(href, ev, routerDirection) }), h("slot", { name: "start" }), h("div", { class: "item-inner" }, h("div", { class: "input-wrapper" }, h("slot", null)), h("slot", { name: "end" }), showDetail && h("ion-icon", { icon: detailIcon, lazy: false, class: "item-detail-icon", part: "detail-icon" }), h("div", { class: "item-inner-highlight" })), canActivate && mode === 'md' && h("ion-ripple-effect", null)), h("div", { class: "item-highlight" })));
|
|
111
|
-
}
|
|
112
|
-
get el() { return getElement(this); }
|
|
113
|
-
};
|
|
114
|
-
Item.style = {
|
|
115
|
-
ios: itemIosCss,
|
|
116
|
-
md: itemMdCss
|
|
117
|
-
};
|
|
118
|
-
|
|
119
|
-
const listIosCss = "ion-list{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;contain:content;list-style-type:none}ion-list.list-inset{transform:translateZ(0);overflow:hidden}.list-ios{background:var(--ion-item-background, var(--ion-background-color, #fff))}.list-ios.list-inset{margin-left:16px;margin-right:16px;margin-top:16px;margin-bottom:16px;border-radius:4px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.list-ios.list-inset{margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px}}.list-ios.list-inset ion-item{--border-width:0 0 1px 0;--inner-border-width:0}.list-ios.list-inset ion-item:last-child{--border-width:0;--inner-border-width:0}.list-ios.list-inset+ion-list.list-inset{margin-top:0}.list-ios-lines-none .item{--border-width:0;--inner-border-width:0}.list-ios-lines-full .item,.list-ios .item-lines-full{--border-width:0 0 0.55px 0}.list-ios-lines-full .item{--inner-border-width:0}.list-ios-lines-inset .item,.list-ios .item-lines-inset{--inner-border-width:0 0 0.55px 0}.list-ios .item-lines-inset{--border-width:0}.list-ios .item-lines-full{--inner-border-width:0}.list-ios .item-lines-none{--border-width:0;--inner-border-width:0}ion-card .list-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}";
|
|
120
|
-
|
|
121
|
-
const listMdCss = "ion-list{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;display:block;contain:content;list-style-type:none}ion-list.list-inset{transform:translateZ(0);overflow:hidden}.list-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:8px;padding-bottom:8px;background:var(--ion-item-background, var(--ion-background-color, #fff))}.list-md>.input:last-child::after{left:0}[dir=rtl] .list-md>.input:last-child::after,:host-context([dir=rtl]) .list-md>.input:last-child::after{left:unset;right:unset;right:0}.list-md.list-inset{margin-left:16px;margin-right:16px;margin-top:16px;margin-bottom:16px;border-radius:2px}@supports (margin-inline-start: 0) or (-webkit-margin-start: 0){.list-md.list-inset{margin-left:unset;margin-right:unset;-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:16px;margin-inline-end:16px}}.list-md.list-inset ion-item:first-child{--border-radius:2px 2px 0 0;--border-width:0 0 1px 0}.list-md.list-inset ion-item:last-child{--border-radius:0 0 2px, 2px;--border-width:0}.list-md.list-inset .item-interactive{--padding-start:0;--padding-end:0}.list-md.list-inset+ion-list.list-inset{margin-top:0}.list-md-lines-none .item{--border-width:0;--inner-border-width:0}.list-md-lines-full .item,.list-md .item-lines-full{--border-width:0 0 1px 0}.list-md-lines-full .item{--inner-border-width:0}.list-md-lines-inset .item,.list-md .item-lines-inset{--inner-border-width:0 0 1px 0}.list-md .item-lines-inset{--border-width:0}.list-md .item-lines-full{--inner-border-width:0}.list-md .item-lines-none{--border-width:0;--inner-border-width:0}ion-card .list-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}";
|
|
122
|
-
|
|
123
|
-
const List = class {
|
|
124
|
-
constructor(hostRef) {
|
|
125
|
-
registerInstance(this, hostRef);
|
|
126
|
-
/**
|
|
127
|
-
* If `true`, the list will have margin around it and rounded corners.
|
|
128
|
-
*/
|
|
129
|
-
this.inset = false;
|
|
130
|
-
}
|
|
131
|
-
/**
|
|
132
|
-
* If `ion-item-sliding` are used inside the list, this method closes
|
|
133
|
-
* any open sliding item.
|
|
134
|
-
*
|
|
135
|
-
* Returns `true` if an actual `ion-item-sliding` is closed.
|
|
136
|
-
*/
|
|
137
|
-
async closeSlidingItems() {
|
|
138
|
-
const item = this.el.querySelector('ion-item-sliding');
|
|
139
|
-
if (item && item.closeOpened) {
|
|
140
|
-
return item.closeOpened();
|
|
141
|
-
}
|
|
142
|
-
return false;
|
|
143
|
-
}
|
|
144
|
-
render() {
|
|
145
|
-
const mode = getIonMode(this);
|
|
146
|
-
const { lines, inset } = this;
|
|
147
|
-
return (h(Host, { class: {
|
|
148
|
-
[mode]: true,
|
|
149
|
-
// Used internally for styling
|
|
150
|
-
[`list-${mode}`]: true,
|
|
151
|
-
'list-inset': inset,
|
|
152
|
-
[`list-lines-${lines}`]: lines !== undefined,
|
|
153
|
-
[`list-${mode}-lines-${lines}`]: lines !== undefined
|
|
154
|
-
} }));
|
|
155
|
-
}
|
|
156
|
-
get el() { return getElement(this); }
|
|
157
|
-
};
|
|
158
|
-
List.style = {
|
|
159
|
-
ios: listIosCss,
|
|
160
|
-
md: listMdCss
|
|
161
|
-
};
|
|
162
|
-
|
|
163
|
-
export { Item as ion_item, List as ion_list };
|
|
@@ -1,89 +0,0 @@
|
|
|
1
|
-
import { r as registerInstance, a as readTask, w as writeTask, h, d as getElement, H as Host } from './index-dcd553ac.js';
|
|
2
|
-
import { g as getIonMode } from './ionic-global-fef4299f.js';
|
|
3
|
-
|
|
4
|
-
const rippleEffectCss = ":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:strict;pointer-events:none}:host(.unbounded){contain:layout size style}.ripple-effect{border-radius:50%;position:absolute;background-color:currentColor;color:inherit;contain:strict;opacity:0;animation:225ms rippleAnimation forwards, 75ms fadeInAnimation forwards;will-change:transform, opacity;pointer-events:none}.fade-out{transform:translate(var(--translate-end)) scale(var(--final-scale, 1));animation:150ms fadeOutAnimation forwards}@keyframes rippleAnimation{from{animation-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transform:scale(1)}to{transform:translate(var(--translate-end)) scale(var(--final-scale, 1))}}@keyframes fadeInAnimation{from{animation-timing-function:linear;opacity:0}to{opacity:0.16}}@keyframes fadeOutAnimation{from{animation-timing-function:linear;opacity:0.16}to{opacity:0}}";
|
|
5
|
-
|
|
6
|
-
const RippleEffect = class {
|
|
7
|
-
constructor(hostRef) {
|
|
8
|
-
registerInstance(this, hostRef);
|
|
9
|
-
/**
|
|
10
|
-
* Sets the type of ripple-effect:
|
|
11
|
-
*
|
|
12
|
-
* - `bounded`: the ripple effect expands from the user's click position
|
|
13
|
-
* - `unbounded`: the ripple effect expands from the center of the button and overflows the container.
|
|
14
|
-
*
|
|
15
|
-
* NOTE: Surfaces for bounded ripples should have the overflow property set to hidden,
|
|
16
|
-
* while surfaces for unbounded ripples should have it set to visible.
|
|
17
|
-
*/
|
|
18
|
-
this.type = 'bounded';
|
|
19
|
-
}
|
|
20
|
-
/**
|
|
21
|
-
* Adds the ripple effect to the parent element.
|
|
22
|
-
*
|
|
23
|
-
* @param x The horizontal coordinate of where the ripple should start.
|
|
24
|
-
* @param y The vertical coordinate of where the ripple should start.
|
|
25
|
-
*/
|
|
26
|
-
async addRipple(x, y) {
|
|
27
|
-
return new Promise(resolve => {
|
|
28
|
-
readTask(() => {
|
|
29
|
-
const rect = this.el.getBoundingClientRect();
|
|
30
|
-
const width = rect.width;
|
|
31
|
-
const height = rect.height;
|
|
32
|
-
const hypotenuse = Math.sqrt(width * width + height * height);
|
|
33
|
-
const maxDim = Math.max(height, width);
|
|
34
|
-
const maxRadius = this.unbounded ? maxDim : hypotenuse + PADDING;
|
|
35
|
-
const initialSize = Math.floor(maxDim * INITIAL_ORIGIN_SCALE);
|
|
36
|
-
const finalScale = maxRadius / initialSize;
|
|
37
|
-
let posX = x - rect.left;
|
|
38
|
-
let posY = y - rect.top;
|
|
39
|
-
if (this.unbounded) {
|
|
40
|
-
posX = width * 0.5;
|
|
41
|
-
posY = height * 0.5;
|
|
42
|
-
}
|
|
43
|
-
const styleX = posX - initialSize * 0.5;
|
|
44
|
-
const styleY = posY - initialSize * 0.5;
|
|
45
|
-
const moveX = width * 0.5 - posX;
|
|
46
|
-
const moveY = height * 0.5 - posY;
|
|
47
|
-
writeTask(() => {
|
|
48
|
-
const div = document.createElement('div');
|
|
49
|
-
div.classList.add('ripple-effect');
|
|
50
|
-
const style = div.style;
|
|
51
|
-
style.top = styleY + 'px';
|
|
52
|
-
style.left = styleX + 'px';
|
|
53
|
-
style.width = style.height = initialSize + 'px';
|
|
54
|
-
style.setProperty('--final-scale', `${finalScale}`);
|
|
55
|
-
style.setProperty('--translate-end', `${moveX}px, ${moveY}px`);
|
|
56
|
-
const container = this.el.shadowRoot || this.el;
|
|
57
|
-
container.appendChild(div);
|
|
58
|
-
setTimeout(() => {
|
|
59
|
-
resolve(() => {
|
|
60
|
-
removeRipple(div);
|
|
61
|
-
});
|
|
62
|
-
}, 225 + 100);
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
});
|
|
66
|
-
}
|
|
67
|
-
get unbounded() {
|
|
68
|
-
return this.type === 'unbounded';
|
|
69
|
-
}
|
|
70
|
-
render() {
|
|
71
|
-
const mode = getIonMode(this);
|
|
72
|
-
return (h(Host, { role: "presentation", class: {
|
|
73
|
-
[mode]: true,
|
|
74
|
-
'unbounded': this.unbounded
|
|
75
|
-
} }));
|
|
76
|
-
}
|
|
77
|
-
get el() { return getElement(this); }
|
|
78
|
-
};
|
|
79
|
-
const removeRipple = (ripple) => {
|
|
80
|
-
ripple.classList.add('fade-out');
|
|
81
|
-
setTimeout(() => {
|
|
82
|
-
ripple.remove();
|
|
83
|
-
}, 200);
|
|
84
|
-
};
|
|
85
|
-
const PADDING = 10;
|
|
86
|
-
const INITIAL_ORIGIN_SCALE = 0.5;
|
|
87
|
-
RippleEffect.style = rippleEffectCss;
|
|
88
|
-
|
|
89
|
-
export { RippleEffect as ion_ripple_effect };
|