@nanoporetech-digital/components 5.3.1 → 5.4.1
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/CHANGELOG.md +22 -0
- package/dist/cjs/{algolia-data-ed53eaa8.js → algolia-data-6841724e.js} +2 -2
- package/dist/cjs/{algolia-data-ed53eaa8.js.map → algolia-data-6841724e.js.map} +1 -1
- package/dist/cjs/{component-store-21cb4901.js → component-store-6d7b8855.js} +2 -2
- package/dist/cjs/{component-store-21cb4901.js.map → component-store-6d7b8855.js.map} +1 -1
- package/dist/cjs/{form-control-443e90bf.js → form-control-8db579a2.js} +2 -2
- package/dist/cjs/{form-control-443e90bf.js.map → form-control-8db579a2.js.map} +1 -1
- package/dist/cjs/{index-99649bef.js → index-0f470227.js} +2 -2
- package/dist/cjs/{index-99649bef.js.map → index-0f470227.js.map} +1 -1
- package/dist/cjs/{index-71f899a7.js → index-1d3ebe1a.js} +1 -8
- package/dist/cjs/index-1d3ebe1a.js.map +1 -0
- package/dist/cjs/loader.cjs.js +2 -2
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/nano-accordion.cjs.entry.js +1 -1
- package/dist/cjs/nano-alert.cjs.entry.js +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +3 -3
- package/dist/cjs/nano-algolia-input.cjs.entry.js +3 -3
- package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia-results.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia.cjs.entry.js +3 -3
- package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
- package/dist/cjs/nano-checkbox-group.cjs.entry.js +1 -1
- package/dist/cjs/nano-checkbox.cjs.entry.js +1 -1
- package/dist/cjs/nano-components.cjs.js +2 -2
- package/dist/cjs/nano-components.cjs.js.map +1 -1
- package/dist/cjs/nano-datalist_3.cjs.entry.js +1 -1
- package/dist/cjs/nano-date-input.cjs.entry.js +1 -1
- package/dist/cjs/nano-date-picker.cjs.entry.js +1 -1
- package/dist/cjs/nano-demo.cjs.entry.js +1 -1
- package/dist/cjs/nano-details.cjs.entry.js +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +2 -2
- package/dist/cjs/nano-drawer.cjs.entry.js +2 -2
- package/dist/cjs/nano-dropdown.cjs.entry.js +10 -8
- package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-field-validator.cjs.entry.js +2 -2
- package/dist/cjs/nano-file-upload.cjs.entry.js +1 -1
- package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +2 -2
- package/dist/cjs/nano-global-nav.cjs.entry.js +2 -2
- package/dist/cjs/nano-global-search-results.cjs.entry.js +1 -1
- package/dist/cjs/nano-grid-item.cjs.entry.js +1 -1
- package/dist/cjs/nano-grid_2.cjs.entry.js +1 -1
- package/dist/cjs/nano-hero.cjs.entry.js +1 -1
- package/dist/cjs/nano-icon-button_2.cjs.entry.js +1 -1
- package/dist/cjs/nano-icon.cjs.entry.js +1 -1
- package/dist/cjs/nano-input.cjs.entry.js +2 -2
- package/dist/cjs/nano-menu-drawer.cjs.entry.js +1 -1
- package/dist/cjs/nano-overflow-nav.cjs.entry.js +1 -1
- package/dist/cjs/nano-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/nano-range.cjs.entry.js +1 -1
- package/dist/cjs/nano-rating.cjs.entry.js +1 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
- package/dist/cjs/nano-slide.cjs.entry.js +1 -1
- package/dist/cjs/nano-slides.cjs.entry.js +1 -1
- package/dist/cjs/nano-sortable.cjs.entry.js +2 -2
- package/dist/cjs/nano-sortable.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-spinner.cjs.entry.js +1 -1
- package/dist/cjs/nano-split-pane.cjs.entry.js +1 -1
- package/dist/cjs/nano-sticker.cjs.entry.js +1 -1
- package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js +2 -2
- package/dist/cjs/nano-tab.cjs.entry.js +1 -1
- package/dist/cjs/{nano-table-3bfe9c30.js → nano-table-4a8e46d0.js} +4 -4
- package/dist/cjs/{nano-table-3bfe9c30.js.map → nano-table-4a8e46d0.js.map} +1 -1
- package/dist/cjs/nano-table.cjs.entry.js +3 -3
- package/dist/cjs/{table.worker-b3818c42.js → table.worker-969b683a.js} +4 -4
- package/dist/cjs/table.worker-969b683a.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/dropdown/dropdown.css +1 -0
- package/dist/collection/components/dropdown/dropdown.js +8 -6
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/sortable/sortable.js +2 -2
- package/dist/collection/components/sortable/sortable.js.map +1 -1
- package/dist/components/dropdown.js +9 -7
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/nano-sortable.js +1 -1
- package/dist/components/nano-sortable.js.map +1 -1
- package/dist/esm/{algolia-data-ef2829e0.js → algolia-data-ebf2a439.js} +2 -2
- package/dist/esm/{algolia-data-ef2829e0.js.map → algolia-data-ebf2a439.js.map} +1 -1
- package/dist/esm/{component-store-65d7e36a.js → component-store-54df2005.js} +2 -2
- package/dist/esm/{component-store-65d7e36a.js.map → component-store-54df2005.js.map} +1 -1
- package/dist/esm/{form-control-e8739b2e.js → form-control-eb06e009.js} +2 -2
- package/dist/esm/{form-control-e8739b2e.js.map → form-control-eb06e009.js.map} +1 -1
- package/dist/esm/{index-dad5627b.js → index-06666022.js} +1 -8
- package/dist/esm/index-06666022.js.map +1 -0
- package/dist/esm/{index-5d0f4704.js → index-e8891229.js} +2 -2
- package/dist/esm/{index-5d0f4704.js.map → index-e8891229.js.map} +1 -1
- package/dist/esm/loader.js +3 -3
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/nano-accordion.entry.js +1 -1
- package/dist/esm/nano-alert.entry.js +1 -1
- package/dist/esm/nano-algolia-filter.entry.js +3 -3
- package/dist/esm/nano-algolia-input.entry.js +3 -3
- package/dist/esm/nano-algolia-pagination.entry.js +2 -2
- package/dist/esm/nano-algolia-results.entry.js +2 -2
- package/dist/esm/nano-algolia.entry.js +3 -3
- package/dist/esm/nano-aspect-ratio.entry.js +1 -1
- package/dist/esm/nano-checkbox-group.entry.js +1 -1
- package/dist/esm/nano-checkbox.entry.js +1 -1
- package/dist/esm/nano-components.js +3 -3
- package/dist/esm/nano-components.js.map +1 -1
- package/dist/esm/nano-datalist_3.entry.js +1 -1
- package/dist/esm/nano-date-input.entry.js +1 -1
- package/dist/esm/nano-date-picker.entry.js +1 -1
- package/dist/esm/nano-demo.entry.js +1 -1
- package/dist/esm/nano-details.entry.js +1 -1
- package/dist/esm/nano-dialog.entry.js +2 -2
- package/dist/esm/nano-drawer.entry.js +2 -2
- package/dist/esm/nano-dropdown.entry.js +10 -8
- package/dist/esm/nano-dropdown.entry.js.map +1 -1
- package/dist/esm/nano-field-validator.entry.js +2 -2
- package/dist/esm/nano-file-upload.entry.js +1 -1
- package/dist/esm/nano-global-nav-user-profile_3.entry.js +2 -2
- package/dist/esm/nano-global-nav.entry.js +2 -2
- package/dist/esm/nano-global-search-results.entry.js +1 -1
- package/dist/esm/nano-grid-item.entry.js +1 -1
- package/dist/esm/nano-grid_2.entry.js +1 -1
- package/dist/esm/nano-hero.entry.js +1 -1
- package/dist/esm/nano-icon-button_2.entry.js +1 -1
- package/dist/esm/nano-icon.entry.js +1 -1
- package/dist/esm/nano-input.entry.js +2 -2
- package/dist/esm/nano-menu-drawer.entry.js +1 -1
- package/dist/esm/nano-overflow-nav.entry.js +1 -1
- package/dist/esm/nano-progress-bar.entry.js +1 -1
- package/dist/esm/nano-range.entry.js +1 -1
- package/dist/esm/nano-rating.entry.js +1 -1
- package/dist/esm/nano-resize-observe_2.entry.js +1 -1
- package/dist/esm/nano-slide.entry.js +1 -1
- package/dist/esm/nano-slides.entry.js +1 -1
- package/dist/esm/nano-sortable.entry.js +2 -2
- package/dist/esm/nano-sortable.entry.js.map +1 -1
- package/dist/esm/nano-spinner.entry.js +1 -1
- package/dist/esm/nano-split-pane.entry.js +1 -1
- package/dist/esm/nano-sticker.entry.js +1 -1
- package/dist/esm/nano-tab-content.entry.js +1 -1
- package/dist/esm/nano-tab-group.entry.js +2 -2
- package/dist/esm/nano-tab.entry.js +1 -1
- package/dist/esm/{nano-table-7fb21169.js → nano-table-05a285ed.js} +4 -4
- package/dist/esm/{nano-table-7fb21169.js.map → nano-table-05a285ed.js.map} +1 -1
- package/dist/esm/nano-table.entry.js +3 -3
- package/dist/esm/{table.worker-a37fa949.js → table.worker-f8e4350e.js} +4 -4
- package/dist/esm/table.worker-f8e4350e.js.map +1 -0
- package/dist/nano-components/nano-components.esm.js +1 -1
- package/dist/nano-components/nano-components.esm.js.map +1 -1
- package/dist/nano-components/{p-487de04d.entry.js → p-02b727d3.entry.js} +2 -2
- package/dist/nano-components/{p-90cd4f56.entry.js → p-03f8b115.entry.js} +2 -2
- package/dist/nano-components/{p-570d2e50.entry.js → p-04d5c9ea.entry.js} +2 -2
- package/dist/nano-components/{p-d74e2642.entry.js → p-0563e812.entry.js} +2 -2
- package/dist/nano-components/{p-7ed03b91.entry.js → p-0bc40dd1.entry.js} +2 -2
- package/dist/nano-components/{p-288dbe6b.entry.js → p-0e0f07f0.entry.js} +2 -2
- package/dist/nano-components/{p-20383b2e.entry.js → p-16e75af9.entry.js} +2 -2
- package/dist/nano-components/{p-57085052.entry.js → p-17eb456c.entry.js} +2 -2
- package/dist/nano-components/{p-5a4b3fa9.entry.js → p-18e0d957.entry.js} +2 -2
- package/dist/nano-components/{p-192902e0.entry.js → p-1a55e282.entry.js} +2 -2
- package/dist/nano-components/{p-ebb98a9e.entry.js → p-2a7d0c13.entry.js} +2 -2
- package/dist/nano-components/{p-ad6209ec.entry.js → p-328ef9d3.entry.js} +2 -2
- package/dist/nano-components/{p-bf18e298.entry.js → p-37c7eda3.entry.js} +2 -2
- package/dist/nano-components/{p-0301e8f7.entry.js → p-3ae362ae.entry.js} +2 -2
- package/dist/nano-components/p-3ae362ae.entry.js.map +1 -0
- package/dist/nano-components/{p-3dd8ae89.entry.js → p-3eeaba47.entry.js} +2 -2
- package/dist/nano-components/{p-cba50c3e.entry.js → p-3f40e370.entry.js} +2 -2
- package/dist/nano-components/{p-565793a2.entry.js → p-4a79eafe.entry.js} +2 -2
- package/dist/nano-components/{p-93cfbdb6.entry.js → p-4d0c0873.entry.js} +2 -2
- package/dist/nano-components/{p-cd2f5e97.entry.js → p-50f2fdb3.entry.js} +2 -2
- package/dist/nano-components/{p-20038e9c.entry.js → p-54c4a2f5.entry.js} +2 -2
- package/dist/nano-components/{p-27422aa9.entry.js → p-650aa197.entry.js} +2 -2
- package/dist/nano-components/{p-bdb5b6fc.entry.js → p-6bdbcaa6.entry.js} +2 -2
- package/dist/nano-components/{p-898cbac7.entry.js → p-6c4171fa.entry.js} +2 -2
- package/dist/nano-components/{p-9ebbb814.js → p-70747f20.js} +2 -2
- package/dist/nano-components/{p-1b791810.entry.js → p-73312f19.entry.js} +2 -2
- package/dist/nano-components/{p-5d466a58.entry.js → p-760d80d2.entry.js} +2 -2
- package/dist/nano-components/p-79c96564.entry.js +5 -0
- package/dist/nano-components/p-79c96564.entry.js.map +1 -0
- package/dist/nano-components/p-7ce68d02.entry.js +5 -0
- package/dist/nano-components/{p-f504b1df.entry.js → p-7dd30a3f.entry.js} +3 -3
- package/dist/nano-components/{p-f7a4c62b.entry.js → p-7f5fb917.entry.js} +2 -2
- package/dist/nano-components/{p-207a1fbc.entry.js → p-800c4260.entry.js} +2 -2
- package/dist/nano-components/{p-fe7a0158.entry.js → p-87329424.entry.js} +2 -2
- package/dist/nano-components/{p-00a18187.js → p-8bfcdfcc.js} +2 -2
- package/dist/nano-components/{p-68928c59.entry.js → p-9925e504.entry.js} +2 -2
- package/dist/nano-components/{p-bdef618c.entry.js → p-9c290055.entry.js} +2 -2
- package/dist/nano-components/{p-9b5429e1.entry.js → p-9d65f5de.entry.js} +2 -2
- package/dist/nano-components/{p-76a650b1.entry.js → p-a03993f9.entry.js} +2 -2
- package/dist/nano-components/{p-60a8c896.js → p-a26bdb65.js} +2 -2
- package/dist/nano-components/{p-ace7743c.entry.js → p-ac7953e0.entry.js} +2 -2
- package/dist/nano-components/{p-676a4744.entry.js → p-bedada62.entry.js} +2 -2
- package/dist/nano-components/p-c7312365.js +5 -0
- package/dist/nano-components/{p-fecb72b9.entry.js → p-d4e44f93.entry.js} +2 -2
- package/dist/nano-components/{p-b8e76fdf.entry.js → p-d62b48bc.entry.js} +2 -2
- package/dist/nano-components/p-d6a04b3a.js +6 -0
- package/dist/nano-components/p-d6a04b3a.js.map +1 -0
- package/dist/nano-components/{p-71057181.js → p-dc805ecc.js} +2 -2
- package/dist/nano-components/{p-653ae985.js → p-dd5687db.js} +2 -2
- package/dist/nano-components/{p-5aae2588.entry.js → p-e6a0675e.entry.js} +2 -2
- package/dist/nano-components/{p-b38cabe2.entry.js → p-e98835e2.entry.js} +2 -2
- package/dist/nano-components/{p-5984ae16.entry.js → p-efd3e121.entry.js} +2 -2
- package/dist/nano-components/{p-a8d6ca38.entry.js → p-fa9f834b.entry.js} +2 -2
- package/dist/nano-components/{p-173cc842.entry.js → p-fcbc9122.entry.js} +2 -2
- package/dist/nano-components/{p-31c23d6e.entry.js → p-fcd8df14.entry.js} +2 -2
- package/docs-json.json +3 -3
- package/hydrate/index.js +14 -15
- package/package.json +3 -3
- package/dist/cjs/index-71f899a7.js.map +0 -1
- package/dist/cjs/table.worker-b3818c42.js.map +0 -1
- package/dist/esm/index-dad5627b.js.map +0 -1
- package/dist/esm/table.worker-a37fa949.js.map +0 -1
- package/dist/nano-components/p-0301e8f7.entry.js.map +0 -1
- package/dist/nano-components/p-35d3072e.entry.js +0 -5
- package/dist/nano-components/p-c579d9aa.js +0 -5
- package/dist/nano-components/p-ede12d35.entry.js +0 -5
- package/dist/nano-components/p-ede12d35.entry.js.map +0 -1
- package/dist/nano-components/p-f6a8467a.js +0 -6
- package/dist/nano-components/p-f6a8467a.js.map +0 -1
- /package/dist/nano-components/{p-487de04d.entry.js.map → p-02b727d3.entry.js.map} +0 -0
- /package/dist/nano-components/{p-90cd4f56.entry.js.map → p-03f8b115.entry.js.map} +0 -0
- /package/dist/nano-components/{p-570d2e50.entry.js.map → p-04d5c9ea.entry.js.map} +0 -0
- /package/dist/nano-components/{p-d74e2642.entry.js.map → p-0563e812.entry.js.map} +0 -0
- /package/dist/nano-components/{p-7ed03b91.entry.js.map → p-0bc40dd1.entry.js.map} +0 -0
- /package/dist/nano-components/{p-288dbe6b.entry.js.map → p-0e0f07f0.entry.js.map} +0 -0
- /package/dist/nano-components/{p-20383b2e.entry.js.map → p-16e75af9.entry.js.map} +0 -0
- /package/dist/nano-components/{p-57085052.entry.js.map → p-17eb456c.entry.js.map} +0 -0
- /package/dist/nano-components/{p-5a4b3fa9.entry.js.map → p-18e0d957.entry.js.map} +0 -0
- /package/dist/nano-components/{p-192902e0.entry.js.map → p-1a55e282.entry.js.map} +0 -0
- /package/dist/nano-components/{p-ebb98a9e.entry.js.map → p-2a7d0c13.entry.js.map} +0 -0
- /package/dist/nano-components/{p-ad6209ec.entry.js.map → p-328ef9d3.entry.js.map} +0 -0
- /package/dist/nano-components/{p-bf18e298.entry.js.map → p-37c7eda3.entry.js.map} +0 -0
- /package/dist/nano-components/{p-3dd8ae89.entry.js.map → p-3eeaba47.entry.js.map} +0 -0
- /package/dist/nano-components/{p-cba50c3e.entry.js.map → p-3f40e370.entry.js.map} +0 -0
- /package/dist/nano-components/{p-565793a2.entry.js.map → p-4a79eafe.entry.js.map} +0 -0
- /package/dist/nano-components/{p-93cfbdb6.entry.js.map → p-4d0c0873.entry.js.map} +0 -0
- /package/dist/nano-components/{p-cd2f5e97.entry.js.map → p-50f2fdb3.entry.js.map} +0 -0
- /package/dist/nano-components/{p-20038e9c.entry.js.map → p-54c4a2f5.entry.js.map} +0 -0
- /package/dist/nano-components/{p-27422aa9.entry.js.map → p-650aa197.entry.js.map} +0 -0
- /package/dist/nano-components/{p-bdb5b6fc.entry.js.map → p-6bdbcaa6.entry.js.map} +0 -0
- /package/dist/nano-components/{p-898cbac7.entry.js.map → p-6c4171fa.entry.js.map} +0 -0
- /package/dist/nano-components/{p-9ebbb814.js.map → p-70747f20.js.map} +0 -0
- /package/dist/nano-components/{p-1b791810.entry.js.map → p-73312f19.entry.js.map} +0 -0
- /package/dist/nano-components/{p-5d466a58.entry.js.map → p-760d80d2.entry.js.map} +0 -0
- /package/dist/nano-components/{p-35d3072e.entry.js.map → p-7ce68d02.entry.js.map} +0 -0
- /package/dist/nano-components/{p-f504b1df.entry.js.map → p-7dd30a3f.entry.js.map} +0 -0
- /package/dist/nano-components/{p-f7a4c62b.entry.js.map → p-7f5fb917.entry.js.map} +0 -0
- /package/dist/nano-components/{p-207a1fbc.entry.js.map → p-800c4260.entry.js.map} +0 -0
- /package/dist/nano-components/{p-fe7a0158.entry.js.map → p-87329424.entry.js.map} +0 -0
- /package/dist/nano-components/{p-00a18187.js.map → p-8bfcdfcc.js.map} +0 -0
- /package/dist/nano-components/{p-68928c59.entry.js.map → p-9925e504.entry.js.map} +0 -0
- /package/dist/nano-components/{p-bdef618c.entry.js.map → p-9c290055.entry.js.map} +0 -0
- /package/dist/nano-components/{p-9b5429e1.entry.js.map → p-9d65f5de.entry.js.map} +0 -0
- /package/dist/nano-components/{p-76a650b1.entry.js.map → p-a03993f9.entry.js.map} +0 -0
- /package/dist/nano-components/{p-60a8c896.js.map → p-a26bdb65.js.map} +0 -0
- /package/dist/nano-components/{p-ace7743c.entry.js.map → p-ac7953e0.entry.js.map} +0 -0
- /package/dist/nano-components/{p-676a4744.entry.js.map → p-bedada62.entry.js.map} +0 -0
- /package/dist/nano-components/{p-c579d9aa.js.map → p-c7312365.js.map} +0 -0
- /package/dist/nano-components/{p-fecb72b9.entry.js.map → p-d4e44f93.entry.js.map} +0 -0
- /package/dist/nano-components/{p-b8e76fdf.entry.js.map → p-d62b48bc.entry.js.map} +0 -0
- /package/dist/nano-components/{p-71057181.js.map → p-dc805ecc.js.map} +0 -0
- /package/dist/nano-components/{p-653ae985.js.map → p-dd5687db.js.map} +0 -0
- /package/dist/nano-components/{p-5aae2588.entry.js.map → p-e6a0675e.entry.js.map} +0 -0
- /package/dist/nano-components/{p-b38cabe2.entry.js.map → p-e98835e2.entry.js.map} +0 -0
- /package/dist/nano-components/{p-5984ae16.entry.js.map → p-efd3e121.entry.js.map} +0 -0
- /package/dist/nano-components/{p-a8d6ca38.entry.js.map → p-fa9f834b.entry.js.map} +0 -0
- /package/dist/nano-components/{p-173cc842.entry.js.map → p-fcbc9122.entry.js.map} +0 -0
- /package/dist/nano-components/{p-31c23d6e.entry.js.map → p-fcd8df14.entry.js.map} +0 -0
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
|
-
import{w as t,r as i,c as s,d as e,h,a as n,g as r}from"./p-f6a8467a.js";import{d as o}from"./p-842cf127.js";import{d as a}from"./p-7bff5224.js";import{a as l}from"./p-9bfdee71.js";const d=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{position:relative;display:block}.sortable__live-region{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);block-size:1px;inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}";const f={horizontal:{x:1,y:0},vertical:{x:0,y:1}};let c=0;const u=class{handleItemSelectorChange(){this.refreshKeyboardHandles()}handleHandleSelectorChange(){this.refreshKeyboardHandles();this.attachMutationObserver()}handleCreateKeyboardHandleChange(){this.refreshKeyboardHandles()}handleSortableHostElement(t,i){if(i)this.removeEventHandlers(i);this.addEventHandlers();this.refreshKeyboardHandles();this.attachMutationObserver();if(this.sortableHostElement){this.sortableHostElement.style.position="relative"}}async refreshKeyboardHandles(){var t,i,s;if(this.handleSelector){if((t=this.keyboardHandleMap)===null||t===void 0?void 0:t.size){this.keyboardHandleMap.clear()}this.sortableHost.querySelectorAll(this.handleSelector).forEach((t=>{if(!t.getAttribute("aria-describedby"))t.setAttribute("aria-describedby",this.sortableId);const i=t.closest(this.itemSelector);if(i)this.keyboardHandleMap.set(t,i)}));return}if((i=this.keyboardHandleMap)===null||i===void 0?void 0:i.size){(s=this.keyboardHandleMap)===null||s===void 0?void 0:s.forEach(((t,i)=>i.remove()));this.keyboardHandleMap.clear()}this.sortableHost.querySelectorAll(this.itemSelector).forEach(((t,i)=>{const s=this.createKeyboardHandle(i,t);if(!s){console.error("`createKeyboardHandle` *must* return the handle element it creates");return}this.keyboardHandleMap.set(s,t);s.setAttribute("aria-describedby",this.sortableId)}))}get sortableHost(){if(this.sortableHostElement)return this.sortableHostElement;return this.host}addAriaMsg(t){this.ariaTextList=[...this.ariaTextList,t];setTimeout((()=>{const i=this.ariaTextList.indexOf(t);this.ariaTextList.splice(i,1);this.ariaTextList=[...this.ariaTextList]}),1e4)}updateUserSelectStyle(t){this.host.style.userSelect=t;this.host.style.MozUserSelect=t;this.host.style.msUserSelect=t;this.host.style.webkitUserSelect=t}hitTest(t,i){const{left:s,top:e,width:h,height:n}=t.getBoundingClientRect();const r=s+h/2;const o=e+n/2;return i.filter((t=>{const{left:i,right:s,top:e,bottom:h}=t.getBoundingClientRect();return!(r<i||r>s||o<e||o>h)}))}isAnimating(t){return this.animatedElements.indexOf(t)!==-1}animateNode(i,s=0,e=0){if(!i.animate){return}this.animatedElements.push(i);i.style.willChange="transform";t((()=>{this.animationPromise=new Promise((t=>{i.animate([{transform:`translate3d(${s}px, ${e}px, 0)`},{transform:"none"}],this.animationTiming).addEventListener("finish",(()=>{const s=this.animatedElements.indexOf(i);i.style.willChange="";if(s!==-1){this.animatedElements.splice(s,1)}t();delete this.animationPromise}),{once:true})}))}))}insertAtTarget(t,i){if(!t||!i)return;let s=[];if(this.animationEnabled){s=this.sortableNodes.map((t=>({x:t.offsetLeft,y:t.offsetTop})))}if(!t.isConnected||!i.isConnected)return;if(this.dropzoneNodes.indexOf(i)>-1){i.append(t)}else{const s=t.compareDocumentPosition(i);let e;if(s&this.host.DOCUMENT_POSITION_FOLLOWING){e=i.parentNode===t.parentNode?"afterend":"beforebegin"}if(s&this.host.DOCUMENT_POSITION_PRECEDING){e=i.parentNode===t.parentNode?"beforebegin":"afterend"}if(e)i.insertAdjacentElement(e,t)}if(this.animationEnabled){this.sortableNodes.forEach(((t,i)=>{const{x:e,y:h}=s[i];const n=e-t.offsetLeft;const r=h-t.offsetTop;if(n!==0||r!==0){this.animateNode(t,n,r)}}))}}reset(){if(this.draggedElementClone!==undefined&&this.draggedElementClone.parentNode!==null){this.draggedElementClone.parentNode.removeChild(this.draggedElementClone)}if(this.draggedElement&&this.draggedElement.parentNode&&this.draggedElementOrigin){this.draggedElement.classList.remove(this.placeholderClass)}if(this.dropzoneActiveClass&&this.dropzoneNodes.length){this.dropzoneNodes.forEach((t=>t.classList.remove(this.dropzoneActiveClass)))}delete this.draggedElementClone;delete this.draggedElement;this.dropzoneNodes=[];this.sortableNodes=[];this.animatedElements=[];this.dragRequestPending=false;this.updateUserSelectStyle("")}createClone(t){const i=t.cloneNode(true);if(t.id)i.id="clone__"+i.id;Array.from(i.children).forEach(((i,s)=>{const e=i;const h=t.children.item(s);if(h){e.style.width=`${h.offsetWidth}px`}}));const{offsetLeft:s,offsetTop:e,offsetWidth:h,offsetHeight:n}=t;Object.assign(i.style,{position:"absolute",left:`calc(${s}px - var(--grab-offset-x, 0px))`,top:`calc(${e}px - var(--grab-offset-y, 0px))`,height:this.dragResize?`${n}px`:undefined,width:this.dragResize?`${h}px`:undefined,willChange:"transform,opacity"});i.classList.add(this.draggedClass);return t.parentNode.appendChild(i)}removeEventHandlers(t){t=t||this.sortableHost;t.removeEventListener("mousedown",this.handleTrack);t.removeEventListener("touchstart",this.handleTrack);t.removeEventListener("keydown",this.handleKeydown)}addEventHandlers(t){t=t||this.sortableHost;l(t,"mousedown touchstart",this.handleTrack,{passive:true});t.addEventListener("keydown",this.handleKeydown)}attachMutationObserver(){if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=undefined}this.mutationObserver=new MutationObserver((()=>{const t=Array.from(this.keyboardHandleMap.values());const i=Array.from(this.sortableHost.querySelectorAll(this.itemSelector));if(t.length!==i.length||!!i.find((i=>!t.includes(i)))){this.refreshKeyboardHandles()}}));this.mutationObserver.observe(this.sortableHost,{subtree:true,childList:true})}handleKeydown(t){const i=t.target;let s;let e;if(this.handleSelector){s=i.closest(this.handleSelector);e=i.closest(this.itemSelector)}else{e=this.keyboardHandleMap.get(i);s=i}if(!s||!e)return;const h=t=>{this.keyboardSortActive=t;this.draggedElement=t?e:undefined;e.classList.toggle(this.draggedClass,t);s.classList.toggle(this.handleDraggedClass,t);if(t){this.addAriaMsg(this.grabbedHelperText(e));document.addEventListener("mousedown",(()=>h(false)),{once:true})}else{this.addAriaMsg(this.droppedHelperText(e))}};if([" ","Space","Enter"].includes(t.key)){t.preventDefault();if(!this.keyboardSortActive){h(true);this.sortableNodes=Array.from(this.sortableHost.querySelectorAll(this.itemSelector))||[];const t=this.nanoGrabbed.emit({element:e,index:this.sortableNodes.indexOf(e)});if(t.defaultPrevented){h(false);return}}else{h(false);this.nanoDropped.emit({element:e})}return}if(!this.keyboardSortActive)return;if(["Escape","Tab"].includes(t.key))h(false);let n=["Home","End"];if(!this.orientation||this.orientation==="horizontal")n=[...n,"ArrowRight","ArrowLeft"];if(!this.orientation||this.orientation==="vertical")n=[...n,"ArrowUp","ArrowDown"];if(!n.includes(t.key))return;t.preventDefault();this.sortableNodes=Array.from(this.sortableHost.querySelectorAll(this.itemSelector))||[];this.dropzoneNodes=Array.from(this.sortableHost.querySelectorAll(this.dropzoneSelector))||[];const r=this.sortableNodes.indexOf(this.draggedElement);let o=-1;if(this.dropzoneNodes.length){const t=this.draggedElement.closest(this.dropzoneSelector);o=this.dropzoneNodes.indexOf(t);o=o>-1?o:-1}const a=r-1<0&&o>-1?this.dropzoneNodes[o-1]:this.sortableNodes[r-1];const l=r+1===this.sortableNodes.length&&o>-1?this.dropzoneNodes[o+1]:this.sortableNodes[r+1];if(t.key==="Home"){this.insertAtTarget(this.draggedElement,this.sortableNodes[0])}if(t.key==="End"){this.insertAtTarget(this.draggedElement,this.sortableNodes[this.sortableNodes.length-1])}if(["ArrowRight","ArrowDown"].includes(t.key)){this.insertAtTarget(this.draggedElement,l)}if(["ArrowLeft","ArrowUp"].includes(t.key)){this.insertAtTarget(this.draggedElement,a)}this.finishOrder();this.draggedElement=e;const d=()=>{requestAnimationFrame((()=>{typeof s["setFocus"]==="function"?s.setFocus():s.focus()}))};if(this.animationPromise)this.animationPromise.then((()=>d()));else d()}handleTrack(t){if(this.dragRequestPending||t.button&&t.button!==1)return;const i=t=>{if(t.cancelable)t.preventDefault();clearTimeout(this.mouseDownTimer)};const s=()=>{clearTimeout(this.mouseDownTimer);document.removeEventListener("touchmove",i);document.removeEventListener("contextmenu",this.finishOrder)};s();this.mouseDownTimer=window===null||window===void 0?void 0:window.setTimeout((()=>{if(!this.trackStart(t))return;document.addEventListener("touchmove",i,{passive:false});document.addEventListener("contextmenu",this.finishOrder);this.addAriaMsg(this.grabbedHelperText(this.draggedElement));o(this.sortableHost,{initialEvent:t,relative:true,onMove:(t,i)=>{this.trackMove(t,i)},onStop:()=>{this.nanoDropped.emit({element:this.draggedElement});s();const t=()=>{this.addAriaMsg(this.droppedHelperText(this.draggedElement));requestAnimationFrame((()=>this.finishOrder()))};if(this.animationPromise){this.animationPromise.then((()=>t()))}else t()}})}),150);l(document,"mouseup touchend touchmove",(()=>clearTimeout(this.mouseDownTimer)),{once:true})}trackStart(t){const i=t.target;let s;if(this.handleSelector){s=i.closest(this.handleSelector);if(!s)return;s.classList.add(this.handleDraggedClass)}const e=i.closest(this.itemSelector);if(!e)return false;this.sortableNodes=Array.from(this.sortableHost.querySelectorAll(this.itemSelector))||[];const h=this.nanoGrabbed.emit({element:e,index:this.sortableNodes.indexOf(e)});if(h.defaultPrevented)return false;t.preventDefault();this.updateUserSelectStyle("none");this.dragRequestPending=true;this.draggedElement=e;this.dropzoneNodes=Array.from(this.sortableHost.querySelectorAll(this.dropzoneSelector))||[];this.draggedElementClone=this.createClone(e);this.draggedElementOrigin=e.nextSibling;this.animatedElements=[];this.draggedElement.classList.add(this.placeholderClass);return true}constructor(h){i(this,h);this.nanoOrderChange=s(this,"nanoOrderChange",7);this.nanoGrabbed=s(this,"nanoGrabbed",7);this.nanoDropped=s(this,"nanoDropped",7);this.dragRequestPending=false;this.sortableNodes=[];this.dropzoneNodes=[];this.animatedElements=[];this.keyboardHandleMap=new Map;this.sortableId=`nano-sortable-${c++}`;this.finishOrder=()=>{if(!this.draggedElement)return;const t=Array.from(this.sortableHost.querySelectorAll(this.itemSelector)).filter((t=>t!==this.draggedElementClone));const i=this.sortableNodes.indexOf(this.draggedElement);const s=t.indexOf(this.draggedElement);if(this.handleSelector){const t=this.draggedElement.querySelector(this.handleSelector);t.classList.remove(this.handleDraggedClass)}if(i!==s){const e=this.nanoOrderChange.emit({element:this.draggedElement,originalIndex:i,targetIndex:s});if(e.defaultPrevented){this.animationPromise=new Promise((s=>{setTimeout((()=>{this.insertAtTarget(this.draggedElement,t[i]);this.reset();this.dragRequestPending=false;s()}),200)}));return}this.addAriaMsg(this.reorderHelperText(this.draggedElement,t,s+1))}this.reset();this.dragRequestPending=false};this.trackMove=(i,s)=>{if(!this.draggedElementClone){return}if(this.orientation){i=i*f[this.orientation].x;s=s*f[this.orientation].y}t((()=>{Object.assign(this.draggedElementClone.style,{transform:`translate3d(${i}px, ${s}px, 0)`})}));let h=this.hitTest(this.draggedElementClone,this.sortableNodes)[0];let n;if(this.dropzoneSelector&&this.dropzoneActiveClass){e((()=>{n=this.draggedElement.closest(this.dropzoneSelector);t((()=>{this.dropzoneNodes.filter((t=>t!==n)).forEach((t=>t.classList.remove(this.dropzoneActiveClass)));n.classList.add(this.dropzoneActiveClass)}))}))}if(!h&&this.dropzoneNodes.length){h=this.hitTest(this.draggedElementClone,this.dropzoneNodes)[0];if(this.draggedElement.closest(this.dropzoneSelector)===h)return}if(h&&h!==this.draggedElement&&!this.isAnimating(h)){this.insertAtTarget(this.draggedElement,h)}};this.itemSelector="li";this.handleSelector=undefined;this.dropzoneSelector=undefined;this.helperText='Press "Space" or "Enter" to enable element reordering and use the arrow keys to reorder items.'+'Press "Escape" to cancel reordering. Alternatively, use your mouse to drag / reorder.';this.itemDescriptor=t=>`"${t===null||t===void 0?void 0:t.textContent.trim()}"`;this.grabbedHelperText=t=>`${this.itemDescriptor(t)} grabbed`;this.droppedHelperText=t=>`${this.itemDescriptor(t)} dropped`;this.reorderHelperText=(t,i,s)=>`The list has been reordered, ${this.itemDescriptor(t)} is now item ${s} of ${i.length}`;this.createKeyboardHandle=(t,i)=>{const s=`\n <nano-icon-button\n slot="end"\n icon-name="light/arrows"\n class="nano-sortable__keyboard-handle visually-hidden"\n label="Re-order this item"\n ></nano-icon-button>`;const e=globalThis.document.createElement("div");e.innerHTML=s;const h=e.children[0];i.append(h);return h};this.sortableHostElement=undefined;this.animationEnabled=true;this.draggedClass="nano-sortable__dragged";this.handleDraggedClass="nano-sortable__handle-dragged";this.placeholderClass="nano-sortable__placeholder";this.dropzoneActiveClass="";this.animationTiming={duration:200,easing:"ease-out"};this.orientation=undefined;this.dragResize=false;this.keyboardSortActive=false;this.ariaTextList=[];this.handleTrack=this.handleTrack.bind(this);this.handleKeydown=this.handleKeydown.bind(this);this.refreshKeyboardHandles=this.refreshKeyboardHandles.bind(this);this.refreshKeyboardHandles=a(this.refreshKeyboardHandles,500)}connectedCallback(){this.addEventHandlers();this.refreshKeyboardHandles();this.attachMutationObserver();if(!this.host.querySelector(`#${this.sortableId}`)){this.host.insertAdjacentHTML("beforeend",`<div class="visually-hidden" id="${this.sortableId}">${this.helperText}</div>`)}}disconnectedCallback(){var t;this.removeEventHandlers();(t=this.host.querySelector(`#${this.sortableId}`))===null||t===void 0?void 0:t.remove();if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=undefined}}render(){return h(n,null,h("div",{class:"sortable__live-region","aria-live":"polite","aria-relevant":"additions","aria-atomic":"true",role:"log",part:"announcements"},this.ariaTextList.map((t=>h("div",null,t)))),h("slot",null))}get host(){return r(this)}static get watchers(){return{itemSelector:["handleItemSelectorChange"],handleSelector:["handleHandleSelectorChange"],createKeyboardHandle:["handleCreateKeyboardHandleChange"],sortableHostElement:["handleSortableHostElement"]}}};u.style=d;export{u as nano_sortable};
|
5
|
-
//# sourceMappingURL=p-
|
4
|
+
import{w as t,r as i,c as s,d as e,h,a as n,g as r}from"./p-d6a04b3a.js";import{d as o}from"./p-842cf127.js";import{d as a}from"./p-7bff5224.js";import{a as l}from"./p-9bfdee71.js";const d=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{position:relative;display:block}.sortable__live-region{clip:rect(1px, 1px, 1px, 1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);block-size:1px;inline-size:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}";const f={horizontal:{x:1,y:0},vertical:{x:0,y:1}};let c=0;const u=class{handleItemSelectorChange(){this.refreshKeyboardHandles()}handleHandleSelectorChange(){this.refreshKeyboardHandles();this.attachMutationObserver()}handleCreateKeyboardHandleChange(){this.refreshKeyboardHandles()}handleSortableHostElement(t,i){if(i)this.removeEventHandlers(i);this.addEventHandlers();this.refreshKeyboardHandles();this.attachMutationObserver();if(this.sortableHostElement){this.sortableHostElement.style.position="relative"}}async refreshKeyboardHandles(){var t,i,s;if(this.handleSelector){if((t=this.keyboardHandleMap)===null||t===void 0?void 0:t.size){this.keyboardHandleMap.clear()}this.sortableHost.querySelectorAll(this.handleSelector).forEach((t=>{if(!t.getAttribute("aria-describedby"))t.setAttribute("aria-describedby",this.sortableId);const i=t.closest(this.itemSelector);if(i)this.keyboardHandleMap.set(t,i)}));return}if((i=this.keyboardHandleMap)===null||i===void 0?void 0:i.size){(s=this.keyboardHandleMap)===null||s===void 0?void 0:s.forEach(((t,i)=>i.remove()));this.keyboardHandleMap.clear()}this.sortableHost.querySelectorAll(this.itemSelector).forEach(((t,i)=>{const s=this.createKeyboardHandle(i,t);if(!s){console.error("`createKeyboardHandle` *must* return the handle element it creates");return}this.keyboardHandleMap.set(s,t);s.setAttribute("aria-describedby",this.sortableId)}))}get sortableHost(){if(this.sortableHostElement)return this.sortableHostElement;return this.host}addAriaMsg(t){this.ariaTextList=[...this.ariaTextList,t];setTimeout((()=>{const i=this.ariaTextList.indexOf(t);this.ariaTextList.splice(i,1);this.ariaTextList=[...this.ariaTextList]}),1e4)}updateUserSelectStyle(t){this.host.style.userSelect=t;this.host.style.MozUserSelect=t;this.host.style.msUserSelect=t;this.host.style.webkitUserSelect=t}hitTest(t,i){const{left:s,top:e,width:h,height:n}=t.getBoundingClientRect();const r=s+h/2;const o=e+n/2;return i.filter((t=>{const{left:i,right:s,top:e,bottom:h}=t.getBoundingClientRect();return!(r<i||r>s||o<e||o>h)}))}isAnimating(t){return this.animatedElements.indexOf(t)!==-1}animateNode(i,s=0,e=0){if(!i.animate){return}this.animatedElements.push(i);i.style.willChange="transform";t((()=>{this.animationPromise=new Promise((t=>{i.animate([{transform:`translate3d(${s}px, ${e}px, 0)`},{transform:"none"}],this.animationTiming).addEventListener("finish",(()=>{const s=this.animatedElements.indexOf(i);i.style.willChange="";if(s!==-1){this.animatedElements.splice(s,1)}t();delete this.animationPromise}),{once:true})}))}))}insertAtTarget(t,i){if(!t||!i)return;let s=[];if(this.animationEnabled){s=this.sortableNodes.map((t=>({x:t.offsetLeft,y:t.offsetTop})))}if(!t.isConnected||!i.isConnected)return;if(this.dropzoneNodes.indexOf(i)>-1){i.append(t)}else{const s=t.compareDocumentPosition(i);let e;if(s&this.host.DOCUMENT_POSITION_FOLLOWING){e=i.parentNode===t.parentNode?"afterend":"beforebegin"}if(s&this.host.DOCUMENT_POSITION_PRECEDING){e=i.parentNode===t.parentNode?"beforebegin":"afterend"}if(e)i.insertAdjacentElement(e,t)}if(this.animationEnabled){this.sortableNodes.forEach(((t,i)=>{const{x:e,y:h}=s[i];const n=e-t.offsetLeft;const r=h-t.offsetTop;if(n!==0||r!==0){this.animateNode(t,n,r)}}))}}reset(){if(this.draggedElementClone!==undefined&&this.draggedElementClone.parentNode!==null){this.draggedElementClone.parentNode.removeChild(this.draggedElementClone)}if(this.draggedElement&&this.draggedElement.parentNode&&this.draggedElementOrigin){this.draggedElement.classList.remove(this.placeholderClass)}if(this.dropzoneActiveClass&&this.dropzoneNodes.length){this.dropzoneNodes.forEach((t=>t.classList.remove(this.dropzoneActiveClass)))}delete this.draggedElementClone;delete this.draggedElement;this.dropzoneNodes=[];this.sortableNodes=[];this.animatedElements=[];this.dragRequestPending=false;this.updateUserSelectStyle("")}createClone(t){const i=t.cloneNode(true);if(t.id)i.id="clone__"+i.id;Array.from(i.children).forEach(((i,s)=>{const e=i;const h=t.children.item(s);if(h){e.style.width=`${h.offsetWidth}px`}}));const{offsetLeft:s,offsetTop:e,offsetWidth:h,offsetHeight:n}=t;Object.assign(i.style,{position:"absolute",left:`calc(${s}px - var(--grab-offset-x, 0px))`,top:`calc(${e}px - var(--grab-offset-y, 0px))`,height:this.dragResize?`${n}px`:undefined,width:this.dragResize?`${h}px`:undefined,willChange:"transform,opacity"});i.classList.add(this.draggedClass);return t.parentNode.appendChild(i)}removeEventHandlers(t){t=t||this.sortableHost;t.removeEventListener("mousedown",this.handleTrack);t.removeEventListener("touchstart",this.handleTrack);t.removeEventListener("keydown",this.handleKeydown)}addEventHandlers(t){t=t||this.sortableHost;l(t,"mousedown touchstart",this.handleTrack,{passive:true});t.addEventListener("keydown",this.handleKeydown)}attachMutationObserver(){if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=undefined}this.mutationObserver=new MutationObserver((()=>{const t=Array.from(this.keyboardHandleMap.values());const i=Array.from(this.sortableHost.querySelectorAll(this.itemSelector));if(t.length!==i.length||!!i.find((i=>!t.includes(i)))){this.refreshKeyboardHandles()}}));this.mutationObserver.observe(this.sortableHost,{subtree:true,childList:true})}handleKeydown(t){const i=t.target;let s;let e;if(this.handleSelector){s=i.closest(this.handleSelector);e=i.closest(this.itemSelector)}else{e=this.keyboardHandleMap.get(i);s=i}if(!s||!e)return;const h=t=>{this.keyboardSortActive=t;this.draggedElement=t?e:undefined;e.classList.toggle(this.draggedClass,t);s.classList.toggle(this.handleDraggedClass,t);if(t){this.addAriaMsg(this.grabbedHelperText(e));document.addEventListener("mousedown",(()=>h(false)),{once:true})}else{this.addAriaMsg(this.droppedHelperText(e))}};if([" ","Space","Enter"].includes(t.key)){t.preventDefault();if(!this.keyboardSortActive){h(true);this.sortableNodes=Array.from(this.sortableHost.querySelectorAll(this.itemSelector))||[];const t=this.nanoGrabbed.emit({element:e,index:this.sortableNodes.indexOf(e)});if(t.defaultPrevented){h(false);return}}else{h(false);this.nanoDropped.emit({element:e})}return}if(!this.keyboardSortActive)return;if(["Escape","Tab"].includes(t.key))h(false);let n=["Home","End"];if(!this.orientation||this.orientation==="horizontal")n=[...n,"ArrowRight","ArrowLeft"];if(!this.orientation||this.orientation==="vertical")n=[...n,"ArrowUp","ArrowDown"];if(!n.includes(t.key))return;t.preventDefault();this.sortableNodes=Array.from(this.sortableHost.querySelectorAll(this.itemSelector))||[];this.dropzoneNodes=Array.from(this.sortableHost.querySelectorAll(this.dropzoneSelector))||[];const r=this.sortableNodes.indexOf(this.draggedElement);let o=-1;if(this.dropzoneNodes.length){const t=this.draggedElement.closest(this.dropzoneSelector);o=this.dropzoneNodes.indexOf(t);o=o>-1?o:-1}const a=r-1<0&&o>-1?this.dropzoneNodes[o-1]:this.sortableNodes[r-1];const l=r+1===this.sortableNodes.length&&o>-1?this.dropzoneNodes[o+1]:this.sortableNodes[r+1];if(t.key==="Home"){this.insertAtTarget(this.draggedElement,this.sortableNodes[0])}if(t.key==="End"){this.insertAtTarget(this.draggedElement,this.sortableNodes[this.sortableNodes.length-1])}if(["ArrowRight","ArrowDown"].includes(t.key)){this.insertAtTarget(this.draggedElement,l)}if(["ArrowLeft","ArrowUp"].includes(t.key)){this.insertAtTarget(this.draggedElement,a)}this.finishOrder();this.draggedElement=e;const d=()=>{requestAnimationFrame((()=>{typeof s["setFocus"]==="function"?s.setFocus():s.focus()}))};if(this.animationPromise)this.animationPromise.then((()=>d()));else d()}handleTrack(t){if(this.dragRequestPending||t.button&&t.button!==1)return;const i=t=>{if(t.cancelable)t.preventDefault();clearTimeout(this.mouseDownTimer)};const s=()=>{clearTimeout(this.mouseDownTimer);document.removeEventListener("touchmove",i);document.removeEventListener("contextmenu",this.finishOrder)};s();this.mouseDownTimer=window===null||window===void 0?void 0:window.setTimeout((()=>{if(!this.trackStart(t))return;document.addEventListener("touchmove",i,{passive:false});document.addEventListener("contextmenu",this.finishOrder);this.addAriaMsg(this.grabbedHelperText(this.draggedElement));o(this.sortableHost,{initialEvent:t,relative:true,onMove:(t,i)=>{this.trackMove(t,i)},onStop:()=>{this.nanoDropped.emit({element:this.draggedElement});s();const t=()=>{this.addAriaMsg(this.droppedHelperText(this.draggedElement));requestAnimationFrame((()=>this.finishOrder()))};if(this.animationPromise){this.animationPromise.then((()=>t()))}else t()}})}),150);l(document,"mouseup touchend touchmove",(()=>clearTimeout(this.mouseDownTimer)),{once:true})}trackStart(t){const i=t.target;let s;if(this.handleSelector){s=i.closest(this.handleSelector);if(!s)return;s.classList.add(this.handleDraggedClass)}const e=i.closest(this.itemSelector);if(!e)return false;this.sortableNodes=Array.from(this.sortableHost.querySelectorAll(this.itemSelector))||[];const h=this.nanoGrabbed.emit({element:e,index:this.sortableNodes.indexOf(e)});if(h.defaultPrevented)return false;t.preventDefault();this.updateUserSelectStyle("none");this.dragRequestPending=true;this.draggedElement=e;this.dropzoneNodes=Array.from(this.sortableHost.querySelectorAll(this.dropzoneSelector))||[];this.draggedElementClone=this.createClone(e);this.draggedElementOrigin=e.nextSibling;this.animatedElements=[];this.draggedElement.classList.add(this.placeholderClass);return true}constructor(h){i(this,h);this.nanoOrderChange=s(this,"nanoOrderChange",7);this.nanoGrabbed=s(this,"nanoGrabbed",7);this.nanoDropped=s(this,"nanoDropped",7);this.dragRequestPending=false;this.sortableNodes=[];this.dropzoneNodes=[];this.animatedElements=[];this.keyboardHandleMap=new Map;this.sortableId=`nano-sortable-${c++}`;this.finishOrder=()=>{if(!this.draggedElement)return;const t=Array.from(this.sortableHost.querySelectorAll(this.itemSelector)).filter((t=>t!==this.draggedElementClone));const i=this.sortableNodes.indexOf(this.draggedElement);const s=t.indexOf(this.draggedElement);if(this.handleSelector){const t=this.draggedElement.querySelector(this.handleSelector);t.classList.remove(this.handleDraggedClass)}if(i!==s){const e=this.nanoOrderChange.emit({element:this.draggedElement,originalIndex:i,targetIndex:s});if(e.defaultPrevented){this.animationPromise=new Promise((s=>{setTimeout((()=>{this.insertAtTarget(this.draggedElement,t[i]);this.reset();this.dragRequestPending=false;s()}),200)}));return}this.addAriaMsg(this.reorderHelperText(this.draggedElement,t,s+1))}this.reset();this.dragRequestPending=false};this.trackMove=(i,s)=>{if(!this.draggedElementClone){return}if(this.orientation){i=i*f[this.orientation].x;s=s*f[this.orientation].y}t((()=>{Object.assign(this.draggedElementClone.style,{transform:`translate3d(${i}px, ${s}px, 0)`})}));let h=this.hitTest(this.draggedElementClone,this.sortableNodes)[0];let n;if(this.dropzoneSelector&&this.dropzoneActiveClass){e((()=>{n=this.draggedElement.closest(this.dropzoneSelector);t((()=>{this.dropzoneNodes.filter((t=>t!==n)).forEach((t=>t.classList.remove(this.dropzoneActiveClass)));n.classList.add(this.dropzoneActiveClass)}))}))}if(!h&&this.dropzoneNodes.length){h=this.hitTest(this.draggedElementClone,this.dropzoneNodes)[0];if(this.draggedElement.closest(this.dropzoneSelector)===h)return}if(h&&h!==this.draggedElement&&!this.isAnimating(h)){this.insertAtTarget(this.draggedElement,h)}};this.itemSelector="li";this.handleSelector=undefined;this.dropzoneSelector=undefined;this.helperText='Press "Space" or "Enter" to enable element reordering and use the arrow keys to reorder items.'+'Press "Escape" to cancel reordering. Alternatively, use your mouse to drag / reorder.';this.itemDescriptor=t=>`"${t===null||t===void 0?void 0:t.textContent.trim()}"`;this.grabbedHelperText=t=>`${this.itemDescriptor(t)} grabbed`;this.droppedHelperText=t=>`${this.itemDescriptor(t)} dropped`;this.reorderHelperText=(t,i,s)=>`The list has been reordered, ${this.itemDescriptor(t)} is now item ${s} of ${i.length}`;this.createKeyboardHandle=(t,i)=>{const s=`\n <nano-icon-button\n slot="end"\n icon-name="light/arrows"\n class="nano-sortable__keyboard-handle visually-hidden"\n label="Re-order this item"\n ></nano-icon-button>`;const e=document.createElement("div");e.innerHTML=s;const h=e.children[0];i.append(h);return h};this.sortableHostElement=undefined;this.animationEnabled=true;this.draggedClass="nano-sortable__dragged";this.handleDraggedClass="nano-sortable__handle-dragged";this.placeholderClass="nano-sortable__placeholder";this.dropzoneActiveClass="";this.animationTiming={duration:200,easing:"ease-out"};this.orientation=undefined;this.dragResize=false;this.keyboardSortActive=false;this.ariaTextList=[];this.handleTrack=this.handleTrack.bind(this);this.handleKeydown=this.handleKeydown.bind(this);this.refreshKeyboardHandles=this.refreshKeyboardHandles.bind(this);this.refreshKeyboardHandles=a(this.refreshKeyboardHandles,500)}connectedCallback(){this.addEventHandlers();this.refreshKeyboardHandles();this.attachMutationObserver();if(!this.host.querySelector(`#${this.sortableId}`)){this.host.insertAdjacentHTML("beforeend",`<div class="visually-hidden" id="${this.sortableId}">${this.helperText}</div>`)}}disconnectedCallback(){var t;this.removeEventHandlers();(t=this.host.querySelector(`#${this.sortableId}`))===null||t===void 0?void 0:t.remove();if(this.mutationObserver){this.mutationObserver.disconnect();this.mutationObserver=undefined}}render(){return h(n,null,h("div",{class:"sortable__live-region","aria-live":"polite","aria-relevant":"additions","aria-atomic":"true",role:"log",part:"announcements"},this.ariaTextList.map((t=>h("div",null,t)))),h("slot",null))}get host(){return r(this)}static get watchers(){return{itemSelector:["handleItemSelectorChange"],handleSelector:["handleHandleSelectorChange"],createKeyboardHandle:["handleCreateKeyboardHandleChange"],sortableHostElement:["handleSortableHostElement"]}}};u.style=d;export{u as nano_sortable};
|
5
|
+
//# sourceMappingURL=p-3ae362ae.entry.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"names":["sortableCss","orientationMap","horizontal","x","y","vertical","sortableIds","Sortable","handleItemSelectorChange","this","refreshKeyboardHandles","handleHandleSelectorChange","attachMutationObserver","handleCreateKeyboardHandleChange","handleSortableHostElement","_newVal","oldVal","removeEventHandlers","addEventHandlers","sortableHostElement","style","position","async","handleSelector","_a","keyboardHandleMap","size","clear","sortableHost","querySelectorAll","forEach","handle","getAttribute","setAttribute","sortableId","sortEle","closest","itemSelector","set","_b","_c","_ele","remove","ele","i","createKeyboardHandle","console","error","host","addAriaMsg","msg","ariaTextList","setTimeout","mIdx","indexOf","splice","updateUserSelectStyle","userSelect","MozUserSelect","msUserSelect","webkitUserSelect","hitTest","node","targets","left","l","top","t","width","w","height","h","getBoundingClientRect","filter","item","right","bottom","isAnimating","animatedElements","animateNode","dx","dy","animate","push","willChange","writeTask","animationPromise","Promise","resolve","transform","animationTiming","addEventListener","index","once","insertAtTarget","target","offsets","animationEnabled","sortableNodes","map","offsetLeft","offsetTop","isConnected","dropzoneNodes","append","nodeComparison","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","parentNode","DOCUMENT_POSITION_PRECEDING","insertAdjacentElement","sortableNode","reset","draggedElementClone","undefined","removeChild","draggedElement","draggedElementOrigin","classList","placeholderClass","dropzoneActiveClass","length","dze","dragRequestPending","createClone","clone","cloneNode","id","Array","from","children","nodeChild","clonedNodeChild","originalNodeChild","offsetWidth","offsetHeight","Object","assign","dragResize","add","draggedClass","appendChild","removeEventListener","handleTrack","handleKeydown","addListeners","passive","mutationObserver","disconnect","MutationObserver","currHandles","values","newHandles","find","includes","observe","subtree","childList","e","targetElement","foundHandle","get","activateSort","isActive","keyboardSortActive","toggle","handleDraggedClass","grabbedHelperText","document","droppedHelperText","key","preventDefault","nanoGrabbedEv","nanoGrabbed","emit","element","defaultPrevented","nanoDropped","moveKeys","orientation","dropzoneSelector","currIdx","curDzIdx","curDropzone","prevEle","nextEle","finishOrder","focus","requestAnimationFrame","setFocus","then","button","handleMove","cancelable","clearTimeout","mouseDownTimer","resetTrack","window","trackStart","drag","initialEvent","relative","onMove","trackMove","onStop","didStop","targetHandle","nextSibling","constructor","hostRef","Map","updated","originalIndex","targetIndex","querySelector","orderChangeEv","nanoOrderChange","reorderHelperText","activeDropzone","readTask","el","textContent","trim","itemDescriptor","elements","_number","_element","handleTpl","div","createElement","innerHTML","duration","easing","bind","nanoDebounce","connectedCallback","insertAdjacentHTML","helperText","disconnectedCallback","render","Host","class","role","part","str"],"sources":["./src/components/sortable/sortable.scss?tag=nano-sortable&encapsulation=shadow","./src/components/sortable/sortable.tsx"],"sourcesContent":["@use '../../global/style/utilities/globals' as g;\n\n:host {\n position: relative;\n display: block;\n}\n\n.sortable__live-region {\n @include g.visually-hide();\n}\n","import {\n Prop,\n Element,\n Event,\n EventEmitter,\n h,\n Component,\n ComponentInterface,\n Watch,\n Method,\n State,\n Host,\n readTask,\n writeTask,\n Build,\n} from '@stencil/core';\nimport { drag } from '../../utils/drag';\nimport { nanoDebounce } from '../..';\nimport { addListeners } from '../../utils/events';\n\n// Orientation map to limit dragging to horizontal or vertical.\nconst orientationMap = {\n horizontal: { x: 1, y: 0 },\n vertical: { x: 0, y: 1 },\n};\n\nlet sortableIds = 0;\n\n/**\n * An accessible and flexible re-order / sort utility component.\n *\n *- Drag and drop via mouse, touch or keyboard\n *- Live announcements for screen readers\n *- Works with or without an explicit handle (although with is preferable)\n\n * @part announcements - the a11y, live region. Visually hidden by default\n *\n * @slot - The default slot containing any items you might want to sort\n */\n@Component({\n tag: 'nano-sortable',\n shadow: true,\n styleUrl: 'sortable.scss',\n})\nexport class Sortable implements ComponentInterface {\n /// Public API & surface ///\n\n /** A css query selector which matches a set of elements that should be sortable. e.g. `<li>` or `<tr>` */\n @Prop() itemSelector = 'li';\n @Watch('itemSelector')\n handleItemSelectorChange() {\n this.refreshKeyboardHandles();\n }\n\n /** A css query selector which matches an element *within* the `itemSelector` element\n * which will act like a drag handle. **Note** For keyboard a11y it's recommended\n * to use `handleSelector` when possible. Alternatively, the `createKeyboardHandle` prop will be used */\n @Prop() handleSelector?: string;\n @Watch('handleSelector')\n handleHandleSelectorChange() {\n this.refreshKeyboardHandles();\n this.attachMutationObserver();\n }\n\n /** When dragging between grouped collections of items, it is possible to drag all sortable items from one group to another.\n * At that point, you will not be able to drag items back to the original group.\n * A `dropzoneSelector` allows you to define a placeholder area where items can always be dropped.\n */\n @Prop() dropzoneSelector?: string;\n\n /** Accessibility helper text applied to handle controls */\n @Prop() helperText =\n 'Press \"Space\" or \"Enter\" to enable element reordering and use the arrow keys to reorder items.' +\n 'Press \"Escape\" to cancel reordering. Alternatively, use your mouse to drag / reorder.';\n\n /**\n * As a sortable element is interacted with, announcements are made to screen readers\n * - informing the user what is changing.\n * By default, the text from the element is extracted to describe the interacted with element.\n * Use this function to provide a more meaningful, concise item descriptor\n * @param el the element being interacted with\n * @returns a string, describing the element being interacted with\n */\n @Prop() itemDescriptor = (el: Element) => `\"${el?.textContent.trim()}\"`;\n\n /**\n * Used to generate a screen reader live update, informing the user of the current element being grabbed.\n * @param el the element that has been grabbed by the user\n * @returns a string, describing the element being grabbed\n */\n @Prop() grabbedHelperText = (el: Element) =>\n `${this.itemDescriptor(el)} grabbed`;\n\n /**\n * Used to generate a screen reader live update, informing the user of the current element being dropped.\n * @param el the element that has been dropped by the user\n * @returns a string, describing the element that has been dropped\n */\n @Prop() droppedHelperText = (el: Element) =>\n `${this.itemDescriptor(el)} dropped`;\n\n /**\n * Used to generate a screen reader live update, informing the user when items have been reordered.\n * @param el the element that has been reordered by the user\n * @param elements the elements in the sortable list\n * @param position the new position of the dropped element\n * @returns a string, describing the element being dropped\n */\n @Prop() reorderHelperText = (\n el: Element,\n elements: Element[],\n position: number\n ) =>\n `The list has been reordered, ${this.itemDescriptor(\n el\n )} is now item ${position} of ${elements.length}`;\n\n /**\n * A function that should attach a keyboard accessible control.\n * When a `handleSelector` is not used - to allow keyboard accessibility -\n * `createKeyboardHandle` should render a focusable element.\n *\n * If your sortable item is itself focusable,\n * you must use this function to render a control *outside* of the focusable element.\n * @param _number\n * @param _element\n * @returns a function that attaches a keyboard accessible handle control element.\n * The function itself *must* return the handle element.\n */\n @Prop() createKeyboardHandle = (_number: number, _element: Element) => {\n const handleTpl = /* html */ `\n <nano-icon-button\n slot=\"end\"\n icon-name=\"light/arrows\"\n class=\"nano-sortable__keyboard-handle visually-hidden\"\n label=\"Re-order this item\"\n ></nano-icon-button>`;\n const div = document.createElement('div');\n div.innerHTML = handleTpl;\n\n const handle = div.children[0] as HTMLElement;\n _element.append(handle);\n return handle;\n };\n @Watch('createKeyboardHandle')\n handleCreateKeyboardHandleChange() {\n this.refreshKeyboardHandles();\n }\n\n /** use `sortableHostElement` to watch a sortable list without needing to wrap in `nano-sortable`.\n * Note that the `sortableHostElement` element css `position` will be set to `relative` */\n @Prop() sortableHostElement?: HTMLElement;\n @Watch('sortableHostElement')\n handleSortableHostElement(_newVal?, oldVal?: HTMLElement) {\n if (oldVal) this.removeEventHandlers(oldVal);\n\n this.addEventHandlers();\n this.refreshKeyboardHandles();\n this.attachMutationObserver();\n\n if (this.sortableHostElement) {\n // sortable host must have position relative\n this.sortableHostElement.style.position = 'relative';\n }\n }\n\n /** Items being sorted will animate into place */\n @Prop() animationEnabled = true;\n\n /** Use this class to change how the element looks whilst being sorted */\n @Prop() draggedClass = 'nano-sortable__dragged';\n\n /** Use this class to change how the handle looks whilst being sorted */\n @Prop() handleDraggedClass = 'nano-sortable__handle-dragged';\n\n /** Use this class to change how the element looks when acting as a placeholder */\n @Prop() placeholderClass = 'nano-sortable__placeholder';\n\n /** Used in-conjunction with `dropzoneSelector`, applied when a dropzone is dragged over */\n @Prop() dropzoneActiveClass?: string = '';\n\n /** The css animation timing applied when `animationEnabled` is `true` */\n @Prop() animationTiming: any = { duration: 200, easing: 'ease-out' };\n\n /** The axis to lock dragging elements to. `undefined` means any axis */\n @Prop() orientation?: 'horizontal' | 'vertical';\n\n /** Dragged items by default, will take whatever default css is applied in situ.\n * When sortable items' dimensions are dynamic (i.e they can shrink / grow via the space allowed) dragging items can look 'wrong'.\n * Apply `dragResize` to read & recreate the dragged items current dimensions when dragged. */\n @Prop() dragResize = false;\n\n /** Fired when an the order changes. Use this to update any underlying data model.\n * `event.preventDefault()` to prevent the element being moved; will revert to original position. */\n @Event() nanoOrderChange: EventEmitter<{\n element: HTMLElement;\n originalIndex: number;\n targetIndex: number;\n }>;\n\n /** Fired when a sortable element is picked-up; via keyboard, mouse or touch.\n * `event.preventDefault()` to prevent the element being picked-up. */\n @Event() nanoGrabbed: EventEmitter<{ element: HTMLElement; index: number }>;\n\n /** Fired when a sortable element is dropped after having been picked up. */\n @Event() nanoDropped: EventEmitter<{ element: HTMLElement }>;\n\n /** If sortable elements change dynamically, use this method to add handle controls to new elements */\n @Method()\n async refreshKeyboardHandles() {\n if (this.handleSelector) {\n if (this.keyboardHandleMap?.size) {\n this.keyboardHandleMap.clear();\n }\n\n this.sortableHost\n .querySelectorAll<HTMLElement>(this.handleSelector)\n .forEach((handle) => {\n if (!handle.getAttribute('aria-describedby'))\n handle.setAttribute('aria-describedby', this.sortableId);\n const sortEle = handle.closest<HTMLElement>(this.itemSelector);\n if (sortEle) this.keyboardHandleMap.set(handle, sortEle);\n });\n return;\n }\n\n if (this.keyboardHandleMap?.size) {\n this.keyboardHandleMap?.forEach((_ele, handle) => handle.remove());\n this.keyboardHandleMap.clear();\n }\n this.sortableHost\n .querySelectorAll<HTMLElement>(this.itemSelector)\n .forEach((ele, i) => {\n const handle = this.createKeyboardHandle(i, ele);\n if (!handle) {\n console.error(\n '`createKeyboardHandle` *must* return the handle element it creates'\n );\n return;\n }\n this.keyboardHandleMap.set(handle, ele);\n handle.setAttribute('aria-describedby', this.sortableId);\n });\n }\n\n /// Private state & logic ///\n\n @Element() host: HTMLNanoSortableElement;\n private dragRequestPending = false;\n private draggedElement?: HTMLElement;\n private draggedElementClone?: HTMLElement;\n private draggedElementOrigin?: HTMLElement;\n private sortableNodes: HTMLElement[] = [];\n private dropzoneNodes: HTMLElement[] = [];\n private animatedElements: HTMLElement[] = [];\n private animationPromise?: Promise<void>;\n private keyboardHandleMap: Map<HTMLElement, HTMLElement> = new Map();\n private sortableId = `nano-sortable-${sortableIds++}`;\n private mouseDownTimer: number;\n private mutationObserver: MutationObserver;\n\n @State() keyboardSortActive = false;\n @State() ariaTextList: string[] = [];\n\n /**\n * Get instance of sortable host.\n * By default it is `nano-sortable` which can be overridden by property `sortableHostElement`\n */\n get sortableHost() {\n if (this.sortableHostElement) return this.sortableHostElement;\n return this.host;\n }\n\n /**\n * Queues aria messages which are then displayed in a 'live' region.\n * Messages are cleared after 10s\n * @param msg aria message to announce\n */\n private addAriaMsg(msg: string) {\n this.ariaTextList = [...this.ariaTextList, msg];\n\n setTimeout(() => {\n const mIdx = this.ariaTextList.indexOf(msg);\n this.ariaTextList.splice(mIdx, 1);\n this.ariaTextList = [...this.ariaTextList];\n }, 10000);\n }\n\n /**\n * Try to stop text highlight whilst dragging\n * @param userSelect\n */\n private updateUserSelectStyle(userSelect: '' | 'none') {\n this.host.style.userSelect = userSelect;\n // @ts-ignore\n this.host.style.MozUserSelect = userSelect;\n // @ts-ignore\n this.host.style.msUserSelect = userSelect;\n this.host.style.webkitUserSelect = userSelect;\n }\n\n /**\n * Fast and simple hit test to check whether the center of a node intersects with the rectangle of any of the\n * given targets. Returns an array of matches.\n * @param node\n * @param targets\n * @returns all the items that currently intersect with the target node\n */\n private hitTest(node: HTMLElement, targets: HTMLElement[]): HTMLElement[] {\n const {\n left: l,\n top: t,\n width: w,\n height: h,\n } = node.getBoundingClientRect();\n const x = l + w / 2;\n const y = t + h / 2;\n\n return targets.filter((item) => {\n const { left, right, top, bottom } = item.getBoundingClientRect();\n return !(x < left || x > right || y < top || y > bottom);\n });\n }\n\n /**\n * Returns a boolean indicating whether the node is currently in an animation.\n * @param node\n * @returns whether a node is currently animating or not\n */\n private isAnimating(node: HTMLElement) {\n return this.animatedElements.indexOf(node) !== -1;\n }\n\n /**\n * Triggers a CSS animation on a node with the given dx and dy. Used following dom updates to make it appear as\n * if nodes animate from their old to their new position in the dom. */\n private animateNode(node: HTMLElement, dx = 0, dy = 0) {\n if (!node.animate) {\n return;\n }\n\n // keep a stack of currently animating nodes to exclude as drag & drop targets.\n this.animatedElements.push(node);\n\n node.style.willChange = 'transform';\n\n // animate from dx/dy (old node position) to none (new node position)\n writeTask(() => {\n this.animationPromise = new Promise((resolve) => {\n node\n .animate(\n [\n { transform: `translate3d(${dx}px, ${dy}px, 0)` },\n { transform: 'none' },\n ],\n this.animationTiming\n )\n .addEventListener(\n 'finish',\n () => {\n const index = this.animatedElements.indexOf(node);\n node.style.willChange = '';\n\n if (index !== -1) {\n // splice out when done to unlock as a valid target\n this.animatedElements.splice(index, 1);\n }\n\n resolve();\n delete this.animationPromise;\n },\n { once: true }\n );\n });\n });\n }\n\n /**\n * Inserts node at target to update sibling sorting. If the node precedes the target, it is inserted after it;\n * If it follows the target, it is inserted before it. This ensures any node can be dragged from the very\n * beginning to the very end and vice versa. The animateNode function is called for all nodes that moved because\n * of this dom update */\n private insertAtTarget(node: Element, target: HTMLElement) {\n if (!node || !target) return;\n\n let offsets: any[] = [];\n if (this.animationEnabled) {\n offsets = this.sortableNodes.map((item) => ({\n x: item.offsetLeft,\n y: item.offsetTop,\n }));\n }\n\n if (!node.isConnected || !target.isConnected) return;\n\n if (this.dropzoneNodes.indexOf(target) > -1) {\n target.append(node);\n } else {\n const nodeComparison = node.compareDocumentPosition(target);\n let position;\n\n if (nodeComparison & this.host.DOCUMENT_POSITION_FOLLOWING) {\n position =\n target.parentNode === node.parentNode ? 'afterend' : 'beforebegin';\n }\n if (nodeComparison & this.host.DOCUMENT_POSITION_PRECEDING) {\n position =\n target.parentNode === node.parentNode ? 'beforebegin' : 'afterend';\n }\n if (position) target.insertAdjacentElement(position, node);\n }\n\n if (this.animationEnabled) {\n this.sortableNodes.forEach((sortableNode, i) => {\n const { x, y } = offsets[i];\n const dx = x - sortableNode.offsetLeft;\n const dy = y - sortableNode.offsetTop;\n if (dx !== 0 || dy !== 0) {\n this.animateNode(sortableNode, dx, dy);\n }\n });\n }\n }\n\n private reset() {\n if (\n this.draggedElementClone !== undefined &&\n this.draggedElementClone.parentNode !== null\n ) {\n this.draggedElementClone.parentNode.removeChild(this.draggedElementClone);\n }\n\n if (\n this.draggedElement &&\n this.draggedElement.parentNode &&\n this.draggedElementOrigin\n ) {\n this.draggedElement.classList.remove(this.placeholderClass);\n }\n\n if (this.dropzoneActiveClass && this.dropzoneNodes.length) {\n this.dropzoneNodes.forEach((dze) =>\n dze.classList.remove(this.dropzoneActiveClass)\n );\n }\n\n delete this.draggedElementClone;\n delete this.draggedElement;\n\n this.dropzoneNodes = [];\n this.sortableNodes = [];\n this.animatedElements = [];\n this.dragRequestPending = false;\n this.updateUserSelectStyle('');\n }\n\n /**\n * Clones a given node to visually drag around. The original node is left in the same flow as its siblings.\n * Clone styles are added onto the style object directly, since the ::slotted()\n * selector can't universally target nodes that may be nested an unknown amount of shadow dom levels deep\n * @param node html node to clone\n * @returns the cloned html node\n */\n private createClone(node: HTMLElement): HTMLElement {\n const clone = node.cloneNode(true) as HTMLElement;\n if (node.id) clone.id = 'clone__' + clone.id;\n\n /**\n * Bugfix for table row sorting.\n * During dragging table rows shrink, so we manually set them width of original node.\n */\n Array.from(clone.children).forEach((nodeChild: HTMLElement, index) => {\n const clonedNodeChild = nodeChild;\n const originalNodeChild = node.children.item(index) as HTMLElement;\n\n if (originalNodeChild) {\n clonedNodeChild.style.width = `${originalNodeChild.offsetWidth}px`;\n }\n });\n const {\n offsetLeft: x,\n offsetTop: y,\n offsetWidth: w,\n offsetHeight: h,\n } = node;\n\n Object.assign(clone.style, {\n position: 'absolute',\n left: `calc(${x}px - var(--grab-offset-x, 0px))`,\n top: `calc(${y}px - var(--grab-offset-y, 0px))`,\n height: this.dragResize ? `${h}px` : undefined,\n width: this.dragResize ? `${w}px` : undefined,\n willChange: 'transform,opacity',\n });\n\n clone.classList.add(this.draggedClass);\n\n return node.parentNode!.appendChild(clone);\n }\n\n /// Event handlers ///\n\n private removeEventHandlers(ele?: HTMLElement) {\n ele = ele || this.sortableHost;\n ele.removeEventListener('mousedown', this.handleTrack);\n ele.removeEventListener('touchstart', this.handleTrack);\n ele.removeEventListener('keydown', this.handleKeydown);\n }\n\n private addEventHandlers(ele?: HTMLElement) {\n ele = ele || this.sortableHost;\n addListeners(ele, 'mousedown touchstart', this.handleTrack, {\n passive: true,\n });\n ele.addEventListener('keydown', this.handleKeydown);\n }\n\n /**\n * Watch for any changes in grab-able handle elements.\n */\n private attachMutationObserver() {\n if (!Build.isBrowser) return;\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = undefined;\n }\n\n this.mutationObserver = new MutationObserver(() => {\n const currHandles = Array.from(this.keyboardHandleMap.values());\n const newHandles = Array.from(\n this.sortableHost.querySelectorAll<HTMLElement>(this.itemSelector)\n );\n\n // simple test for equality\n if (\n currHandles.length !== newHandles.length ||\n !!newHandles.find((h) => !currHandles.includes(h))\n ) {\n this.refreshKeyboardHandles();\n }\n });\n this.mutationObserver.observe(this.sortableHost, {\n subtree: true,\n childList: true,\n });\n }\n\n private handleKeydown(e: KeyboardEvent) {\n const targetElement = e.target as HTMLElement;\n let foundHandle: HTMLElement;\n let sortEle: HTMLElement;\n\n if (this.handleSelector) {\n foundHandle = targetElement.closest(this.handleSelector);\n sortEle = targetElement.closest(this.itemSelector);\n } else {\n sortEle = this.keyboardHandleMap.get(targetElement);\n foundHandle = targetElement;\n }\n\n // have we found a handle and matching sort element from the keydown element\n if (!foundHandle || !sortEle) return;\n\n const activateSort = (isActive: boolean) => {\n this.keyboardSortActive = isActive;\n this.draggedElement = isActive ? sortEle : undefined;\n sortEle.classList.toggle(this.draggedClass, isActive);\n foundHandle.classList.toggle(this.handleDraggedClass, isActive);\n\n if (isActive) {\n this.addAriaMsg(this.grabbedHelperText(sortEle));\n document.addEventListener('mousedown', () => activateSort(false), {\n once: true,\n });\n } else {\n this.addAriaMsg(this.droppedHelperText(sortEle));\n }\n };\n\n // start editing this element's order?\n if ([' ', 'Space', 'Enter'].includes(e.key)) {\n e.preventDefault();\n\n if (!this.keyboardSortActive) {\n // grabbed the element\n activateSort(true);\n\n this.sortableNodes =\n Array.from(this.sortableHost.querySelectorAll(this.itemSelector)) ||\n [];\n const nanoGrabbedEv = this.nanoGrabbed.emit({\n element: sortEle,\n index: this.sortableNodes.indexOf(sortEle),\n });\n\n if (nanoGrabbedEv.defaultPrevented) {\n activateSort(false);\n return;\n }\n } else {\n // dropped the element\n activateSort(false);\n this.nanoDropped.emit({ element: sortEle });\n }\n return;\n }\n if (!this.keyboardSortActive) return;\n\n // Tabbing away from this handle - deactivate\n if (['Escape', 'Tab'].includes(e.key)) activateSort(false);\n\n let moveKeys = ['Home', 'End'];\n if (!this.orientation || this.orientation === 'horizontal')\n moveKeys = [...moveKeys, 'ArrowRight', 'ArrowLeft'];\n if (!this.orientation || this.orientation === 'vertical')\n moveKeys = [...moveKeys, 'ArrowUp', 'ArrowDown'];\n\n if (!moveKeys.includes(e.key)) return;\n\n // move the element with the keyboard\n e.preventDefault();\n\n /** Collect all elements that have drag positions.\n * Both sortable elements and 'dropzones' (placeholders where items can always be placed) */\n\n this.sortableNodes =\n Array.from(this.sortableHost.querySelectorAll(this.itemSelector)) || [];\n this.dropzoneNodes =\n Array.from(this.sortableHost.querySelectorAll(this.dropzoneSelector)) ||\n [];\n const currIdx = this.sortableNodes.indexOf(this.draggedElement);\n let curDzIdx: number = -1;\n\n if (this.dropzoneNodes.length) {\n const curDropzone = this.draggedElement.closest<HTMLElement>(\n this.dropzoneSelector\n );\n curDzIdx = this.dropzoneNodes.indexOf(curDropzone);\n curDzIdx = curDzIdx > -1 ? curDzIdx : -1;\n }\n\n /** If we don't have a next / prev sortable element in our list, test to see if there's a dropzone instead */\n const prevEle =\n currIdx - 1 < 0 && curDzIdx > -1\n ? this.dropzoneNodes[curDzIdx - 1]\n : this.sortableNodes[currIdx - 1];\n const nextEle =\n currIdx + 1 === this.sortableNodes.length && curDzIdx > -1\n ? this.dropzoneNodes[curDzIdx + 1]\n : this.sortableNodes[currIdx + 1];\n\n if (e.key === 'Home') {\n this.insertAtTarget(this.draggedElement, this.sortableNodes[0]);\n }\n if (e.key === 'End') {\n this.insertAtTarget(\n this.draggedElement,\n this.sortableNodes[this.sortableNodes.length - 1]\n );\n }\n if (['ArrowRight', 'ArrowDown'].includes(e.key)) {\n this.insertAtTarget(this.draggedElement, nextEle);\n }\n if (['ArrowLeft', 'ArrowUp'].includes(e.key)) {\n this.insertAtTarget(this.draggedElement, prevEle);\n }\n\n this.finishOrder();\n this.draggedElement = sortEle;\n\n const focus = () => {\n requestAnimationFrame(() => {\n typeof foundHandle['setFocus'] === 'function'\n ? (foundHandle as HTMLNanoIconButtonElement).setFocus()\n : foundHandle.focus();\n });\n };\n\n // replace focus to handle so we don't 'drop' the element\n if (this.animationPromise) this.animationPromise.then(() => focus());\n else focus();\n }\n\n /** Tracks a pointer from touchstart/mousedown to touchend/mouseup. */\n private handleTrack(e: PointerEvent) {\n // ignore if we've started dragging or right click\n if (this.dragRequestPending || (e.button && e.button !== 1)) return;\n\n // ignore touchmove events (namespace it so we can remove it)\n const handleMove = (e: Event) => {\n if (e.cancelable) e.preventDefault();\n clearTimeout(this.mouseDownTimer);\n };\n\n // remove temporary events and reset timer\n const resetTrack = () => {\n clearTimeout(this.mouseDownTimer);\n document.removeEventListener('touchmove', handleMove);\n document.removeEventListener('contextmenu', this.finishOrder);\n };\n resetTrack();\n\n // start a timer - only start dragging if pressed for 150ms\n this.mouseDownTimer = window?.setTimeout(() => {\n // ignore if this is not a valid drag target\n if (!this.trackStart(e)) return;\n\n // ignore touchmove events (they scroll the screen)\n document.addEventListener('touchmove', handleMove, {\n passive: false,\n });\n // cancel if user presses and holds (without move) for context menu\n document.addEventListener('contextmenu', this.finishOrder);\n\n this.addAriaMsg(this.grabbedHelperText(this.draggedElement));\n\n drag(this.sortableHost, {\n initialEvent: e,\n relative: true,\n onMove: (x, y) => {\n this.trackMove(x, y);\n },\n onStop: () => {\n this.nanoDropped.emit({ element: this.draggedElement });\n resetTrack();\n\n const didStop = () => {\n this.addAriaMsg(this.droppedHelperText(this.draggedElement));\n requestAnimationFrame(() => this.finishOrder());\n };\n if (this.animationPromise) {\n this.animationPromise.then(() => didStop());\n } else didStop();\n },\n });\n }, 150);\n\n // reset track timer & cancel DnD on mouseup / touchend / touchmove\n addListeners(\n document,\n 'mouseup touchend touchmove',\n () => clearTimeout(this.mouseDownTimer),\n { once: true }\n );\n }\n\n /**\n * Initialized a drag and drop sequence if a child node was clicked that matches the itemSelector property.\n * OR If a handleSelector is defined, a node matching this selector must be clicked instead\n * @returns boolean - whether tracking for this event should continue or not\n */\n private trackStart(e: Event) {\n const targetElement = e.target as HTMLElement;\n let targetHandle: HTMLElement;\n\n // If we have a handle set, return now if not being pressed\n if (this.handleSelector) {\n targetHandle = targetElement.closest(this.handleSelector);\n\n if (!targetHandle) return;\n targetHandle.classList.add(this.handleDraggedClass);\n }\n\n // Check that we've found the target element via itemSelector\n const node = targetElement.closest<HTMLElement>(this.itemSelector);\n if (!node) return false;\n\n this.sortableNodes =\n Array.from(this.sortableHost.querySelectorAll(this.itemSelector)) || [];\n const nanoGrabbedEv = this.nanoGrabbed.emit({\n element: node,\n index: this.sortableNodes.indexOf(node),\n });\n if (nanoGrabbedEv.defaultPrevented) return false;\n\n // Element found... start everything\n e.preventDefault();\n this.updateUserSelectStyle('none');\n this.dragRequestPending = true;\n this.draggedElement = node;\n this.dropzoneNodes =\n Array.from(this.sortableHost.querySelectorAll(this.dropzoneSelector)) ||\n [];\n this.draggedElementClone = this.createClone(node);\n this.draggedElementOrigin = node.nextSibling as HTMLElement;\n this.animatedElements = [];\n this.draggedElement!.classList.add(this.placeholderClass);\n return true;\n }\n\n /** Ends re-ordering */\n private finishOrder = () => {\n if (!this.draggedElement) return;\n\n const updated = Array.from(\n this.sortableHost.querySelectorAll<HTMLElement>(this.itemSelector)\n ).filter((ele) => ele !== this.draggedElementClone);\n const originalIndex = this.sortableNodes.indexOf(this.draggedElement);\n const targetIndex = updated.indexOf(this.draggedElement);\n\n if (this.handleSelector) {\n const targetHandle = this.draggedElement.querySelector(\n this.handleSelector\n );\n targetHandle.classList.remove(this.handleDraggedClass);\n }\n\n if (originalIndex !== targetIndex) {\n const orderChangeEv = this.nanoOrderChange.emit({\n element: this.draggedElement,\n originalIndex,\n targetIndex,\n });\n\n if (orderChangeEv.defaultPrevented) {\n /** Event was prevented, wait a moment to send element back to whence it came - gives a nicer visual queue */\n this.animationPromise = new Promise((resolve) => {\n setTimeout(() => {\n this.insertAtTarget(this.draggedElement, updated[originalIndex]);\n this.reset();\n this.dragRequestPending = false;\n resolve();\n }, 200);\n });\n return;\n }\n this.addAriaMsg(\n this.reorderHelperText(this.draggedElement, updated, targetIndex + 1)\n );\n }\n\n this.reset();\n this.dragRequestPending = false;\n };\n\n /**\n * Moves the active node's clone to follow the pointer. The node that the clone intersects with (via hitTest) is\n * the insert point for updated sorting */\n private trackMove = (x: number, y: number) => {\n if (!this.draggedElementClone) {\n return;\n }\n\n if (this.orientation) {\n x = x * orientationMap[this.orientation].x;\n y = y * orientationMap[this.orientation].y;\n }\n\n writeTask(() => {\n Object.assign(this.draggedElementClone!.style, {\n transform: `translate3d(${x}px, ${y}px, 0)`,\n });\n });\n\n let target = this.hitTest(this.draggedElementClone!, this.sortableNodes)[0];\n let activeDropzone: HTMLElement;\n\n if (this.dropzoneSelector && this.dropzoneActiveClass) {\n readTask(() => {\n activeDropzone = this.draggedElement.closest(this.dropzoneSelector);\n\n writeTask(() => {\n this.dropzoneNodes\n .filter((dze) => dze !== activeDropzone)\n .forEach((dze) => dze.classList.remove(this.dropzoneActiveClass));\n activeDropzone.classList.add(this.dropzoneActiveClass);\n });\n });\n }\n\n // didn't find a target - let's test to see if we can use a drop-zone instead\n if (!target && this.dropzoneNodes.length) {\n target = this.hitTest(this.draggedElementClone!, this.dropzoneNodes)[0];\n if (this.draggedElement.closest(this.dropzoneSelector) === target) return;\n }\n\n if (\n // if clone intersects with a valid target,\n target &&\n // other than its own origin,\n target !== this.draggedElement &&\n // and the target isn't currently animating, which causes false hit tests,\n !this.isAnimating(target)\n ) {\n this.insertAtTarget(this.draggedElement!, target);\n }\n };\n\n /// Component lifecycle ///\n\n constructor() {\n this.handleTrack = this.handleTrack.bind(this);\n this.handleKeydown = this.handleKeydown.bind(this);\n this.refreshKeyboardHandles = this.refreshKeyboardHandles.bind(this);\n this.refreshKeyboardHandles = nanoDebounce(\n this.refreshKeyboardHandles,\n 500\n );\n }\n\n connectedCallback() {\n this.addEventHandlers();\n this.refreshKeyboardHandles();\n this.attachMutationObserver();\n\n if (Build.isBrowser && !this.host.querySelector(`#${this.sortableId}`)) {\n // inject a light-dom / a11y description that we can connect sortable items to\n this.host.insertAdjacentHTML(\n 'beforeend',\n `<div class=\"visually-hidden\" id=\"${this.sortableId}\">${this.helperText}</div>`\n );\n }\n }\n\n disconnectedCallback() {\n this.removeEventHandlers();\n this.host.querySelector(`#${this.sortableId}`)?.remove();\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = undefined;\n }\n }\n\n render() {\n return (\n <Host>\n <div\n class=\"sortable__live-region\"\n aria-live=\"polite\"\n aria-relevant=\"additions\"\n aria-atomic=\"true\"\n role=\"log\"\n part=\"announcements\"\n >\n {this.ariaTextList.map((str) => (\n <div>{str}</div>\n ))}\n </div>\n <slot />\n </Host>\n );\n }\n}\n"],"mappings":"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"}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
|
-
import{r as t,c as i,h as s,a as e,g as h}from"./p-
|
5
|
-
//# sourceMappingURL=p-
|
4
|
+
import{r as t,c as i,h as s,a as e,g as h}from"./p-d6a04b3a.js";import{c as a}from"./p-70747f20.js";const r=class{constructor(s){t(this,s);this.nanoPayloadChange=i(this,"nanoPayloadChange",7);this.nanoSubmit=i(this,"nanoSubmit",7);this.nanoInvalid=i(this,"nanoInvalid",7);this.allFields=[];this.nanoFieldSelector=`\n nano-input,\n nano-select,\n nano-file-upload,\n nano-date-input,\n nano-checkbox\n `;this.hasSetStore=false;this.internalValidate=false;this.handleStoreChange=async(t,i)=>{const s=this.allFields.find((i=>this.getName(i)===t));if(s&&(s.tagName==="NANO-CHECKBOX"||["radio","checkbox"].includes(s.type))){this.storeToFields([s])}else if(s&&(s.tagName==="NANO-FILE-UPLOAD"&&!this.fileStateEqual(t,s)||s.tagName!=="NANO-FILE-UPLOAD"&&s.value!==i)){this.storeToFields([s])}if(this.validateOn==="dirty"&&this.dirty){this.internalValidate=true;await this.validateAllFields();this._valid=this.activeForm.checkValidity();this.internalValidate=false}this.nanoPayloadChange.emit(this._store.state)};this.handleFormInvalid=async t=>{if(!this.plainFields.includes(t.target)){t.preventDefault()}this._valid=false;if(this.internalValidate)return;if(this.validateOn==="submitThenDirty")this.validateOn="dirty";this.submitted=true;await this.validateAllFields();this.internalValidate=true;this._valid=this.activeForm.checkValidity();this.internalValidate=false;if(this.validateOn==="submit"){if(this._valid){this.submitForm();return}}this.scrollToFirstInvalid(false);this.nanoInvalid.emit()};this.submitted=false;this.userForm=undefined;this.validateOn="submitThenDirty";this.scrollToInvalid=true;this._dirty=false;this._valid=undefined;this._store=undefined;this.extraFieldSelector="input, select, textarea";this.validation=undefined}userFormChange(){if(!!this.userForm)this.activeForm=this.userForm}get activeForm(){return this._activeForm}set activeForm(t){if(!t)return;if(this._activeForm){this._activeForm.removeEventListener("invalid",this.handleFormInvalid,true)}t.addEventListener("invalid",this.handleFormInvalid,true);this._activeForm=t}validateOnChange(){this.nanoFields.forEach((t=>{if(t.tagName==="NANO-CHECKBOX"){const i=t.closest("nano-checkbox-group");if(i)i.validateOn=this.validateOn}else{t.validateOn=this.validateOn}}))}get dirty(){return this._dirty}get valid(){return this._valid}get store(){return this._store}get payload(){return this._store.state}get showValidation(){return this.validateOn==="dirty"&&this.dirty||this.submitted}get validationState(){const t=[];this.allFields.forEach((async i=>{const s=t.find((t=>t.name===this.getName(i)));let e;let h;if(s){if(i.validationMessage){e=i;s.validityMessage=e.validationMessage.length?e.validationMessage:s.validityMessage;this.internalValidate=true;if(s.valid&&!e.checkValidity())s.valid=false;this.internalValidate=false}else if(i.validityMessage){h=i;s.validityMessage=h.validityMessage.length?h.validityMessage:h.validityMessage;if(s.valid&&h.invalid)s.valid=false}if(!s.fields.find((t=>t===i)))s.fields.push(i)}let a;let r;if(i.checkValidity){e=i;this.internalValidate=true;a=e.checkValidity();this.internalValidate=false;r=e.validationMessage}else{h=i;a=!h.invalid;r=h.validityMessage}t.push({fields:[i],name:this.getName(i),value:this._store.state[this.getName(i)],dirty:false,valid:a,validityMessage:r})}));return t}async setStore(t){this.hasSetStore=true;Object.entries(t).forEach((([t,i])=>{this.store.state[t]=i}))}async setCustomValidity(t,i){return await Promise.all(Object.entries(t).map((async([t,i])=>{const s=this.allFields.find((i=>this.getName(i)===t));if(!!s)await this.setFieldError(s,i)}))).finally((()=>{this.scrollToFirstInvalid(i)}))}async resetValidity(){return await Promise.all(this.allFields.map((async t=>await this.setFieldError(t,""))))}async scrollToFirstInvalid(t=true){if(!t&&!this.scrollToInvalid)return;setTimeout((()=>{const t=this.validationState.find((t=>!t.valid));if(!t)return;t.fields[0].scrollIntoView({behavior:"smooth",block:"nearest"})}),200)}attachSlotObserver(){if(!!this.mo)return;const t=this.mo=new MutationObserver((t=>{const i=this.host.querySelector("form");if(i&&i!==this.activeForm)this.activeForm=i;this.setupFields()}));t.observe(this.host,{childList:true,attributes:true,attributeFilter:["name"],subtree:true})}getName(t){return t.name||t.getAttribute("name")}setupFields(){let t=Array.from(this.host.querySelectorAll(this.nanoFieldSelector));let i=Array.from(this.host.querySelectorAll(this.extraFieldSelector)).filter((t=>!t.closest(this.nanoFieldSelector)));t=t.filter((t=>!!this.getName(t)&&!!this.getName(t).length));i=i.filter((t=>!!this.getName(t)&&!!this.getName(t).length));if(![...t,...i].filter((t=>!this.allFields.includes(t))).length)return;this.nanoFields=t;this.plainFields=i;this.allFields=[...t,...i];this.storeToFields(this.allFields);this.validateOnChange();this.fieldsToStore(this.allFields,true);this.nanoPayloadChange.emit(this._store.state)}storeToFields(t){t.forEach((t=>{var i;const s=this.getName(t);if(!s.length||typeof this._store.state[s]==="undefined")return;if(t.tagName==="NANO-CHECKBOX"||["radio","checkbox"].includes(t.type)){const i=this.allFields.filter((i=>this.getName(t)===this.getName(i)));if(i[0].type==="radio"||i[0].type==="segment"||i[0].type==="segment-pill"){i.forEach((t=>{if(this._store.state[s]===t.value)t.checked=true;else t.checked=false}))}else if(Array.isArray(this._store.state[s])){i.forEach((t=>{if(this._store.state[s].includes(t.value))t.checked=true;else t.checked=false}))}else{i.forEach((t=>{if(this._store.state[s]===t.value)t.checked=true;else t.checked=false}))}return}if(t.tagName==="NANO-FILE-UPLOAD"){const e=t;if(!((i=e.files)===null||i===void 0?void 0:i.length))e.files=this._store.state[s];return}t.value=this._store.state[s]}))}getValidityTarget(t){let i=t;if(t.tagName==="NANO-CHECKBOX"){const s=t.closest("nano-checkbox-group");i=s||t}return i}fieldsToStore(t,i=false){t.forEach((t=>{const s=this.getName(t);if(!s.length)return;if(!!this._store.state[s]&&this.hasSetStore&&i){return}if(t.tagName==="NANO-CHECKBOX"||["radio","checkbox"].includes(t.type)){const i=t;if(i.type==="radio"||i.type==="segment"||i.type==="segment-pill"){if(i.checked)this._store.state[s]=i.value}else if(this.allFields.filter((t=>this.getName(t)===s&&(t.tagName==="NANO-CHECKBOX"||t.type==="checkbox"))).length>1){const t=Array.isArray(this._store.state[s])?this._store.state[s]:[];if(i.checked){if(!this._store.state[s].includes(i.value)){this._store.state[s]=[...t,i.value]}}else{this._store.state[s]=t.filter((t=>t!==i.value))}}else{if(i.checked)this._store.state[s]=i.value;else this._store.state[s]=""}return}if(t.tagName==="NANO-FILE-UPLOAD"){const i=t;if(!this.fileStateEqual(s,i))this._store.state[s]=i.files;return}this._store.state[s]=t.value}))}fileStateEqual(t,i){return JSON.stringify(this._store.state[t])===JSON.stringify(i.files)||this._store.state[t]==i.files}async validate(t,i){if(!this.validation)return;const s=this.validation(t,i,this._store.state);if(!s)return;await Promise.all(Object.entries(s).map((async([t,i])=>i.fields.map((async s=>{const e=this.allFields.find((t=>this.getName(t)===s));const h=this.getValidityTarget(e);if((h.validityMessage||h.validationMessage)===t&&i.valid){await this.setFieldError(h,"")}else if(!i.valid){await this.setFieldError(h,t)}})))))}async validateAllFields(){await Object.entries(this._store.state).reduce((async(t,[i,s])=>{await t;await this.validate(i,s)}),undefined)}async setFieldError(t,i){const s=this.getValidityTarget(t);if(s["showError"]){await s.showError(i)}else if(s["setError"])await s.setError(i);else s.setCustomValidity(i)}submitForm(){const t=this.nanoSubmit.emit();if(t.defaultPrevented)return;this.activeForm.submit()}handleFieldChange(t){if(!this.nanoFields.includes(t.target))return;this._dirty=true;this.fieldsToStore([t.target])}handlePlainFieldChange(t){if(!this.plainFields.includes(t.target))return;this.fieldsToStore([t.target])}async handleSubmit(t){t.preventDefault();if(this.validateOn==="submitThenDirty")this.validateOn="dirty";this.submitted=true;await this.validateAllFields();this.internalValidate=true;this._valid=this.activeForm.checkValidity();this.internalValidate=false;if(!this._valid){this.scrollToFirstInvalid(false);return}this.submitForm()}connectedCallback(){this.userForm=this.host.querySelector("form");this._store=a({})}componentDidLoad(){requestAnimationFrame((()=>{this.setupFields();this.attachSlotObserver();this._store.on("set",this.handleStoreChange)}))}disconnectedCallback(){if(this.mo)this.mo.disconnect();this._store.reset();if(this.activeForm)this.activeForm.removeEventListener("invalid",this.handleFormInvalid,true)}render(){return s(e,null,this.userForm&&s("slot",null),!this.userForm&&s("form",{ref:t=>this.activeForm=t},s("slot",null)))}get host(){return h(this)}static get watchers(){return{userForm:["userFormChange"],validateOn:["validateOnChange"],extraFieldSelector:["attachSlotObserver"]}}};export{r as nano_field_validator};
|
5
|
+
//# sourceMappingURL=p-3eeaba47.entry.js.map
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
|
-
import{r as t,h as a,a as n,g as s}from"./p-
|
5
|
-
//# sourceMappingURL=p-
|
4
|
+
import{r as t,h as a,a as n,g as s}from"./p-d6a04b3a.js";const e=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{display:block;transform:translate3d(0, 0, 0);opacity:1;animation:opacity 0.3s ease-in-out forwards;animation-duration:0s !important}:host(.ready){animation-duration:0.3s !important}@media only screen and (max-width: 768px){:host([animation-dir=left]){animation:slide-right 0.3s ease-in-out;opacity:1}:host([animation-dir=right]){animation:slide-left 0.3s ease-in-out;opacity:1}}.nano-tab-content{position:relative}@keyframes opacity{0%{opacity:0}100%{opacity:1}}@keyframes slide-left{0%{transform:translate3d(-100%, 0, 0)}50%{transform:translate3d(0%) translate3d(-0.9em)}100%{transform:translate3d(0, 0, 0)}}@keyframes slide-right{0%{transform:translate3d(100%, 0, 0)}50%{transform:translateX(0%) translate3d(0.9em)}100%{transform:translate3d(0, 0, 0)}}@media (prefers-reduced-motion: reduce){*{animation:none !important}}";let i=0;const o=class{constructor(a){t(this,a);this.tabContentId=`nano-tab-content-${++i}`;this.ready=false;this.name="";this.active=false}componentDidLoad(){requestAnimationFrame((()=>this.ready=true))}render(){return a(n,{id:this.host.id||this.tabContentId,style:{display:this.active?"block":"none"},role:"tabpanel","aria-hidden":this.active?"false":"true",class:{ready:this.ready}},a("div",{part:"base",class:"nano-tab-content"},a("slot",null)))}get host(){return s(this)}};o.style=e;export{o as nano_tab_content};
|
5
|
+
//# sourceMappingURL=p-3f40e370.entry.js.map
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
|
-
import{r as n,c as t,h as i,a,g as e}from"./p-f6a8467a.js";import{c as o}from"./p-257432ff.js";import{c as r}from"./p-411bb8f1.js";import{d as s,a as l}from"./p-7bff5224.js";import{F as c,a as p}from"./p-71057181.js";const d='.sc-nano-input-h {\n box-sizing: border-box;\n}\n\n*.sc-nano-input, *.sc-nano-input::before, *.sc-nano-input::after {\n box-sizing: border-box;\n}\n[hidden].sc-nano-input {\n display: none !important;\n}\n[disabled].sc-nano-input-h:not([disabled=false]) {\n opacity: 0.5;\n}\n\n.form-ctrl.sc-nano-input {\n min-inline-size: 100%;\n display: block;\n}\n.form-ctrl.has-helper-end.sc-nano-input {\n display: flex;\n gap: 1rem;\n container-type: inline-size;\n}\n.form-ctrl.has-helper-end.sc-nano-input .form-ctrl__wrapper.sc-nano-input {\n flex: 1 1 100%;\n}\n.form-ctrl.has-helper-end.sc-nano-input .form-ctrl__helper-end.sc-nano-input {\n display: none;\n}\n@container (min-width: 350px) {\n .form-ctrl.has-helper-end .form-ctrl__helper-end {\n display: block !important;\n }\n .form-ctrl.has-helper-end .form-ctrl__helper {\n display: none !important;\n }\n}\n\n.form-ctrl__wrapper.sc-nano-input {\n display: block;\n}\n\nlabel.sc-nano-input, .form-ctrl__more.sc-nano-input, .form-ctrl__error.sc-nano-input, .form-ctrl__helper.sc-nano-input {\n display: block;\n inline-size: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\nlabel.visually-hide.sc-nano-input, .form-ctrl__more.visually-hide.sc-nano-input, .form-ctrl__error.visually-hide.sc-nano-input, .form-ctrl__helper.visually-hide.sc-nano-input {\n clip: rect(1px, 1px, 1px, 1px);\n -webkit-clip-path: inset(50%);\n clip-path: inset(50%);\n block-size: 1px;\n inline-size: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n}\n\n.form-ctrl__float-label.sc-nano-input {\n padding-block: 0;\n -webkit-padding-end: 0;\n padding-inline-end: 0;\n -webkit-padding-start: var(--padding-start);\n padding-inline-start: var(--padding-start);\n color: var(--label-color);\n position: absolute;\n font-size: 1.15em;\n transform: translateY(-50%);\n transform-origin: top left;\n inset-block-start: 50%;\n transition: all 0.125s ease-in;\n opacity: 1;\n}\n.has-focus.sc-nano-input-h .form-ctrl__float-label.sc-nano-input, .has-value.sc-nano-input-h .form-ctrl__float-label.sc-nano-input {\n transform: translateY(-110%);\n font-size: 0.8em;\n opacity: 0.7;\n}\n.form-ctrl__float-label.sc-nano-input .form-ctrl__label-charcount.sc-nano-input {\n opacity: 0;\n transition: opacity 0.125s ease-in;\n}\n.has-focus.sc-nano-input-h .form-ctrl__float-label.sc-nano-input .form-ctrl__label-charcount.sc-nano-input, .has-value.sc-nano-input-h .form-ctrl__float-label.sc-nano-input .form-ctrl__label-charcount.sc-nano-input {\n opacity: 1;\n}\n.form-ctrl__textarea.sc-nano-input .form-ctrl__float-label.sc-nano-input {\n inset-block-start: 50%;\n}\n.has-focus.sc-nano-input-h .form-ctrl__textarea.sc-nano-input .form-ctrl__float-label.sc-nano-input {\n inset-block-start: 0;\n transform: translateY(38%);\n}\n.has-value.sc-nano-input-h .form-ctrl__textarea.sc-nano-input .form-ctrl__float-label.sc-nano-input {\n inset-block-start: 0;\n transform: translateY(38%);\n}\n\n.form-ctrl__label.sc-nano-input {\n color: var(--label-color);\n font-size: var(--label-font-size);\n -webkit-padding-after: var(--padding-bottom);\n padding-block-end: var(--padding-bottom);\n line-height: 1;\n display: flex;\n}\n.form-ctrl__label.sc-nano-input .form-ctrl__label-wrap.sc-nano-input {\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.form-ctrl__label.sc-nano-input .form-ctrl__label-placeholder.sc-nano-input {\n margin-block: unset;\n -webkit-margin-end: 5px;\n margin-inline-end: 5px;\n -webkit-margin-start: 0;\n margin-inline-start: 0;\n opacity: 0;\n -webkit-appearance: none;\n appearance: none;\n transition: 0.3s ease opacity;\n font-size: 0.9em;\n}\n.form-ctrl__label.sc-nano-input .form-ctrl__label-charcount.sc-nano-input {\n margin-block: unset;\n -webkit-margin-end: 0;\n margin-inline-end: 0;\n -webkit-margin-start: auto;\n margin-inline-start: auto;\n font-size: 0.9em;\n opacity: 0.5;\n}\n.has-value.sc-nano-input-h .form-ctrl__label.sc-nano-input .form-ctrl__label-placeholder.sc-nano-input {\n opacity: 0.5;\n}\n.has-focus.sc-nano-input-h .form-ctrl__label.sc-nano-input {\n color: var(--label-color--focus);\n}\n.is-invalid.sc-nano-input-h:not([disabled]) .form-ctrl__label.sc-nano-input {\n color: var(--label-color--invalid);\n}\n\n.has-float-label.sc-nano-input .select__multi-input.sc-nano-input, .has-float-label.sc-nano-input .select__native-input.sc-nano-input, .has-float-label.sc-nano-input .input__native-ctrl.sc-nano-input {\n opacity: 0;\n transition: opacity 0.125s ease-in;\n}\n.has-focus.sc-nano-input-h .has-float-label.sc-nano-input .select__multi-input.sc-nano-input, .has-value.sc-nano-input-h .has-float-label.sc-nano-input .select__multi-input.sc-nano-input, .has-focus.sc-nano-input-h .has-float-label.sc-nano-input .select__native-input.sc-nano-input, .has-value.sc-nano-input-h .has-float-label.sc-nano-input .select__native-input.sc-nano-input, .has-focus.sc-nano-input-h .has-float-label.sc-nano-input .input__native-ctrl.sc-nano-input, .has-value.sc-nano-input-h .has-float-label.sc-nano-input .input__native-ctrl.sc-nano-input {\n opacity: 1;\n}\n\n.form-ctrl__more.sc-nano-input {\n block-size: 1em;\n position: relative;\n margin-block: 4px var(--padding-bottom);\n margin-inline: 3px 0;\n}\n\n.form-ctrl__helper.sc-nano-input, .form-ctrl__error.sc-nano-input {\n inset-block-start: 0;\n inset-inline-start: 0;\n position: absolute;\n font-size: var(--invalid-msg-font-size);\n line-height: 1.2;\n transition: 0.3s ease-out opacity;\n}\n\n.form-ctrl__helper.sc-nano-input {\n font-style: italic;\n color: var(--help-msg-color);\n}\n[show-inline-error].sc-nano-input-h:not([show-inline-error=false]):not([disabled]).is-invalid .form-ctrl__helper.sc-nano-input {\n opacity: 0;\n}\n\n.form-ctrl__helper-end.sc-nano-input {\n flex: 1 1 30%;\n min-inline-size: 150px;\n font-size: var(--invalid-msg-font-size);\n color: var(--help-msg-color);\n font-style: italic;\n}\n\n.form-ctrl__error.sc-nano-input {\n opacity: 0;\n color: var(--invalid-msg-color);\n font-stretch: condensed;\n}\n.is-invalid.sc-nano-input-h:not([disabled]) .form-ctrl__error.sc-nano-input {\n opacity: 1;\n}\n\n.form-ctrl__input.sc-nano-input {\n font-family: inherit;\n font-size: inherit;\n font-stretch: inherit;\n font-style: inherit;\n font-weight: inherit;\n letter-spacing: inherit;\n text-decoration: inherit;\n text-overflow: inherit;\n text-transform: inherit;\n text-align: inherit;\n white-space: inherit;\n color: inherit;\n border-radius: var(--input-border-radius);\n inline-size: 100%;\n padding: 0 !important;\n position: relative;\n flex: 1 0 auto;\n display: flex;\n background: var(--input-bg-color);\n border: var(--input-border-style);\n border-width: var(--input-border-width);\n font-size: var(--input-font-size);\n -webkit-padding-start: calc(var(--input-border-hint-width) - var(--input-border-width)) !important;\n padding-inline-start: calc(var(--input-border-hint-width) - var(--input-border-width)) !important;\n}\n.has-focus.sc-nano-input-h .form-ctrl__input.sc-nano-input {\n background: var(--input-bg-color--focus);\n border: var(--input-border-style--focus);\n border-width: var(--input-border-width);\n -webkit-padding-start: calc(var(--input-border-hint-width) - var(--input-border-width)) !important;\n padding-inline-start: calc(var(--input-border-hint-width) - var(--input-border-width)) !important;\n}\n.is-invalid.sc-nano-input-h:not([disabled]) .form-ctrl__input.sc-nano-input {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid);\n border-width: var(--input-border-width);\n -webkit-border-start: var(--input-border-style--invalid-focus) var(--input-border-hint-width);\n border-inline-start: var(--input-border-style--invalid-focus) var(--input-border-hint-width);\n -webkit-padding-start: 0 !important;\n padding-inline-start: 0 !important;\n}\n.is-invalid.has-focus.sc-nano-input-h:not([disabled]) .form-ctrl__input.sc-nano-input {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid-focus);\n border-width: var(--input-border-width);\n -webkit-border-start: var(--input-border-style--invalid-focus) var(--input-border-hint-width);\n border-inline-start: var(--input-border-style--invalid-focus) var(--input-border-hint-width);\n -webkit-padding-start: 0 !important;\n padding-inline-start: 0 !important;\n}\n\n.form-ctrl__input-wrap.sc-nano-input {\n display: flex;\n align-items: stretch;\n flex: 1;\n max-inline-size: 100%;\n}\n\n.form-ctrl__clear-btn.sc-nano-input, .form-ctrl__slot-end.sc-nano-input, .form-ctrl__slot-start.sc-nano-input, .form-ctrl__slot-value-end.sc-nano-input {\n --nano-icon-size: 1.4em;\n margin-block: 0;\n margin-inline: 0;\n font-size: 1em;\n border: 0;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n display: flex;\n align-items: stretch;\n inline-size: auto;\n}\n\n.has-float-label.sc-nano-input .form-ctrl__slot-start.sc-nano-input {\n display: none;\n}\n\n.form-ctrl__slot-start.sc-nano-input-s > *, .form-ctrl__slot-start .sc-nano-input-s > *, .form-ctrl__slot-end.sc-nano-input-s > *, .form-ctrl__slot-end .sc-nano-input-s > *, .form-ctrl__slot-value-end.sc-nano-input-s > *, .form-ctrl__slot-value-end .sc-nano-input-s > *, .form-ctrl__slot-value-end.sc-nano-input *.sc-nano-input {\n --nano-icon-size: 1.4em;\n padding-inline: unset;\n -webkit-padding-start: var(--padding-start);\n padding-inline-start: var(--padding-start);\n -webkit-padding-end: var(--padding-end);\n padding-inline-end: var(--padding-end);\n font-size: 1em;\n align-items: center;\n display: flex;\n block-size: 100%;\n z-index: 1;\n}\n.sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-start.sc-nano-input-s > *, .sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-start .sc-nano-input-s > *, .sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-end.sc-nano-input-s > *, .sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-end .sc-nano-input-s > *, .sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-value-end.sc-nano-input-s > *, .sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-value-end .sc-nano-input-s > *, [disabled].sc-nano-input-h:not([disabled=false]) .form-ctrl__slot-value-end.sc-nano-input *.sc-nano-input {\n pointer-events: none;\n}\n\n.form-ctrl__slot-value-end.sc-nano-input-s > *, .form-ctrl__slot-value-end .sc-nano-input-s > *, .form-ctrl__slot-value-end.sc-nano-input *.sc-nano-input {\n pointer-events: none;\n}\n\n.form-ctrl__clear-btn.sc-nano-input {\n color: var(--clear-btn-color);\n padding: 0;\n opacity: 0;\n inline-size: 0;\n -webkit-appearance: none;\n appearance: none;\n align-items: center;\n overflow: hidden;\n}\n.is-invalid.sc-nano-input-h .form-ctrl__clear-btn.sc-nano-input {\n color: var(--clear-btn-color--invalid);\n}\n.has-value.sc-nano-input-h .form-ctrl__clear-btn.sc-nano-input {\n padding-block: 0;\n padding-inline: var(--padding-start) var(--padding-end);\n opacity: 1;\n inline-size: auto;\n}\n.form-ctrl__clear-btn.sc-nano-input:hover {\n color: var(--clear-btn-color--hover);\n}\n\n.sc-nano-input-h {\n \n --placeholder-color: var(--nano-input-placeholder-color, initial);\n --placeholder-font-style: var(--nano-input-placeholder-style, initial);\n --placeholder-font-weight: var(--nano-input-placeholder-weight, initial);\n --placeholder-opacity: var(--nano-input-placeholder-opacity, 0.5);\n --padding-top: var(--nano-input-padding-top, var(--nano-input-padding, 8px));\n --padding-end: var(--nano-input-padding-end, var(--nano-input-padding, 8px));\n --padding-bottom: var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));\n --padding-start: var(--nano-input-padding-start, var(--nano-input-padding, 8px));\n --color-invalid: var(--nano-color-danger-rgb, 239 65 53);\n --color--focus-rgb:\n var(\n --nano-color-base-rgb,\n var(--nano-color-primary-rgb, 0 116 149)\n );\n --input-font-size: var(--nano-input-font-size, 0.87em);\n --input-text-color: var(--nano-input-text-color, #4a4a4a);\n --input-border-width: var(--nano-input-border-width, 1px);\n --input-border-hint-width: 3px;\n --input-border-color: var(--nano-input-border-color, #e4e6e8);\n --input-border-radius: var(--nano-input-border-radius, 0);\n --input-border-style: var(--nano-input-border-style, solid) var(--nano-input-border-color, #e4e6e8);\n --input-border-style--focus: var(--nano-input-border-style, solid) var(--nano-input-border-color--focus, #90c6e7);\n --input-border-style--invalid: var(--nano-input-border-style, solid) var(--nano-input-border-color--invalid, #e4e6e8);\n --input-border-style--invalid-focus: var(--nano-input-border-style, solid) var(--nano-input-border-color--invalid, #ef4135);\n --input-bg-color: var(--nano-input-background-color, #fff);\n --input-bg-color--focus: var(--input-bg-color);\n --input-bg-color--invalid: var(--nano-input-background-color, white);\n --invalid-msg-color: rgb(var(--color-invalid) / 100%);\n --invalid-msg-font-size: var(--nano-input-help-font-size, 0.75em);\n --help-msg-color: var(--nano-input-help-color, #616d6e);\n --clear-btn-color: var(--nano-clear-btn-color, rgba(0, 0, 0, 0.3));\n --clear-btn-color--hover: rgb(var(--color--focus-rgb) / 100%);\n --clear-btn-color--invalid: rgb(var(--color-invalid) / 100%);\n --label-color: var(--nano-input-label-color, "currentcolor");\n --label-color--focus: var(--label-color);\n --label-color--invalid: var(--nano-input-label-color-invalid, "currentcolor");\n --label-font-size: var(--nano-input-label-color, 1em);\n --multi-input-value-bg: var(--nano-input-tag-bg, 186 220 240);\n --multi-input-value-text-color: var(--nano-input-tag-color, #455556);\n --multi-input-value-border: var(--nano-input-tag-color, #badcf0);\n position: relative;\n inline-size: 100%;\n padding: 0 !important;\n color: currentcolor;\n display: block;\n}\n\n.nano-color.sc-nano-input-h {\n color: var(--nano-color-base);\n --input-border-style--focus:\n var(--nano-input-border-style, solid) var(\n --nano-color-tint,\n var(--nano-color-primary-tint, #2689a5)\n );\n}\n\n.input__native-ctrl.sc-nano-input {\n font-family: inherit;\n font-size: inherit;\n font-stretch: inherit;\n font-style: inherit;\n font-weight: inherit;\n letter-spacing: inherit;\n text-decoration: inherit;\n text-overflow: inherit;\n text-transform: inherit;\n text-align: inherit;\n white-space: inherit;\n color: inherit;\n padding-block: 0;\n padding-inline: var(--padding-start) var(--padding-end);\n border-radius: var(--input-border-radius);\n text-overflow: ellipsis;\n color: var(--input-text-color);\n display: inline-block;\n flex: 1;\n inline-size: 100%;\n max-inline-size: 100%;\n max-block-size: 100%;\n border: 0;\n outline: none;\n background: transparent;\n -webkit-appearance: none;\n appearance: none;\n margin: 0;\n box-sizing: border-box;\n resize: none;\n overflow: hidden;\n line-height: 2.5em;\n \n}\n.has-float-label.sc-nano-input .input__native-ctrl.sc-nano-input {\n line-height: 2.1em;\n min-height: 2.1em;\n -webkit-padding-before: 1.4em;\n padding-block-start: 1.4em;\n}\n.input__native-ctrl.sc-nano-input::placeholder {\n color: var(--placeholder-color);\n font-family: inherit;\n font-style: var(--placeholder-font-style);\n font-weight: var(--placeholder-font-weight);\n opacity: var(--placeholder-opacity);\n line-height: inherit;\n min-height: initial;\n}\n.input__native-ctrl.sc-nano-input::-moz-placeholder {\n line-height: 2.8em;\n text-overflow: ellipsis;\n}\n.input__native-ctrl.sc-nano-input:-webkit-autofill {\n background-color: transparent;\n}\n.input__native-ctrl.sc-nano-input::-webkit-search-decoration, .input__native-ctrl.sc-nano-input::-webkit-search-cancel-button, .input__native-ctrl.sc-nano-input::-webkit-search-results-button, .input__native-ctrl.sc-nano-input::-webkit-search-results-decoration {\n -webkit-appearance: none;\n appearance: none;\n}\n.input__native-ctrl.sc-nano-input:invalid {\n box-shadow: none;\n}\n.input__native-ctrl.sc-nano-input::-ms-clear, .input__native-ctrl.sc-nano-input::-ms-reveal {\n display: none;\n}\n.input__native-ctrl.input__resizable.sc-nano-input {\n resize: vertical;\n overflow: auto;\n}\n.form-ctrl__textarea.sc-nano-input .input__native-ctrl.sc-nano-input {\n line-height: 1.5em;\n padding-block: var(--padding-top) 0.25em;\n white-space: pre-wrap;\n}\n.form-ctrl__textarea.sc-nano-input .input__native-ctrl.sc-nano-input::placeholder {\n line-height: 1.5em;\n}\n.has-float-label.sc-nano-input .form-ctrl__textarea.sc-nano-input .input__native-ctrl.sc-nano-input {\n -webkit-padding-before: 1.75em;\n padding-block-start: 1.75em;\n}\n[readonly].sc-nano-input-h:not([readonly=false]) .input__native-ctrl.sc-nano-input {\n -webkit-user-select: none;\n user-select: none;\n}';let h=0;const u=class{get nativeInputWrap(){return this._nativeInputWrap}set nativeInputWrap(n){if(this._nativeInputWrap===n)return;this._nativeInputWrap=n;this.setDataListOpts()}constructor(i){n(this,i);this.nanoInput=t(this,"nanoInput",7);this.nanoChange=t(this,"nanoChange",7);this.nanoBlur=t(this,"nanoBlur",7);this.nanoFocus=t(this,"nanoFocus",7);this.nanoDidLoad=t(this,"nanoDidLoad",7);this.nanoDidUnload=t(this,"nanoDidUnload",7);this.nanoValidate=t(this,"nanoValidate",7);this.inputId=`nano-input-${h++}`;this.didBlurAfterEdit=false;this.rtl=false;this.charCount=0;this.hasRendered=false;this.validate=n=>{if(this.validateOn==="submitThenDirty")this.validateOn="dirty";if(!this.nativeInput.validity.valid){if(this.showInlineError){if(n)n.preventDefault();this.errorMessage=this.nativeInput.validationMessage}this._invalid=true}else this._invalid=false;this.nanoValidate.emit({isValid:!this._invalid,errorMessage:this.nativeInput.validationMessage,originalEvent:n})};this.onInput=n=>{const t=n.target;this.value=(t===null||t===void 0?void 0:t.value)||"";this.nanoInput.emit(n)};this.onBlur=()=>{this.hasFocus=false;this.focusChanged();if(this.validateOn==="dirty")this.validate();this.nanoBlur.emit()};this.onFocus=()=>{this.hasFocus=true;this.focusChanged();this.nanoFocus.emit()};this.onKeydown=()=>{if(this.shouldClearOnEdit()){if(this.didBlurAfterEdit&&this.hasValue()){this.clearTextInput()}this.didBlurAfterEdit=false}};this.clearTextInput=n=>{if(this.clearInput&&!this.readonly&&!this.disabled&&n){n.preventDefault();n.stopPropagation()}this.value="";this.nativeInput.value="";const t=new window.Event("change");this.nativeInput.dispatchEvent(t)};this.hasFocus=false;this.hasLabelSlot=false;this.hasHelperSlot=false;this.hasHelperEndSlot=false;this.errorMessage="";this.datalist=null;this._invalid=false;this.color=undefined;this.accept=undefined;this.autocapitalise="none";this.autocomplete="off";this.autocorrect="off";this.autofocus=false;this.clearInput=false;this.clearOnEdit=undefined;this.debounce=0;this.disabled=false;this.inputmode=undefined;this.validateOn="submitThenDirty";this.showInlineError=true;this.label=undefined;this.hideLabel=false;this.floatLabel=false;this.max=undefined;this.maxlength=undefined;this.min=undefined;this.minlength=undefined;this.multiple=undefined;this.name=this.inputId;this.pattern=undefined;this.placeholder=undefined;this.readonly=false;this.required=false;this.spellcheck=false;this.step=undefined;this.size=undefined;this.type="text";this.form=undefined;this.value="";this.resize="auto";this.rows=2;this.showCharCount=false;this.validate=s(this.validate,50);this.handleBlur=this.handleBlur.bind(this)}setDataListOpts(){if(!this.datalist)return;const n=this.datalist.dropDownConfig||{};this.datalist.dropDownConfig=Object.assign(Object.assign({},n),{skidding:-1,tetherTo:this.nativeInputWrap})}get invalid(){return this._invalid}get validityMessage(){if(!this.nativeInput)return"";return this.nativeInput.validationMessage}shouldValidate(){if(!this.hasRendered)return;requestAnimationFrame((()=>{if(this.validateOn==="dirty")this.validate()}))}valueChanged(){this.nanoChange.emit({value:this.value});this.charCount=this.value.length;if(this.type==="textarea"&&this.resize==="auto"){this.nativeInput.style.height="auto";if(this.value.length)this.nativeInput.style.height=this.nativeInput.scrollHeight+"px"}requestAnimationFrame((()=>{if(this.validateOn==="dirty")this.validate()}))}debounceChanged(){this.nanoChange=l(this.nanoChange,this.debounce)}async reportValidity(n){return new Promise((t=>{if(n)this.validate();setTimeout((()=>{t({isValid:!this._invalid,errorMessage:this.nativeInput.validationMessage})}),50)}))}async setFocus(){if(this.nativeInput){this.nativeInput.focus();this.nativeInput.click()}}async select(){if(this.nativeInput){this.nativeInput.select()}}getInputElement(){return Promise.resolve(this.nativeInput)}async showError(n){if(this.nativeInput){this.nativeInput.setCustomValidity(n);this.validate()}}onReset(n){const t=this.form?document.querySelector("#"+this.form):this.el.closest("form");if(!t||n.target!==this.el.closest("form"))return;this.value=""}handleBlur(n){if(!this.hasFocus)return;const t=n;let i;requestAnimationFrame((()=>{if(n instanceof KeyboardEvent&&t.key){if(t.key!=="Tab")return;i=document.activeElement}else if(n instanceof FocusEvent){i=document.activeElement}else i=n.target;if(o(this.el.tagName.toLowerCase(),i)!==this.el){this.onBlur()}}))}shouldClearOnEdit(){const{type:n,clearOnEdit:t}=this;return t===undefined?n==="password":t}getValue(){return this.value||""}focusChanged(){if(!this.hasFocus&&this.shouldClearOnEdit()&&this.hasValue()){this.didBlurAfterEdit=true}}hasValue(){return this.getValue().length>0}slotChangeObserver(){if(this.mo)this.mo.disconnect();const n=this.mo=new MutationObserver((()=>this.processSlottedContent()));n.observe(this.el,{childList:true,subtree:true})}processSlottedContent(){this.hasLabelSlot=!!this.el.querySelectorAll('[slot="label"]');this.hasHelperSlot=!!this.el.querySelector('[slot="helper"]');this.hasHelperEndSlot=!!this.el.querySelector('[slot="helper-end"]');this.datalist=this.el.querySelector("nano-datalist:not([slot])");if(!!this.el.querySelector('[slot="inline-button"]')){console.warn("The `inline-button` slot was renamed to `end` in v2 - please update your code",this.el)}}connectedCallback(){this.debounceChanged();{this.el.dispatchEvent(new CustomEvent("nanoDidLoad",{detail:this.el}))}}disconnectedCallback(){{document.dispatchEvent(new CustomEvent("nanoDidUnload",{detail:this.el}))}if(this.mo)this.mo.disconnect()}componentDidLoad(){this.slotChangeObserver();this.hasRendered=true;if(this.autofocus)setTimeout((n=>this.setFocus()),300)}componentWillLoad(){this.processSlottedContent()}render(){const n=this.getValue();const t=this.inputId+"-lbl";const e=this.showInlineError||this.hasHelperSlot?this.inputId+"-more":"";const o=this.hasHelperEndSlot?this.inputId+"-helper":"";this.rtl=this.el.ownerDocument.dir==="rtl";const s=(({el:n,floatLabel:t,label:i,errorMessage:a,type:e,showInlineError:o,hasHelperSlot:r,hasLabelSlot:s,hideLabel:l,placeholder:c,maxlength:p,charCount:d,showCharCount:h,rtl:u,hasHelperEndSlot:f})=>({el:n,floatLabel:t,label:i,errorMessage:a,type:e,showInlineError:o,hasHelperSlot:r,hasLabelSlot:s,hideLabel:l,placeholder:c,maxlength:p,charCount:d,showCharCount:h,rtl:u,hasHelperEndSlot:f}))(this);const l=Object.assign(Object.assign({},s),{labelId:t,moreId:e,helperEndId:o,hasValue:this.hasValue(),controlId:this.inputId});const d=(({clearInput:n,readonly:t,disabled:i})=>({clearInput:n,readonly:t,disabled:i,clearControl:this.clearInput}))(this);return i(a,{"aria-disabled":this.disabled?"true":null,dir:this.rtl?"rtl":null,class:Object.assign(Object.assign({},r(this.color)),{"has-value":this.hasValue(),"has-focus":this.hasFocus,"is-invalid":this._invalid})},i("div",{style:{width:"100%"}},i(c,Object.assign({},l),i(p,Object.assign({},d,{onClearText:this.clearTextInput,control:this.el,ref:n=>this.nativeInputWrap=n}),this.type!=="textarea"&&i("input",{id:this.inputId,class:"input__native-ctrl",ref:n=>this.nativeInput=n,"aria-labelledby":t+" "+e+" "+o,disabled:this.disabled,accept:this.accept,autoCapitalize:this.autocapitalise,autoComplete:this.autocomplete,autoCorrect:this.autocorrect,autoFocus:this.autofocus,inputMode:this.inputmode,form:this.form,min:this.min,max:this.max,minLength:this.minlength,maxLength:this.maxlength,multiple:this.multiple,name:this.name,pattern:this.pattern,placeholder:this.placeholder,readOnly:this.readonly,required:this.required,spellcheck:this.spellcheck,step:this.step,size:this.size,type:this.type,value:n,onInput:this.onInput,onChange:this.onInput,onFocus:this.onFocus,onBlur:this.handleBlur,onKeyDown:this.onKeydown,onInvalid:this.validate}),this.type==="textarea"&&i("textarea",{rows:this.floatLabel?1:this.rows,id:this.inputId,class:{"input__native-ctrl":true,input__resizable:this.resize==="true"},ref:n=>this.nativeInput=n,"aria-labelledby":t+" "+e+" "+o,disabled:this.disabled,autoCapitalize:this.autocapitalise,autoCorrect:this.autocorrect,autoFocus:this.autofocus,inputMode:this.inputmode,form:this.form,minLength:this.minlength,maxLength:this.maxlength,name:this.name,placeholder:this.placeholder,readOnly:this.readonly,required:this.required,spellcheck:this.spellcheck,value:n,onInput:this.onInput,onChange:this.onInput,onFocus:this.onFocus,onKeyDown:this.onKeydown,onInvalid:this.validate,onBlur:this.handleBlur}))),i("slot",null)))}get el(){return e(this)}static get watchers(){return{datalist:["setDataListOpts"],minlength:["shouldValidate"],maxlength:["shouldValidate"],min:["shouldValidate"],max:["shouldValidate"],required:["shouldValidate"],disabled:["shouldValidate"],readonly:["shouldValidate"],pattern:["shouldValidate"],inputmode:["shouldValidate"],value:["valueChanged"],debounce:["debounceChanged"]}}};u.style=d;export{u as nano_input};
|
5
|
-
//# sourceMappingURL=p-
|
4
|
+
import{r as n,c as t,h as i,a,g as e}from"./p-d6a04b3a.js";import{c as o}from"./p-257432ff.js";import{c as r}from"./p-411bb8f1.js";import{d as s,a as l}from"./p-7bff5224.js";import{F as c,a as p}from"./p-dc805ecc.js";const d='.sc-nano-input-h {\n box-sizing: border-box;\n}\n\n*.sc-nano-input, *.sc-nano-input::before, *.sc-nano-input::after {\n box-sizing: border-box;\n}\n[hidden].sc-nano-input {\n display: none !important;\n}\n[disabled].sc-nano-input-h:not([disabled=false]) {\n opacity: 0.5;\n}\n\n.form-ctrl.sc-nano-input {\n min-inline-size: 100%;\n display: block;\n}\n.form-ctrl.has-helper-end.sc-nano-input {\n display: flex;\n gap: 1rem;\n container-type: inline-size;\n}\n.form-ctrl.has-helper-end.sc-nano-input .form-ctrl__wrapper.sc-nano-input {\n flex: 1 1 100%;\n}\n.form-ctrl.has-helper-end.sc-nano-input .form-ctrl__helper-end.sc-nano-input {\n display: none;\n}\n@container (min-width: 350px) {\n .form-ctrl.has-helper-end .form-ctrl__helper-end {\n display: block !important;\n }\n .form-ctrl.has-helper-end .form-ctrl__helper {\n display: none !important;\n }\n}\n\n.form-ctrl__wrapper.sc-nano-input {\n display: block;\n}\n\nlabel.sc-nano-input, .form-ctrl__more.sc-nano-input, .form-ctrl__error.sc-nano-input, .form-ctrl__helper.sc-nano-input {\n display: block;\n inline-size: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\nlabel.visually-hide.sc-nano-input, .form-ctrl__more.visually-hide.sc-nano-input, .form-ctrl__error.visually-hide.sc-nano-input, .form-ctrl__helper.visually-hide.sc-nano-input {\n clip: rect(1px, 1px, 1px, 1px);\n -webkit-clip-path: inset(50%);\n clip-path: inset(50%);\n block-size: 1px;\n inline-size: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n}\n\n.form-ctrl__float-label.sc-nano-input {\n padding-block: 0;\n -webkit-padding-end: 0;\n padding-inline-end: 0;\n -webkit-padding-start: var(--padding-start);\n padding-inline-start: var(--padding-start);\n color: var(--label-color);\n position: absolute;\n font-size: 1.15em;\n transform: translateY(-50%);\n transform-origin: top left;\n inset-block-start: 50%;\n transition: all 0.125s ease-in;\n opacity: 1;\n}\n.has-focus.sc-nano-input-h .form-ctrl__float-label.sc-nano-input, .has-value.sc-nano-input-h .form-ctrl__float-label.sc-nano-input {\n transform: translateY(-110%);\n font-size: 0.8em;\n opacity: 0.7;\n}\n.form-ctrl__float-label.sc-nano-input .form-ctrl__label-charcount.sc-nano-input {\n opacity: 0;\n transition: opacity 0.125s ease-in;\n}\n.has-focus.sc-nano-input-h .form-ctrl__float-label.sc-nano-input .form-ctrl__label-charcount.sc-nano-input, .has-value.sc-nano-input-h .form-ctrl__float-label.sc-nano-input .form-ctrl__label-charcount.sc-nano-input {\n opacity: 1;\n}\n.form-ctrl__textarea.sc-nano-input .form-ctrl__float-label.sc-nano-input {\n inset-block-start: 50%;\n}\n.has-focus.sc-nano-input-h .form-ctrl__textarea.sc-nano-input .form-ctrl__float-label.sc-nano-input {\n inset-block-start: 0;\n transform: translateY(38%);\n}\n.has-value.sc-nano-input-h .form-ctrl__textarea.sc-nano-input .form-ctrl__float-label.sc-nano-input {\n inset-block-start: 0;\n transform: translateY(38%);\n}\n\n.form-ctrl__label.sc-nano-input {\n color: var(--label-color);\n font-size: var(--label-font-size);\n -webkit-padding-after: var(--padding-bottom);\n padding-block-end: var(--padding-bottom);\n line-height: 1;\n display: flex;\n}\n.form-ctrl__label.sc-nano-input .form-ctrl__label-wrap.sc-nano-input {\n flex: 1;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n.form-ctrl__label.sc-nano-input .form-ctrl__label-placeholder.sc-nano-input {\n margin-block: unset;\n -webkit-margin-end: 5px;\n margin-inline-end: 5px;\n -webkit-margin-start: 0;\n margin-inline-start: 0;\n opacity: 0;\n -webkit-appearance: none;\n appearance: none;\n transition: 0.3s ease opacity;\n font-size: 0.9em;\n}\n.form-ctrl__label.sc-nano-input .form-ctrl__label-charcount.sc-nano-input {\n margin-block: unset;\n -webkit-margin-end: 0;\n margin-inline-end: 0;\n -webkit-margin-start: auto;\n margin-inline-start: auto;\n font-size: 0.9em;\n opacity: 0.5;\n}\n.has-value.sc-nano-input-h .form-ctrl__label.sc-nano-input .form-ctrl__label-placeholder.sc-nano-input {\n opacity: 0.5;\n}\n.has-focus.sc-nano-input-h .form-ctrl__label.sc-nano-input {\n color: var(--label-color--focus);\n}\n.is-invalid.sc-nano-input-h:not([disabled]) .form-ctrl__label.sc-nano-input {\n color: var(--label-color--invalid);\n}\n\n.has-float-label.sc-nano-input .select__multi-input.sc-nano-input, .has-float-label.sc-nano-input .select__native-input.sc-nano-input, .has-float-label.sc-nano-input .input__native-ctrl.sc-nano-input {\n opacity: 0;\n transition: opacity 0.125s ease-in;\n}\n.has-focus.sc-nano-input-h .has-float-label.sc-nano-input .select__multi-input.sc-nano-input, .has-value.sc-nano-input-h .has-float-label.sc-nano-input .select__multi-input.sc-nano-input, .has-focus.sc-nano-input-h .has-float-label.sc-nano-input .select__native-input.sc-nano-input, .has-value.sc-nano-input-h .has-float-label.sc-nano-input .select__native-input.sc-nano-input, .has-focus.sc-nano-input-h .has-float-label.sc-nano-input .input__native-ctrl.sc-nano-input, .has-value.sc-nano-input-h .has-float-label.sc-nano-input .input__native-ctrl.sc-nano-input {\n opacity: 1;\n}\n\n.form-ctrl__more.sc-nano-input {\n block-size: 1em;\n position: relative;\n margin-block: 4px var(--padding-bottom);\n margin-inline: 3px 0;\n}\n\n.form-ctrl__helper.sc-nano-input, .form-ctrl__error.sc-nano-input {\n inset-block-start: 0;\n inset-inline-start: 0;\n position: absolute;\n font-size: var(--invalid-msg-font-size);\n line-height: 1.2;\n transition: 0.3s ease-out opacity;\n}\n\n.form-ctrl__helper.sc-nano-input {\n font-style: italic;\n color: var(--help-msg-color);\n}\n[show-inline-error].sc-nano-input-h:not([show-inline-error=false]):not([disabled]).is-invalid .form-ctrl__helper.sc-nano-input {\n opacity: 0;\n}\n\n.form-ctrl__helper-end.sc-nano-input {\n flex: 1 1 30%;\n min-inline-size: 150px;\n font-size: var(--invalid-msg-font-size);\n color: var(--help-msg-color);\n font-style: italic;\n}\n\n.form-ctrl__error.sc-nano-input {\n opacity: 0;\n color: var(--invalid-msg-color);\n font-stretch: condensed;\n}\n.is-invalid.sc-nano-input-h:not([disabled]) .form-ctrl__error.sc-nano-input {\n opacity: 1;\n}\n\n.form-ctrl__input.sc-nano-input {\n font-family: inherit;\n font-size: inherit;\n font-stretch: inherit;\n font-style: inherit;\n font-weight: inherit;\n letter-spacing: inherit;\n text-decoration: inherit;\n text-overflow: inherit;\n text-transform: inherit;\n text-align: inherit;\n white-space: inherit;\n color: inherit;\n border-radius: var(--input-border-radius);\n inline-size: 100%;\n padding: 0 !important;\n position: relative;\n flex: 1 0 auto;\n display: flex;\n background: var(--input-bg-color);\n border: var(--input-border-style);\n border-width: var(--input-border-width);\n font-size: var(--input-font-size);\n -webkit-padding-start: calc(var(--input-border-hint-width) - var(--input-border-width)) !important;\n padding-inline-start: calc(var(--input-border-hint-width) - var(--input-border-width)) !important;\n}\n.has-focus.sc-nano-input-h .form-ctrl__input.sc-nano-input {\n background: var(--input-bg-color--focus);\n border: var(--input-border-style--focus);\n border-width: var(--input-border-width);\n -webkit-padding-start: calc(var(--input-border-hint-width) - var(--input-border-width)) !important;\n padding-inline-start: calc(var(--input-border-hint-width) - var(--input-border-width)) !important;\n}\n.is-invalid.sc-nano-input-h:not([disabled]) .form-ctrl__input.sc-nano-input {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid);\n border-width: var(--input-border-width);\n -webkit-border-start: var(--input-border-style--invalid-focus) var(--input-border-hint-width);\n border-inline-start: var(--input-border-style--invalid-focus) var(--input-border-hint-width);\n -webkit-padding-start: 0 !important;\n padding-inline-start: 0 !important;\n}\n.is-invalid.has-focus.sc-nano-input-h:not([disabled]) .form-ctrl__input.sc-nano-input {\n background: var(--input-bg-color--invalid);\n border: var(--input-border-style--invalid-focus);\n border-width: var(--input-border-width);\n -webkit-border-start: var(--input-border-style--invalid-focus) var(--input-border-hint-width);\n border-inline-start: var(--input-border-style--invalid-focus) var(--input-border-hint-width);\n -webkit-padding-start: 0 !important;\n padding-inline-start: 0 !important;\n}\n\n.form-ctrl__input-wrap.sc-nano-input {\n display: flex;\n align-items: stretch;\n flex: 1;\n max-inline-size: 100%;\n}\n\n.form-ctrl__clear-btn.sc-nano-input, .form-ctrl__slot-end.sc-nano-input, .form-ctrl__slot-start.sc-nano-input, .form-ctrl__slot-value-end.sc-nano-input {\n --nano-icon-size: 1.4em;\n margin-block: 0;\n margin-inline: 0;\n font-size: 1em;\n border: 0;\n outline: none;\n background-color: transparent;\n background-repeat: no-repeat;\n display: flex;\n align-items: stretch;\n inline-size: auto;\n}\n\n.has-float-label.sc-nano-input .form-ctrl__slot-start.sc-nano-input {\n display: none;\n}\n\n.form-ctrl__slot-start.sc-nano-input-s > *, .form-ctrl__slot-start .sc-nano-input-s > *, .form-ctrl__slot-end.sc-nano-input-s > *, .form-ctrl__slot-end .sc-nano-input-s > *, .form-ctrl__slot-value-end.sc-nano-input-s > *, .form-ctrl__slot-value-end .sc-nano-input-s > *, .form-ctrl__slot-value-end.sc-nano-input *.sc-nano-input {\n --nano-icon-size: 1.4em;\n padding-inline: unset;\n -webkit-padding-start: var(--padding-start);\n padding-inline-start: var(--padding-start);\n -webkit-padding-end: var(--padding-end);\n padding-inline-end: var(--padding-end);\n font-size: 1em;\n align-items: center;\n display: flex;\n block-size: 100%;\n z-index: 1;\n}\n.sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-start.sc-nano-input-s > *, .sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-start .sc-nano-input-s > *, .sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-end.sc-nano-input-s > *, .sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-end .sc-nano-input-s > *, .sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-value-end.sc-nano-input-s > *, .sc-nano-input-h[disabled]:not([disabled=false]) .form-ctrl__slot-value-end .sc-nano-input-s > *, [disabled].sc-nano-input-h:not([disabled=false]) .form-ctrl__slot-value-end.sc-nano-input *.sc-nano-input {\n pointer-events: none;\n}\n\n.form-ctrl__slot-value-end.sc-nano-input-s > *, .form-ctrl__slot-value-end .sc-nano-input-s > *, .form-ctrl__slot-value-end.sc-nano-input *.sc-nano-input {\n pointer-events: none;\n}\n\n.form-ctrl__clear-btn.sc-nano-input {\n color: var(--clear-btn-color);\n padding: 0;\n opacity: 0;\n inline-size: 0;\n -webkit-appearance: none;\n appearance: none;\n align-items: center;\n overflow: hidden;\n}\n.is-invalid.sc-nano-input-h .form-ctrl__clear-btn.sc-nano-input {\n color: var(--clear-btn-color--invalid);\n}\n.has-value.sc-nano-input-h .form-ctrl__clear-btn.sc-nano-input {\n padding-block: 0;\n padding-inline: var(--padding-start) var(--padding-end);\n opacity: 1;\n inline-size: auto;\n}\n.form-ctrl__clear-btn.sc-nano-input:hover {\n color: var(--clear-btn-color--hover);\n}\n\n.sc-nano-input-h {\n \n --placeholder-color: var(--nano-input-placeholder-color, initial);\n --placeholder-font-style: var(--nano-input-placeholder-style, initial);\n --placeholder-font-weight: var(--nano-input-placeholder-weight, initial);\n --placeholder-opacity: var(--nano-input-placeholder-opacity, 0.5);\n --padding-top: var(--nano-input-padding-top, var(--nano-input-padding, 8px));\n --padding-end: var(--nano-input-padding-end, var(--nano-input-padding, 8px));\n --padding-bottom: var(--nano-input-padding-bottom, var(--nano-input-padding, 6px));\n --padding-start: var(--nano-input-padding-start, var(--nano-input-padding, 8px));\n --color-invalid: var(--nano-color-danger-rgb, 239 65 53);\n --color--focus-rgb:\n var(\n --nano-color-base-rgb,\n var(--nano-color-primary-rgb, 0 116 149)\n );\n --input-font-size: var(--nano-input-font-size, 0.87em);\n --input-text-color: var(--nano-input-text-color, #4a4a4a);\n --input-border-width: var(--nano-input-border-width, 1px);\n --input-border-hint-width: 3px;\n --input-border-color: var(--nano-input-border-color, #e4e6e8);\n --input-border-radius: var(--nano-input-border-radius, 0);\n --input-border-style: var(--nano-input-border-style, solid) var(--nano-input-border-color, #e4e6e8);\n --input-border-style--focus: var(--nano-input-border-style, solid) var(--nano-input-border-color--focus, #90c6e7);\n --input-border-style--invalid: var(--nano-input-border-style, solid) var(--nano-input-border-color--invalid, #e4e6e8);\n --input-border-style--invalid-focus: var(--nano-input-border-style, solid) var(--nano-input-border-color--invalid, #ef4135);\n --input-bg-color: var(--nano-input-background-color, #fff);\n --input-bg-color--focus: var(--input-bg-color);\n --input-bg-color--invalid: var(--nano-input-background-color, white);\n --invalid-msg-color: rgb(var(--color-invalid) / 100%);\n --invalid-msg-font-size: var(--nano-input-help-font-size, 0.75em);\n --help-msg-color: var(--nano-input-help-color, #616d6e);\n --clear-btn-color: var(--nano-clear-btn-color, rgba(0, 0, 0, 0.3));\n --clear-btn-color--hover: rgb(var(--color--focus-rgb) / 100%);\n --clear-btn-color--invalid: rgb(var(--color-invalid) / 100%);\n --label-color: var(--nano-input-label-color, "currentcolor");\n --label-color--focus: var(--label-color);\n --label-color--invalid: var(--nano-input-label-color-invalid, "currentcolor");\n --label-font-size: var(--nano-input-label-color, 1em);\n --multi-input-value-bg: var(--nano-input-tag-bg, 186 220 240);\n --multi-input-value-text-color: var(--nano-input-tag-color, #455556);\n --multi-input-value-border: var(--nano-input-tag-color, #badcf0);\n position: relative;\n inline-size: 100%;\n padding: 0 !important;\n color: currentcolor;\n display: block;\n}\n\n.nano-color.sc-nano-input-h {\n color: var(--nano-color-base);\n --input-border-style--focus:\n var(--nano-input-border-style, solid) var(\n --nano-color-tint,\n var(--nano-color-primary-tint, #2689a5)\n );\n}\n\n.input__native-ctrl.sc-nano-input {\n font-family: inherit;\n font-size: inherit;\n font-stretch: inherit;\n font-style: inherit;\n font-weight: inherit;\n letter-spacing: inherit;\n text-decoration: inherit;\n text-overflow: inherit;\n text-transform: inherit;\n text-align: inherit;\n white-space: inherit;\n color: inherit;\n padding-block: 0;\n padding-inline: var(--padding-start) var(--padding-end);\n border-radius: var(--input-border-radius);\n text-overflow: ellipsis;\n color: var(--input-text-color);\n display: inline-block;\n flex: 1;\n inline-size: 100%;\n max-inline-size: 100%;\n max-block-size: 100%;\n border: 0;\n outline: none;\n background: transparent;\n -webkit-appearance: none;\n appearance: none;\n margin: 0;\n box-sizing: border-box;\n resize: none;\n overflow: hidden;\n line-height: 2.5em;\n \n}\n.has-float-label.sc-nano-input .input__native-ctrl.sc-nano-input {\n line-height: 2.1em;\n min-height: 2.1em;\n -webkit-padding-before: 1.4em;\n padding-block-start: 1.4em;\n}\n.input__native-ctrl.sc-nano-input::placeholder {\n color: var(--placeholder-color);\n font-family: inherit;\n font-style: var(--placeholder-font-style);\n font-weight: var(--placeholder-font-weight);\n opacity: var(--placeholder-opacity);\n line-height: inherit;\n min-height: initial;\n}\n.input__native-ctrl.sc-nano-input::-moz-placeholder {\n line-height: 2.8em;\n text-overflow: ellipsis;\n}\n.input__native-ctrl.sc-nano-input:-webkit-autofill {\n background-color: transparent;\n}\n.input__native-ctrl.sc-nano-input::-webkit-search-decoration, .input__native-ctrl.sc-nano-input::-webkit-search-cancel-button, .input__native-ctrl.sc-nano-input::-webkit-search-results-button, .input__native-ctrl.sc-nano-input::-webkit-search-results-decoration {\n -webkit-appearance: none;\n appearance: none;\n}\n.input__native-ctrl.sc-nano-input:invalid {\n box-shadow: none;\n}\n.input__native-ctrl.sc-nano-input::-ms-clear, .input__native-ctrl.sc-nano-input::-ms-reveal {\n display: none;\n}\n.input__native-ctrl.input__resizable.sc-nano-input {\n resize: vertical;\n overflow: auto;\n}\n.form-ctrl__textarea.sc-nano-input .input__native-ctrl.sc-nano-input {\n line-height: 1.5em;\n padding-block: var(--padding-top) 0.25em;\n white-space: pre-wrap;\n}\n.form-ctrl__textarea.sc-nano-input .input__native-ctrl.sc-nano-input::placeholder {\n line-height: 1.5em;\n}\n.has-float-label.sc-nano-input .form-ctrl__textarea.sc-nano-input .input__native-ctrl.sc-nano-input {\n -webkit-padding-before: 1.75em;\n padding-block-start: 1.75em;\n}\n[readonly].sc-nano-input-h:not([readonly=false]) .input__native-ctrl.sc-nano-input {\n -webkit-user-select: none;\n user-select: none;\n}';let h=0;const u=class{get nativeInputWrap(){return this._nativeInputWrap}set nativeInputWrap(n){if(this._nativeInputWrap===n)return;this._nativeInputWrap=n;this.setDataListOpts()}constructor(i){n(this,i);this.nanoInput=t(this,"nanoInput",7);this.nanoChange=t(this,"nanoChange",7);this.nanoBlur=t(this,"nanoBlur",7);this.nanoFocus=t(this,"nanoFocus",7);this.nanoDidLoad=t(this,"nanoDidLoad",7);this.nanoDidUnload=t(this,"nanoDidUnload",7);this.nanoValidate=t(this,"nanoValidate",7);this.inputId=`nano-input-${h++}`;this.didBlurAfterEdit=false;this.rtl=false;this.charCount=0;this.hasRendered=false;this.validate=n=>{if(this.validateOn==="submitThenDirty")this.validateOn="dirty";if(!this.nativeInput.validity.valid){if(this.showInlineError){if(n)n.preventDefault();this.errorMessage=this.nativeInput.validationMessage}this._invalid=true}else this._invalid=false;this.nanoValidate.emit({isValid:!this._invalid,errorMessage:this.nativeInput.validationMessage,originalEvent:n})};this.onInput=n=>{const t=n.target;this.value=(t===null||t===void 0?void 0:t.value)||"";this.nanoInput.emit(n)};this.onBlur=()=>{this.hasFocus=false;this.focusChanged();if(this.validateOn==="dirty")this.validate();this.nanoBlur.emit()};this.onFocus=()=>{this.hasFocus=true;this.focusChanged();this.nanoFocus.emit()};this.onKeydown=()=>{if(this.shouldClearOnEdit()){if(this.didBlurAfterEdit&&this.hasValue()){this.clearTextInput()}this.didBlurAfterEdit=false}};this.clearTextInput=n=>{if(this.clearInput&&!this.readonly&&!this.disabled&&n){n.preventDefault();n.stopPropagation()}this.value="";this.nativeInput.value="";const t=new window.Event("change");this.nativeInput.dispatchEvent(t)};this.hasFocus=false;this.hasLabelSlot=false;this.hasHelperSlot=false;this.hasHelperEndSlot=false;this.errorMessage="";this.datalist=null;this._invalid=false;this.color=undefined;this.accept=undefined;this.autocapitalise="none";this.autocomplete="off";this.autocorrect="off";this.autofocus=false;this.clearInput=false;this.clearOnEdit=undefined;this.debounce=0;this.disabled=false;this.inputmode=undefined;this.validateOn="submitThenDirty";this.showInlineError=true;this.label=undefined;this.hideLabel=false;this.floatLabel=false;this.max=undefined;this.maxlength=undefined;this.min=undefined;this.minlength=undefined;this.multiple=undefined;this.name=this.inputId;this.pattern=undefined;this.placeholder=undefined;this.readonly=false;this.required=false;this.spellcheck=false;this.step=undefined;this.size=undefined;this.type="text";this.form=undefined;this.value="";this.resize="auto";this.rows=2;this.showCharCount=false;this.validate=s(this.validate,50);this.handleBlur=this.handleBlur.bind(this)}setDataListOpts(){if(!this.datalist)return;const n=this.datalist.dropDownConfig||{};this.datalist.dropDownConfig=Object.assign(Object.assign({},n),{skidding:-1,tetherTo:this.nativeInputWrap})}get invalid(){return this._invalid}get validityMessage(){if(!this.nativeInput)return"";return this.nativeInput.validationMessage}shouldValidate(){if(!this.hasRendered)return;requestAnimationFrame((()=>{if(this.validateOn==="dirty")this.validate()}))}valueChanged(){this.nanoChange.emit({value:this.value});this.charCount=this.value.length;if(this.type==="textarea"&&this.resize==="auto"){this.nativeInput.style.height="auto";if(this.value.length)this.nativeInput.style.height=this.nativeInput.scrollHeight+"px"}requestAnimationFrame((()=>{if(this.validateOn==="dirty")this.validate()}))}debounceChanged(){this.nanoChange=l(this.nanoChange,this.debounce)}async reportValidity(n){return new Promise((t=>{if(n)this.validate();setTimeout((()=>{t({isValid:!this._invalid,errorMessage:this.nativeInput.validationMessage})}),50)}))}async setFocus(){if(this.nativeInput){this.nativeInput.focus();this.nativeInput.click()}}async select(){if(this.nativeInput){this.nativeInput.select()}}getInputElement(){return Promise.resolve(this.nativeInput)}async showError(n){if(this.nativeInput){this.nativeInput.setCustomValidity(n);this.validate()}}onReset(n){const t=this.form?document.querySelector("#"+this.form):this.el.closest("form");if(!t||n.target!==this.el.closest("form"))return;this.value=""}handleBlur(n){if(!this.hasFocus)return;const t=n;let i;requestAnimationFrame((()=>{if(n instanceof KeyboardEvent&&t.key){if(t.key!=="Tab")return;i=document.activeElement}else if(n instanceof FocusEvent){i=document.activeElement}else i=n.target;if(o(this.el.tagName.toLowerCase(),i)!==this.el){this.onBlur()}}))}shouldClearOnEdit(){const{type:n,clearOnEdit:t}=this;return t===undefined?n==="password":t}getValue(){return this.value||""}focusChanged(){if(!this.hasFocus&&this.shouldClearOnEdit()&&this.hasValue()){this.didBlurAfterEdit=true}}hasValue(){return this.getValue().length>0}slotChangeObserver(){if(this.mo)this.mo.disconnect();const n=this.mo=new MutationObserver((()=>this.processSlottedContent()));n.observe(this.el,{childList:true,subtree:true})}processSlottedContent(){this.hasLabelSlot=!!this.el.querySelectorAll('[slot="label"]');this.hasHelperSlot=!!this.el.querySelector('[slot="helper"]');this.hasHelperEndSlot=!!this.el.querySelector('[slot="helper-end"]');this.datalist=this.el.querySelector("nano-datalist:not([slot])");if(!!this.el.querySelector('[slot="inline-button"]')){console.warn("The `inline-button` slot was renamed to `end` in v2 - please update your code",this.el)}}connectedCallback(){this.debounceChanged();{this.el.dispatchEvent(new CustomEvent("nanoDidLoad",{detail:this.el}))}}disconnectedCallback(){{document.dispatchEvent(new CustomEvent("nanoDidUnload",{detail:this.el}))}if(this.mo)this.mo.disconnect()}componentDidLoad(){this.slotChangeObserver();this.hasRendered=true;if(this.autofocus)setTimeout((n=>this.setFocus()),300)}componentWillLoad(){this.processSlottedContent()}render(){const n=this.getValue();const t=this.inputId+"-lbl";const e=this.showInlineError||this.hasHelperSlot?this.inputId+"-more":"";const o=this.hasHelperEndSlot?this.inputId+"-helper":"";this.rtl=this.el.ownerDocument.dir==="rtl";const s=(({el:n,floatLabel:t,label:i,errorMessage:a,type:e,showInlineError:o,hasHelperSlot:r,hasLabelSlot:s,hideLabel:l,placeholder:c,maxlength:p,charCount:d,showCharCount:h,rtl:u,hasHelperEndSlot:f})=>({el:n,floatLabel:t,label:i,errorMessage:a,type:e,showInlineError:o,hasHelperSlot:r,hasLabelSlot:s,hideLabel:l,placeholder:c,maxlength:p,charCount:d,showCharCount:h,rtl:u,hasHelperEndSlot:f}))(this);const l=Object.assign(Object.assign({},s),{labelId:t,moreId:e,helperEndId:o,hasValue:this.hasValue(),controlId:this.inputId});const d=(({clearInput:n,readonly:t,disabled:i})=>({clearInput:n,readonly:t,disabled:i,clearControl:this.clearInput}))(this);return i(a,{"aria-disabled":this.disabled?"true":null,dir:this.rtl?"rtl":null,class:Object.assign(Object.assign({},r(this.color)),{"has-value":this.hasValue(),"has-focus":this.hasFocus,"is-invalid":this._invalid})},i("div",{style:{width:"100%"}},i(c,Object.assign({},l),i(p,Object.assign({},d,{onClearText:this.clearTextInput,control:this.el,ref:n=>this.nativeInputWrap=n}),this.type!=="textarea"&&i("input",{id:this.inputId,class:"input__native-ctrl",ref:n=>this.nativeInput=n,"aria-labelledby":t+" "+e+" "+o,disabled:this.disabled,accept:this.accept,autoCapitalize:this.autocapitalise,autoComplete:this.autocomplete,autoCorrect:this.autocorrect,autoFocus:this.autofocus,inputMode:this.inputmode,form:this.form,min:this.min,max:this.max,minLength:this.minlength,maxLength:this.maxlength,multiple:this.multiple,name:this.name,pattern:this.pattern,placeholder:this.placeholder,readOnly:this.readonly,required:this.required,spellcheck:this.spellcheck,step:this.step,size:this.size,type:this.type,value:n,onInput:this.onInput,onChange:this.onInput,onFocus:this.onFocus,onBlur:this.handleBlur,onKeyDown:this.onKeydown,onInvalid:this.validate}),this.type==="textarea"&&i("textarea",{rows:this.floatLabel?1:this.rows,id:this.inputId,class:{"input__native-ctrl":true,input__resizable:this.resize==="true"},ref:n=>this.nativeInput=n,"aria-labelledby":t+" "+e+" "+o,disabled:this.disabled,autoCapitalize:this.autocapitalise,autoCorrect:this.autocorrect,autoFocus:this.autofocus,inputMode:this.inputmode,form:this.form,minLength:this.minlength,maxLength:this.maxlength,name:this.name,placeholder:this.placeholder,readOnly:this.readonly,required:this.required,spellcheck:this.spellcheck,value:n,onInput:this.onInput,onChange:this.onInput,onFocus:this.onFocus,onKeyDown:this.onKeydown,onInvalid:this.validate,onBlur:this.handleBlur}))),i("slot",null)))}get el(){return e(this)}static get watchers(){return{datalist:["setDataListOpts"],minlength:["shouldValidate"],maxlength:["shouldValidate"],min:["shouldValidate"],max:["shouldValidate"],required:["shouldValidate"],disabled:["shouldValidate"],readonly:["shouldValidate"],pattern:["shouldValidate"],inputmode:["shouldValidate"],value:["valueChanged"],debounce:["debounceChanged"]}}};u.style=d;export{u as nano_input};
|
5
|
+
//# sourceMappingURL=p-4a79eafe.entry.js.map
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
|
-
import{r as t,c as s,h as i,a as e,g as n}from"./p-
|
5
|
-
//# sourceMappingURL=p-
|
4
|
+
import{r as t,c as s,h as i,a as e,g as n}from"./p-d6a04b3a.js";import{W as a}from"./p-a26bdb65.js";const h=class{constructor(i){t(this,i);this.nanoPageChanged=s(this,"nanoPageChanged",7);this.currentPage=null;this.canGoPrev=false;this.canGoNext=false;this.show=true;this.tplRenderFn=undefined;this.indexResults=null;this.infiniteScroll=false;this.maxToShow=null}currentPageChange(){}infiniteScrollChange(){this.show=!this.infiniteScroll}async nextPage(){}async prevPage(){}async goToPage(t){console.log(t)}updateContent(){this.outputTo=this.outputSlot||this.outputEle;if(!this.templateStr||!this.outputTo||!this.indexResults){this.show=false;return}}componentWillLoad(){this.templateSlot=this.el.querySelector('[slot="filter-template"]');this.outputSlot=this.el.querySelector('[slot="output"]');if(!!this.templateSlot)this.templateStr=this.templateSlot.innerHTML}componentDidLoad(){this.updateContent()}render(){return i(e,{class:{"show-pagination":this.show}},i("div",{ref:t=>this.outputEle=t},i("slot",{name:"output"})))}get el(){return n(this)}static get watchers(){return{currentPage:["currentPageChange"],infiniteScroll:["infiniteScrollChange"]}}};a(h,["indexResults","filterChanged","tplRenderFn"]);export{h as nano_algolia_pagination};
|
5
|
+
//# sourceMappingURL=p-4d0c0873.entry.js.map
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
|
-
import{r as e,c as t,h as i,a as n}from"./p-
|
5
|
-
//# sourceMappingURL=p-
|
4
|
+
import{r as e,c as t,h as i,a as n}from"./p-d6a04b3a.js";const o=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{display:flex;align-items:center;justify-content:center;inline-size:100%;min-block-size:100%;font-size:18px;text-align:center;box-sizing:border-box;overflow:hidden;transition:opacity 0.2s;opacity:0;flex-direction:column}:host([ready]){opacity:1}";const s=class{constructor(i){e(this,i);this.nanoSlideReady=t(this,"nanoSlideReady",7);this.ready=null}readyChange(e,t){if(typeof t!=="undefined"&&t===false&&e===true){this.nanoSlideReady.emit()}}componentDidLoad(){if(typeof this.ready==="boolean")return;setTimeout((()=>{this.nanoSlideReady.emit();this.ready=true}))}render(){return i(n,null,i("slot",null))}static get watchers(){return{ready:["readyChange"]}}};s.style=o;export{s as nano_slide};
|
5
|
+
//# sourceMappingURL=p-50f2fdb3.entry.js.map
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
|
-
import{r,h as a,g as e}from"./p-
|
5
|
-
//# sourceMappingURL=p-
|
4
|
+
import{r,h as a,g as e}from"./p-d6a04b3a.js";const o=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--height:1em;--track-color:rgb(var(--nano-track-rgb, 228 230 232) / 100%);--indicator-color:rgb(var(--nano-indicator-rgb, 84 140 175) / 100%);--label-color:var(--nano-color-white, white);display:block}.progress-bar{position:relative;background-color:var(--track-color);height:var(--height);border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));overflow:hidden}.progress-bar__indicator{height:100%;font-size:0.75em;background-color:var(--indicator-color);color:var(--label-color);text-align:center;white-space:nowrap;overflow:hidden;transition:0.4s width, 0.4s background-color;transform:translateZ(0);-webkit-user-select:none;user-select:none;transform-origin:left}.progress-bar--indeterminate .progress-bar__indicator{animation:indeterminate 2.5s infinite cubic-bezier(0.37, 0, 0.63, 1)}@keyframes indeterminate{0%{scale:1 1;transform:translateX(-100%) translateZ(0)}75%,100%{scale:1 1;transform:translateX(100%) translateZ(0)}}";const t=class{constructor(a){r(this,a);this.value=0;this.indeterminate=false;this.showPercent=false}render(){return a("div",{part:"base",class:{"progress-bar":true,"progress-bar--indeterminate":this.indeterminate},role:"progressbar",title:this.host.title||undefined,"aria-label":"Progress","aria-valuemin":"0","aria-valuemax":"100","aria-valuenow":this.indeterminate?null:this.value},a("div",{part:"indicator",class:"progress-bar__indicator",style:{width:!this.indeterminate?`${this.value}%`:undefined}},a("span",{part:"label",class:"progress-bar__label"},a("slot",null,!this.indeterminate&&this.showPercent?`${this.value}%`:""))))}get host(){return e(this)}};t.style=o;export{t as nano_progress_bar};
|
5
|
+
//# sourceMappingURL=p-54c4a2f5.entry.js.map
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
|
-
import{r as t,c as i,w as s,h as e,a as h,g as n}from"./p-
|
5
|
-
//# sourceMappingURL=p-
|
4
|
+
import{r as t,c as i,w as s,h as e,a as h,g as n}from"./p-d6a04b3a.js";import{C as l}from"./p-dd5687db.js";import{W as r}from"./p-a26bdb65.js";import"./p-7bff5224.js";const o=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{display:none}:host ::slotted([slot=filter-template]){display:none !important}:host(.show-filter){display:block}";const a=class{constructor(s){t(this,s);this.nanoFilterChanged=i(this,"nanoFilterChanged",7);this.nanoTplUpdated=i(this,"nanoTplUpdated",7);this.filterId=null;this.tplWillRnder=new Promise((t=>{this.tplDidRnder=t}));this.changeEvent=undefined;this.internalValue=[undefined];this.showFilter=false;this.indexResults=null;this.filterChanged=null;this.facets=undefined;this.tplRenderFn=undefined;this.globalStoreMethod=undefined;this.filterName=null;this.value="";this.operator="or";this.storeId=undefined;this.storeMethod="session"}valueSet(){const t=this.value;let i;if(typeof t==="string")i=t.length?t.split("|"):[];else i=this.value;if(this.didValueChange(i)){const t=this.setFieldValues(i);if(t&&t.length)this.internalValue=i;else{this.tplWillRnder.then((t=>{this.setFieldValues(i);this.internalValue=i}))}}}valueChanged(){this.value=this.internalValue;this.nanoFilterChanged.emit({filterId:this.filterId,facetName:this.filterName,value:this.internalValue,operator:this.operator})}appliedFilterChanged(){if(this.filterName&&this.filterChanged&&(this.filterChanged!==this.filterId||this.operator==="and")){this.updateContent()}}tplUpdate(){this.updateContent()}handleFilterChange(){if(this.indexResults&&this.indexResults.appliedFilters){const t=this.indexResults.appliedFilters.find((t=>t.name===this.filterName));if(!t)return;this.tplWillRnder.then((i=>{const s=this.setFieldValues(t.values);if(s&&s.length)this.value=s}))}this.updateContent()}handleChangeEvent(){const t=this.getFieldValues();if(this.didValueChange(t)){this.internalValue=t;return true}return false}updateContent(){const t=this.outputSlot||this.outputEle;if(!this.el)return;if(!this.templateStr)this.showFilter=true;else if(!this.filterName||!t||this.templateStr&&(!this.indexResults||!this.indexResults.origFilters[this.filterName])){this.showFilter=false}if(!t)return;if(!this.indexResults){if(this.templateStr){s((()=>{t.innerHTML=this.tplRenderFn(this.templateStr,{orig:{},dyn:{},selected:this.internalValue&&this.internalValue.length?this.internalValue:this.value});if(!this.value||!this.value.length)this.handleChangeEvent()}))}else if(!this.value||!this.value.length)this.handleChangeEvent();return}s((()=>{t.innerHTML=this.tplRenderFn(this.templateStr,{orig:Object.assign({},this.indexResults.origFilters[this.filterName]),dyn:Object.assign({},this.indexResults.dynFilters[this.filterName]),selected:this.internalValue&&this.internalValue.length?this.internalValue:this.value});this.tplDidRnder();this.setFieldValues();if(!this.showFilter)this.showFilter=true;this.nanoTplUpdated.emit(this.el)}))}getFieldValues(){const t=[];const i=this.outputSlot.querySelectorAll('input[type="checkbox"], input[type="radio"], select');for(let s=0;s<i.length;s++){const e=i[s];if(e.type==="select-multiple"){const i=e;for(let s=0;s<i.options.length;s++){if(!i.options[s].selected||!i.options[s].value.length)continue;t.push(i.options[s].value)}}else if(e.type!=="checkbox"&&e.type!=="radio"||e.checked&&e.value.length){t.push(e.value)}}return t}setFieldValues(t){t=t||this.internalValue;if(!t)return;const i=[];const s=this.outputSlot.querySelectorAll('input[type="checkbox"], input[type="radio"], select, nano-select, nano-checkbox');for(let e=0;e<s.length;e++){const h=s[e];if(h.disabled||h.type==="file"||h.type==="reset"||h.type==="submit"||h.type==="button")continue;if(h.type==="select-multiple"||h.type==="select-one"){const s=h;for(let e=0;e<s.options.length;e++){if(!t.includes(s.options[e].value))s.options[e].selected=false;else{i.push(s.value);s.options[e].selected=true;if(h.type==="select-one")s.value=s.options[e].value}}}else if(["checkbox","radio","tag","segment","segment-pill"].includes(h.type)){if(t.includes(h.value)){i.push(h.value);h.checked=true}else if(!t.length&&!h.value.length){h.checked=true}else h.checked=false}}return i}didValueChange(t){if(!!this.internalValue&&!t)return true;if(!this.internalValue&&!t)return false;if(this.internalValue&&t.length!==this.internalValue.length)return true;let i=false;for(let s=0;s<t.length;s++){if(!i&&(!this.internalValue||!this.internalValue.includes(t[s])))i=true}return i}connectedCallback(){this.templateSlot=this.el.querySelector('[slot="filter-template"]');this.outputSlot=this.el.querySelector('[slot="output"]');this.filterId=this.filterName+"_"+f++;if(!!this.templateSlot){this.templateStr=this.templateSlot.innerHTML;this.templateStr=this.templateStr.replace(/=>/gm,"=>")}}componentWillLoad(){if(this.storeId)l.init(this,["value"],this.storeMethod||this.globalStoreMethod,this.storeId)}componentDidLoad(){this.updateContent();if(this.templateStr&&this.filterName&&this.indexResults&&this.indexResults.origFilters[this.filterName])this.showFilter=true}render(){return e(h,{class:{"show-filter":this.showFilter}},e("div",{ref:t=>this.outputEle=t},e("slot",{name:"output"})))}get el(){return n(this)}static get watchers(){return{value:["valueSet"],internalValue:["valueChanged"],facets:["appliedFilterChanged"],tplRenderFn:["tplUpdate"],indexResults:["handleFilterChange"]}}};r(a,["globalStoreMethod","indexResults","filterChanged","facets","tplRenderFn","changeEvent"]);let f=0;a.style=o;export{a as nano_algolia_filter};
|
5
|
+
//# sourceMappingURL=p-650aa197.entry.js.map
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
|
-
import{r as t,c as i,h as e,a,g as s}from"./p-
|
5
|
-
//# sourceMappingURL=p-
|
4
|
+
import{r as t,c as i,h as e,a,g as s}from"./p-d6a04b3a.js";import{M as n}from"./p-2234694a.js";import{l as r,u as o}from"./p-d7c34990.js";import{c as l}from"./p-411bb8f1.js";import"./p-f88fa15c.js";import"./p-257432ff.js";const h=":host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--border-radius:var(--nano-layer-border-radius, var(--nano-border-radius-medium, 4px));--border-color:var(--nano-layer-border-color, rgba(0, 0, 0, 0.1));--border-width:var(--nano-layer-border-width, 1px);--background:var(--nano-layer-bg, #fff);--tint-color:var(--nano-color-base, var(--nano-color-primary, #007495));--icon-size:2rem;--scrim-color:var(--nano-layer-overlay-dark, rgb(74 74 74 / 50%));--close-button-color:#b5aea7;display:block}:host(.nano-color){--tint-color:var(--nano-color-base, var(--nano-color-primary, #007495))}.alert{position:relative;background-color:var(--background);border:solid var(--border-width) var(--border-color);border-block-start-width:4px;border-block-start-color:var(--tint-color);border-radius:var(--border-radius);opacity:0;transform:scale(0.9);transition:var(--nano-transition-medium, 0.5s) opacity ease, var(--nano-transition-fast, 0.3s) transform ease}.alert:focus{outline:none}.alert:not(.alert--showing){position:absolute;inline-size:1px;block-size:1px;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);overflow:hidden;pointer-events:none;visibility:hidden}.alert--open{opacity:1;transform:none}.alert--toasty,.alert--modal{box-shadow:var(--nano-layer-shadow-large, 0 2px 8px rgba(0, 0, 0, 0.2));margin:var(--nano-spacing-medium, 16px)}.alert--modal.alert--nodismiss{animation:cannotClose 0.25s ease-in-out 1}@keyframes cannotClose{0%{transform:scale(1)}50%{transform:scale(1.08)}100%{transform:scale(1)}}.alert__content{display:flex;align-items:stretch}.alert__modal-wrap{position:fixed;display:flex;align-items:center;justify-content:center;inset:0;z-index:var(--nano-layer-index-alert, 800)}.alert__message{flex:1 1 auto;padding:var(--nano-spacing-medium, 16px);overflow:hidden;line-height:1.6}.alert__close{--color:var(--close-button-color);flex:0 0 auto;display:flex;align-items:center;font-size:1.1em;padding-inline:0 var(--nano-spacing-medium, 16px);padding-block:0}.alert__footer{padding:0 var(--nano-spacing-small, 8px) 0;display:flex;flex-direction:row;justify-content:space-around;align-items:center}.alert__footer ::slotted(*){flex:1;margin:0 var(--nano-spacing-small, 8px) var(--nano-spacing-medium, 16px) !important}.alert__overlay{position:fixed;inset:0;background-color:var(--scrim-color);opacity:0;transition:var(--nano-transition-fast, 0.3s) opacity;z-index:var(--nano-layer-index-alert, 800);-webkit-backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px));backdrop-filter:blur(var(--nano-layer-overlay-blur, 3px));pointer-events:all}.alert__overlay--open{opacity:1}.alert__icon{flex:0 0 auto;display:flex;align-items:center;font-size:var(--icon-size)}.alert__icon ::slotted(*){color:var(--tint-color);-webkit-margin-start:var(--nano-spacing-medium, 16px);margin-inline-start:var(--nano-spacing-medium, 16px)}";let c;let d;let f;let u;if(globalThis["document"]){c=Object.assign(document.createElement("div"),{className:"nano-toast-stack nano-toast-stack--tr"});d=Object.assign(document.createElement("div"),{className:"nano-toast-stack nano-toast-stack--tl"});f=Object.assign(document.createElement("div"),{className:"nano-toast-stack nano-toast-stack--bl"});u=Object.assign(document.createElement("div"),{className:"nano-toast-stack nano-toast-stack--br"})}const m=class{constructor(a){t(this,a);this.nanoShow=i(this,"nanoShow",7);this.nanoAfterShow=i(this,"nanoAfterShow",7);this.nanoHide=i(this,"nanoHide",7);this.nanoAfterHide=i(this,"nanoAfterHide",7);this.addedTransEnd=false;this.goingToHide=false;this.goingToShow=false;this.handleMouseMove=()=>{this.restartAutoHide()};this.handleCloseClick=()=>{this.hide()};this.handleTransitionEnd=t=>{if(t.propertyName==="opacity"&&(t.target===this.panel||t.target===this.overlay)){this.host.hidden=!this.open;this.isShowing=this.open;this.open?this.nanoAfterShow.emit():this.nanoAfterHide.emit()}};this.handleButtonClick=t=>{if(t.defaultPrevented)return;if(t.target.tagName&&t.target.tagName.toLowerCase()==="button")this.hide()};this.restartAutoHide=()=>{clearTimeout(this.autoHideTimeout);if(this.open&&this.duration<Infinity){this.autoHideTimeout=setTimeout((()=>this.hide()),this.duration)}};this.Panel=()=>e("div",{ref:t=>this.panel=t,part:"panel",class:{alert:true,"alert--open":this.open,"alert--toasty":this.isToast,"alert--modal":!!this.isModal,"alert--showing":this.isShowing,"alert--nodismiss":this.noDismiss},role:!!this.isModal?"alertdialog":"alert","aria-live":"assertive","aria-atomic":"true","aria-hidden":this.open?"false":"true","aria-modal":!!this.isModal?"true":undefined,"aria-label":this.label?this.label:undefined,onMouseMove:this.handleMouseMove,tabIndex:!!this.isModal?0:undefined},e("div",{class:"alert__content"},e("div",{part:"icon",class:"alert__icon"},e("slot",{name:"icon"})),e("div",{part:"message",class:"alert__message"},e("slot",null)),this.closable&&e("div",{class:"alert__close"},e("nano-icon-button",{class:"alert__close",iconName:"light/times",label:"close menu",onClick:this.handleCloseClick}))),e("div",{class:"alert__footer"},e("slot",{name:"footer"})));this.isModal=false;this.isToast=false;this.isShowing=false;this.label=undefined;this.noDismiss=false;this.open=false;this.closable=false;this.color=undefined;this.duration=Infinity;this.hoist=false}handleOpenChange(){this.open?this.show():this.hide()}handleDurationChange(){this.restartAutoHide()}handleHoistChange(){if(!this.hoist||document.body.children[0]===this.host)return;document.body.prepend(this.host)}async show(){if(this.goingToShow){return}const t=this.nanoShow.emit();if(t.defaultPrevented){this.open=false;return false}this.host.hidden=false;this.goingToShow=true;this.open=true;requestAnimationFrame((()=>{this.isShowing=true;this.goingToShow=false}));if(this.duration<Infinity){clearTimeout(this.autoHideTimeout);this.autoHideTimeout=setTimeout((()=>this.hide()),this.duration)}}async hide(){if(this.goingToHide){return}const t=this.nanoHide.emit();if(t.defaultPrevented){this.open=true;return false}this.goingToHide=true;this.open=false;requestAnimationFrame((()=>this.goingToHide=false));clearTimeout(this.autoHideTimeout)}async toast(t="tr"){this.isToast=true;return new Promise((i=>{let e;switch(t){case"tl":e=d;break;case"bl":e=f;break;case"br":e=u;break;default:e=c;break}if(!e.parentElement){document.body.appendChild(e)}e.appendChild(this.host);this.connectedCallback();this.show();const a=()=>{this.host.remove();this.isToast=false;i();if(!e.querySelector("nano-alert")){e.remove()}};this.host.addEventListener("nanoAfterHide",a,{once:true});this.host.addEventListener("nano-after-hide",a,{once:true})}))}async alert(t){this.isModal=true;this.label=t;return new Promise((t=>{if(!document.body.contains(this.host)){document.body.appendChild(this.host)}this.modal.activate();r(this.host);this.originalTrigger=document.activeElement;requestAnimationFrame((()=>{this.show()}));const i=()=>requestAnimationFrame((()=>this.panel.focus({preventScroll:true})));const e=()=>{this.modal.deactivate();this.host.remove();this.label=undefined;this.isModal=false;t();if(this.originalTrigger&&typeof this.originalTrigger.focus==="function"){setTimeout((()=>this.originalTrigger.focus()))}};this.host.addEventListener("nanoAfterShow",i,{once:true});this.host.addEventListener("nano-after-show",i,{once:true});this.host.addEventListener("nanoAfterHide",e,{once:true});this.host.addEventListener("nano-after-hide",e,{once:true})}))}connectedCallback(){this.modal=new n(this.host);this.handleHoistChange();this.host.addEventListener("click",this.handleButtonClick);if(this.panel){this.addedTransEnd=true;this.panel.addEventListener("transitionend",this.handleTransitionEnd)}}disconnectedCallback(){o(this.host);this.host.removeEventListener("click",this.handleButtonClick);this.addedTransEnd=false;if(this.panel)this.panel.removeEventListener("transitionend",this.handleTransitionEnd)}componentDidLoad(){if(this.open){this.show()}if(!this.addedTransEnd){this.panel.addEventListener("transitionend",this.handleTransitionEnd)}}render(){return e(a,{class:Object.assign({},l(this.color)),showing:this.isShowing},this.isModal&&[e("div",{part:"overlay",class:{alert__overlay:true,"alert__overlay--open":this.open},ref:t=>this.overlay=t}),e("div",{class:"alert__modal-wrap",onClick:t=>{if(!t.target.classList.contains("alert__modal-wrap"))return;this.noDismiss=true;setTimeout((()=>this.noDismiss=false),250)}},e(this.Panel,null))],!this.isModal&&e(this.Panel,null))}get host(){return s(this)}static get watchers(){return{open:["handleOpenChange"],duration:["handleDurationChange"],hoist:["handleHoistChange"]}}};m.style=h;export{m as nano_alert};
|
5
|
+
//# sourceMappingURL=p-6bdbcaa6.entry.js.map
|
@@ -1,5 +1,5 @@
|
|
1
1
|
/*!
|
2
2
|
* Web Components for Nanopore digital Web Apps
|
3
3
|
*/
|
4
|
-
import{r as i,c as t,h as e,a as s,g as n}from"./p-
|
5
|
-
//# sourceMappingURL=p-
|
4
|
+
import{r as i,c as t,h as e,a as s,g as n}from"./p-d6a04b3a.js";import{d as r}from"./p-842cf127.js";import{c as o}from"./p-ee045579.js";import{d as a}from"./p-7bff5224.js";const h=':host{box-sizing:border-box}*,*::before,*::after{box-sizing:border-box}[hidden]{display:none !important}:host{--divider-width:12px;--divider-hit-area:14px;--min:0%;--max:100%;--background-color:#e4e6e8;--content-color:#918b86;display:grid}.start,.end{overflow:hidden}.divider{flex:0 0 var(--divider-width);display:flex;position:relative;align-items:center;justify-content:center;background-color:var(--background-color);color:var(--content-color);z-index:1;font-size:0.8rem}.divider:focus{outline:none}:host(:not([disabled])) .divider:focus-visible{background-color:var(--nano-control-focus-color, rgba(144, 198, 231, 0.8))}:host([disabled]) .divider{cursor:not-allowed}:host(:not([vertical]):not([disabled])) .divider{cursor:col-resize}:host(:not([vertical])) .divider::after{display:flex;content:"";position:absolute;block-size:100%;inset-inline-start:calc(var(--divider-hit-area) / -2 + var(--divider-width) / 2);inline-size:var(--divider-hit-area)}:host([vertical]){flex-direction:column}:host([vertical]:not([disabled])) .divider{cursor:row-resize}:host([vertical]) .divider::after{content:"";position:absolute;inline-size:100%;inset-block-start:calc(var(--divider-hit-area) / -2 + var(--divider-width) / 2);block-size:var(--divider-hit-area)}';const d=class{get size(){const{width:i,height:t}=this.host.getBoundingClientRect();return this.vertical?t:i}get shouldAnimate(){return this.didLoad&&this._shouldAnimate}set shouldAnimate(i){this._shouldAnimate=i}constructor(e){i(this,e);this.nanoReposition=t(this,"nanoReposition",7);this.nanoDragging=t(this,"nanoDragging",7);this.isAnimating=false;this.didLoad=false;this._shouldAnimate=true;this.handleDrag=i=>{if(this.disabled){return}i.preventDefault();r(this.host,{onMove:(i,t)=>{let e=this.vertical?t:i;this.nanoDragging.emit(e);if(this.primary==="end"){e=this.size-e}if(this.snap){const i=this.snap.split(" ");i.forEach((i=>{let t;if(i.endsWith("%")){t=this.size*(parseFloat(i)/100)}else{t=parseFloat(i)}if(e>=t-this.snapThreshold&&e<=t+this.snapThreshold){e=t}}))}this.shouldAnimate=false;this.position=o(this.pixelsToPercentage(e),0,100);requestAnimationFrame((()=>this.shouldAnimate=true))}})};this.handleKeyDown=i=>{if(this.disabled){return}if(["ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(i.key)){let t=this.position;const e=(i.shiftKey?10:1)*(this.primary==="end"?-1:1);i.preventDefault();if(i.key==="ArrowLeft"&&!this.vertical||i.key==="ArrowUp"&&this.vertical){t-=e}if(i.key==="ArrowRight"&&!this.vertical||i.key==="ArrowDown"&&this.vertical){t+=e}if(i.key==="Home"){t=this.primary==="end"?100:0}if(i.key==="End"){t=this.primary==="end"?0:100}this.shouldAnimate=false;this.position=o(t,0,100);requestAnimationFrame((()=>this.shouldAnimate=true))}};this.handleResize=()=>{if(!this.didLoad||this.isAnimating)return;if(this.primary){this.shouldAnimate=false;this.position=this.pixelsToPercentage(this.cachedPositionInPixels);requestAnimationFrame((()=>this.shouldAnimate=true))}};this.positionInPixels=undefined;this.vertical=false;this.disabled=false;this.primary=undefined;this.snap=undefined;this.snapThreshold=12;this.animationDuration=.6;this.handlePositionChange=a(this.handlePositionChange.bind(this),100)}get position(){return this._position}set position(i){i=Math.min(Math.max(i,0),100);if(isNaN(i)||i===this._position)return;if(this.shouldAnimate&&this.animationDuration>0&&!isNaN(this.position)){this.animatePosition(i);return}this._position=i}handlePositionChange(){this.cachedPositionInPixels=this.percentageToPixels(this.position);this.positionInPixels=this.percentageToPixels(this.position);this.nanoReposition.emit()}handlePositionInPixelsChange(){this.position=this.pixelsToPercentage(this.positionInPixels)}async getPercentageToPixels(i){return this.percentageToPixels(i)}async getPixelsToPercentage(i){return this.pixelsToPercentage(i)}animatePosition(i){if(this.isAnimating)return;const t=this.animationDuration;const e=60;const s=this.position;const n=i-s;let r=s;let o=0;function a(i,t,e,s){if((i/=s/2)<1)return e/2*i*i+t;else return-e/2*(--i*(i-2)-1)+t}const h=()=>{o+=1/e;r=a(o,s,n,t);if(i>s&&r>=i||i<s&&r<=i){this.position=i;this.shouldAnimate=true;this.isAnimating=false;return}this.position=r;requestAnimationFrame(h)};this.shouldAnimate=false;this.isAnimating=true;requestAnimationFrame(h)}percentageToPixels(i){return this.size*(i/100)}pixelsToPercentage(i){return i/this.size*100}attachRO(){if(!window["ResizeObserver"])return;this.detachRO();this.ro=new ResizeObserver((()=>this.handleResize()));this.ro.observe(this.host)}detachRO(){if(!this.ro)return;this.ro.unobserve(this.host);this.ro=undefined}componentDidLoad(){if(this.positionInPixels)this.handlePositionInPixelsChange();setTimeout((()=>this.didLoad=true))}connectedCallback(){this.cachedPositionInPixels=this.percentageToPixels(this.position);this.attachRO()}disconnectedCallback(){this.detachRO()}componentDidRender(){requestAnimationFrame((()=>{if(typeof this.position==="undefined"){this.position=50}}))}render(){if(typeof this.position==="undefined")return;const i={};const t=this.vertical?"gridTemplateRows":"gridTemplateColumns";const n=`\n clamp(\n 0%,\n clamp(\n var(--min),\n ${this.position}% - var(--divider-width) / 2,\n var(--max)\n ),\n calc(100% - var(--divider-width))\n )\n `;const r="auto";if(this.primary==="end"){i[t]=`${r} var(--divider-width) ${n}`}else{i[t]=`${n} var(--divider-width) ${r}`}return e(s,{style:i},e("div",{part:"panel start",class:"start"},e("slot",{name:"start"})),e("div",{part:"divider",class:"divider",tabindex:this.disabled?undefined:"0",role:"separator","aria-label":"Resize",onKeyDown:this.handleKeyDown,onMouseDown:this.handleDrag,onTouchStart:this.handleDrag},e("slot",{name:"handle"},!this.disabled&&this.vertical?e("nano-icon",{slot:"handle",name:"solid/grip-lines"}):e("nano-icon",{slot:"handle",name:"solid/grip-lines-vertical"}))),e("div",{part:"panel end",class:"end"},e("slot",{name:"end"})))}get host(){return n(this)}static get watchers(){return{position:["handlePositionChange"],positionInPixels:["handlePositionInPixelsChange"]}}};d.style=h;export{d as nano_split_pane};
|
5
|
+
//# sourceMappingURL=p-6c4171fa.entry.js.map
|