@nanoporetech-digital/components 7.9.1 → 8.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/active-element-DB7WRcF-.js +69 -0
- package/dist/cjs/algolia-data-JweofGji.js +49 -0
- package/dist/cjs/algoliasearch-lite.esm.browser-DWj6KfUw.js +951 -0
- package/dist/cjs/component-store-DKMzj8Ei.js +326 -0
- package/dist/cjs/date-utils-DqYlulq4.js +232 -0
- package/dist/cjs/dom-a3wgHxbn.js +71 -0
- package/dist/cjs/drag-B5XXLJW9.js +72 -0
- package/dist/cjs/events-pBdXJwIU.js +37 -0
- package/dist/cjs/fade-run1oYFS.js +212 -0
- package/dist/cjs/form-control-zW-pmQ5Y.js +84 -0
- package/dist/cjs/fullscreen-DGiusO_n.js +132 -0
- package/dist/cjs/index-BV7Y7Zvi.js +198 -0
- package/dist/cjs/index-D0X7QVou.js +655 -0
- package/dist/cjs/index-DYD4xvxr.js +3328 -0
- package/dist/cjs/index-browser-3bwVgSYS.js +13 -0
- package/dist/cjs/index.cjs.js +41 -24
- package/dist/cjs/lazyload-CavfHrQV.js +94 -0
- package/dist/cjs/loader.cjs.js +4 -9
- package/dist/cjs/local-logged-in-C8Qr7Q7o.js +223 -0
- package/dist/cjs/local-logged-out-fCQ614s8.js +219 -0
- package/dist/cjs/math-DIjJ3V87.js +39 -0
- package/dist/cjs/modal-lJ_KdrUQ.js +49 -0
- package/dist/cjs/nano-accordion.cjs.entry.js +13 -27
- package/dist/cjs/nano-alert.cjs.entry.js +85 -36
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +10 -15
- package/dist/cjs/nano-algolia-pagination.cjs.entry.js +5 -9
- package/dist/cjs/nano-algolia-results.cjs.entry.js +7 -11
- package/dist/cjs/nano-algolia.cjs.entry.js +22 -27
- package/dist/cjs/nano-animation.cjs.entry.js +4 -8
- package/dist/cjs/nano-avatar_5.cjs.entry.js +1778 -0
- package/dist/cjs/nano-breadcrumb.cjs.entry.js +41 -0
- package/dist/cjs/nano-card-carousel.cjs.entry.js +95 -0
- package/dist/cjs/nano-card.cjs.entry.js +23 -0
- package/dist/cjs/nano-checkbox-group.cjs.entry.js +79 -47
- package/dist/cjs/nano-checkbox.cjs.entry.js +34 -24
- package/dist/cjs/nano-collapsible-comparison.cjs.entry.js +62 -0
- package/dist/cjs/nano-components.cjs.js +8 -11
- package/dist/cjs/nano-content-links.cjs.entry.js +17 -0
- package/dist/cjs/nano-cta.cjs.entry.js +42 -0
- package/dist/cjs/nano-data-table-DlJaR4KG.js +1847 -0
- package/dist/cjs/nano-data-table.cjs.entry.js +17 -0
- package/dist/cjs/nano-datalist_3.cjs.entry.js +85 -258
- package/dist/cjs/nano-date-input.cjs.entry.js +14 -27
- package/dist/cjs/nano-date-picker_2.cjs.entry.js +999 -0
- package/dist/cjs/nano-details.cjs.entry.js +61 -81
- package/dist/cjs/nano-dialog.cjs.entry.js +45 -42
- package/dist/cjs/nano-dropdown_2.cjs.entry.js +640 -0
- package/dist/cjs/nano-field-validator.cjs.entry.js +9 -17
- package/dist/cjs/nano-file-upload.cjs.entry.js +6 -11
- package/dist/cjs/nano-footer.cjs.entry.js +25 -0
- package/dist/cjs/nano-global-nav.cjs.entry.js +416 -1171
- package/dist/cjs/nano-grid-item.cjs.entry.js +3 -7
- package/dist/cjs/nano-grid_2.cjs.entry.js +12 -18
- package/dist/cjs/nano-hero.cjs.entry.js +9 -16
- package/dist/cjs/nano-icon-item.cjs.entry.js +21 -0
- package/dist/cjs/nano-icon_3.cjs.entry.js +655 -0
- package/dist/cjs/nano-in-page-nav.cjs.entry.js +212 -0
- package/dist/cjs/nano-intersection-observe.cjs.entry.js +15 -10
- package/dist/cjs/nano-masked-overflow.cjs.entry.js +351 -0
- package/dist/cjs/nano-menu-drawer.cjs.entry.js +8 -13
- package/dist/cjs/nano-more-less.cjs.entry.js +5 -9
- package/dist/cjs/nano-nav-item.cjs.entry.js +271 -0
- package/dist/cjs/nano-progress-bar.cjs.entry.js +8 -13
- package/dist/cjs/nano-range.cjs.entry.js +9 -14
- package/dist/cjs/nano-rating.cjs.entry.js +10 -20
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js +8 -13
- package/dist/cjs/nano-slide.cjs.entry.js +6 -11
- package/dist/cjs/nano-slides-D5q9vQ4P.js +3050 -0
- package/dist/cjs/nano-slides.cjs.entry.js +4 -8
- package/dist/cjs/nano-sortable.cjs.entry.js +11 -14
- package/dist/cjs/nano-spinner.cjs.entry.js +6 -11
- package/dist/cjs/nano-split-pane.cjs.entry.js +9 -14
- package/dist/cjs/nano-sticker.cjs.entry.js +12 -17
- package/dist/cjs/nano-tab-content.cjs.entry.js +9 -14
- package/dist/cjs/nano-tab-group.cjs.entry.js +64 -228
- package/dist/cjs/nano-tab.cjs.entry.js +18 -20
- package/dist/cjs/nano-table.cjs.entry.js +232 -13
- package/dist/cjs/page-dots-D-QQnR4W.js +138 -0
- package/dist/cjs/popover-CpIMxMWJ.js +1947 -0
- package/dist/cjs/renderer-SkVn69pT.js +71 -0
- package/dist/cjs/scroll-DXjC771e.js +185 -0
- package/dist/cjs/search-insights-BtxuX7Wv.js +50 -0
- package/dist/cjs/slot-CBvkJee9.js +107 -0
- package/dist/cjs/style-BccHkuhC.js +58 -0
- package/dist/cjs/tabbable-M9OUrhLE.js +124 -0
- package/dist/cjs/table.worker-BTF0UXAd.js +4 -0
- package/dist/cjs/table.worker-FkRsUwRY.js +32 -0
- package/dist/cjs/theme-2potFCtG.js +46 -0
- package/dist/cjs/throttle-CrRDOkln.js +52 -0
- package/dist/collection/assets/img/bsi/27001.svg +188 -0
- package/dist/collection/assets/img/bsi/9001.svg +172 -0
- package/dist/collection/assets/img/bsi/mark-of-trust.svg +230 -0
- package/dist/collection/assets/img/flags/en.svg +15 -0
- package/dist/collection/assets/img/flags/es.svg +544 -0
- package/dist/collection/assets/img/flags/ja.svg +11 -0
- package/dist/collection/assets/img/flags/zh.svg +14 -0
- package/dist/collection/collection-manifest.json +16 -4
- package/dist/collection/components/accordion/accordion.css +24 -10
- package/dist/collection/components/accordion/accordion.js +20 -55
- package/dist/collection/components/alert/alert.css +127 -58
- package/dist/collection/components/alert/alert.helpers.js +19 -12
- package/dist/collection/components/alert/alert.js +147 -32
- package/dist/collection/components/algolia/algolia-data.js +1 -2
- package/dist/collection/components/algolia/algolia-filter.css +23 -9
- package/dist/collection/components/algolia/algolia-filter.js +8 -9
- package/dist/collection/components/algolia/algolia-interface.js +0 -1
- package/dist/collection/components/algolia/algolia-pagination.js +4 -5
- package/dist/collection/components/algolia/algolia-results.js +5 -6
- package/dist/collection/components/algolia/algolia.css +23 -9
- package/dist/collection/components/algolia/algolia.js +20 -18
- package/dist/collection/components/algolia/lib/squirrelly/browser.js +1 -2
- package/dist/collection/components/algolia/lib/squirrelly/compile-string.js +1 -2
- package/dist/collection/components/algolia/lib/squirrelly/compile.js +1 -2
- package/dist/collection/components/algolia/lib/squirrelly/config.js +1 -2
- package/dist/collection/components/algolia/lib/squirrelly/container-utils.js +1 -2
- package/dist/collection/components/algolia/lib/squirrelly/containers.js +1 -2
- package/dist/collection/components/algolia/lib/squirrelly/err.js +1 -2
- package/dist/collection/components/algolia/lib/squirrelly/parse.js +1 -2
- package/dist/collection/components/algolia/lib/squirrelly/render.js +1 -2
- package/dist/collection/components/algolia/lib/squirrelly/storage.js +1 -2
- package/dist/collection/components/algolia/lib/squirrelly/utils.js +1 -2
- package/dist/collection/components/algolia/lib/template.js +1 -2
- package/dist/collection/components/animation/animation.js +15 -15
- package/dist/collection/components/animation/animations/attention_seekers/bounce.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/flash.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/headShake.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/heartBeat.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/jello.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/pulse.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/rubberBand.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/shake.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/shakeX.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/shakeY.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/swing.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/tada.js +1 -2
- package/dist/collection/components/animation/animations/attention_seekers/wobble.js +1 -2
- package/dist/collection/components/animation/animations/back_entrances/backInDown.js +1 -2
- package/dist/collection/components/animation/animations/back_entrances/backInLeft.js +1 -2
- package/dist/collection/components/animation/animations/back_entrances/backInRight.js +1 -2
- package/dist/collection/components/animation/animations/back_entrances/backInUp.js +1 -2
- package/dist/collection/components/animation/animations/back_exits/backOutDown.js +1 -2
- package/dist/collection/components/animation/animations/back_exits/backOutLeft.js +1 -2
- package/dist/collection/components/animation/animations/back_exits/backOutRight.js +1 -2
- package/dist/collection/components/animation/animations/back_exits/backOutUp.js +1 -2
- package/dist/collection/components/animation/animations/bouncing_entrances/bounceIn.js +1 -2
- package/dist/collection/components/animation/animations/bouncing_entrances/bounceInDown.js +1 -2
- package/dist/collection/components/animation/animations/bouncing_entrances/bounceInLeft.js +1 -2
- package/dist/collection/components/animation/animations/bouncing_entrances/bounceInRight.js +1 -2
- package/dist/collection/components/animation/animations/bouncing_entrances/bounceInUp.js +1 -2
- package/dist/collection/components/animation/animations/bouncing_exits/bounceOut.js +1 -2
- package/dist/collection/components/animation/animations/bouncing_exits/bounceOutDown.js +1 -2
- package/dist/collection/components/animation/animations/bouncing_exits/bounceOutLeft.js +1 -2
- package/dist/collection/components/animation/animations/bouncing_exits/bounceOutRight.js +1 -2
- package/dist/collection/components/animation/animations/bouncing_exits/bounceOutUp.js +1 -2
- package/dist/collection/components/animation/animations/easings/easings.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeIn.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInBottomLeft.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInBottomRight.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInDown.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInDownBig.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInLeft.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInLeftBig.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInRight.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInRightBig.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInTopLeft.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInTopRight.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInUp.js +1 -2
- package/dist/collection/components/animation/animations/fading_entrances/fadeInUpBig.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOut.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutBottomLeft.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutBottomRight.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutDown.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutDownBig.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutLeft.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutLeftBig.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutRight.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutRightBig.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutTopLeft.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutTopRight.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutUp.js +1 -2
- package/dist/collection/components/animation/animations/fading_exits/fadeOutUpBig.js +1 -2
- package/dist/collection/components/animation/animations/flippers/flip.js +1 -2
- package/dist/collection/components/animation/animations/flippers/flipInX.js +1 -2
- package/dist/collection/components/animation/animations/flippers/flipInY.js +1 -2
- package/dist/collection/components/animation/animations/flippers/flipOutX.js +1 -2
- package/dist/collection/components/animation/animations/flippers/flipOutY.js +1 -2
- package/dist/collection/components/animation/animations/index.js +1 -2
- package/dist/collection/components/animation/animations/lightspeed/lightSpeedInLeft.js +1 -2
- package/dist/collection/components/animation/animations/lightspeed/lightSpeedInRight.js +1 -2
- package/dist/collection/components/animation/animations/lightspeed/lightSpeedOutLeft.js +1 -2
- package/dist/collection/components/animation/animations/lightspeed/lightSpeedOutRight.js +1 -2
- package/dist/collection/components/animation/animations/rotating_entrances/rotateIn.js +1 -2
- package/dist/collection/components/animation/animations/rotating_entrances/rotateInDownLeft.js +1 -2
- package/dist/collection/components/animation/animations/rotating_entrances/rotateInDownRight.js +1 -2
- package/dist/collection/components/animation/animations/rotating_entrances/rotateInUpLeft.js +1 -2
- package/dist/collection/components/animation/animations/rotating_entrances/rotateInUpRight.js +1 -2
- package/dist/collection/components/animation/animations/rotating_exits/rotateOut.js +1 -2
- package/dist/collection/components/animation/animations/rotating_exits/rotateOutDownLeft.js +1 -2
- package/dist/collection/components/animation/animations/rotating_exits/rotateOutDownRight.js +1 -2
- package/dist/collection/components/animation/animations/rotating_exits/rotateOutUpLeft.js +1 -2
- package/dist/collection/components/animation/animations/rotating_exits/rotateOutUpRight.js +1 -2
- package/dist/collection/components/animation/animations/sliding_entrances/slideInDown.js +1 -2
- package/dist/collection/components/animation/animations/sliding_entrances/slideInLeft.js +1 -2
- package/dist/collection/components/animation/animations/sliding_entrances/slideInRight.js +1 -2
- package/dist/collection/components/animation/animations/sliding_entrances/slideInUp.js +1 -2
- package/dist/collection/components/animation/animations/sliding_exits/slideOutDown.js +1 -2
- package/dist/collection/components/animation/animations/sliding_exits/slideOutLeft.js +1 -2
- package/dist/collection/components/animation/animations/sliding_exits/slideOutRight.js +1 -2
- package/dist/collection/components/animation/animations/sliding_exits/slideOutUp.js +1 -2
- package/dist/collection/components/animation/animations/specials/hinge.js +1 -2
- package/dist/collection/components/animation/animations/specials/jackInTheBox.js +1 -2
- package/dist/collection/components/animation/animations/specials/rollIn.js +1 -2
- package/dist/collection/components/animation/animations/specials/rollOut.js +1 -2
- package/dist/collection/components/animation/animations/zooming_entrances/zoomIn.js +1 -2
- package/dist/collection/components/animation/animations/zooming_entrances/zoomInDown.js +1 -2
- package/dist/collection/components/animation/animations/zooming_entrances/zoomInLeft.js +1 -2
- package/dist/collection/components/animation/animations/zooming_entrances/zoomInRight.js +1 -2
- package/dist/collection/components/animation/animations/zooming_entrances/zoomInUp.js +1 -2
- package/dist/collection/components/animation/animations/zooming_exits/zoomOut.js +1 -2
- package/dist/collection/components/animation/animations/zooming_exits/zoomOutDown.js +1 -2
- package/dist/collection/components/animation/animations/zooming_exits/zoomOutLeft.js +1 -2
- package/dist/collection/components/animation/animations/zooming_exits/zoomOutRight.js +1 -2
- package/dist/collection/components/animation/animations/zooming_exits/zoomOutUp.js +1 -2
- package/dist/collection/components/avatar/avatar.css +41 -0
- package/dist/collection/components/avatar/avatar.js +47 -0
- package/dist/collection/components/badge/badge.js +84 -0
- package/dist/collection/components/breadcrumb/breadcrumb.css +168 -0
- package/dist/collection/components/breadcrumb/breadcrumb.js +83 -0
- package/dist/collection/components/card/card.css +43 -0
- package/dist/collection/components/card/card.js +92 -0
- package/dist/collection/components/card-carousel/card-carousel.css +167 -0
- package/dist/collection/components/card-carousel/card-carousel.js +144 -0
- package/dist/collection/components/checkbox/checkbox-group.css +96 -106
- package/dist/collection/components/checkbox/checkbox-group.js +95 -56
- package/dist/collection/components/checkbox/checkbox-interface.js +0 -1
- package/dist/collection/components/checkbox/checkbox.css +303 -305
- package/dist/collection/components/checkbox/checkbox.js +76 -59
- package/dist/collection/components/collapsible-comparison/collapsible-comparison.css +80 -0
- package/dist/collection/components/collapsible-comparison/collapsible-comparison.js +120 -0
- package/dist/collection/components/content-links/content-links.css +46 -0
- package/dist/collection/components/content-links/content-links.js +21 -0
- package/dist/collection/components/cta/cta.css +49 -0
- package/dist/collection/components/cta/cta.js +175 -0
- package/dist/collection/components/data-table/table.cell.js +114 -0
- package/dist/collection/components/data-table/table.constants.js +4 -0
- package/dist/collection/components/data-table/table.css +327 -0
- package/dist/collection/components/data-table/table.header.js +65 -0
- package/dist/collection/components/data-table/table.js +1721 -0
- package/dist/collection/components/data-table/table.pin-service.js +388 -0
- package/dist/collection/components/data-table/table.row.js +112 -0
- package/dist/collection/components/data-table/table.store.js +144 -0
- package/dist/collection/components/data-table/table.utils.js +133 -0
- package/dist/collection/components/data-table/table.worker.js +220 -0
- package/dist/collection/components/datalist/datalist.css +43 -26
- package/dist/collection/components/datalist/datalist.js +35 -32
- package/dist/collection/components/date-input/date-input.css +25 -13
- package/dist/collection/components/date-input/date-input.js +49 -48
- package/dist/collection/components/date-picker/date-picker.css +51 -53
- package/dist/collection/components/date-picker/date-picker.js +41 -73
- package/dist/collection/components/date-picker/duet-date-picker/date-adapter.js +1 -2
- package/dist/collection/components/date-picker/duet-date-picker/date-localization.js +1 -2
- package/dist/collection/components/date-picker/duet-date-picker/date-picker-day.js +1 -2
- package/dist/collection/components/date-picker/duet-date-picker/date-picker-month.js +2 -3
- package/dist/collection/components/details/details.css +80 -106
- package/dist/collection/components/details/details.js +83 -134
- package/dist/collection/components/dialog/dialog.css +89 -87
- package/dist/collection/components/dialog/dialog.helpers.js +18 -7
- package/dist/collection/components/dialog/dialog.js +47 -57
- package/dist/collection/components/drawer/drawer.css +119 -50
- package/dist/collection/components/drawer/drawer.js +144 -55
- package/dist/collection/components/dropdown/dropdown.css +46 -31
- package/dist/collection/components/dropdown/dropdown.js +82 -64
- package/dist/collection/components/field-validator/field-validator.js +22 -25
- package/dist/collection/components/file-upload/file-upload-list.js +1 -2
- package/dist/collection/components/file-upload/file-upload.css +29 -17
- package/dist/collection/components/file-upload/file-upload.js +20 -20
- package/dist/collection/components/footer/footer.css +185 -0
- package/dist/collection/components/footer/footer.js +43 -0
- package/dist/collection/components/form-control/form-control.js +8 -8
- package/dist/collection/components/global-nav/assets/local-logged-in.json +202 -0
- package/dist/collection/components/global-nav/assets/local-logged-out.json +198 -0
- package/dist/collection/components/global-nav/global-nav.css +435 -0
- package/dist/collection/components/global-nav/global-nav.js +573 -1468
- package/dist/collection/components/global-search-results/global-search-results.css +26 -14
- package/dist/collection/components/global-search-results/global-search-results.js +36 -27
- package/dist/collection/components/grid/grid-item.js +2 -3
- package/dist/collection/components/grid/grid.css +23 -9
- package/dist/collection/components/grid/grid.js +21 -24
- package/dist/collection/components/hero/hero.css +23 -9
- package/dist/collection/components/hero/hero.js +12 -13
- package/dist/collection/components/icon/device/elysion.svg +5 -0
- package/dist/collection/components/icon/device/flongle.svg +4 -0
- package/dist/collection/components/icon/device/gridion.svg +9 -0
- package/dist/collection/components/icon/device/minion-mk1d.svg +4 -0
- package/dist/collection/components/icon/device/p2-integrated.svg +7 -0
- package/dist/collection/components/icon/device/p2-solo.svg +5 -0
- package/dist/collection/components/icon/device/p24.svg +6 -0
- package/dist/collection/components/icon/device/q.svg +4 -0
- package/dist/collection/components/icon/icon.css +76 -37
- package/dist/collection/components/icon/icon.js +144 -103
- package/dist/collection/components/icon/pictogram/analyse.svg +10 -0
- package/dist/collection/components/icon/pictogram/animal-research.svg +4 -0
- package/dist/collection/components/icon/pictogram/assembly.svg +3 -0
- package/dist/collection/components/icon/pictogram/biopharma.svg +3 -0
- package/dist/collection/components/icon/pictogram/cancer-research.svg +15 -0
- package/dist/collection/components/icon/pictogram/chromatin-conformation.svg +3 -0
- package/dist/collection/components/icon/pictogram/clinical-research.svg +3 -0
- package/dist/collection/components/icon/pictogram/environmental-conservation.svg +5 -0
- package/dist/collection/components/icon/pictogram/epigenetics.svg +5 -0
- package/dist/collection/components/icon/pictogram/fusion-transcripts.svg +3 -0
- package/dist/collection/components/icon/pictogram/gene-expression.svg +3 -0
- package/dist/collection/components/icon/pictogram/genome-research.svg +3 -0
- package/dist/collection/components/icon/pictogram/human-genomics.svg +4 -0
- package/dist/collection/components/icon/pictogram/infectious-disease.svg +13 -0
- package/dist/collection/components/icon/pictogram/microbial-genomics.svg +15 -0
- package/dist/collection/components/icon/pictogram/microbiome-metagenomics.svg +16 -0
- package/dist/collection/components/icon/pictogram/multiomics.svg +13 -0
- package/dist/collection/components/icon/pictogram/plant-research.svg +3 -0
- package/dist/collection/components/icon/pictogram/population-genomics.svg +6 -0
- package/dist/collection/components/icon/pictogram/prepare.svg +4 -0
- package/dist/collection/components/icon/pictogram/scalable.svg +12 -0
- package/dist/collection/components/icon/pictogram/sequence.svg +3 -0
- package/dist/collection/components/icon/pictogram/single-cell-spatial-transcriptions.svg +12 -0
- package/dist/collection/components/icon/pictogram/snvs-phasing.svg +4 -0
- package/dist/collection/components/icon/pictogram/splice-variation.svg +4 -0
- package/dist/collection/components/icon/pictogram/structural-variation.svg +4 -0
- package/dist/collection/components/icon/pictogram/targeted-sequencing.svg +10 -0
- package/dist/collection/components/icon/pictogram/transcriptomics.svg +3 -0
- package/dist/collection/components/icon/pictogram/unrestricted-read-length.svg +10 -0
- package/dist/collection/components/icon/pictogram/whole-genome-sequencing.svg +3 -0
- package/dist/collection/components/icon/pictogram/workflow-end-to-end.svg +3 -0
- package/dist/collection/components/icon/request.js +1 -2
- package/dist/collection/components/icon/utils.js +8 -11
- package/dist/collection/components/icon/validate.js +1 -2
- package/dist/collection/components/icon-button/icon-button.css +45 -37
- package/dist/collection/components/icon-button/icon-button.js +17 -26
- package/dist/collection/components/icon-item/icon-item.css +41 -0
- package/dist/collection/components/icon-item/icon-item.js +72 -0
- package/dist/collection/components/img/img.css +23 -9
- package/dist/collection/components/img/img.js +10 -11
- package/dist/collection/components/in-page-nav/in-page-nav.css +122 -0
- package/dist/collection/components/in-page-nav/in-page-nav.js +278 -0
- package/dist/collection/components/input/input.css +215 -167
- package/dist/collection/components/input/input.js +372 -133
- package/dist/collection/components/intersection-observe/intersection-observe.js +21 -10
- package/dist/collection/components/masked-overflow/masked-overflow.css +241 -0
- package/dist/collection/components/masked-overflow/masked-overflow.js +610 -0
- package/dist/collection/components/menu/menu.css +38 -46
- package/dist/collection/components/menu/menu.js +93 -36
- package/dist/collection/components/menu-drawer/menu-drawer.css +23 -9
- package/dist/collection/components/menu-drawer/menu-drawer.js +7 -8
- package/dist/collection/components/more-less/more-less.js +7 -8
- package/dist/collection/components/nav-item/nav-item.css +73 -270
- package/dist/collection/components/nav-item/nav-item.js +128 -291
- package/dist/collection/components/option/option.css +57 -39
- package/dist/collection/components/option/option.js +33 -18
- package/dist/collection/components/progress-bar/progress-bar.css +23 -9
- package/dist/collection/components/progress-bar/progress-bar.js +11 -9
- package/dist/collection/components/range/range.css +23 -9
- package/dist/collection/components/range/range.js +17 -19
- package/dist/collection/components/rating/rating.css +24 -10
- package/dist/collection/components/rating/rating.js +13 -18
- package/dist/collection/components/resize-observe/resize-observe.js +6 -9
- package/dist/collection/components/select/select.css +194 -223
- package/dist/collection/components/select/select.js +108 -136
- package/dist/collection/components/skeleton/skeleton.css +23 -9
- package/dist/collection/components/skeleton/skeleton.js +7 -7
- package/dist/collection/components/slides/lib/js/animate.js +1 -2
- package/dist/collection/components/slides/lib/js/cell.js +1 -2
- package/dist/collection/components/slides/lib/js/drag.js +1 -2
- package/dist/collection/components/slides/lib/js/fade.js +1 -2
- package/dist/collection/components/slides/lib/js/flickity.js +15 -5
- package/dist/collection/components/slides/lib/js/fullscreen.js +1 -2
- package/dist/collection/components/slides/lib/js/index.js +1 -2
- package/dist/collection/components/slides/lib/js/lazyload.js +1 -2
- package/dist/collection/components/slides/lib/js/page-dots.js +5 -7
- package/dist/collection/components/slides/lib/js/player.js +1 -2
- package/dist/collection/components/slides/lib/js/prev-next-button.js +1 -2
- package/dist/collection/components/slides/lib/js/slide.js +1 -2
- package/dist/collection/components/slides/lib/js/utils/event-emitter.js +1 -2
- package/dist/collection/components/slides/lib/js/utils/gestures.js +1 -2
- package/dist/collection/components/slides/lib/js/utils/get-size.js +1 -2
- package/dist/collection/components/slides/lib/js/utils/utils.js +1 -2
- package/dist/collection/components/slides/slide.css +23 -9
- package/dist/collection/components/slides/slide.js +3 -4
- package/dist/collection/components/slides/slides.css +49 -24
- package/dist/collection/components/slides/slides.js +16 -16
- package/dist/collection/components/sortable/sortable.css +25 -13
- package/dist/collection/components/sortable/sortable.js +34 -25
- package/dist/collection/components/spinner/spinner.css +23 -11
- package/dist/collection/components/spinner/spinner.js +8 -5
- package/dist/collection/components/split-pane/split-pane.css +33 -20
- package/dist/collection/components/split-pane/split-pane.js +13 -11
- package/dist/collection/components/sticker/sticker.css +23 -9
- package/dist/collection/components/sticker/sticker.js +14 -14
- package/dist/collection/components/table/table.css +31 -383
- package/dist/collection/components/table/table.js +211 -1566
- package/dist/collection/components/tabs/tab-content.css +23 -9
- package/dist/collection/components/tabs/tab-content.js +11 -7
- package/dist/collection/components/tabs/tab-group.css +70 -229
- package/dist/collection/components/tabs/tab-group.js +98 -266
- package/dist/collection/components/tabs/tab.css +83 -134
- package/dist/collection/components/tabs/tab.js +25 -18
- package/dist/collection/components/tag/tag.css +45 -0
- package/dist/collection/components/tag/tag.js +122 -0
- package/dist/collection/components/tooltip/tooltip.css +93 -66
- package/dist/collection/components/tooltip/tooltip.js +30 -14
- package/dist/collection/global/script/global.js +1 -2
- package/dist/collection/index.js +2 -2
- package/dist/collection/types/shared.js +0 -1
- package/dist/collection/utils/active-element.js +49 -2
- package/dist/collection/utils/constructible-style.js +3 -4
- package/dist/collection/utils/custom-template.js +1 -2
- package/dist/collection/utils/date-utils.js +1 -2
- package/dist/collection/utils/dom.js +10 -11
- package/dist/collection/utils/drag.js +1 -2
- package/dist/collection/utils/events.js +1 -2
- package/dist/collection/utils/fetch.js +1 -2
- package/dist/collection/utils/form.js +1 -2
- package/dist/collection/utils/gesture/gesture-controller.js +1 -2
- package/dist/collection/utils/gesture/index.js +1 -2
- package/dist/collection/utils/gesture/listener.js +1 -2
- package/dist/collection/utils/gesture/pointer-events.js +1 -2
- package/dist/collection/utils/gesture/recognizers.js +1 -2
- package/dist/collection/utils/gesture/swipe-back.js +1 -2
- package/dist/collection/utils/math.js +1 -2
- package/dist/collection/utils/modal.js +1 -2
- package/dist/collection/utils/popover.js +7 -4
- package/dist/collection/utils/promise-queue.js +1 -2
- package/dist/collection/utils/renderer.js +12 -3
- package/dist/collection/utils/scroll.js +59 -3
- package/dist/collection/utils/search-insights.js +1 -2
- package/dist/collection/utils/slot.js +82 -28
- package/dist/collection/utils/store/component-store.js +25 -14
- package/dist/collection/utils/store/get-set.js +1 -2
- package/dist/collection/utils/style.js +54 -0
- package/dist/collection/utils/tabbable.js +41 -27
- package/dist/collection/utils/testing/index.js +1 -2
- package/dist/collection/utils/theme.js +2 -4
- package/dist/collection/utils/throttle.js +1 -2
- package/dist/collection/utils/transitions.js +24 -7
- package/dist/components/active-element.js +50 -4
- package/dist/components/algolia-data.js +1 -3
- package/dist/components/algolia.js +964 -23
- package/dist/components/avatar.js +33 -0
- package/dist/components/badge.js +36 -0
- package/dist/components/component-store.js +27 -26
- package/dist/components/cta.js +61 -0
- package/dist/components/datalist.js +24 -27
- package/dist/components/date-picker.js +33 -45
- package/dist/components/details.js +198 -0
- package/dist/components/dom.js +11 -22
- package/dist/components/drag.js +1 -3
- package/dist/components/drawer.js +402 -0
- package/dist/components/dropdown.js +65 -59
- package/dist/components/events.js +1 -3
- package/dist/components/fade.js +2 -4
- package/dist/components/form-control.js +11 -9
- package/dist/components/fullscreen.js +2 -4
- package/dist/components/global-search-results.js +735 -0
- package/dist/components/grid.js +6 -9
- package/dist/components/icon-button.js +3 -17
- package/dist/components/icon.js +98 -90
- package/dist/components/img.js +6 -9
- package/dist/components/index-browser.js +3 -5
- package/dist/components/index.js +41 -22
- package/dist/components/index2.js +1 -3
- package/dist/components/index3.js +4 -9
- package/dist/components/input.js +178 -65
- package/dist/components/lazyload.js +2 -4
- package/dist/components/local-logged-in.js +214 -0
- package/dist/components/local-logged-out.js +210 -0
- package/dist/components/masked-overflow.js +402 -0
- package/dist/components/math.js +2 -4
- package/dist/components/menu.js +76 -29
- package/dist/components/modal.js +1 -3
- package/dist/components/nano-accordion.js +13 -26
- package/dist/components/nano-alert.js +82 -28
- package/dist/components/nano-algolia-filter.js +5 -8
- package/dist/components/nano-algolia-pagination.js +3 -5
- package/dist/components/nano-algolia-results.js +4 -6
- package/dist/components/nano-algolia.js +1 -3
- package/dist/components/nano-animation.js +2 -4
- package/dist/components/nano-avatar.d.ts +11 -0
- package/dist/components/nano-avatar.js +9 -0
- package/dist/components/nano-badge.d.ts +11 -0
- package/dist/components/nano-badge.js +9 -0
- package/dist/components/nano-breadcrumb.d.ts +11 -0
- package/dist/components/nano-breadcrumb.js +84 -0
- package/dist/components/nano-card-carousel.d.ts +11 -0
- package/dist/components/nano-card-carousel.js +124 -0
- package/dist/components/nano-card.d.ts +11 -0
- package/dist/components/nano-card.js +42 -0
- package/dist/components/nano-checkbox-group.js +76 -42
- package/dist/components/nano-checkbox.js +35 -22
- package/dist/components/nano-collapsible-comparison.d.ts +11 -0
- package/dist/components/nano-collapsible-comparison.js +106 -0
- package/dist/components/nano-content-links.d.ts +11 -0
- package/dist/components/nano-content-links.js +32 -0
- package/dist/components/nano-cta.d.ts +11 -0
- package/dist/components/nano-cta.js +9 -0
- package/dist/components/nano-data-table.d.ts +11 -0
- package/dist/components/nano-data-table.js +1945 -0
- package/dist/components/nano-datalist.js +1 -3
- package/dist/components/nano-date-input.js +35 -34
- package/dist/components/nano-date-picker.js +3 -5
- package/dist/components/nano-details.js +3 -209
- package/dist/components/nano-dialog.js +38 -34
- package/dist/components/nano-drawer.js +2 -335
- package/dist/components/nano-dropdown.js +1 -3
- package/dist/components/nano-field-validator.js +8 -14
- package/dist/components/nano-file-upload.js +4 -7
- package/dist/components/nano-footer.d.ts +11 -0
- package/dist/components/nano-footer.js +47 -0
- package/dist/components/nano-global-nav.js +519 -1251
- package/dist/components/nano-global-search-results.js +2 -669
- package/dist/components/nano-grid-item.js +2 -4
- package/dist/components/nano-grid.js +1 -3
- package/dist/components/nano-hero.js +9 -12
- package/dist/components/nano-icon-button.js +1 -3
- package/dist/components/nano-icon-item.d.ts +11 -0
- package/dist/components/nano-icon-item.js +39 -0
- package/dist/components/nano-icon.js +1 -3
- package/dist/components/nano-img.js +1 -3
- package/dist/components/nano-in-page-nav.d.ts +11 -0
- package/dist/components/nano-in-page-nav.js +246 -0
- package/dist/components/nano-input.js +1 -3
- package/dist/components/nano-intersection-observe.js +11 -5
- package/dist/components/nano-masked-overflow.d.ts +11 -0
- package/dist/components/nano-masked-overflow.js +9 -0
- package/dist/components/nano-menu-drawer.js +5 -8
- package/dist/components/nano-menu.js +1 -3
- package/dist/components/nano-more-less.js +3 -5
- package/dist/components/nano-nav-item.js +1 -3
- package/dist/components/nano-option.js +1 -3
- package/dist/components/nano-progress-bar.js +1 -3
- package/dist/components/nano-range.js +4 -7
- package/dist/components/nano-rating.js +8 -16
- package/dist/components/nano-resize-observe.js +1 -3
- package/dist/components/nano-select.js +1 -3
- package/dist/components/nano-skeleton.js +1 -3
- package/dist/components/nano-slide.js +4 -7
- package/dist/components/nano-slides.js +3 -3087
- package/dist/components/nano-sortable.js +12 -13
- package/dist/components/nano-spinner.js +1 -3
- package/dist/components/nano-split-pane.js +5 -8
- package/dist/components/nano-sticker.js +1 -3
- package/dist/components/nano-tab-content.js +8 -11
- package/dist/components/nano-tab-group.js +85 -239
- package/dist/components/nano-tab.js +17 -17
- package/dist/components/nano-table.js +205 -1882
- package/dist/components/nano-tag.d.ts +11 -0
- package/dist/components/nano-tag.js +9 -0
- package/dist/components/nano-tooltip.js +1 -3
- package/dist/components/nav-item.js +174 -225
- package/dist/components/option.js +12 -13
- package/dist/components/page-dots.js +6 -9
- package/dist/components/popover.js +31 -16
- package/dist/components/progress-bar.js +6 -9
- package/dist/components/renderer.js +12 -4
- package/dist/components/resize-observe.js +2 -4
- package/dist/components/scroll.js +60 -5
- package/dist/components/select.js +111 -100
- package/dist/components/skeleton.js +5 -8
- package/dist/components/slides.js +3097 -0
- package/dist/components/slot.js +84 -36
- package/dist/components/spinner.js +4 -7
- package/dist/components/sticker.js +7 -10
- package/dist/components/style.js +56 -0
- package/dist/components/tabbable.js +42 -28
- package/dist/components/table.worker.js +3 -5
- package/dist/components/tag.js +89 -0
- package/dist/components/theme.js +2 -5
- package/dist/components/throttle.js +1 -3
- package/dist/components/tooltip.js +20 -10
- package/dist/esm/active-element-C1pBwzyj.js +65 -0
- package/dist/esm/algolia-data-BNDipgId.js +47 -0
- package/dist/esm/algoliasearch-lite.esm.browser-C1SNUAIj.js +949 -0
- package/dist/esm/component-store-DqCSKpAK.js +324 -0
- package/dist/esm/date-utils-BZYdjI1P.js +217 -0
- package/dist/esm/dom-CF0Ycs9M.js +67 -0
- package/dist/esm/drag-BLOEuv-q.js +70 -0
- package/dist/esm/events-ClRFmcmJ.js +34 -0
- package/dist/esm/fade-CdIyPeai.js +210 -0
- package/dist/esm/form-control-DXPQniNX.js +81 -0
- package/dist/esm/fullscreen-C4GllGer.js +130 -0
- package/dist/esm/index-BQSuCPXH.js +652 -0
- package/dist/esm/index-CFYZ-ZOT.js +3289 -0
- package/dist/esm/index-DxKBolVo.js +196 -0
- package/dist/esm/index-browser-BvSm1vXe.js +6 -0
- package/dist/esm/index.js +43 -24
- package/dist/esm/lazyload-pTbJ7q2S.js +92 -0
- package/dist/esm/loader.js +4 -7
- package/dist/esm/local-logged-in-DNQyU0ot.js +214 -0
- package/dist/esm/local-logged-out-CD2oXHpq.js +210 -0
- package/dist/esm/math-BEqsTfVK.js +36 -0
- package/dist/esm/modal-B50PWCuY.js +47 -0
- package/dist/esm/nano-accordion.entry.js +13 -25
- package/dist/esm/nano-alert.entry.js +85 -34
- package/dist/esm/nano-algolia-filter.entry.js +10 -13
- package/dist/esm/nano-algolia-pagination.entry.js +5 -7
- package/dist/esm/nano-algolia-results.entry.js +7 -9
- package/dist/esm/nano-algolia.entry.js +22 -25
- package/dist/esm/nano-animation.entry.js +4 -6
- package/dist/esm/nano-avatar_5.entry.js +1772 -0
- package/dist/esm/nano-breadcrumb.entry.js +39 -0
- package/dist/esm/nano-card-carousel.entry.js +93 -0
- package/dist/esm/nano-card.entry.js +21 -0
- package/dist/esm/nano-checkbox-group.entry.js +79 -45
- package/dist/esm/nano-checkbox.entry.js +34 -22
- package/dist/esm/nano-collapsible-comparison.entry.js +60 -0
- package/dist/esm/nano-components.js +6 -8
- package/dist/esm/nano-content-links.entry.js +15 -0
- package/dist/esm/nano-cta.entry.js +40 -0
- package/dist/esm/nano-data-table-DsTG4mqR.js +1844 -0
- package/dist/esm/nano-data-table.entry.js +11 -0
- package/dist/esm/nano-datalist_3.entry.js +84 -255
- package/dist/esm/nano-date-input.entry.js +14 -25
- package/dist/esm/nano-date-picker_2.entry.js +996 -0
- package/dist/esm/nano-details.entry.js +61 -79
- package/dist/esm/nano-dialog.entry.js +45 -40
- package/dist/esm/nano-dropdown_2.entry.js +637 -0
- package/dist/esm/nano-field-validator.entry.js +9 -15
- package/dist/esm/nano-file-upload.entry.js +6 -9
- package/dist/esm/nano-footer.entry.js +23 -0
- package/dist/esm/nano-global-nav.entry.js +416 -1169
- package/dist/esm/nano-grid-item.entry.js +3 -5
- package/dist/esm/nano-grid_2.entry.js +12 -16
- package/dist/esm/nano-hero.entry.js +9 -14
- package/dist/esm/nano-icon-item.entry.js +19 -0
- package/dist/esm/nano-icon_3.entry.js +651 -0
- package/dist/esm/nano-in-page-nav.entry.js +210 -0
- package/dist/esm/nano-intersection-observe.entry.js +14 -7
- package/dist/esm/nano-masked-overflow.entry.js +349 -0
- package/dist/esm/nano-menu-drawer.entry.js +8 -11
- package/dist/esm/nano-more-less.entry.js +5 -7
- package/dist/esm/nano-nav-item.entry.js +269 -0
- package/dist/esm/nano-progress-bar.entry.js +8 -11
- package/dist/esm/nano-range.entry.js +9 -12
- package/dist/esm/nano-rating.entry.js +10 -18
- package/dist/esm/nano-resize-observe_2.entry.js +8 -11
- package/dist/esm/nano-slide.entry.js +6 -9
- package/dist/esm/nano-slides-BcyK9Szs.js +3045 -0
- package/dist/esm/nano-slides.entry.js +4 -6
- package/dist/esm/nano-sortable.entry.js +11 -12
- package/dist/esm/nano-spinner.entry.js +6 -9
- package/dist/esm/nano-split-pane.entry.js +9 -12
- package/dist/esm/nano-sticker.entry.js +10 -13
- package/dist/esm/nano-tab-content.entry.js +9 -12
- package/dist/esm/nano-tab-group.entry.js +64 -226
- package/dist/esm/nano-tab.entry.js +18 -18
- package/dist/esm/nano-table.entry.js +234 -9
- package/dist/esm/page-dots-Cq8hjoql.js +136 -0
- package/dist/esm/popover-D1cBIHdr.js +1945 -0
- package/dist/esm/renderer-LJzCFyMt.js +66 -0
- package/dist/esm/scroll-BRRzrkAi.js +179 -0
- package/dist/esm/search-insights-8OL2oeQN.js +48 -0
- package/dist/esm/slot-DBzVpliZ.js +104 -0
- package/dist/esm/style-BrRDhFfF.js +56 -0
- package/dist/esm/tabbable-BpHwrUYt.js +121 -0
- package/dist/esm/table.worker-BTF0UXAd.js +4 -0
- package/dist/esm/table.worker-BoX4CUXT.js +28 -0
- package/dist/esm/theme-aiuyr36I.js +43 -0
- package/dist/esm/throttle-C93FMm2Z.js +48 -0
- package/dist/nano-assets/font/jp/noto-sans-jp-v53-japanese_latin-300.woff2 +0 -0
- package/dist/nano-assets/font/latin/noto-sans-v39-latin-300.woff2 +0 -0
- package/dist/nano-assets/font/latin/noto-sans-v39-latin-300italic.woff2 +0 -0
- package/dist/nano-assets/font/sc/noto-sans-sc-v37-chinese-simplified_latin-300.woff2 +0 -0
- package/dist/nano-assets/hash.txt +1 -1
- package/dist/nano-assets/icon/device/elysion.svg +5 -0
- package/dist/nano-assets/icon/device/flongle.svg +4 -0
- package/dist/nano-assets/icon/device/gridion.svg +9 -0
- package/dist/nano-assets/icon/device/minion-mk1d.svg +4 -0
- package/dist/nano-assets/icon/device/p2-integrated.svg +7 -0
- package/dist/nano-assets/icon/device/p2-solo.svg +5 -0
- package/dist/nano-assets/icon/device/p24.svg +6 -0
- package/dist/nano-assets/icon/device/q.svg +4 -0
- package/dist/nano-assets/icon/pictogram/analyse.svg +10 -0
- package/dist/nano-assets/icon/pictogram/animal-research.svg +4 -0
- package/dist/nano-assets/icon/pictogram/assembly.svg +3 -0
- package/dist/nano-assets/icon/pictogram/biopharma.svg +3 -0
- package/dist/nano-assets/icon/pictogram/cancer-research.svg +15 -0
- package/dist/nano-assets/icon/pictogram/chromatin-conformation.svg +3 -0
- package/dist/nano-assets/icon/pictogram/clinical-research.svg +3 -0
- package/dist/nano-assets/icon/pictogram/environmental-conservation.svg +5 -0
- package/dist/nano-assets/icon/pictogram/epigenetics.svg +5 -0
- package/dist/nano-assets/icon/pictogram/fusion-transcripts.svg +3 -0
- package/dist/nano-assets/icon/pictogram/gene-expression.svg +3 -0
- package/dist/nano-assets/icon/pictogram/genome-research.svg +3 -0
- package/dist/nano-assets/icon/pictogram/human-genomics.svg +4 -0
- package/dist/nano-assets/icon/pictogram/infectious-disease.svg +13 -0
- package/dist/nano-assets/icon/pictogram/microbial-genomics.svg +15 -0
- package/dist/nano-assets/icon/pictogram/microbiome-metagenomics.svg +16 -0
- package/dist/nano-assets/icon/pictogram/multiomics.svg +13 -0
- package/dist/nano-assets/icon/pictogram/plant-research.svg +3 -0
- package/dist/nano-assets/icon/pictogram/population-genomics.svg +6 -0
- package/dist/nano-assets/icon/pictogram/prepare.svg +4 -0
- package/dist/nano-assets/icon/pictogram/scalable.svg +12 -0
- package/dist/nano-assets/icon/pictogram/sequence.svg +3 -0
- package/dist/nano-assets/icon/pictogram/single-cell-spatial-transcriptions.svg +12 -0
- package/dist/nano-assets/icon/pictogram/snvs-phasing.svg +4 -0
- package/dist/nano-assets/icon/pictogram/splice-variation.svg +4 -0
- package/dist/nano-assets/icon/pictogram/structural-variation.svg +4 -0
- package/dist/nano-assets/icon/pictogram/targeted-sequencing.svg +10 -0
- package/dist/nano-assets/icon/pictogram/transcriptomics.svg +3 -0
- package/dist/nano-assets/icon/pictogram/unrestricted-read-length.svg +10 -0
- package/dist/nano-assets/icon/pictogram/whole-genome-sequencing.svg +3 -0
- package/dist/nano-assets/icon/pictogram/workflow-end-to-end.svg +3 -0
- package/dist/nano-assets/img/bsi/27001.svg +188 -0
- package/dist/nano-assets/img/bsi/9001.svg +172 -0
- package/dist/nano-assets/img/bsi/mark-of-trust.svg +230 -0
- package/dist/nano-assets/img/flags/en.svg +15 -0
- package/dist/nano-assets/img/flags/es.svg +544 -0
- package/dist/nano-assets/img/flags/ja.svg +11 -0
- package/dist/nano-assets/img/flags/zh.svg +14 -0
- package/dist/nano-assets/local-logged-in.json +202 -0
- package/dist/nano-assets/local-logged-out.json +198 -0
- package/dist/nano-components/active-element-C1pBwzyj.js +4 -0
- package/dist/nano-components/algolia-data-BNDipgId.js +4 -0
- package/dist/nano-components/algoliasearch-lite.esm.browser-C1SNUAIj.js +4 -0
- package/dist/nano-components/assets/local-logged-in.json +202 -0
- package/dist/nano-components/assets/local-logged-out.json +198 -0
- package/dist/nano-components/component-store-DqCSKpAK.js +4 -0
- package/dist/nano-components/date-utils-BZYdjI1P.js +4 -0
- package/dist/nano-components/device/elysion.svg +5 -0
- package/dist/nano-components/device/flongle.svg +4 -0
- package/dist/nano-components/device/gridion.svg +9 -0
- package/dist/nano-components/device/minion-mk1d.svg +4 -0
- package/dist/nano-components/device/p2-integrated.svg +7 -0
- package/dist/nano-components/device/p2-solo.svg +5 -0
- package/dist/nano-components/device/p24.svg +6 -0
- package/dist/nano-components/device/q.svg +4 -0
- package/dist/nano-components/dom-CF0Ycs9M.js +4 -0
- package/dist/nano-components/drag-BLOEuv-q.js +4 -0
- package/dist/nano-components/events-ClRFmcmJ.js +4 -0
- package/dist/nano-components/fade-CdIyPeai.js +4 -0
- package/dist/nano-components/form-control-DXPQniNX.js +4 -0
- package/dist/nano-components/fullscreen-C4GllGer.js +4 -0
- package/dist/nano-components/index-BQSuCPXH.js +4 -0
- package/dist/nano-components/index-CFYZ-ZOT.js +5 -0
- package/dist/nano-components/index-DxKBolVo.js +4 -0
- package/dist/nano-components/index-browser-BvSm1vXe.js +4 -0
- package/dist/nano-components/index.esm.js +2 -3
- package/dist/nano-components/lazyload-pTbJ7q2S.js +4 -0
- package/dist/nano-components/local-logged-in-DNQyU0ot.js +4 -0
- package/dist/nano-components/local-logged-out-CD2oXHpq.js +4 -0
- package/dist/nano-components/math-BEqsTfVK.js +4 -0
- package/dist/nano-components/modal-B50PWCuY.js +4 -0
- package/dist/nano-components/nano-accordion.entry.js +2 -3
- package/dist/nano-components/nano-alert.entry.js +2 -3
- package/dist/nano-components/nano-algolia-filter.entry.js +2 -3
- package/dist/nano-components/nano-algolia-pagination.entry.js +2 -3
- package/dist/nano-components/nano-algolia-results.entry.js +2 -3
- package/dist/nano-components/nano-algolia.entry.js +2 -3
- package/dist/nano-components/nano-animation.entry.js +2 -3
- package/dist/nano-components/nano-avatar_5.entry.js +4 -0
- package/dist/nano-components/nano-breadcrumb.entry.js +4 -0
- package/dist/nano-components/nano-card-carousel.entry.js +4 -0
- package/dist/nano-components/nano-card.entry.js +4 -0
- package/dist/nano-components/nano-checkbox-group.entry.js +2 -3
- package/dist/nano-components/nano-checkbox.entry.js +2 -3
- package/dist/nano-components/nano-collapsible-comparison.entry.js +4 -0
- package/dist/nano-components/nano-components.css +2025 -1
- package/dist/nano-components/nano-components.esm.js +2 -3
- package/dist/nano-components/nano-content-links.entry.js +4 -0
- package/dist/nano-components/nano-cta.entry.js +4 -0
- package/dist/nano-components/nano-data-table-DsTG4mqR.js +4 -0
- package/dist/nano-components/nano-data-table.entry.js +4 -0
- package/dist/nano-components/nano-datalist_3.entry.js +2 -3
- package/dist/nano-components/nano-date-input.entry.js +2 -3
- package/dist/nano-components/nano-date-picker_2.entry.js +4 -0
- package/dist/nano-components/nano-details.entry.js +2 -3
- package/dist/nano-components/nano-dialog.entry.js +2 -3
- package/dist/nano-components/nano-dropdown_2.entry.js +4 -0
- package/dist/nano-components/nano-field-validator.entry.js +2 -3
- package/dist/nano-components/nano-file-upload.entry.js +2 -3
- package/dist/nano-components/nano-footer.entry.js +4 -0
- package/dist/nano-components/nano-global-nav.entry.js +2 -3
- package/dist/nano-components/nano-grid-item.entry.js +2 -3
- package/dist/nano-components/nano-grid_2.entry.js +2 -3
- package/dist/nano-components/nano-hero.entry.js +2 -3
- package/dist/nano-components/nano-icon-item.entry.js +4 -0
- package/dist/nano-components/nano-icon_3.entry.js +4 -0
- package/dist/nano-components/nano-in-page-nav.entry.js +4 -0
- package/dist/nano-components/nano-intersection-observe.entry.js +2 -3
- package/dist/nano-components/nano-masked-overflow.entry.js +4 -0
- package/dist/nano-components/nano-menu-drawer.entry.js +2 -3
- package/dist/nano-components/nano-more-less.entry.js +2 -3
- package/dist/nano-components/nano-nav-item.entry.js +4 -0
- package/dist/nano-components/nano-progress-bar.entry.js +2 -3
- package/dist/nano-components/nano-range.entry.js +2 -3
- package/dist/nano-components/nano-rating.entry.js +2 -3
- package/dist/nano-components/nano-resize-observe_2.entry.js +2 -3
- package/dist/nano-components/nano-slide.entry.js +2 -3
- package/dist/nano-components/nano-slides-BcyK9Szs.js +22 -0
- package/dist/nano-components/nano-slides.entry.js +2 -3
- package/dist/nano-components/nano-sortable.entry.js +2 -3
- package/dist/nano-components/nano-spinner.entry.js +2 -3
- package/dist/nano-components/nano-split-pane.entry.js +2 -3
- package/dist/nano-components/nano-sticker.entry.js +2 -3
- package/dist/nano-components/nano-tab-content.entry.js +2 -3
- package/dist/nano-components/nano-tab-group.entry.js +2 -3
- package/dist/nano-components/nano-tab.entry.js +2 -3
- package/dist/nano-components/nano-table.entry.js +2 -3
- package/dist/nano-components/page-dots-Cq8hjoql.js +4 -0
- package/dist/nano-components/pictogram/analyse.svg +10 -0
- package/dist/nano-components/pictogram/animal-research.svg +4 -0
- package/dist/nano-components/pictogram/assembly.svg +3 -0
- package/dist/nano-components/pictogram/biopharma.svg +3 -0
- package/dist/nano-components/pictogram/cancer-research.svg +15 -0
- package/dist/nano-components/pictogram/chromatin-conformation.svg +3 -0
- package/dist/nano-components/pictogram/clinical-research.svg +3 -0
- package/dist/nano-components/pictogram/environmental-conservation.svg +5 -0
- package/dist/nano-components/pictogram/epigenetics.svg +5 -0
- package/dist/nano-components/pictogram/fusion-transcripts.svg +3 -0
- package/dist/nano-components/pictogram/gene-expression.svg +3 -0
- package/dist/nano-components/pictogram/genome-research.svg +3 -0
- package/dist/nano-components/pictogram/human-genomics.svg +4 -0
- package/dist/nano-components/pictogram/infectious-disease.svg +13 -0
- package/dist/nano-components/pictogram/microbial-genomics.svg +15 -0
- package/dist/nano-components/pictogram/microbiome-metagenomics.svg +16 -0
- package/dist/nano-components/pictogram/multiomics.svg +13 -0
- package/dist/nano-components/pictogram/plant-research.svg +3 -0
- package/dist/nano-components/pictogram/population-genomics.svg +6 -0
- package/dist/nano-components/pictogram/prepare.svg +4 -0
- package/dist/nano-components/pictogram/scalable.svg +12 -0
- package/dist/nano-components/pictogram/sequence.svg +3 -0
- package/dist/nano-components/pictogram/single-cell-spatial-transcriptions.svg +12 -0
- package/dist/nano-components/pictogram/snvs-phasing.svg +4 -0
- package/dist/nano-components/pictogram/splice-variation.svg +4 -0
- package/dist/nano-components/pictogram/structural-variation.svg +4 -0
- package/dist/nano-components/pictogram/targeted-sequencing.svg +10 -0
- package/dist/nano-components/pictogram/transcriptomics.svg +3 -0
- package/dist/nano-components/pictogram/unrestricted-read-length.svg +10 -0
- package/dist/nano-components/pictogram/whole-genome-sequencing.svg +3 -0
- package/dist/nano-components/pictogram/workflow-end-to-end.svg +3 -0
- package/dist/nano-components/popover-D1cBIHdr.js +4 -0
- package/dist/nano-components/renderer-LJzCFyMt.js +4 -0
- package/dist/nano-components/scroll-BRRzrkAi.js +4 -0
- package/dist/nano-components/search-insights-8OL2oeQN.js +4 -0
- package/dist/nano-components/slot-DBzVpliZ.js +4 -0
- package/dist/nano-components/style-BrRDhFfF.js +4 -0
- package/dist/nano-components/tabbable-BpHwrUYt.js +4 -0
- package/dist/nano-components/table.worker-BTF0UXAd.js +4 -0
- package/dist/nano-components/table.worker-BoX4CUXT.js +4 -0
- package/dist/nano-components/theme-aiuyr36I.js +4 -0
- package/dist/nano-components/throttle-C93FMm2Z.js +4 -0
- package/dist/plugins/postcss/scoped-part.js +26 -0
- package/dist/plugins/stencil/vue-output/generate-vue-component.js +73 -0
- package/dist/plugins/stencil/vue-output/index.js +4 -0
- package/dist/plugins/stencil/vue-output/output-vue.js +95 -0
- package/dist/plugins/stencil/vue-output/plugin.js +43 -0
- package/dist/plugins/stencil/vue-output/types.js +1 -0
- package/dist/plugins/stencil/vue-output/utils.js +81 -0
- package/dist/stencil.config.js +50 -22
- package/dist/stencil.config.prod.js +4 -2
- package/dist/style/components.css +1 -0
- package/dist/style/components.css.map +1 -0
- package/dist/style/core.css +1 -0
- package/dist/style/core.css.map +1 -0
- package/dist/style/dark.css +1 -0
- package/dist/style/dark.css.map +1 -0
- package/dist/style/light.css +1 -0
- package/dist/style/light.css.map +1 -0
- package/dist/style/nano.css +1 -0
- package/dist/style/nano.css.map +1 -0
- package/dist/testing/mocks/intersection-observer.js +1 -2
- package/dist/types/Users/John.Jenkins/projects/nano-components/packages/components/.stencil/plugins/postcss/scoped-part.d.ts +8 -0
- package/dist/types/Users/John.Jenkins/projects/nano-components/packages/components/.stencil/stencil.config.d.ts +2 -0
- package/dist/types/Users/John.Jenkins/projects/nano-components/packages/components/.stencil/stencil.config.prod.d.ts +2 -0
- package/dist/types/components/accordion/accordion.d.ts +10 -12
- package/dist/types/components/alert/alert.d.ts +35 -5
- package/dist/types/components/alert/alert.helpers.d.ts +7 -5
- package/dist/types/components/algolia/algolia-interface.d.ts +1 -1
- package/dist/types/components/avatar/avatar.d.ts +13 -0
- package/dist/types/components/badge/badge.d.ts +17 -0
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +22 -0
- package/dist/types/components/card/card.d.ts +20 -0
- package/dist/types/components/card-carousel/card-carousel.d.ts +32 -0
- package/dist/types/components/checkbox/checkbox-group.d.ts +12 -7
- package/dist/types/components/checkbox/checkbox.d.ts +16 -11
- package/dist/types/components/collapsible-comparison/collapsible-comparison.d.ts +30 -0
- package/dist/types/components/content-links/content-links.d.ts +10 -0
- package/dist/types/components/cta/cta.d.ts +30 -0
- package/dist/types/components/data-table/table-interface.d.ts +280 -0
- package/dist/types/components/data-table/table.d.ts +250 -0
- package/dist/types/components/data-table/table.store.d.ts +24 -0
- package/dist/types/components/data-table/table.utils.d.ts +63 -0
- package/dist/types/components/datalist/datalist.d.ts +5 -5
- package/dist/types/components/date-input/date-input.d.ts +8 -5
- package/dist/types/components/date-picker/date-picker.d.ts +11 -15
- package/dist/types/components/details/details.d.ts +25 -27
- package/dist/types/components/dialog/dialog.d.ts +4 -5
- package/dist/types/components/dialog/dialog.helpers.d.ts +2 -5
- package/dist/types/components/drawer/drawer.d.ts +14 -3
- package/dist/types/components/dropdown/dropdown.d.ts +11 -9
- package/dist/types/components/field-validator/field-validator.d.ts +4 -6
- package/dist/types/components/footer/footer.d.ts +21 -0
- package/dist/types/components/form-control/form-control.d.ts +4 -1
- package/dist/types/components/global-nav/global-nav.d.ts +111 -280
- package/dist/types/components/global-search-results/global-search-results.d.ts +8 -7
- package/dist/types/components/grid/grid.d.ts +4 -6
- package/dist/types/components/icon/icon.d.ts +21 -14
- package/dist/types/components/icon-button/icon-button.d.ts +4 -4
- package/dist/types/components/icon-item/icon-item.d.ts +17 -0
- package/dist/types/components/in-page-nav/in-page-nav.d.ts +52 -0
- package/dist/types/components/input/input.d.ts +59 -21
- package/dist/types/components/intersection-observe/intersection-observe.d.ts +6 -2
- package/dist/types/components/masked-overflow/masked-overflow.d.ts +94 -0
- package/dist/types/components/menu/menu.d.ts +15 -7
- package/dist/types/components/nav-item/nav-item.d.ts +30 -84
- package/dist/types/components/option/option.d.ts +2 -1
- package/dist/types/components/progress-bar/progress-bar.d.ts +4 -1
- package/dist/types/components/range/range.d.ts +3 -4
- package/dist/types/components/rating/rating.d.ts +0 -1
- package/dist/types/components/resize-observe/resize-observe.d.ts +2 -4
- package/dist/types/components/select/select.d.ts +20 -21
- package/dist/types/components/skeleton/skeleton.d.ts +3 -2
- package/dist/types/components/slides/slides.d.ts +3 -3
- package/dist/types/components/sortable/sortable.d.ts +5 -5
- package/dist/types/components/spinner/spinner.d.ts +4 -0
- package/dist/types/components/split-pane/split-pane.d.ts +3 -0
- package/dist/types/components/table/table.d.ts +27 -245
- package/dist/types/components/tabs/tab-content.d.ts +6 -1
- package/dist/types/components/tabs/tab-group.d.ts +17 -37
- package/dist/types/components/tabs/tab.d.ts +9 -4
- package/dist/types/components/tag/tag.d.ts +30 -0
- package/dist/types/components/tooltip/tooltip.d.ts +4 -0
- package/dist/types/components.d.ts +2617 -1108
- package/dist/types/stencil-public-runtime.d.ts +23 -1
- package/dist/types/types/shared.d.ts +1 -1
- package/dist/types/utils/active-element.d.ts +20 -0
- package/dist/types/utils/popover.d.ts +1 -0
- package/dist/types/utils/scroll.d.ts +15 -1
- package/dist/types/utils/slot.d.ts +25 -9
- package/dist/types/utils/store/component-store.d.ts +21 -0
- package/dist/types/utils/style.d.ts +9 -0
- package/dist/types/utils/tabbable.d.ts +4 -2
- package/dist/types/utils/transitions.d.ts +2 -0
- package/dist/wdio.conf.js +1 -3
- package/docs-json.json +15694 -12511
- package/docs-vscode.json +807 -442
- package/hydrate/index.d.ts +38 -24
- package/hydrate/index.js +15164 -14544
- package/hydrate/index.mjs +15163 -14543
- package/loader/cdn.js +1 -1
- package/loader/index.cjs.js +1 -1
- package/loader/index.es2017.js +1 -1
- package/loader/index.js +1 -1
- package/package.json +26 -19
- package/dist/cjs/active-element-8ffcfe49.js +0 -21
- package/dist/cjs/active-element-8ffcfe49.js.map +0 -1
- package/dist/cjs/algolia-data-ca9cd58e.js +0 -51
- package/dist/cjs/algolia-data-ca9cd58e.js.map +0 -1
- package/dist/cjs/algoliasearch-lite.esm.browser-890872fc.js +0 -968
- package/dist/cjs/algoliasearch-lite.esm.browser-890872fc.js.map +0 -1
- package/dist/cjs/app-globals-3e14cb71.js +0 -41
- package/dist/cjs/app-globals-3e14cb71.js.map +0 -1
- package/dist/cjs/component-store-b8d4bd91.js +0 -325
- package/dist/cjs/component-store-b8d4bd91.js.map +0 -1
- package/dist/cjs/date-utils-d9d3e6b4.js +0 -234
- package/dist/cjs/date-utils-d9d3e6b4.js.map +0 -1
- package/dist/cjs/dom-b99a1aec.js +0 -83
- package/dist/cjs/dom-b99a1aec.js.map +0 -1
- package/dist/cjs/drag-c0a99167.js +0 -74
- package/dist/cjs/drag-c0a99167.js.map +0 -1
- package/dist/cjs/events-96e9a3d4.js +0 -39
- package/dist/cjs/events-96e9a3d4.js.map +0 -1
- package/dist/cjs/fade-6a5004f4.js +0 -214
- package/dist/cjs/fade-6a5004f4.js.map +0 -1
- package/dist/cjs/focus-visible-39b54d1f.js +0 -68
- package/dist/cjs/focus-visible-39b54d1f.js.map +0 -1
- package/dist/cjs/form-control-5bb39cc2.js +0 -82
- package/dist/cjs/form-control-5bb39cc2.js.map +0 -1
- package/dist/cjs/fullscreen-f5db9bbe.js +0 -134
- package/dist/cjs/fullscreen-f5db9bbe.js.map +0 -1
- package/dist/cjs/index-41263d6e.js +0 -660
- package/dist/cjs/index-41263d6e.js.map +0 -1
- package/dist/cjs/index-615cdb64.js +0 -3085
- package/dist/cjs/index-615cdb64.js.map +0 -1
- package/dist/cjs/index-a92a0379.js +0 -200
- package/dist/cjs/index-a92a0379.js.map +0 -1
- package/dist/cjs/index-browser-745018ea.js +0 -16
- package/dist/cjs/index-browser-745018ea.js.map +0 -1
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/lazyload-13d72e60.js +0 -96
- package/dist/cjs/lazyload-13d72e60.js.map +0 -1
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/local-my-account-53c19159.js +0 -472
- package/dist/cjs/local-my-account-53c19159.js.map +0 -1
- package/dist/cjs/math-ea9cdc71.js +0 -41
- package/dist/cjs/math-ea9cdc71.js.map +0 -1
- package/dist/cjs/modal-ff47c677.js +0 -51
- package/dist/cjs/modal-ff47c677.js.map +0 -1
- package/dist/cjs/nano-accordion.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-alert.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-algolia-pagination.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-algolia-results.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-algolia.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-animation.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-checkbox.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-components.cjs.js.map +0 -1
- package/dist/cjs/nano-datalist_3.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-date-input.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-date-picker.cjs.entry.js +0 -393
- package/dist/cjs/nano-date-picker.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-details.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-dialog.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-drawer.cjs.entry.js +0 -289
- package/dist/cjs/nano-drawer.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-dropdown.cjs.entry.js +0 -373
- package/dist/cjs/nano-dropdown.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-field-validator.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-file-upload.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +0 -1107
- package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-global-search-results.cjs.entry.js +0 -636
- package/dist/cjs/nano-global-search-results.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-grid-item.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-grid_2.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-hero.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-icon-button_2.cjs.entry.js +0 -341
- package/dist/cjs/nano-icon-button_2.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-icon.cjs.entry.js +0 -320
- package/dist/cjs/nano-icon.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-input.cjs.entry.js +0 -548
- package/dist/cjs/nano-input.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-intersection-observe.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-more-less.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-overflow-nav.cjs.entry.js +0 -342
- package/dist/cjs/nano-overflow-nav.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-progress-bar.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-range.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-rating.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-slide.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-slides-0a60315d.js +0 -3043
- package/dist/cjs/nano-slides-0a60315d.js.map +0 -1
- package/dist/cjs/nano-slides.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-sortable.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-spinner.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-split-pane.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-sticker.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-tab-content.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-tab.cjs.entry.js.map +0 -1
- package/dist/cjs/nano-table-54523fe5.js +0 -1880
- package/dist/cjs/nano-table-54523fe5.js.map +0 -1
- package/dist/cjs/nano-table.cjs.entry.js.map +0 -1
- package/dist/cjs/page-dots-ecdd64d1.js +0 -141
- package/dist/cjs/page-dots-ecdd64d1.js.map +0 -1
- package/dist/cjs/popover-3dfc73f6.js +0 -1932
- package/dist/cjs/popover-3dfc73f6.js.map +0 -1
- package/dist/cjs/renderer-cd8b6098.js +0 -63
- package/dist/cjs/renderer-cd8b6098.js.map +0 -1
- package/dist/cjs/scroll-a3e5c6c6.js +0 -128
- package/dist/cjs/scroll-a3e5c6c6.js.map +0 -1
- package/dist/cjs/scroll-parent-798d9651.js +0 -31
- package/dist/cjs/scroll-parent-798d9651.js.map +0 -1
- package/dist/cjs/search-insights-694b3436.js +0 -53
- package/dist/cjs/search-insights-694b3436.js.map +0 -1
- package/dist/cjs/slot-4e057042.js +0 -61
- package/dist/cjs/slot-4e057042.js.map +0 -1
- package/dist/cjs/tabbable-619dc959.js +0 -112
- package/dist/cjs/tabbable-619dc959.js.map +0 -1
- package/dist/cjs/table.worker-99f69a43.js +0 -33
- package/dist/cjs/table.worker-99f69a43.js.map +0 -1
- package/dist/cjs/table.worker-da5412ed.js +0 -4
- package/dist/cjs/theme-a2f7ddf8.js +0 -49
- package/dist/cjs/theme-a2f7ddf8.js.map +0 -1
- package/dist/cjs/throttle-46a497fb.js +0 -54
- package/dist/cjs/throttle-46a497fb.js.map +0 -1
- package/dist/cjs/transitions-a2b2090b.js +0 -62
- package/dist/cjs/transitions-a2b2090b.js.map +0 -1
- package/dist/collection/components/accordion/accordion.js.map +0 -1
- package/dist/collection/components/alert/alert.helpers.js.map +0 -1
- package/dist/collection/components/alert/alert.js.map +0 -1
- package/dist/collection/components/algolia/algolia-data.js.map +0 -1
- package/dist/collection/components/algolia/algolia-filter.js.map +0 -1
- package/dist/collection/components/algolia/algolia-interface.js.map +0 -1
- package/dist/collection/components/algolia/algolia-pagination.js.map +0 -1
- package/dist/collection/components/algolia/algolia-results.js.map +0 -1
- package/dist/collection/components/algolia/algolia.js.map +0 -1
- package/dist/collection/components/algolia/lib/squirrelly/browser.js.map +0 -1
- package/dist/collection/components/algolia/lib/squirrelly/compile-string.js.map +0 -1
- package/dist/collection/components/algolia/lib/squirrelly/compile.js.map +0 -1
- package/dist/collection/components/algolia/lib/squirrelly/config.js.map +0 -1
- package/dist/collection/components/algolia/lib/squirrelly/container-utils.js.map +0 -1
- package/dist/collection/components/algolia/lib/squirrelly/containers.js.map +0 -1
- package/dist/collection/components/algolia/lib/squirrelly/err.js.map +0 -1
- package/dist/collection/components/algolia/lib/squirrelly/parse.js.map +0 -1
- package/dist/collection/components/algolia/lib/squirrelly/render.js.map +0 -1
- package/dist/collection/components/algolia/lib/squirrelly/storage.js.map +0 -1
- package/dist/collection/components/algolia/lib/squirrelly/utils.js.map +0 -1
- package/dist/collection/components/algolia/lib/template.js.map +0 -1
- package/dist/collection/components/animation/animation.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/bounce.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/flash.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/headShake.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/heartBeat.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/jello.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/pulse.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/rubberBand.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/shake.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/shakeX.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/shakeY.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/swing.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/tada.js.map +0 -1
- package/dist/collection/components/animation/animations/attention_seekers/wobble.js.map +0 -1
- package/dist/collection/components/animation/animations/back_entrances/backInDown.js.map +0 -1
- package/dist/collection/components/animation/animations/back_entrances/backInLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/back_entrances/backInRight.js.map +0 -1
- package/dist/collection/components/animation/animations/back_entrances/backInUp.js.map +0 -1
- package/dist/collection/components/animation/animations/back_exits/backOutDown.js.map +0 -1
- package/dist/collection/components/animation/animations/back_exits/backOutLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/back_exits/backOutRight.js.map +0 -1
- package/dist/collection/components/animation/animations/back_exits/backOutUp.js.map +0 -1
- package/dist/collection/components/animation/animations/bouncing_entrances/bounceIn.js.map +0 -1
- package/dist/collection/components/animation/animations/bouncing_entrances/bounceInDown.js.map +0 -1
- package/dist/collection/components/animation/animations/bouncing_entrances/bounceInLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/bouncing_entrances/bounceInRight.js.map +0 -1
- package/dist/collection/components/animation/animations/bouncing_entrances/bounceInUp.js.map +0 -1
- package/dist/collection/components/animation/animations/bouncing_exits/bounceOut.js.map +0 -1
- package/dist/collection/components/animation/animations/bouncing_exits/bounceOutDown.js.map +0 -1
- package/dist/collection/components/animation/animations/bouncing_exits/bounceOutLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/bouncing_exits/bounceOutRight.js.map +0 -1
- package/dist/collection/components/animation/animations/bouncing_exits/bounceOutUp.js.map +0 -1
- package/dist/collection/components/animation/animations/easings/easings.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeIn.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInBottomLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInBottomRight.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInDown.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInDownBig.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInLeftBig.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInRight.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInRightBig.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInTopLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInTopRight.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInUp.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_entrances/fadeInUpBig.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOut.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutBottomLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutBottomRight.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutDown.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutDownBig.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutLeftBig.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutRight.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutRightBig.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutTopLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutTopRight.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutUp.js.map +0 -1
- package/dist/collection/components/animation/animations/fading_exits/fadeOutUpBig.js.map +0 -1
- package/dist/collection/components/animation/animations/flippers/flip.js.map +0 -1
- package/dist/collection/components/animation/animations/flippers/flipInX.js.map +0 -1
- package/dist/collection/components/animation/animations/flippers/flipInY.js.map +0 -1
- package/dist/collection/components/animation/animations/flippers/flipOutX.js.map +0 -1
- package/dist/collection/components/animation/animations/flippers/flipOutY.js.map +0 -1
- package/dist/collection/components/animation/animations/index.js.map +0 -1
- package/dist/collection/components/animation/animations/lightspeed/lightSpeedInLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/lightspeed/lightSpeedInRight.js.map +0 -1
- package/dist/collection/components/animation/animations/lightspeed/lightSpeedOutLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/lightspeed/lightSpeedOutRight.js.map +0 -1
- package/dist/collection/components/animation/animations/rotating_entrances/rotateIn.js.map +0 -1
- package/dist/collection/components/animation/animations/rotating_entrances/rotateInDownLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/rotating_entrances/rotateInDownRight.js.map +0 -1
- package/dist/collection/components/animation/animations/rotating_entrances/rotateInUpLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/rotating_entrances/rotateInUpRight.js.map +0 -1
- package/dist/collection/components/animation/animations/rotating_exits/rotateOut.js.map +0 -1
- package/dist/collection/components/animation/animations/rotating_exits/rotateOutDownLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/rotating_exits/rotateOutDownRight.js.map +0 -1
- package/dist/collection/components/animation/animations/rotating_exits/rotateOutUpLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/rotating_exits/rotateOutUpRight.js.map +0 -1
- package/dist/collection/components/animation/animations/sliding_entrances/slideInDown.js.map +0 -1
- package/dist/collection/components/animation/animations/sliding_entrances/slideInLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/sliding_entrances/slideInRight.js.map +0 -1
- package/dist/collection/components/animation/animations/sliding_entrances/slideInUp.js.map +0 -1
- package/dist/collection/components/animation/animations/sliding_exits/slideOutDown.js.map +0 -1
- package/dist/collection/components/animation/animations/sliding_exits/slideOutLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/sliding_exits/slideOutRight.js.map +0 -1
- package/dist/collection/components/animation/animations/sliding_exits/slideOutUp.js.map +0 -1
- package/dist/collection/components/animation/animations/specials/hinge.js.map +0 -1
- package/dist/collection/components/animation/animations/specials/jackInTheBox.js.map +0 -1
- package/dist/collection/components/animation/animations/specials/rollIn.js.map +0 -1
- package/dist/collection/components/animation/animations/specials/rollOut.js.map +0 -1
- package/dist/collection/components/animation/animations/zooming_entrances/zoomIn.js.map +0 -1
- package/dist/collection/components/animation/animations/zooming_entrances/zoomInDown.js.map +0 -1
- package/dist/collection/components/animation/animations/zooming_entrances/zoomInLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/zooming_entrances/zoomInRight.js.map +0 -1
- package/dist/collection/components/animation/animations/zooming_entrances/zoomInUp.js.map +0 -1
- package/dist/collection/components/animation/animations/zooming_exits/zoomOut.js.map +0 -1
- package/dist/collection/components/animation/animations/zooming_exits/zoomOutDown.js.map +0 -1
- package/dist/collection/components/animation/animations/zooming_exits/zoomOutLeft.js.map +0 -1
- package/dist/collection/components/animation/animations/zooming_exits/zoomOutRight.js.map +0 -1
- package/dist/collection/components/animation/animations/zooming_exits/zoomOutUp.js.map +0 -1
- package/dist/collection/components/checkbox/checkbox-group.js.map +0 -1
- package/dist/collection/components/checkbox/checkbox-interface.js.map +0 -1
- package/dist/collection/components/checkbox/checkbox.js.map +0 -1
- package/dist/collection/components/datalist/datalist.js.map +0 -1
- package/dist/collection/components/date-input/date-input.js.map +0 -1
- package/dist/collection/components/date-picker/date-picker.js.map +0 -1
- package/dist/collection/components/date-picker/duet-date-picker/date-adapter.js.map +0 -1
- package/dist/collection/components/date-picker/duet-date-picker/date-localization.js.map +0 -1
- package/dist/collection/components/date-picker/duet-date-picker/date-picker-day.js.map +0 -1
- package/dist/collection/components/date-picker/duet-date-picker/date-picker-month.js.map +0 -1
- package/dist/collection/components/details/details.js.map +0 -1
- package/dist/collection/components/dialog/dialog.helpers.js.map +0 -1
- package/dist/collection/components/dialog/dialog.js.map +0 -1
- package/dist/collection/components/drawer/drawer.js.map +0 -1
- package/dist/collection/components/dropdown/dropdown.js.map +0 -1
- package/dist/collection/components/field-validator/field-validator.js.map +0 -1
- package/dist/collection/components/file-upload/file-upload-list.js.map +0 -1
- package/dist/collection/components/file-upload/file-upload.js.map +0 -1
- package/dist/collection/components/form-control/form-control.js.map +0 -1
- package/dist/collection/components/global-nav/assets/local-my-account.json +0 -447
- package/dist/collection/components/global-nav/global-nav-user-profile.js +0 -70
- package/dist/collection/components/global-nav/global-nav-user-profile.js.map +0 -1
- package/dist/collection/components/global-nav/global-nav.js.map +0 -1
- package/dist/collection/components/global-nav/style/global-nav.css +0 -893
- package/dist/collection/components/global-search-results/global-search-results.js.map +0 -1
- package/dist/collection/components/grid/grid-item.js.map +0 -1
- package/dist/collection/components/grid/grid.js.map +0 -1
- package/dist/collection/components/hero/hero.js.map +0 -1
- package/dist/collection/components/icon/icon.js.map +0 -1
- package/dist/collection/components/icon/request.js.map +0 -1
- package/dist/collection/components/icon/utils.js.map +0 -1
- package/dist/collection/components/icon/validate.js.map +0 -1
- package/dist/collection/components/icon-button/icon-button.js.map +0 -1
- package/dist/collection/components/img/img.js.map +0 -1
- package/dist/collection/components/input/input.js.map +0 -1
- package/dist/collection/components/intersection-observe/intersection-observe.js.map +0 -1
- package/dist/collection/components/menu/menu.js.map +0 -1
- package/dist/collection/components/menu-drawer/menu-drawer.js.map +0 -1
- package/dist/collection/components/more-less/more-less.js.map +0 -1
- package/dist/collection/components/nav-item/nav-item.js.map +0 -1
- package/dist/collection/components/option/option.js.map +0 -1
- package/dist/collection/components/overflow-nav/overflow-nav.css +0 -226
- package/dist/collection/components/overflow-nav/overflow-nav.js +0 -537
- package/dist/collection/components/overflow-nav/overflow-nav.js.map +0 -1
- package/dist/collection/components/progress-bar/progress-bar.js.map +0 -1
- package/dist/collection/components/range/range.js.map +0 -1
- package/dist/collection/components/rating/rating.js.map +0 -1
- package/dist/collection/components/resize-observe/resize-observe.js.map +0 -1
- package/dist/collection/components/select/select.js.map +0 -1
- package/dist/collection/components/skeleton/skeleton.js.map +0 -1
- package/dist/collection/components/slides/lib/js/animate.js.map +0 -1
- package/dist/collection/components/slides/lib/js/cell.js.map +0 -1
- package/dist/collection/components/slides/lib/js/drag.js.map +0 -1
- package/dist/collection/components/slides/lib/js/fade.js.map +0 -1
- package/dist/collection/components/slides/lib/js/flickity.js.map +0 -1
- package/dist/collection/components/slides/lib/js/fullscreen.js.map +0 -1
- package/dist/collection/components/slides/lib/js/index.js.map +0 -1
- package/dist/collection/components/slides/lib/js/lazyload.js.map +0 -1
- package/dist/collection/components/slides/lib/js/page-dots.js.map +0 -1
- package/dist/collection/components/slides/lib/js/player.js.map +0 -1
- package/dist/collection/components/slides/lib/js/prev-next-button.js.map +0 -1
- package/dist/collection/components/slides/lib/js/slide.js.map +0 -1
- package/dist/collection/components/slides/lib/js/utils/event-emitter.js.map +0 -1
- package/dist/collection/components/slides/lib/js/utils/gestures.js.map +0 -1
- package/dist/collection/components/slides/lib/js/utils/get-size.js.map +0 -1
- package/dist/collection/components/slides/lib/js/utils/utils.js.map +0 -1
- package/dist/collection/components/slides/slide.js.map +0 -1
- package/dist/collection/components/slides/slides.js.map +0 -1
- package/dist/collection/components/sortable/sortable.js.map +0 -1
- package/dist/collection/components/spinner/spinner.js.map +0 -1
- package/dist/collection/components/split-pane/split-pane.js.map +0 -1
- package/dist/collection/components/sticker/sticker.js.map +0 -1
- package/dist/collection/components/table/table.cell.js +0 -113
- package/dist/collection/components/table/table.cell.js.map +0 -1
- package/dist/collection/components/table/table.constants.js +0 -5
- package/dist/collection/components/table/table.constants.js.map +0 -1
- package/dist/collection/components/table/table.header.js +0 -63
- package/dist/collection/components/table/table.header.js.map +0 -1
- package/dist/collection/components/table/table.js.map +0 -1
- package/dist/collection/components/table/table.pin-service.js +0 -389
- package/dist/collection/components/table/table.pin-service.js.map +0 -1
- package/dist/collection/components/table/table.row.js +0 -113
- package/dist/collection/components/table/table.row.js.map +0 -1
- package/dist/collection/components/table/table.store.js +0 -145
- package/dist/collection/components/table/table.store.js.map +0 -1
- package/dist/collection/components/table/table.utils.js +0 -157
- package/dist/collection/components/table/table.utils.js.map +0 -1
- package/dist/collection/components/table/table.worker.js +0 -221
- package/dist/collection/components/table/table.worker.js.map +0 -1
- package/dist/collection/components/tabs/tab-content.js.map +0 -1
- package/dist/collection/components/tabs/tab-group.js.map +0 -1
- package/dist/collection/components/tabs/tab.js.map +0 -1
- package/dist/collection/components/tooltip/tooltip.js.map +0 -1
- package/dist/collection/global/script/global.js.map +0 -1
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/types/shared.js.map +0 -1
- package/dist/collection/utils/active-element.js.map +0 -1
- package/dist/collection/utils/constructible-style.js.map +0 -1
- package/dist/collection/utils/custom-template.js.map +0 -1
- package/dist/collection/utils/date-utils.js.map +0 -1
- package/dist/collection/utils/dom.js.map +0 -1
- package/dist/collection/utils/drag.js.map +0 -1
- package/dist/collection/utils/events.js.map +0 -1
- package/dist/collection/utils/fetch.js.map +0 -1
- package/dist/collection/utils/focus-visible.js +0 -63
- package/dist/collection/utils/focus-visible.js.map +0 -1
- package/dist/collection/utils/form.js.map +0 -1
- package/dist/collection/utils/gesture/gesture-controller.js.map +0 -1
- package/dist/collection/utils/gesture/index.js.map +0 -1
- package/dist/collection/utils/gesture/listener.js.map +0 -1
- package/dist/collection/utils/gesture/pointer-events.js.map +0 -1
- package/dist/collection/utils/gesture/recognizers.js.map +0 -1
- package/dist/collection/utils/gesture/swipe-back.js.map +0 -1
- package/dist/collection/utils/math.js.map +0 -1
- package/dist/collection/utils/modal.js.map +0 -1
- package/dist/collection/utils/popover.js.map +0 -1
- package/dist/collection/utils/promise-queue.js.map +0 -1
- package/dist/collection/utils/renderer.js.map +0 -1
- package/dist/collection/utils/scroll-parent.js +0 -26
- package/dist/collection/utils/scroll-parent.js.map +0 -1
- package/dist/collection/utils/scroll.js.map +0 -1
- package/dist/collection/utils/search-insights.js.map +0 -1
- package/dist/collection/utils/slot.js.map +0 -1
- package/dist/collection/utils/store/component-store.js.map +0 -1
- package/dist/collection/utils/store/get-set.js.map +0 -1
- package/dist/collection/utils/tabbable.js.map +0 -1
- package/dist/collection/utils/testing/index.js.map +0 -1
- package/dist/collection/utils/theme.js.map +0 -1
- package/dist/collection/utils/throttle.js.map +0 -1
- package/dist/collection/utils/transitions.js.map +0 -1
- package/dist/components/active-element.js.map +0 -1
- package/dist/components/algolia-data.js.map +0 -1
- package/dist/components/algolia.js.map +0 -1
- package/dist/components/algoliasearch-lite.esm.browser.js +0 -966
- package/dist/components/algoliasearch-lite.esm.browser.js.map +0 -1
- package/dist/components/component-store.js.map +0 -1
- package/dist/components/datalist.js.map +0 -1
- package/dist/components/date-picker.js.map +0 -1
- package/dist/components/dom.js.map +0 -1
- package/dist/components/drag.js.map +0 -1
- package/dist/components/dropdown.js.map +0 -1
- package/dist/components/events.js.map +0 -1
- package/dist/components/fade.js.map +0 -1
- package/dist/components/focus-visible.js +0 -66
- package/dist/components/focus-visible.js.map +0 -1
- package/dist/components/form-control.js.map +0 -1
- package/dist/components/fullscreen.js.map +0 -1
- package/dist/components/global-nav-user-profile.js +0 -50
- package/dist/components/global-nav-user-profile.js.map +0 -1
- package/dist/components/grid.js.map +0 -1
- package/dist/components/icon-button.js.map +0 -1
- package/dist/components/icon.js.map +0 -1
- package/dist/components/img.js.map +0 -1
- package/dist/components/index-browser.js.map +0 -1
- package/dist/components/index.js.map +0 -1
- package/dist/components/index2.js.map +0 -1
- package/dist/components/index3.js.map +0 -1
- package/dist/components/input.js.map +0 -1
- package/dist/components/lazyload.js.map +0 -1
- package/dist/components/local-my-account.js +0 -462
- package/dist/components/local-my-account.js.map +0 -1
- package/dist/components/math.js.map +0 -1
- package/dist/components/menu.js.map +0 -1
- package/dist/components/modal.js.map +0 -1
- package/dist/components/nano-accordion.js.map +0 -1
- package/dist/components/nano-alert.js.map +0 -1
- package/dist/components/nano-algolia-filter.js.map +0 -1
- package/dist/components/nano-algolia-pagination.js.map +0 -1
- package/dist/components/nano-algolia-results.js.map +0 -1
- package/dist/components/nano-algolia.js.map +0 -1
- package/dist/components/nano-animation.js.map +0 -1
- package/dist/components/nano-checkbox-group.js.map +0 -1
- package/dist/components/nano-checkbox.js.map +0 -1
- package/dist/components/nano-datalist.js.map +0 -1
- package/dist/components/nano-date-input.js.map +0 -1
- package/dist/components/nano-date-picker.js.map +0 -1
- package/dist/components/nano-details.js.map +0 -1
- package/dist/components/nano-dialog.js.map +0 -1
- package/dist/components/nano-drawer.js.map +0 -1
- package/dist/components/nano-dropdown.js.map +0 -1
- package/dist/components/nano-field-validator.js.map +0 -1
- package/dist/components/nano-file-upload.js.map +0 -1
- package/dist/components/nano-global-nav-user-profile.d.ts +0 -11
- package/dist/components/nano-global-nav-user-profile.js +0 -11
- package/dist/components/nano-global-nav-user-profile.js.map +0 -1
- package/dist/components/nano-global-nav.js.map +0 -1
- package/dist/components/nano-global-search-results.js.map +0 -1
- package/dist/components/nano-grid-item.js.map +0 -1
- package/dist/components/nano-grid.js.map +0 -1
- package/dist/components/nano-hero.js.map +0 -1
- package/dist/components/nano-icon-button.js.map +0 -1
- package/dist/components/nano-icon.js.map +0 -1
- package/dist/components/nano-img.js.map +0 -1
- package/dist/components/nano-input.js.map +0 -1
- package/dist/components/nano-intersection-observe.js.map +0 -1
- package/dist/components/nano-menu-drawer.js.map +0 -1
- package/dist/components/nano-menu.js.map +0 -1
- package/dist/components/nano-more-less.js.map +0 -1
- package/dist/components/nano-nav-item.js.map +0 -1
- package/dist/components/nano-option.js.map +0 -1
- package/dist/components/nano-overflow-nav.d.ts +0 -11
- package/dist/components/nano-overflow-nav.js +0 -390
- package/dist/components/nano-overflow-nav.js.map +0 -1
- package/dist/components/nano-progress-bar.js.map +0 -1
- package/dist/components/nano-range.js.map +0 -1
- package/dist/components/nano-rating.js.map +0 -1
- package/dist/components/nano-resize-observe.js.map +0 -1
- package/dist/components/nano-select.js.map +0 -1
- package/dist/components/nano-skeleton.js.map +0 -1
- package/dist/components/nano-slide.js.map +0 -1
- package/dist/components/nano-slides.js.map +0 -1
- package/dist/components/nano-sortable.js.map +0 -1
- package/dist/components/nano-spinner.js.map +0 -1
- package/dist/components/nano-split-pane.js.map +0 -1
- package/dist/components/nano-sticker.js.map +0 -1
- package/dist/components/nano-tab-content.js.map +0 -1
- package/dist/components/nano-tab-group.js.map +0 -1
- package/dist/components/nano-tab.js.map +0 -1
- package/dist/components/nano-table.js.map +0 -1
- package/dist/components/nano-tooltip.js.map +0 -1
- package/dist/components/nav-item.js.map +0 -1
- package/dist/components/option.js.map +0 -1
- package/dist/components/page-dots.js.map +0 -1
- package/dist/components/popover.js.map +0 -1
- package/dist/components/progress-bar.js.map +0 -1
- package/dist/components/renderer.js.map +0 -1
- package/dist/components/resize-observe.js.map +0 -1
- package/dist/components/scroll-parent.js +0 -29
- package/dist/components/scroll-parent.js.map +0 -1
- package/dist/components/scroll.js.map +0 -1
- package/dist/components/search-insights.js +0 -51
- package/dist/components/search-insights.js.map +0 -1
- package/dist/components/select.js.map +0 -1
- package/dist/components/skeleton.js.map +0 -1
- package/dist/components/slot.js.map +0 -1
- package/dist/components/spinner.js.map +0 -1
- package/dist/components/sticker.js.map +0 -1
- package/dist/components/tabbable.js.map +0 -1
- package/dist/components/table.worker.js.map +0 -1
- package/dist/components/theme.js.map +0 -1
- package/dist/components/throttle.js.map +0 -1
- package/dist/components/tooltip.js.map +0 -1
- package/dist/components/transitions.js +0 -60
- package/dist/components/transitions.js.map +0 -1
- package/dist/esm/active-element-a2502948.js +0 -19
- package/dist/esm/active-element-a2502948.js.map +0 -1
- package/dist/esm/algolia-data-f0f72f1d.js +0 -49
- package/dist/esm/algolia-data-f0f72f1d.js.map +0 -1
- package/dist/esm/algoliasearch-lite.esm.browser-0f71b631.js +0 -966
- package/dist/esm/algoliasearch-lite.esm.browser-0f71b631.js.map +0 -1
- package/dist/esm/app-globals-f0120bbe.js +0 -39
- package/dist/esm/app-globals-f0120bbe.js.map +0 -1
- package/dist/esm/component-store-199a9fd8.js +0 -323
- package/dist/esm/component-store-199a9fd8.js.map +0 -1
- package/dist/esm/date-utils-1e39c114.js +0 -219
- package/dist/esm/date-utils-1e39c114.js.map +0 -1
- package/dist/esm/dom-fafdec9a.js +0 -78
- package/dist/esm/dom-fafdec9a.js.map +0 -1
- package/dist/esm/drag-9d765d2d.js +0 -72
- package/dist/esm/drag-9d765d2d.js.map +0 -1
- package/dist/esm/events-f38f3e59.js +0 -36
- package/dist/esm/events-f38f3e59.js.map +0 -1
- package/dist/esm/fade-ce1a4958.js +0 -212
- package/dist/esm/fade-ce1a4958.js.map +0 -1
- package/dist/esm/focus-visible-e5f02c46.js +0 -66
- package/dist/esm/focus-visible-e5f02c46.js.map +0 -1
- package/dist/esm/form-control-f48fa873.js +0 -79
- package/dist/esm/form-control-f48fa873.js.map +0 -1
- package/dist/esm/fullscreen-52d62028.js +0 -132
- package/dist/esm/fullscreen-52d62028.js.map +0 -1
- package/dist/esm/index-6cc72cd9.js +0 -3045
- package/dist/esm/index-6cc72cd9.js.map +0 -1
- package/dist/esm/index-a2043fcd.js +0 -657
- package/dist/esm/index-a2043fcd.js.map +0 -1
- package/dist/esm/index-browser-8c563093.js +0 -8
- package/dist/esm/index-browser-8c563093.js.map +0 -1
- package/dist/esm/index-f5f7b950.js +0 -198
- package/dist/esm/index-f5f7b950.js.map +0 -1
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/lazyload-8ff69ba4.js +0 -94
- package/dist/esm/lazyload-8ff69ba4.js.map +0 -1
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/local-my-account-3ba1ec04.js +0 -462
- package/dist/esm/local-my-account-3ba1ec04.js.map +0 -1
- package/dist/esm/math-d160f8a6.js +0 -38
- package/dist/esm/math-d160f8a6.js.map +0 -1
- package/dist/esm/modal-02828a39.js +0 -49
- package/dist/esm/modal-02828a39.js.map +0 -1
- package/dist/esm/nano-accordion.entry.js.map +0 -1
- package/dist/esm/nano-alert.entry.js.map +0 -1
- package/dist/esm/nano-algolia-filter.entry.js.map +0 -1
- package/dist/esm/nano-algolia-pagination.entry.js.map +0 -1
- package/dist/esm/nano-algolia-results.entry.js.map +0 -1
- package/dist/esm/nano-algolia.entry.js.map +0 -1
- package/dist/esm/nano-animation.entry.js.map +0 -1
- package/dist/esm/nano-checkbox-group.entry.js.map +0 -1
- package/dist/esm/nano-checkbox.entry.js.map +0 -1
- package/dist/esm/nano-components.js.map +0 -1
- package/dist/esm/nano-datalist_3.entry.js.map +0 -1
- package/dist/esm/nano-date-input.entry.js.map +0 -1
- package/dist/esm/nano-date-picker.entry.js +0 -389
- package/dist/esm/nano-date-picker.entry.js.map +0 -1
- package/dist/esm/nano-details.entry.js.map +0 -1
- package/dist/esm/nano-dialog.entry.js.map +0 -1
- package/dist/esm/nano-drawer.entry.js +0 -285
- package/dist/esm/nano-drawer.entry.js.map +0 -1
- package/dist/esm/nano-dropdown.entry.js +0 -369
- package/dist/esm/nano-dropdown.entry.js.map +0 -1
- package/dist/esm/nano-field-validator.entry.js.map +0 -1
- package/dist/esm/nano-file-upload.entry.js.map +0 -1
- package/dist/esm/nano-global-nav-user-profile_3.entry.js +0 -1101
- package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +0 -1
- package/dist/esm/nano-global-nav.entry.js.map +0 -1
- package/dist/esm/nano-global-search-results.entry.js +0 -632
- package/dist/esm/nano-global-search-results.entry.js.map +0 -1
- package/dist/esm/nano-grid-item.entry.js.map +0 -1
- package/dist/esm/nano-grid_2.entry.js.map +0 -1
- package/dist/esm/nano-hero.entry.js.map +0 -1
- package/dist/esm/nano-icon-button_2.entry.js +0 -336
- package/dist/esm/nano-icon-button_2.entry.js.map +0 -1
- package/dist/esm/nano-icon.entry.js +0 -316
- package/dist/esm/nano-icon.entry.js.map +0 -1
- package/dist/esm/nano-input.entry.js +0 -544
- package/dist/esm/nano-input.entry.js.map +0 -1
- package/dist/esm/nano-intersection-observe.entry.js.map +0 -1
- package/dist/esm/nano-menu-drawer.entry.js.map +0 -1
- package/dist/esm/nano-more-less.entry.js.map +0 -1
- package/dist/esm/nano-overflow-nav.entry.js +0 -338
- package/dist/esm/nano-overflow-nav.entry.js.map +0 -1
- package/dist/esm/nano-progress-bar.entry.js.map +0 -1
- package/dist/esm/nano-range.entry.js.map +0 -1
- package/dist/esm/nano-rating.entry.js.map +0 -1
- package/dist/esm/nano-resize-observe_2.entry.js.map +0 -1
- package/dist/esm/nano-slide.entry.js.map +0 -1
- package/dist/esm/nano-slides-2715825b.js +0 -3038
- package/dist/esm/nano-slides-2715825b.js.map +0 -1
- package/dist/esm/nano-slides.entry.js.map +0 -1
- package/dist/esm/nano-sortable.entry.js.map +0 -1
- package/dist/esm/nano-spinner.entry.js.map +0 -1
- package/dist/esm/nano-split-pane.entry.js.map +0 -1
- package/dist/esm/nano-sticker.entry.js.map +0 -1
- package/dist/esm/nano-tab-content.entry.js.map +0 -1
- package/dist/esm/nano-tab-group.entry.js.map +0 -1
- package/dist/esm/nano-tab.entry.js.map +0 -1
- package/dist/esm/nano-table-3965ddd0.js +0 -1877
- package/dist/esm/nano-table-3965ddd0.js.map +0 -1
- package/dist/esm/nano-table.entry.js.map +0 -1
- package/dist/esm/page-dots-5b23db8c.js +0 -139
- package/dist/esm/page-dots-5b23db8c.js.map +0 -1
- package/dist/esm/popover-30ce6cac.js +0 -1930
- package/dist/esm/popover-30ce6cac.js.map +0 -1
- package/dist/esm/renderer-4bc3e2dc.js +0 -58
- package/dist/esm/renderer-4bc3e2dc.js.map +0 -1
- package/dist/esm/scroll-1afc6a4e.js +0 -124
- package/dist/esm/scroll-1afc6a4e.js.map +0 -1
- package/dist/esm/scroll-parent-be39fbd0.js +0 -29
- package/dist/esm/scroll-parent-be39fbd0.js.map +0 -1
- package/dist/esm/search-insights-1a7b7dc5.js +0 -51
- package/dist/esm/search-insights-1a7b7dc5.js.map +0 -1
- package/dist/esm/slot-1cd90e53.js +0 -58
- package/dist/esm/slot-1cd90e53.js.map +0 -1
- package/dist/esm/tabbable-44932eb7.js +0 -109
- package/dist/esm/tabbable-44932eb7.js.map +0 -1
- package/dist/esm/table.worker-8e04f768.js +0 -29
- package/dist/esm/table.worker-8e04f768.js.map +0 -1
- package/dist/esm/table.worker-da5412ed.js +0 -4
- package/dist/esm/theme-d553c17a.js +0 -46
- package/dist/esm/theme-d553c17a.js.map +0 -1
- package/dist/esm/throttle-df960210.js +0 -50
- package/dist/esm/throttle-df960210.js.map +0 -1
- package/dist/esm/transitions-c09bd7f6.js +0 -60
- package/dist/esm/transitions-c09bd7f6.js.map +0 -1
- package/dist/generators/custom-element-doc-generator.js +0 -75
- package/dist/generators/custom-element-doc-generator.js.map +0 -1
- package/dist/generators/vue/generate-vue-component.js +0 -74
- package/dist/generators/vue/generate-vue-component.js.map +0 -1
- package/dist/generators/vue/index.js +0 -5
- package/dist/generators/vue/index.js.map +0 -1
- package/dist/generators/vue/output-vue.js +0 -96
- package/dist/generators/vue/output-vue.js.map +0 -1
- package/dist/generators/vue/plugin.js +0 -44
- package/dist/generators/vue/plugin.js.map +0 -1
- package/dist/generators/vue/types.js +0 -2
- package/dist/generators/vue/types.js.map +0 -1
- package/dist/generators/vue/utils.js +0 -82
- package/dist/generators/vue/utils.js.map +0 -1
- package/dist/nano-assets/fonts/jp/noto-sans-jp-v53-japanese-500.woff2 +0 -0
- package/dist/nano-assets/fonts/latin/noto-sans-v38-latin-500.woff2 +0 -0
- package/dist/nano-assets/fonts/latin/noto-sans-v38-latin-500italic.woff2 +0 -0
- package/dist/nano-assets/fonts/sc/noto-sans-sc-v37-chinese-simplified-500.woff2 +0 -0
- package/dist/nano-assets/local-my-account.json +0 -447
- package/dist/nano-components/active-element-a2502948.js +0 -5
- package/dist/nano-components/active-element-a2502948.js.map +0 -1
- package/dist/nano-components/algolia-data-f0f72f1d.js +0 -5
- package/dist/nano-components/algolia-data-f0f72f1d.js.map +0 -1
- package/dist/nano-components/algoliasearch-lite.esm.browser-0f71b631.js +0 -5
- package/dist/nano-components/algoliasearch-lite.esm.browser-0f71b631.js.map +0 -1
- package/dist/nano-components/app-globals-f0120bbe.js +0 -5
- package/dist/nano-components/app-globals-f0120bbe.js.map +0 -1
- package/dist/nano-components/assets/local-my-account.json +0 -447
- package/dist/nano-components/component-store-199a9fd8.js +0 -5
- package/dist/nano-components/component-store-199a9fd8.js.map +0 -1
- package/dist/nano-components/date-utils-1e39c114.js +0 -5
- package/dist/nano-components/date-utils-1e39c114.js.map +0 -1
- package/dist/nano-components/dom-fafdec9a.js +0 -5
- package/dist/nano-components/dom-fafdec9a.js.map +0 -1
- package/dist/nano-components/drag-9d765d2d.js +0 -5
- package/dist/nano-components/drag-9d765d2d.js.map +0 -1
- package/dist/nano-components/events-f38f3e59.js +0 -5
- package/dist/nano-components/events-f38f3e59.js.map +0 -1
- package/dist/nano-components/fade-ce1a4958.js +0 -5
- package/dist/nano-components/fade-ce1a4958.js.map +0 -1
- package/dist/nano-components/focus-visible-e5f02c46.js +0 -5
- package/dist/nano-components/focus-visible-e5f02c46.js.map +0 -1
- package/dist/nano-components/form-control-f48fa873.js +0 -5
- package/dist/nano-components/form-control-f48fa873.js.map +0 -1
- package/dist/nano-components/fullscreen-52d62028.js +0 -5
- package/dist/nano-components/fullscreen-52d62028.js.map +0 -1
- package/dist/nano-components/index-6cc72cd9.js +0 -6
- package/dist/nano-components/index-6cc72cd9.js.map +0 -1
- package/dist/nano-components/index-a2043fcd.js +0 -5
- package/dist/nano-components/index-a2043fcd.js.map +0 -1
- package/dist/nano-components/index-browser-8c563093.js +0 -5
- package/dist/nano-components/index-browser-8c563093.js.map +0 -1
- package/dist/nano-components/index-f5f7b950.js +0 -5
- package/dist/nano-components/index-f5f7b950.js.map +0 -1
- package/dist/nano-components/index.esm.js.map +0 -1
- package/dist/nano-components/lazyload-8ff69ba4.js +0 -5
- package/dist/nano-components/lazyload-8ff69ba4.js.map +0 -1
- package/dist/nano-components/local-my-account-3ba1ec04.js +0 -5
- package/dist/nano-components/local-my-account-3ba1ec04.js.map +0 -1
- package/dist/nano-components/math-d160f8a6.js +0 -5
- package/dist/nano-components/math-d160f8a6.js.map +0 -1
- package/dist/nano-components/modal-02828a39.js +0 -5
- package/dist/nano-components/modal-02828a39.js.map +0 -1
- package/dist/nano-components/nano-accordion.entry.js.map +0 -1
- package/dist/nano-components/nano-alert.entry.js.map +0 -1
- package/dist/nano-components/nano-algolia-filter.entry.js.map +0 -1
- package/dist/nano-components/nano-algolia-pagination.entry.js.map +0 -1
- package/dist/nano-components/nano-algolia-results.entry.js.map +0 -1
- package/dist/nano-components/nano-algolia.entry.js.map +0 -1
- package/dist/nano-components/nano-animation.entry.js.map +0 -1
- package/dist/nano-components/nano-checkbox-group.entry.js.map +0 -1
- package/dist/nano-components/nano-checkbox.entry.js.map +0 -1
- package/dist/nano-components/nano-components.esm.js.map +0 -1
- package/dist/nano-components/nano-datalist_3.entry.js.map +0 -1
- package/dist/nano-components/nano-date-input.entry.js.map +0 -1
- package/dist/nano-components/nano-date-picker.entry.js +0 -5
- package/dist/nano-components/nano-date-picker.entry.js.map +0 -1
- package/dist/nano-components/nano-details.entry.js.map +0 -1
- package/dist/nano-components/nano-dialog.entry.js.map +0 -1
- package/dist/nano-components/nano-drawer.entry.js +0 -5
- package/dist/nano-components/nano-drawer.entry.js.map +0 -1
- package/dist/nano-components/nano-dropdown.entry.js +0 -5
- package/dist/nano-components/nano-dropdown.entry.js.map +0 -1
- package/dist/nano-components/nano-field-validator.entry.js.map +0 -1
- package/dist/nano-components/nano-file-upload.entry.js.map +0 -1
- package/dist/nano-components/nano-global-nav-user-profile_3.entry.js +0 -5
- package/dist/nano-components/nano-global-nav-user-profile_3.entry.js.map +0 -1
- package/dist/nano-components/nano-global-nav.entry.js.map +0 -1
- package/dist/nano-components/nano-global-search-results.entry.js +0 -5
- package/dist/nano-components/nano-global-search-results.entry.js.map +0 -1
- package/dist/nano-components/nano-grid-item.entry.js.map +0 -1
- package/dist/nano-components/nano-grid_2.entry.js.map +0 -1
- package/dist/nano-components/nano-hero.entry.js.map +0 -1
- package/dist/nano-components/nano-icon-button_2.entry.js +0 -5
- package/dist/nano-components/nano-icon-button_2.entry.js.map +0 -1
- package/dist/nano-components/nano-icon.entry.js +0 -5
- package/dist/nano-components/nano-icon.entry.js.map +0 -1
- package/dist/nano-components/nano-input.entry.js +0 -5
- package/dist/nano-components/nano-input.entry.js.map +0 -1
- package/dist/nano-components/nano-intersection-observe.entry.js.map +0 -1
- package/dist/nano-components/nano-menu-drawer.entry.js.map +0 -1
- package/dist/nano-components/nano-more-less.entry.js.map +0 -1
- package/dist/nano-components/nano-overflow-nav.entry.js +0 -5
- package/dist/nano-components/nano-overflow-nav.entry.js.map +0 -1
- package/dist/nano-components/nano-progress-bar.entry.js.map +0 -1
- package/dist/nano-components/nano-range.entry.js.map +0 -1
- package/dist/nano-components/nano-rating.entry.js.map +0 -1
- package/dist/nano-components/nano-resize-observe_2.entry.js.map +0 -1
- package/dist/nano-components/nano-slide.entry.js.map +0 -1
- package/dist/nano-components/nano-slides-2715825b.js +0 -20
- package/dist/nano-components/nano-slides-2715825b.js.map +0 -1
- package/dist/nano-components/nano-slides.entry.js.map +0 -1
- package/dist/nano-components/nano-sortable.entry.js.map +0 -1
- package/dist/nano-components/nano-spinner.entry.js.map +0 -1
- package/dist/nano-components/nano-split-pane.entry.js.map +0 -1
- package/dist/nano-components/nano-sticker.entry.js.map +0 -1
- package/dist/nano-components/nano-tab-content.entry.js.map +0 -1
- package/dist/nano-components/nano-tab-group.entry.js.map +0 -1
- package/dist/nano-components/nano-tab.entry.js.map +0 -1
- package/dist/nano-components/nano-table-3965ddd0.js +0 -5
- package/dist/nano-components/nano-table-3965ddd0.js.map +0 -1
- package/dist/nano-components/nano-table.entry.js.map +0 -1
- package/dist/nano-components/page-dots-5b23db8c.js +0 -5
- package/dist/nano-components/page-dots-5b23db8c.js.map +0 -1
- package/dist/nano-components/popover-30ce6cac.js +0 -5
- package/dist/nano-components/popover-30ce6cac.js.map +0 -1
- package/dist/nano-components/renderer-4bc3e2dc.js +0 -5
- package/dist/nano-components/renderer-4bc3e2dc.js.map +0 -1
- package/dist/nano-components/scroll-1afc6a4e.js +0 -5
- package/dist/nano-components/scroll-1afc6a4e.js.map +0 -1
- package/dist/nano-components/scroll-parent-be39fbd0.js +0 -5
- package/dist/nano-components/scroll-parent-be39fbd0.js.map +0 -1
- package/dist/nano-components/search-insights-1a7b7dc5.js +0 -5
- package/dist/nano-components/search-insights-1a7b7dc5.js.map +0 -1
- package/dist/nano-components/slot-1cd90e53.js +0 -5
- package/dist/nano-components/slot-1cd90e53.js.map +0 -1
- package/dist/nano-components/tabbable-44932eb7.js +0 -5
- package/dist/nano-components/tabbable-44932eb7.js.map +0 -1
- package/dist/nano-components/table.worker-8e04f768.js +0 -5
- package/dist/nano-components/table.worker-8e04f768.js.map +0 -1
- package/dist/nano-components/table.worker-da5412ed.js +0 -4
- package/dist/nano-components/theme-d553c17a.js +0 -5
- package/dist/nano-components/theme-d553c17a.js.map +0 -1
- package/dist/nano-components/throttle-df960210.js +0 -5
- package/dist/nano-components/throttle-df960210.js.map +0 -1
- package/dist/nano-components/transitions-c09bd7f6.js +0 -5
- package/dist/nano-components/transitions-c09bd7f6.js.map +0 -1
- package/dist/stencil.config.js.map +0 -1
- package/dist/stencil.config.prod.js.map +0 -1
- package/dist/testing/mocks/intersection-observer.js.map +0 -1
- package/dist/themes/base/normalize.css +0 -1
- package/dist/themes/base/normalize.css.map +0 -1
- package/dist/themes/base/noto-sans-jp.css +0 -1
- package/dist/themes/base/noto-sans-jp.css.map +0 -1
- package/dist/themes/base/noto-sans-sc.css +0 -1
- package/dist/themes/base/noto-sans-sc.css.map +0 -1
- package/dist/themes/base/noto-sans.css +0 -1
- package/dist/themes/base/noto-sans.css.map +0 -1
- package/dist/themes/base/structure.css +0 -1
- package/dist/themes/base/structure.css.map +0 -1
- package/dist/themes/london-calling.css +0 -1
- package/dist/themes/london-calling.css.map +0 -1
- package/dist/themes/nanopore.css +0 -1
- package/dist/themes/nanopore.css.map +0 -1
- package/dist/types/builds/6SyqsxUA/0/Digital/nano-components/packages/components/.stencil/generators/custom-element-doc-generator.d.ts +0 -8
- package/dist/types/builds/6SyqsxUA/0/Digital/nano-components/packages/components/.stencil/stencil.config.d.ts +0 -2
- package/dist/types/builds/6SyqsxUA/0/Digital/nano-components/packages/components/.stencil/stencil.config.prod.d.ts +0 -2
- package/dist/types/components/global-nav/global-nav-user-profile.d.ts +0 -16
- package/dist/types/components/overflow-nav/overflow-nav.d.ts +0 -89
- package/dist/types/components/table/table-interface.d.ts +0 -278
- package/dist/types/components/table/table.store.d.ts +0 -24
- package/dist/types/components/table/table.utils.d.ts +0 -70
- package/dist/types/utils/focus-visible.d.ts +0 -8
- package/dist/types/utils/scroll-parent.d.ts +0 -6
- package/dist/wdio.conf.js.map +0 -1
- package/themes/base/normalize.css +0 -1
- package/themes/base/normalize.css.map +0 -1
- package/themes/base/noto-sans-jp.css +0 -1
- package/themes/base/noto-sans-jp.css.map +0 -1
- package/themes/base/noto-sans-sc.css +0 -1
- package/themes/base/noto-sans-sc.css.map +0 -1
- package/themes/base/noto-sans.css +0 -1
- package/themes/base/noto-sans.css.map +0 -1
- package/themes/base/structure.css +0 -1
- package/themes/base/structure.css.map +0 -1
- package/themes/london-calling.css +0 -1
- package/themes/london-calling.css.map +0 -1
- package/themes/nanopore.css +0 -1
- package/themes/nanopore.css.map +0 -1
- /package/dist/nano-assets/{fonts/jp/noto-sans-jp-v53-japanese-700.woff2 → font/jp/noto-sans-jp-v53-japanese_latin-700.woff2} +0 -0
- /package/dist/nano-assets/{fonts/jp/noto-sans-jp-v53-japanese-regular.woff2 → font/jp/noto-sans-jp-v53-japanese_latin-regular.woff2} +0 -0
- /package/dist/nano-assets/{fonts → font}/latin/noto-sans-v38-latin-700.woff2 +0 -0
- /package/dist/nano-assets/{fonts → font}/latin/noto-sans-v38-latin-700italic.woff2 +0 -0
- /package/dist/nano-assets/{fonts → font}/latin/noto-sans-v38-latin-italic.woff2 +0 -0
- /package/dist/nano-assets/{fonts → font}/latin/noto-sans-v38-latin-regular.woff2 +0 -0
- /package/dist/nano-assets/{fonts/sc/noto-sans-sc-v37-chinese-simplified-700.woff2 → font/sc/noto-sans-sc-v37-chinese-simplified_latin-700.woff2} +0 -0
- /package/dist/nano-assets/{fonts/sc/noto-sans-sc-v37-chinese-simplified-regular.woff2 → font/sc/noto-sans-sc-v37-chinese-simplified_latin-regular.woff2} +0 -0
- /package/dist/types/{builds/6SyqsxUA/0/Digital/nano-components/packages/components/.stencil/generators/vue → Users/John.Jenkins/projects/nano-components/packages/components/.stencil/plugins/stencil/vue-output}/generate-vue-component.d.ts +0 -0
- /package/dist/types/{builds/6SyqsxUA/0/Digital/nano-components/packages/components/.stencil/generators/vue → Users/John.Jenkins/projects/nano-components/packages/components/.stencil/plugins/stencil/vue-output}/index.d.ts +0 -0
- /package/dist/types/{builds/6SyqsxUA/0/Digital/nano-components/packages/components/.stencil/generators/vue → Users/John.Jenkins/projects/nano-components/packages/components/.stencil/plugins/stencil/vue-output}/output-vue.d.ts +0 -0
- /package/dist/types/{builds/6SyqsxUA/0/Digital/nano-components/packages/components/.stencil/generators/vue → Users/John.Jenkins/projects/nano-components/packages/components/.stencil/plugins/stencil/vue-output}/plugin.d.ts +0 -0
- /package/dist/types/{builds/6SyqsxUA/0/Digital/nano-components/packages/components/.stencil/generators/vue → Users/John.Jenkins/projects/nano-components/packages/components/.stencil/plugins/stencil/vue-output}/types.d.ts +0 -0
- /package/dist/types/{builds/6SyqsxUA/0/Digital/nano-components/packages/components/.stencil/generators/vue → Users/John.Jenkins/projects/nano-components/packages/components/.stencil/plugins/stencil/vue-output}/utils.d.ts +0 -0
- /package/dist/types/{builds/6SyqsxUA/0/Digital → Users/John.Jenkins/projects}/nano-components/packages/components/.stencil/testing/mocks/intersection-observer.d.ts +0 -0
- /package/dist/types/{builds/6SyqsxUA/0/Digital → Users/John.Jenkins/projects}/nano-components/packages/components/.stencil/wdio.conf.d.ts +0 -0
- /package/dist/types/components/{table → data-table}/table.cell.d.ts +0 -0
- /package/dist/types/components/{table → data-table}/table.constants.d.ts +0 -0
- /package/dist/types/components/{table → data-table}/table.header.d.ts +0 -0
- /package/dist/types/components/{table → data-table}/table.pin-service.d.ts +0 -0
- /package/dist/types/components/{table → data-table}/table.row.d.ts +0 -0
- /package/dist/types/components/{table → data-table}/table.worker.d.ts +0 -0
@@ -0,0 +1,1847 @@
|
|
1
|
+
/*!
|
2
|
+
* Custom elements for Nanopore-Digital Web applications
|
3
|
+
*/
|
4
|
+
'use strict';
|
5
|
+
|
6
|
+
var index = require('./index-DYD4xvxr.js');
|
7
|
+
var renderer = require('./renderer-SkVn69pT.js');
|
8
|
+
var math = require('./math-DIjJ3V87.js');
|
9
|
+
var throttle = require('./throttle-CrRDOkln.js');
|
10
|
+
var scroll = require('./scroll-DXjC771e.js');
|
11
|
+
var index$1 = require('./index-BV7Y7Zvi.js');
|
12
|
+
|
13
|
+
const CSSNAMESPACE = 'nano-tbl';
|
14
|
+
|
15
|
+
const isInstanceOf = (value, className) => {
|
16
|
+
const C = globalThis[className];
|
17
|
+
return C != null && value instanceof C;
|
18
|
+
};
|
19
|
+
const getTransferables = (value) => {
|
20
|
+
if (value != null) {
|
21
|
+
if (
|
22
|
+
isInstanceOf(value, "ArrayBuffer") ||
|
23
|
+
isInstanceOf(value, "MessagePort") ||
|
24
|
+
isInstanceOf(value, "ImageBitmap") ||
|
25
|
+
isInstanceOf(value, "OffscreenCanvas")
|
26
|
+
) {
|
27
|
+
return [value];
|
28
|
+
}
|
29
|
+
if (typeof value === "object") {
|
30
|
+
if (value.constructor === Object) {
|
31
|
+
value = Object.values(value);
|
32
|
+
}
|
33
|
+
if (Array.isArray(value)) {
|
34
|
+
return value.flatMap(getTransferables);
|
35
|
+
}
|
36
|
+
return getTransferables(value.buffer);
|
37
|
+
}
|
38
|
+
}
|
39
|
+
return [];
|
40
|
+
};
|
41
|
+
|
42
|
+
let pendingIds = 0;
|
43
|
+
let callbackIds = 0;
|
44
|
+
const pending = new Map();
|
45
|
+
const callbacks = new Map();
|
46
|
+
|
47
|
+
const createWorker = (workerPath, workerName, workerMsgId) => {
|
48
|
+
const worker = new Worker(workerPath, {name:workerName});
|
49
|
+
|
50
|
+
worker.addEventListener('message', ({data}) => {
|
51
|
+
if (data) {
|
52
|
+
const workerMsg = data[0];
|
53
|
+
const id = data[1];
|
54
|
+
const value = data[2];
|
55
|
+
|
56
|
+
if (workerMsg === workerMsgId) {
|
57
|
+
const err = data[3];
|
58
|
+
const [resolve, reject, callbackIds] = pending.get(id);
|
59
|
+
pending.delete(id);
|
60
|
+
|
61
|
+
if (err) {
|
62
|
+
const errObj = (err.isError)
|
63
|
+
? Object.assign(new Error(err.value.message), err.value)
|
64
|
+
: err.value;
|
65
|
+
|
66
|
+
index.consoleError(errObj);
|
67
|
+
reject(errObj);
|
68
|
+
} else {
|
69
|
+
if (callbackIds) {
|
70
|
+
callbackIds.forEach(id => callbacks.delete(id));
|
71
|
+
}
|
72
|
+
resolve(value);
|
73
|
+
}
|
74
|
+
} else if (workerMsg === workerMsgId + '.cb') {
|
75
|
+
try {
|
76
|
+
callbacks.get(id)(...value);
|
77
|
+
} catch (e) {
|
78
|
+
index.consoleError(e);
|
79
|
+
}
|
80
|
+
}
|
81
|
+
}
|
82
|
+
});
|
83
|
+
|
84
|
+
return worker;
|
85
|
+
};
|
86
|
+
|
87
|
+
const createWorkerProxy = (worker, workerMsgId, exportedMethod) => (
|
88
|
+
(...args) => new Promise((resolve, reject) => {
|
89
|
+
let pendingId = pendingIds++;
|
90
|
+
let i = 0;
|
91
|
+
let argLen = args.length;
|
92
|
+
let mainData = [resolve, reject];
|
93
|
+
pending.set(pendingId, mainData);
|
94
|
+
|
95
|
+
for (; i < argLen; i++) {
|
96
|
+
if (typeof args[i] === 'function') {
|
97
|
+
const callbackId = callbackIds++;
|
98
|
+
callbacks.set(callbackId, args[i]);
|
99
|
+
args[i] = [workerMsgId + '.cb', callbackId];
|
100
|
+
(mainData[2] = mainData[2] || []).push(callbackId);
|
101
|
+
}
|
102
|
+
}
|
103
|
+
const postMessage = (w) => (
|
104
|
+
w.postMessage(
|
105
|
+
[workerMsgId, pendingId, exportedMethod, args],
|
106
|
+
getTransferables(args)
|
107
|
+
)
|
108
|
+
);
|
109
|
+
if (worker.then) {
|
110
|
+
worker.then(postMessage);
|
111
|
+
} else {
|
112
|
+
postMessage(worker);
|
113
|
+
}
|
114
|
+
})
|
115
|
+
);
|
116
|
+
|
117
|
+
const workerPromise = Promise.resolve().then(function () { return require('./table.worker-FkRsUwRY.js'); }).then(m => m.worker);
|
118
|
+
const createWorkerStore = /*@__PURE__*/createWorkerProxy(workerPromise, 'stencil.table.worker', 'createWorkerStore');
|
119
|
+
const syncConfigToWorker = /*@__PURE__*/createWorkerProxy(workerPromise, 'stencil.table.worker', 'syncConfigToWorker');
|
120
|
+
const syncDataToWorker = /*@__PURE__*/createWorkerProxy(workerPromise, 'stencil.table.worker', 'syncDataToWorker');
|
121
|
+
const workerFilter = /*@__PURE__*/createWorkerProxy(workerPromise, 'stencil.table.worker', 'workerFilter');
|
122
|
+
const workerSearch = /*@__PURE__*/createWorkerProxy(workerPromise, 'stencil.table.worker', 'workerSearch');
|
123
|
+
const workerSort = /*@__PURE__*/createWorkerProxy(workerPromise, 'stencil.table.worker', 'workerSort');
|
124
|
+
|
125
|
+
function colsToWorker(columns) {
|
126
|
+
const safeColumns = JSON.parse(JSON.stringify(columns));
|
127
|
+
columns.forEach((c) => {
|
128
|
+
if (c?.sortCompareFn) {
|
129
|
+
const safeCol = safeColumns.find((sc) => sc.prop === c.prop);
|
130
|
+
safeCol.sortCompareFn = c.sortCompareFn.toString();
|
131
|
+
}
|
132
|
+
});
|
133
|
+
return safeColumns;
|
134
|
+
}
|
135
|
+
const stores = new WeakMap();
|
136
|
+
async function generateStore(host, columns, scrollParent, isReady) {
|
137
|
+
const store = {
|
138
|
+
data: index$1.createStore({ rows: [] }),
|
139
|
+
config: index$1.createStore({ columns }),
|
140
|
+
general: index$1.createStore({ workerId: null, scrollParent, host, isReady }),
|
141
|
+
};
|
142
|
+
const id = await createWorkerStore(store.data.state.rows, colsToWorker(store.config.state.columns));
|
143
|
+
store.general.state.workerId = id;
|
144
|
+
stores.set(host, store);
|
145
|
+
// sync data from our store to our worker
|
146
|
+
store.data.use({
|
147
|
+
reset: () => {
|
148
|
+
if (store.general.state.workerId)
|
149
|
+
syncDataToWorker(store.general.state.workerId, null);
|
150
|
+
},
|
151
|
+
dispose: () => {
|
152
|
+
if (store.general.state.workerId)
|
153
|
+
syncDataToWorker(store.general.state.workerId, null);
|
154
|
+
},
|
155
|
+
});
|
156
|
+
store.config.use({
|
157
|
+
reset: () => {
|
158
|
+
if (store.general.state.workerId)
|
159
|
+
syncConfigToWorker(store.general.state.workerId, null);
|
160
|
+
},
|
161
|
+
dispose: () => {
|
162
|
+
if (store.general.state.workerId)
|
163
|
+
syncConfigToWorker(store.general.state.workerId, null);
|
164
|
+
},
|
165
|
+
});
|
166
|
+
return store;
|
167
|
+
}
|
168
|
+
function getStore(host) {
|
169
|
+
return stores.get(host);
|
170
|
+
}
|
171
|
+
function getDataType(value) {
|
172
|
+
if (value instanceof Date) {
|
173
|
+
return 'date';
|
174
|
+
}
|
175
|
+
if (['number', 'string', 'boolean'].includes(typeof value)) {
|
176
|
+
return typeof value;
|
177
|
+
}
|
178
|
+
return 'unknown';
|
179
|
+
}
|
180
|
+
function storeSetData(host, rows) {
|
181
|
+
const store = stores.get(host);
|
182
|
+
if (!store)
|
183
|
+
return;
|
184
|
+
const cols = store.config.state.columns;
|
185
|
+
const dateCols = cols
|
186
|
+
.filter((col) => col.type === 'date')
|
187
|
+
.reduce((prev, curr) => {
|
188
|
+
return [...prev, curr.prop];
|
189
|
+
}, []);
|
190
|
+
const unknownCols = cols.filter((col) => !col.type);
|
191
|
+
// augments data with some internal props.
|
192
|
+
// discern unknown column types
|
193
|
+
// convert dates to numbers for worker
|
194
|
+
rows = rows.map((row, i) => {
|
195
|
+
// try our best to discern the column type (from first row) if unset
|
196
|
+
if (unknownCols.length && i === 0) {
|
197
|
+
store.config.state.columns = cols.map((col) => {
|
198
|
+
if (unknownCols.includes(col) && row[col.prop] && !col.type) {
|
199
|
+
col.type = getDataType(row[col.prop]);
|
200
|
+
if (col.type === 'date')
|
201
|
+
dateCols.push(col.prop);
|
202
|
+
}
|
203
|
+
return col;
|
204
|
+
});
|
205
|
+
}
|
206
|
+
// convert date columns into numbers to send to our worker
|
207
|
+
dateCols.forEach((colName) => {
|
208
|
+
// coerce any date type;
|
209
|
+
// Date(), timestamp, valid date string
|
210
|
+
const coerceDate = new Date(row[colName]);
|
211
|
+
if (!!coerceDate && Number(coerceDate))
|
212
|
+
row[colName] = Number(coerceDate);
|
213
|
+
});
|
214
|
+
row['__index'] = i;
|
215
|
+
row['__uuid'] = math.cyrb53(cols.map((c) => row[c.prop]).join());
|
216
|
+
return row;
|
217
|
+
});
|
218
|
+
store.data.state.rows = rows;
|
219
|
+
if (store.general.state.workerId)
|
220
|
+
return syncDataToWorker(store.general.state.workerId, rows);
|
221
|
+
}
|
222
|
+
function storeSetConfig(host, columns) {
|
223
|
+
const store = stores.get(host);
|
224
|
+
if (!store)
|
225
|
+
return;
|
226
|
+
store.config.state.columns = columns;
|
227
|
+
if (store.general.state.workerId)
|
228
|
+
return syncConfigToWorker(store.general.state.workerId, colsToWorker(columns));
|
229
|
+
}
|
230
|
+
async function storeSearch(host, term) {
|
231
|
+
const store = stores.get(host);
|
232
|
+
if (!store || !store.general.state.workerId)
|
233
|
+
return;
|
234
|
+
try {
|
235
|
+
store.data.state.rows = await workerSearch(store.general.state.workerId, term);
|
236
|
+
}
|
237
|
+
catch (e) {
|
238
|
+
console.warn(e);
|
239
|
+
}
|
240
|
+
}
|
241
|
+
async function storeFilter(host, filters) {
|
242
|
+
const store = stores.get(host);
|
243
|
+
if (!store || !store.general.state.workerId)
|
244
|
+
return;
|
245
|
+
try {
|
246
|
+
store.data.state.rows = await workerFilter(store.general.state.workerId, filters);
|
247
|
+
}
|
248
|
+
catch (e) {
|
249
|
+
console.warn(e);
|
250
|
+
}
|
251
|
+
}
|
252
|
+
async function storeSort(host, prop, order) {
|
253
|
+
const store = stores.get(host);
|
254
|
+
if (!store || !store.general.state.workerId)
|
255
|
+
return;
|
256
|
+
try {
|
257
|
+
store.data.state.rows = await workerSort(store.general.state.workerId, prop, order);
|
258
|
+
}
|
259
|
+
catch (e) {
|
260
|
+
console.warn(e);
|
261
|
+
}
|
262
|
+
}
|
263
|
+
|
264
|
+
/**
|
265
|
+
* Get a model object for custom cell / property renderers.
|
266
|
+
* @param rowIndex - the current row index being rendered
|
267
|
+
* @param colIndex - the current column index being rendered
|
268
|
+
* @returns a model object which will be passed to custom renderers
|
269
|
+
*/
|
270
|
+
function colDataModel(rowIndex, colIndex) {
|
271
|
+
const store = fetchStores();
|
272
|
+
const columns = store.config.state.columns;
|
273
|
+
const rows = store.data.state.rows;
|
274
|
+
const column = columns[colIndex];
|
275
|
+
const prop = column?.prop;
|
276
|
+
const rowModel = rows[rowIndex];
|
277
|
+
const cellModel = rowModel ? rowModel[columns[colIndex].prop] : '';
|
278
|
+
return {
|
279
|
+
prop,
|
280
|
+
cellModel,
|
281
|
+
column,
|
282
|
+
rowIndex,
|
283
|
+
rowModel,
|
284
|
+
};
|
285
|
+
}
|
286
|
+
/**
|
287
|
+
* Get a model object for custom row renderers.
|
288
|
+
* @param rowIndex
|
289
|
+
* @returns a model object passed to custom row renderers
|
290
|
+
*/
|
291
|
+
function rowDataModel(rowIndex) {
|
292
|
+
const store = fetchStores();
|
293
|
+
const rows = store.data.state.rows;
|
294
|
+
const rowModel = rows[rowIndex];
|
295
|
+
return {
|
296
|
+
rowModel,
|
297
|
+
rowIndex,
|
298
|
+
};
|
299
|
+
}
|
300
|
+
/**
|
301
|
+
* Merges 2 objects of properties together
|
302
|
+
* @param current - property object
|
303
|
+
* @param extra - additional object property
|
304
|
+
* @returns - merged properties that can be applied to a node
|
305
|
+
*/
|
306
|
+
function mergeProperties(current, extra) {
|
307
|
+
if (!extra)
|
308
|
+
return current;
|
309
|
+
// top level merge
|
310
|
+
const props = { ...extra, ...current };
|
311
|
+
// deeper merge
|
312
|
+
// merge classes maps or strings
|
313
|
+
if (extra.class) {
|
314
|
+
if (typeof extra.class === 'object' && typeof props.class === 'object') {
|
315
|
+
props.class = { ...extra.class, ...props.class };
|
316
|
+
}
|
317
|
+
else if (typeof extra.class === 'string' &&
|
318
|
+
typeof props.class === 'object') {
|
319
|
+
props.class[extra.class] = true;
|
320
|
+
}
|
321
|
+
else if (typeof props.class === 'string' &&
|
322
|
+
typeof extra.class === 'string') {
|
323
|
+
props.class += ' ' + extra.class;
|
324
|
+
}
|
325
|
+
}
|
326
|
+
// merge style
|
327
|
+
if (extra.style) {
|
328
|
+
props.style = { ...extra.style, ...props.style };
|
329
|
+
}
|
330
|
+
return props;
|
331
|
+
}
|
332
|
+
/**
|
333
|
+
* Returns the current nano-data-table's stores.
|
334
|
+
* @returns the current nano-data-table stores
|
335
|
+
*/
|
336
|
+
function fetchStores() {
|
337
|
+
return getStore(index.getElement(index.getRenderingRef()));
|
338
|
+
}
|
339
|
+
/**
|
340
|
+
* Merges any defined cell properties with properties
|
341
|
+
* required by `nano-data-table` functionality
|
342
|
+
* @param rowIndex - the current row index being rendered
|
343
|
+
* @param colIndex = the current column index being rendered
|
344
|
+
* @param defaultProps - default properties required by `nano-data-table`
|
345
|
+
* @returns - the merged properties that will be applied to a node
|
346
|
+
*/
|
347
|
+
function mergeCellProperties(rowIndex, colIndex, defaultProps) {
|
348
|
+
const props = { ...defaultProps };
|
349
|
+
const extraPropsFunc = fetchStores().config.state.columns[colIndex]?.cellProperties;
|
350
|
+
if (!extraPropsFunc)
|
351
|
+
return props;
|
352
|
+
const data = colDataModel(rowIndex, colIndex);
|
353
|
+
const extra = extraPropsFunc(data);
|
354
|
+
if (!extra)
|
355
|
+
return props;
|
356
|
+
return mergeProperties(props, extra);
|
357
|
+
}
|
358
|
+
/**
|
359
|
+
* Renders a table header (within a thead) using a custom template if set.
|
360
|
+
* @param col - the current column config object
|
361
|
+
* @returns - a JSX node
|
362
|
+
*/
|
363
|
+
function colheadFootRender(col) {
|
364
|
+
const tpl = col?.columnTemplate;
|
365
|
+
return tpl ? (tpl(index.h, col)) : (index.h(index.Fragment, null, col.title));
|
366
|
+
}
|
367
|
+
function headerPinClasses(type, vPinned, toString = false) {
|
368
|
+
const classes = {
|
369
|
+
[`${CSSNAMESPACE}__${type}`]: true,
|
370
|
+
[`${CSSNAMESPACE}__pin`]: !!vPinned,
|
371
|
+
[`${CSSNAMESPACE}__pin--top`]: vPinned === 'top',
|
372
|
+
[`${CSSNAMESPACE}__pin--bottom`]: vPinned === 'bottom',
|
373
|
+
};
|
374
|
+
if (toString)
|
375
|
+
return classListToStr(classes);
|
376
|
+
return classes;
|
377
|
+
}
|
378
|
+
/**
|
379
|
+
* Turns a class map {'string': boolean} to class string
|
380
|
+
* @param classes - the class map to convert
|
381
|
+
* @returns a class string
|
382
|
+
*/
|
383
|
+
function classListToStr(classes) {
|
384
|
+
let classString = '';
|
385
|
+
Object.entries(classes).forEach(([className, on]) => {
|
386
|
+
if (on)
|
387
|
+
classString += className + ' ';
|
388
|
+
});
|
389
|
+
return classString;
|
390
|
+
}
|
391
|
+
|
392
|
+
const TableColHead = ({ column, onColumnSortClick, defaults, }) => {
|
393
|
+
if (column.hidden) {
|
394
|
+
return renderer.h(index.Fragment, null);
|
395
|
+
}
|
396
|
+
// Sort handling
|
397
|
+
function handleColumnSortClick(e) {
|
398
|
+
let order;
|
399
|
+
switch (column.order) {
|
400
|
+
case 'asc':
|
401
|
+
order = 'desc';
|
402
|
+
break;
|
403
|
+
case 'desc':
|
404
|
+
order = null;
|
405
|
+
break;
|
406
|
+
default:
|
407
|
+
order = 'asc';
|
408
|
+
}
|
409
|
+
onColumnSortClick(order, column.prop, e.target.closest('th'));
|
410
|
+
}
|
411
|
+
function isSortable() {
|
412
|
+
return ((!!defaults.sortable && column.sortable !== false) ||
|
413
|
+
(!defaults.sortable && column.sortable === true));
|
414
|
+
}
|
415
|
+
let extraProps = {};
|
416
|
+
if (column.columnProperties) {
|
417
|
+
extraProps = column.columnProperties(column) || extraProps;
|
418
|
+
}
|
419
|
+
const baseProps = {
|
420
|
+
class: {
|
421
|
+
...headerPinClasses('th', column.pinned),
|
422
|
+
[`${CSSNAMESPACE}__pin--start`]: column.pinned === 'start',
|
423
|
+
[`${CSSNAMESPACE}__pin--end`]: column.pinned === 'end',
|
424
|
+
[`${CSSNAMESPACE}__ordered`]: !!column.order,
|
425
|
+
[`${CSSNAMESPACE}__filtered`]: column.filter !== undefined && column.filter !== null,
|
426
|
+
},
|
427
|
+
};
|
428
|
+
let props = extraProps ? mergeProperties(baseProps, extraProps) : baseProps;
|
429
|
+
const content = colheadFootRender(column);
|
430
|
+
if (!content)
|
431
|
+
return renderer.h(index.Fragment, null);
|
432
|
+
props =
|
433
|
+
Number(props.colSpan) > 1
|
434
|
+
? { ...props, scope: 'colgroup' }
|
435
|
+
: { ...props, scope: 'col' };
|
436
|
+
if (isSortable()) {
|
437
|
+
const sort = column.order
|
438
|
+
? column.order === 'asc'
|
439
|
+
? 'ascending'
|
440
|
+
: 'descending'
|
441
|
+
: 'none';
|
442
|
+
props = { ...props, 'aria-sort': sort };
|
443
|
+
}
|
444
|
+
return (renderer.h("th", { ...props, key: column.prop }, isSortable() ? (renderer.h("button", { class: {
|
445
|
+
[`${CSSNAMESPACE}__order-btn`]: true,
|
446
|
+
[`${CSSNAMESPACE}__cell-content`]: true,
|
447
|
+
}, onClick: handleColumnSortClick },
|
448
|
+
colheadFootRender(column),
|
449
|
+
column.filter !== undefined && column.filter !== null && (renderer.h("nano-icon", { name: "light/filter" })),
|
450
|
+
!!column.order &&
|
451
|
+
(column.order === 'desc' ? (renderer.h("nano-icon", { name: "solid/arrow-down-long" })) : (renderer.h("nano-icon", { name: "solid/arrow-up-long" }))),
|
452
|
+
renderer.h("div", { class: `${CSSNAMESPACE}__status-icons` },
|
453
|
+
renderer.h("nano-icon", { name: "light/chevron-down" })))) : (renderer.h("div", { class: `${CSSNAMESPACE}__cell-content` },
|
454
|
+
colheadFootRender(column),
|
455
|
+
column.filter !== undefined && column.filter !== null && (renderer.h("nano-icon", { name: "light/bars-filter" }))))));
|
456
|
+
};
|
457
|
+
|
458
|
+
// TABLE CELL
|
459
|
+
// (tbody > tr > td, tbody > tr > th)
|
460
|
+
/**
|
461
|
+
* Renders a cell using a custom renderer if set.
|
462
|
+
* @param rowIndex - the current row index being rendered
|
463
|
+
* @param colIndex - the current column index being rendered
|
464
|
+
* @returns - a JSX node
|
465
|
+
*/
|
466
|
+
function cellRender(rowIndex, colIndex) {
|
467
|
+
const store = fetchStores();
|
468
|
+
const columns = store.config.state.columns;
|
469
|
+
const tpl = columns[colIndex]?.cellTemplate;
|
470
|
+
const model = colDataModel(rowIndex, colIndex);
|
471
|
+
const tableInstance = index.getRenderingRef();
|
472
|
+
if (!!model.cellModel && columns[colIndex].type === 'date') {
|
473
|
+
const d = new Date(model.cellModel);
|
474
|
+
if (d instanceof Date && !isNaN(d)) {
|
475
|
+
model.cellModel = !tpl
|
476
|
+
? `${new Date(model.cellModel).toLocaleDateString()} ${new Date(model.cellModel).toLocaleTimeString()}`
|
477
|
+
: d;
|
478
|
+
}
|
479
|
+
}
|
480
|
+
// Wrap the h pragma, then we can know if we're using Stencil's
|
481
|
+
// jsx renderer or a different one
|
482
|
+
let hCalled = false;
|
483
|
+
const hWrap = (...args) => {
|
484
|
+
hCalled = true;
|
485
|
+
// @ts-expect-error - h mismatch
|
486
|
+
return renderer.h(...args);
|
487
|
+
};
|
488
|
+
let tplResult = tpl ? tpl(hWrap, model) : undefined;
|
489
|
+
if (tplResult &&
|
490
|
+
tableInstance.customRenderer &&
|
491
|
+
tplResult['$attrs$'] === undefined &&
|
492
|
+
!(tplResult instanceof Element) &&
|
493
|
+
typeof tplResult !== 'string' &&
|
494
|
+
!hCalled) {
|
495
|
+
// template result is jsx *not* from Stencil.
|
496
|
+
// Render it now and output it later.
|
497
|
+
const templateEle = document.createElement('template');
|
498
|
+
const result = tableInstance.customRenderer(tplResult, templateEle.content);
|
499
|
+
// custom rendering can render to the templateEle OR return a promise<string>
|
500
|
+
tplResult = result && result['then'] ? result : templateEle;
|
501
|
+
}
|
502
|
+
return tplResult ? (tplResult) : model.cellModel !== undefined && model.cellModel !== null ? (renderer.h(index.Fragment, null, model.cellModel?.toString())) : ('');
|
503
|
+
}
|
504
|
+
const baseCellClasses = (colIndex, toString = false) => {
|
505
|
+
const store = fetchStores();
|
506
|
+
const column = store.config.state.columns[colIndex];
|
507
|
+
const classes = {
|
508
|
+
[`${CSSNAMESPACE}__td`]: true,
|
509
|
+
[`${CSSNAMESPACE}__ordered`]: !!column.order,
|
510
|
+
[`${CSSNAMESPACE}__pin`]: !!column.pinned,
|
511
|
+
[`${CSSNAMESPACE}__pin--start`]: column.pinned === 'start',
|
512
|
+
[`${CSSNAMESPACE}__pin--end`]: column.pinned === 'end',
|
513
|
+
};
|
514
|
+
if (toString)
|
515
|
+
return classListToStr(classes);
|
516
|
+
return classes;
|
517
|
+
};
|
518
|
+
const TableCell = ({ rowIndex, colIndex, nestedContent, }) => {
|
519
|
+
const Content = () => nestedContent
|
520
|
+
? nestedContent()
|
521
|
+
: cellRender(rowIndex, colIndex) || (renderer.h("span", { class: "placeholder" }, "\u00A0"));
|
522
|
+
let CellType = 'td';
|
523
|
+
const store = fetchStores();
|
524
|
+
const column = store.config.state.columns[colIndex];
|
525
|
+
if (column.hidden) {
|
526
|
+
return renderer.h(index.Fragment, null);
|
527
|
+
}
|
528
|
+
let props = mergeCellProperties(rowIndex, colIndex, {
|
529
|
+
class: baseCellClasses(colIndex),
|
530
|
+
});
|
531
|
+
if (column.rowHeader) {
|
532
|
+
props =
|
533
|
+
Number(props.rowSpan) > 1
|
534
|
+
? { ...props, scope: 'rowgroup' }
|
535
|
+
: { ...props, scope: 'row' };
|
536
|
+
CellType = 'th';
|
537
|
+
}
|
538
|
+
const ContentWrap = (props) => {
|
539
|
+
const content = Content();
|
540
|
+
return (renderer.h("div", { ref: (d) => {
|
541
|
+
if (!d)
|
542
|
+
return;
|
543
|
+
if (content instanceof Element) {
|
544
|
+
// custom rendered an element
|
545
|
+
d.replaceChildren();
|
546
|
+
d.append(content['content'] || content);
|
547
|
+
}
|
548
|
+
else if (content['then']) {
|
549
|
+
// custom rendered a promise. Most likely within SSR.
|
550
|
+
content.then((res) => (d.innerHTML = res));
|
551
|
+
}
|
552
|
+
}, ...props, class: {
|
553
|
+
[`${CSSNAMESPACE}__cell-content`]: true,
|
554
|
+
[`${CSSNAMESPACE}__cell-content--wrap`]: !!column.wrap,
|
555
|
+
}, innerHTML: typeof content === 'string' && content.includes('<')
|
556
|
+
? content
|
557
|
+
: undefined }, (typeof content !== 'string' || !content.includes('<')) &&
|
558
|
+
!content['then'] &&
|
559
|
+
!(content instanceof Element) &&
|
560
|
+
content));
|
561
|
+
};
|
562
|
+
return (renderer.h(CellType, { ...props }, column.autoTooltip && !column.wrap ? (renderer.h("nano-resize-observe", { notifyContentFit: "x", onNanoResizeContentFitChange: (e) => (e.target.firstElementChild.disabled =
|
563
|
+
e.detail.x) },
|
564
|
+
renderer.h("nano-tooltip", { disabled: true, placement: "top", onNanoShow: (e) => (e.target.closest(CellType).style.zIndex = '100'), onNanoHide: (e) => (e.target.closest(CellType).style.zIndex = '') },
|
565
|
+
renderer.h(ContentWrap, null),
|
566
|
+
renderer.h("span", { slot: "content" },
|
567
|
+
renderer.h(Content, null))))) : (renderer.h(ContentWrap, null))));
|
568
|
+
};
|
569
|
+
|
570
|
+
const tableCellContent = (props, children, ctx) => {
|
571
|
+
const cell = (renderer.h("div", { ...props.wrapperProps, class: {
|
572
|
+
[`${CSSNAMESPACE}__cell-content`]: true,
|
573
|
+
[`${CSSNAMESPACE}__cell-content--wrap`]: props.wrap,
|
574
|
+
} }, children));
|
575
|
+
return props.header ? (renderer.h("th", { scope: ctx, ...props.cellProps }, cell)) : (renderer.h("td", { ...props.cellProps }, cell));
|
576
|
+
};
|
577
|
+
const TableRow = ({ rowRenderer, rowIndex, rowModel }, children, utils) => {
|
578
|
+
// helper, generates <td> or <th>
|
579
|
+
const TableCell = ({ header, wrap, cellProps, wrapperProps }, children) => {
|
580
|
+
return tableCellContent({ header, wrap, cellProps, wrapperProps }, children, 'row');
|
581
|
+
};
|
582
|
+
let extraProps = {};
|
583
|
+
if (!rowModel) {
|
584
|
+
const model = rowDataModel(rowIndex);
|
585
|
+
rowModel = model.rowModel;
|
586
|
+
}
|
587
|
+
if (rowRenderer?.rowProperties) {
|
588
|
+
extraProps =
|
589
|
+
rowRenderer.rowProperties({ rowModel, rowIndex }) || extraProps;
|
590
|
+
}
|
591
|
+
let rowPinned;
|
592
|
+
if (rowRenderer?.pinned && typeof rowRenderer.pinned === 'function') {
|
593
|
+
rowPinned = rowRenderer.pinned({ rowModel, rowIndex });
|
594
|
+
}
|
595
|
+
const props = mergeProperties({ class: headerPinClasses('tr', rowPinned, true) }, extraProps);
|
596
|
+
const tpl = rowRenderer?.template;
|
597
|
+
/**
|
598
|
+
* Applies appropriate classes to td / th VNodes;
|
599
|
+
* which can be supplied by user defined templates
|
600
|
+
* @param children virtual / jsx node array
|
601
|
+
* @returns virtual / jsx node array
|
602
|
+
*/
|
603
|
+
const applyCellClasses = (children) => {
|
604
|
+
return utils.map(children, (cNode, i) => {
|
605
|
+
if (['td', 'th'].includes(cNode.vtag.toString())) {
|
606
|
+
cNode.vattrs = mergeProperties({
|
607
|
+
class: baseCellClasses(i, true),
|
608
|
+
}, cNode.vattrs);
|
609
|
+
}
|
610
|
+
return cNode;
|
611
|
+
});
|
612
|
+
};
|
613
|
+
if (tpl) {
|
614
|
+
let toRender = tpl(renderer.h, {
|
615
|
+
renderedRow: (renderer.h("tr", { ...props, key: rowModel.__uuid }, children)),
|
616
|
+
rowModel,
|
617
|
+
rowIndex,
|
618
|
+
}, TableCell);
|
619
|
+
if (Array.isArray(toRender)) {
|
620
|
+
toRender = utils.map(toRender, (node, i) => {
|
621
|
+
if (node.vtag === 'tr') {
|
622
|
+
if (!node.vkey)
|
623
|
+
node.vkey = `${rowModel.__uuid}_${i}`;
|
624
|
+
node.vattrs = mergeProperties({ class: headerPinClasses('tr', rowPinned, true) }, node.vattrs);
|
625
|
+
if (node.vchildren) {
|
626
|
+
node.vchildren = applyCellClasses(node.vchildren);
|
627
|
+
}
|
628
|
+
}
|
629
|
+
return node;
|
630
|
+
});
|
631
|
+
}
|
632
|
+
return toRender;
|
633
|
+
}
|
634
|
+
return (renderer.h("tr", { ...props, key: rowModel.__uuid }, applyCellClasses(children)));
|
635
|
+
};
|
636
|
+
const TableHeadFootRow = ({ rowRenderer }, // onRowPinned, onColPinned
|
637
|
+
children, utils) => {
|
638
|
+
let extraProps = {};
|
639
|
+
if (rowRenderer.rowProperties) {
|
640
|
+
extraProps = rowRenderer.rowProperties() || {};
|
641
|
+
}
|
642
|
+
const TableHeadFootCell = ({ header, wrap, cellProps, wrapperProps }, children) => {
|
643
|
+
return tableCellContent({ header, wrap, cellProps, wrapperProps }, children, 'col');
|
644
|
+
};
|
645
|
+
const pinned = rowRenderer.pinned || null;
|
646
|
+
const baseProps = { class: headerPinClasses('tr', pinned) };
|
647
|
+
const props = extraProps ? mergeProperties(baseProps, extraProps) : baseProps;
|
648
|
+
const tpl = rowRenderer?.template;
|
649
|
+
if (tpl) {
|
650
|
+
let toRender = tpl(renderer.h, {
|
651
|
+
renderedRow: renderer.h("tr", { ...props }, children),
|
652
|
+
}, TableHeadFootCell);
|
653
|
+
if (Array.isArray(toRender)) {
|
654
|
+
toRender = utils.map(toRender, (node) => {
|
655
|
+
if (node.vtag === 'tr') {
|
656
|
+
node.vattrs = mergeProperties({ class: headerPinClasses('tr', pinned, true) }, node.vattrs);
|
657
|
+
if (node.vchildren) {
|
658
|
+
node.vchildren = utils.map(node.vchildren, (cNode) => {
|
659
|
+
if (['td', 'th'].includes(cNode.vtag.toString())) {
|
660
|
+
cNode.vattrs = mergeProperties({
|
661
|
+
class: headerPinClasses(cNode.vtag.toString(), pinned, true),
|
662
|
+
}, cNode.vattrs);
|
663
|
+
}
|
664
|
+
return cNode;
|
665
|
+
});
|
666
|
+
}
|
667
|
+
}
|
668
|
+
return node;
|
669
|
+
});
|
670
|
+
}
|
671
|
+
return toRender;
|
672
|
+
}
|
673
|
+
return renderer.h("tr", { ...props }, children);
|
674
|
+
};
|
675
|
+
|
676
|
+
function addStyleSheet(id, css) {
|
677
|
+
const styleSheet = document.getElementById(id) ||
|
678
|
+
document.createElement('style');
|
679
|
+
styleSheet.id = id;
|
680
|
+
styleSheet.innerHTML = css;
|
681
|
+
if (!styleSheet.isConnected)
|
682
|
+
document.head.append(styleSheet);
|
683
|
+
}
|
684
|
+
/**
|
685
|
+
* Manages the complex business of table 'pinning'; sticking columns and rows to the scrolling parent element.
|
686
|
+
*
|
687
|
+
* *knowing* when an element is pinned is tricky.
|
688
|
+
* Managing the display of multiple, side-by-side pinned elements is trickier still.
|
689
|
+
*
|
690
|
+
* Pinning table columns are very different from pinning table rows:
|
691
|
+
* - Rows are actual elements we can select, measure and apply styles to.
|
692
|
+
* - Columns are disparate collections of elements that are much harder to select, measure and apply styles to.
|
693
|
+
*
|
694
|
+
* With this in mind, how columns and rows are pinned is different:
|
695
|
+
* Rows can have changes applied directly, Columns have changes applied via dynamic stylesheets.
|
696
|
+
*
|
697
|
+
* The service is slightly opinionated on how it pins rows and columns (with some room for override):
|
698
|
+
* - Pinned columns are stuck consecutively, without overlapping.
|
699
|
+
* e.g. If column 'name' and 'surname' are both `pin: 'start'`; 'surname' will display **next** to name.
|
700
|
+
* Both columns are important for context
|
701
|
+
*
|
702
|
+
* - Pinned rows are set to overlap *when* they have the same ancestor,
|
703
|
+
* and stuck consecutively when they have a different ancestor.
|
704
|
+
* e.g. `tbody > tr.pin ~ tr.pin` the second row will **overlap** the first; it's unlikely both rows will be important for context.
|
705
|
+
* `thead > tr.pin`, `tbody > tr.pin`. Both rows are required for context so will require next to each other.
|
706
|
+
*
|
707
|
+
* Devs can override this behaviour by setting `--pin-start`, `--pin-end`, `--pin-top`, `--pin-bottom` custom vars.
|
708
|
+
*/
|
709
|
+
class TablePinService {
|
710
|
+
// Private state
|
711
|
+
cachedColMeta = new WeakMap();
|
712
|
+
tableId;
|
713
|
+
tableEle;
|
714
|
+
scrollElement;
|
715
|
+
startColumns;
|
716
|
+
endColumns;
|
717
|
+
topRows;
|
718
|
+
bottomRows;
|
719
|
+
tableDims;
|
720
|
+
constructor(table, scrollElement) {
|
721
|
+
this.tableEle = table;
|
722
|
+
this.tableId = this.tableEle.id;
|
723
|
+
this.scrollElement = scrollElement;
|
724
|
+
// Secret sauce - `getElementsByClassName` is a live collection.
|
725
|
+
// An HTMLCollection will keep itself up-to-date as elements come and go
|
726
|
+
// So we can keep assessing on scroll
|
727
|
+
this.startColumns = table
|
728
|
+
.querySelector('thead')
|
729
|
+
.getElementsByClassName(`${CSSNAMESPACE}__pin--start`);
|
730
|
+
this.endColumns = table
|
731
|
+
.querySelector('thead')
|
732
|
+
.getElementsByClassName(`${CSSNAMESPACE}__pin--end`);
|
733
|
+
this.topRows = table.getElementsByClassName(`${CSSNAMESPACE}__pin--top`);
|
734
|
+
this.bottomRows = table.getElementsByClassName(`${CSSNAMESPACE}__pin--bottom`);
|
735
|
+
this.onResize();
|
736
|
+
}
|
737
|
+
// Pinned cols & change detection
|
738
|
+
get pinnedStart() {
|
739
|
+
return this._pinnedStart;
|
740
|
+
}
|
741
|
+
set pinnedStart(cols) {
|
742
|
+
this._pinnedStart = cols;
|
743
|
+
this.handlePinnedStartChange();
|
744
|
+
}
|
745
|
+
_pinnedStart = [];
|
746
|
+
/**
|
747
|
+
* Called when columns are either pinned or unpinned.
|
748
|
+
* Attaches a tiny stylesheet to target the 'last' start column.
|
749
|
+
* (e.g. We only want to apply drop shadow on last pinned start column - not all pinned columns)
|
750
|
+
*/
|
751
|
+
handlePinnedStartChange() {
|
752
|
+
index.writeTask(() => {
|
753
|
+
if (this.pinnedStart.length) {
|
754
|
+
this.tableEle.classList.add(`${CSSNAMESPACE}__pinned--start`);
|
755
|
+
const lastActiveCol = this.cachedColMeta.get(this.pinnedStart[this.pinnedStart.length - 1]);
|
756
|
+
addStyleSheet(`${this.tableId}-col-start-active-style`,
|
757
|
+
/* css */ `
|
758
|
+
#${this.tableId} tr > :nth-child(${lastActiveCol.idx + 1}) {
|
759
|
+
--pin-start-active: 1;
|
760
|
+
}
|
761
|
+
`);
|
762
|
+
}
|
763
|
+
else {
|
764
|
+
this.tableEle.classList.remove(`${CSSNAMESPACE}__pinned--start`);
|
765
|
+
addStyleSheet(`${this.tableId}-col-start-active-style`, ``);
|
766
|
+
}
|
767
|
+
});
|
768
|
+
}
|
769
|
+
get pinnedEnd() {
|
770
|
+
return this._pinnedEnd;
|
771
|
+
}
|
772
|
+
set pinnedEnd(cols) {
|
773
|
+
this._pinnedEnd = cols;
|
774
|
+
this.handlePinnedEndChange();
|
775
|
+
}
|
776
|
+
_pinnedEnd = [];
|
777
|
+
/**
|
778
|
+
* Called when columns are either pinned or unpinned.
|
779
|
+
* Attaches a tiny stylesheet to target the 'first' end column.
|
780
|
+
* (e.g. We only want to apply drop shadow on first pinned end column - not all pinned columns)
|
781
|
+
*/
|
782
|
+
handlePinnedEndChange() {
|
783
|
+
index.writeTask(() => {
|
784
|
+
if (this.pinnedEnd.length) {
|
785
|
+
this.tableEle.classList.add(`${CSSNAMESPACE}__pinned--end`);
|
786
|
+
const firstActiveCol = this.cachedColMeta.get(this.pinnedEnd[0]);
|
787
|
+
addStyleSheet(`${this.tableId}-col-end-active-style`,
|
788
|
+
/* css */ `
|
789
|
+
#${this.tableId} tr > :nth-child(${firstActiveCol.idx + 1}) { --pin-end-active: 1; }
|
790
|
+
`);
|
791
|
+
}
|
792
|
+
else {
|
793
|
+
this.tableEle.classList.remove(`${CSSNAMESPACE}__pinned--end`);
|
794
|
+
addStyleSheet(`${this.tableId}-col-end-active-style`, ``);
|
795
|
+
}
|
796
|
+
});
|
797
|
+
}
|
798
|
+
get cssColDimensionCacheKey() {
|
799
|
+
return this._cssColDimensionCacheKey;
|
800
|
+
}
|
801
|
+
set cssColDimensionCacheKey(key) {
|
802
|
+
if (key === this._cssColDimensionCacheKey)
|
803
|
+
return;
|
804
|
+
this._cssColDimensionCacheKey = key;
|
805
|
+
this.createPinnedColDimensionStyles();
|
806
|
+
}
|
807
|
+
_cssColDimensionCacheKey = '';
|
808
|
+
/**
|
809
|
+
* To only generate column dimension styles when necessary we
|
810
|
+
* maintain a cache key string via serialised column meta.
|
811
|
+
* Only when this key changes do we generate a new stylesheet
|
812
|
+
*/
|
813
|
+
generateCssCacheKey() {
|
814
|
+
let key = '';
|
815
|
+
for (const col of this.startColumns) {
|
816
|
+
const colMeta = this.cachedColMeta.get(col);
|
817
|
+
key += `${colMeta.idx}-start-${colMeta.width}`;
|
818
|
+
}
|
819
|
+
for (const col of this.endColumns) {
|
820
|
+
const colMeta = this.cachedColMeta.get(col);
|
821
|
+
key += `${colMeta.idx}-start-${colMeta.width}`;
|
822
|
+
}
|
823
|
+
this.cssColDimensionCacheKey = key;
|
824
|
+
}
|
825
|
+
/**
|
826
|
+
* Generates pinned column width offset styles
|
827
|
+
* so pinned columns can appear stuck together,
|
828
|
+
* then attaches a stylesheet.
|
829
|
+
*/
|
830
|
+
createPinnedColDimensionStyles() {
|
831
|
+
let widthS = 0;
|
832
|
+
let widthE = 0;
|
833
|
+
const startCols = Array.from(this.startColumns);
|
834
|
+
const endCols = Array.from(this.endColumns).reverse();
|
835
|
+
const css = /* css */ `
|
836
|
+
${startCols
|
837
|
+
.map((col) => {
|
838
|
+
const colMeta = this.cachedColMeta.get(col);
|
839
|
+
widthS += colMeta.width - 1 || -1;
|
840
|
+
return /* css */ `
|
841
|
+
#${this.tableId} tr > :nth-child(${colMeta.idx + 1}) ~ td,
|
842
|
+
#${this.tableId} tr > :nth-child(${colMeta.idx + 1}) ~ th {
|
843
|
+
--pin-start: ${widthS - 1}px;
|
844
|
+
}
|
845
|
+
`;
|
846
|
+
})
|
847
|
+
.join('')}
|
848
|
+
${endCols
|
849
|
+
.map((col) => {
|
850
|
+
const colMeta = this.cachedColMeta.get(col);
|
851
|
+
widthE += colMeta.width - 1 || -1;
|
852
|
+
return /* css */ `
|
853
|
+
#${this.tableId} tr > td:has(~ :nth-child(${colMeta.idx + 1})),
|
854
|
+
#${this.tableId} tr > th:has(~ :nth-child(${colMeta.idx + 1})) {
|
855
|
+
--pin-end: ${widthE - 1}px;
|
856
|
+
}
|
857
|
+
`;
|
858
|
+
})
|
859
|
+
.join('')}
|
860
|
+
`;
|
861
|
+
addStyleSheet(`${this.tableId}-dimension-style`, css);
|
862
|
+
}
|
863
|
+
getParentOffsets() {
|
864
|
+
const { x, y } = this.scrollElement.getBoundingClientRect();
|
865
|
+
let offsetX = x;
|
866
|
+
let offsetY = y;
|
867
|
+
if (this.scrollElement === document.documentElement) {
|
868
|
+
offsetX = this.scrollElement.offsetLeft;
|
869
|
+
offsetY = this.scrollElement.offsetTop;
|
870
|
+
}
|
871
|
+
return { offsetX, offsetY };
|
872
|
+
}
|
873
|
+
/**
|
874
|
+
* Loops through all 'top' & 'bottom' rows (on scroll or resize)
|
875
|
+
* Manages their visual state by applying classes on stuck / unstuck
|
876
|
+
* And their pinned offset / distance
|
877
|
+
*/
|
878
|
+
assessRows() {
|
879
|
+
if (!this.topRows.length && !this.bottomRows.length)
|
880
|
+
return;
|
881
|
+
// top rows
|
882
|
+
if (this.topRows.length) {
|
883
|
+
index.readTask(async () => {
|
884
|
+
let heightAggregate = 0;
|
885
|
+
let cacheParent;
|
886
|
+
const { offsetY } = this.getParentOffsets();
|
887
|
+
for (const topRow of this.topRows) {
|
888
|
+
const { y, height } = topRow.getBoundingClientRect();
|
889
|
+
const currParent = topRow.parentElement;
|
890
|
+
// we'll use the applied `--pin-top` css var to decide row offset.
|
891
|
+
// This allows devs to override this behaviour through selector specificity
|
892
|
+
const pinTop = getComputedStyle(topRow).getPropertyValue('--pin-top');
|
893
|
+
const offset = pinTop !== '' ? parseFloat(pinTop) : heightAggregate;
|
894
|
+
// we need to wait for the row to finish sticking
|
895
|
+
// and generating it's offset (`--pin-top`) so we can see, on
|
896
|
+
// subsequent rows *if* the offset was applied
|
897
|
+
index.writeTask(() => {
|
898
|
+
if (y - offsetY <= offset) {
|
899
|
+
topRow.classList.add(`${CSSNAMESPACE}__pinned`, `${CSSNAMESPACE}__pinned--top`);
|
900
|
+
}
|
901
|
+
else {
|
902
|
+
topRow.classList.remove(`${CSSNAMESPACE}__pinned`, `${CSSNAMESPACE}__pinned--top`);
|
903
|
+
}
|
904
|
+
// by default, we only want to stick one row from each parental block (thead, tbody, tfoot)
|
905
|
+
// so only aggregate height / offset when cacheParent is different from current parent.
|
906
|
+
// Devs can override this behaviour by manually setting `--pin-bottom` on the table row
|
907
|
+
if (cacheParent !== currParent) {
|
908
|
+
currParent.style.setProperty('--pin-top', `${heightAggregate - 1}px`);
|
909
|
+
heightAggregate += height - 1;
|
910
|
+
cacheParent = currParent;
|
911
|
+
}
|
912
|
+
});
|
913
|
+
}
|
914
|
+
});
|
915
|
+
}
|
916
|
+
// bottom rows
|
917
|
+
if (this.bottomRows.length) {
|
918
|
+
const bottomRows = Array.from(this.bottomRows).reverse();
|
919
|
+
index.readTask(async () => {
|
920
|
+
let cacheParent;
|
921
|
+
let heightAggregate = 0;
|
922
|
+
const { offsetY } = this.getParentOffsets();
|
923
|
+
for (const bottomRow of bottomRows) {
|
924
|
+
if (!bottomRow.isConnected)
|
925
|
+
continue;
|
926
|
+
const { y, height } = bottomRow.getBoundingClientRect();
|
927
|
+
const currParent = bottomRow.parentElement;
|
928
|
+
// we'll use the applied `--pin-bottom` css var to decide row offset.
|
929
|
+
// This allows devs to override this behaviour through selector specificity
|
930
|
+
const pinBottom = getComputedStyle(bottomRow).getPropertyValue('--pin-bottom');
|
931
|
+
const offset = pinBottom !== '' ? parseFloat(pinBottom) : heightAggregate;
|
932
|
+
// we need to wait for the row to finish sticking
|
933
|
+
// and generating it's offset (`--pin-bottom`) to we can see, on
|
934
|
+
// subsequent rows *if* the offset was applied
|
935
|
+
await new Promise((resolve) => index.writeTask(() => {
|
936
|
+
if (this.tableDims.height + offsetY - (y + height) <= offset) {
|
937
|
+
bottomRow.classList.add(`${CSSNAMESPACE}__pinned`, `${CSSNAMESPACE}__pinned--bottom`);
|
938
|
+
}
|
939
|
+
else {
|
940
|
+
bottomRow.classList.remove(`${CSSNAMESPACE}__pinned`, `${CSSNAMESPACE}__pinned--bottom`);
|
941
|
+
}
|
942
|
+
// by default, we only want to stick one row from each parental block (thead, tbody, tfoot)
|
943
|
+
// so only aggregate height / offset when cacheParent is different from current parent.
|
944
|
+
// Devs can override this behaviour by manually setting `--pin-bottom` on the table row
|
945
|
+
if (cacheParent !== currParent) {
|
946
|
+
currParent.style.setProperty('--pin-bottom', `${heightAggregate - 1}px`);
|
947
|
+
heightAggregate += height - 1;
|
948
|
+
cacheParent = currParent;
|
949
|
+
}
|
950
|
+
resolve();
|
951
|
+
}));
|
952
|
+
}
|
953
|
+
});
|
954
|
+
}
|
955
|
+
}
|
956
|
+
/**
|
957
|
+
* Loops through all 'start' & 'end' columns (on scroll or resize)
|
958
|
+
* Caches meta about each column (e.g. size, position-index)
|
959
|
+
* and decides which columns are pinned
|
960
|
+
*/
|
961
|
+
async assessCols() {
|
962
|
+
if (!this.startColumns.length && !this.endColumns.length)
|
963
|
+
return;
|
964
|
+
let boundBox;
|
965
|
+
let currPinned;
|
966
|
+
let parentEles;
|
967
|
+
const done = new Promise((resolve) => {
|
968
|
+
// start cols
|
969
|
+
if (this.startColumns.length) {
|
970
|
+
index.readTask(() => {
|
971
|
+
const { offsetX } = this.getParentOffsets();
|
972
|
+
// cumulatively add widths of columns together
|
973
|
+
// 'cos columns stick together
|
974
|
+
let widthAggregate = offsetX;
|
975
|
+
parentEles = Array.from(this.startColumns[0].parentElement.children);
|
976
|
+
for (const startCol of this.startColumns) {
|
977
|
+
boundBox = startCol.getBoundingClientRect();
|
978
|
+
// cache meta for later
|
979
|
+
this.cachedColMeta.set(startCol, {
|
980
|
+
width: boundBox.width,
|
981
|
+
idx: parentEles.indexOf(startCol),
|
982
|
+
});
|
983
|
+
currPinned = this.pinnedStart.find((c) => c === startCol);
|
984
|
+
if (boundBox.x < widthAggregate) {
|
985
|
+
// this column is pinned
|
986
|
+
if (!currPinned)
|
987
|
+
this.pinnedStart = [
|
988
|
+
...this.pinnedStart,
|
989
|
+
startCol,
|
990
|
+
];
|
991
|
+
}
|
992
|
+
else if (currPinned) {
|
993
|
+
// this column is unpinned
|
994
|
+
this.pinnedStart = this.pinnedStart.filter((c) => c !== startCol);
|
995
|
+
}
|
996
|
+
widthAggregate += boundBox.width;
|
997
|
+
}
|
998
|
+
if (!this.endColumns.length)
|
999
|
+
resolve();
|
1000
|
+
});
|
1001
|
+
}
|
1002
|
+
// end cols
|
1003
|
+
if (this.endColumns.length) {
|
1004
|
+
index.readTask(() => {
|
1005
|
+
const endCols = Array.from(this.endColumns).reverse();
|
1006
|
+
parentEles = Array.from(this.endColumns[0].parentElement.children);
|
1007
|
+
const { offsetX } = this.getParentOffsets();
|
1008
|
+
// cumulatively add widths of columns together
|
1009
|
+
// 'cos columns stick together
|
1010
|
+
let widthAggregate = 0;
|
1011
|
+
for (const endCol of endCols) {
|
1012
|
+
boundBox = endCol.getBoundingClientRect();
|
1013
|
+
// cache meta for later
|
1014
|
+
this.cachedColMeta.set(endCol, {
|
1015
|
+
width: boundBox.width,
|
1016
|
+
idx: parentEles.indexOf(endCol),
|
1017
|
+
});
|
1018
|
+
currPinned = this.pinnedEnd.find((c) => c === endCol);
|
1019
|
+
if (this.tableDims.width + offsetX - boundBox.right <=
|
1020
|
+
widthAggregate) {
|
1021
|
+
// this column is pinned
|
1022
|
+
if (!currPinned)
|
1023
|
+
this.pinnedEnd = [endCol, ...this.pinnedEnd];
|
1024
|
+
}
|
1025
|
+
else if (currPinned) {
|
1026
|
+
// this column is unpinned
|
1027
|
+
this.pinnedEnd = this.pinnedEnd.filter((c) => c !== endCol);
|
1028
|
+
}
|
1029
|
+
widthAggregate += boundBox.width;
|
1030
|
+
}
|
1031
|
+
resolve();
|
1032
|
+
});
|
1033
|
+
}
|
1034
|
+
});
|
1035
|
+
await done;
|
1036
|
+
// potentially generate a new css stylesheet if anything changed
|
1037
|
+
this.generateCssCacheKey();
|
1038
|
+
}
|
1039
|
+
cacheX = 0;
|
1040
|
+
cacheY = 0;
|
1041
|
+
onScroll(pos) {
|
1042
|
+
if (this.cacheX !== pos.x) {
|
1043
|
+
this.cacheX = pos.x;
|
1044
|
+
this.assessCols();
|
1045
|
+
}
|
1046
|
+
if (this.cacheY !== pos.y) {
|
1047
|
+
this.cacheY = pos.y;
|
1048
|
+
this.assessRows();
|
1049
|
+
}
|
1050
|
+
}
|
1051
|
+
onResize() {
|
1052
|
+
const width = this.scrollElement.clientWidth;
|
1053
|
+
const height = this.scrollElement.clientHeight;
|
1054
|
+
this.tableDims = { width, height };
|
1055
|
+
this.assessCols();
|
1056
|
+
this.assessRows();
|
1057
|
+
}
|
1058
|
+
}
|
1059
|
+
|
1060
|
+
const tableCss = ":host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }:host,\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n[hidden] {\n display: none !important;\n}\n@media (prefers-reduced-motion: reduce) {\n :host,\n *,\n *::before,\n *::after {\n animation-duration: 0.01ms !important;\n animation-iteration-count: 1 !important;\n transition-duration: 0.01ms !important;\n scroll-behavior: auto !important;\n }\n }.nano-data-table {\n /**\n * @prop --table-padding. The padding of the table cells. Defaults to `var(--table-compact-padding)`\n * @prop --table-border-color. The border color of the table cells. Defaults to `var(--nano-color-neutral-200)`\n * @prop --table-border-color-header. The border color of the table header and footer cells. Defaults to `var(--nano-color-primary-1000)`\n * @prop --table-background. The background color of the table cells. Defaults to `var(--nano-color-base-0)`\n * @prop --table-max-col-width. The maximum width of the table columns. Defaults to `clamp(200px, 500px, 50vw)`\n * @prop --table-ordered-bg. The background color of the ordered table rows. Defaults to `var(--nano-color-neutral-100)`\n * @prop --table-wrapper-max-height: maximum height of the table when table is scrollable. Defaults to 80vh;\n * @prop --table-wrapper-max-width: maximum width of the table when table is scrollable. Defaults to 100%;\n */\n --table-padding: var(--nano-spacing-sm) calc(var(--nano-spacing-md) - (var(--nano-spacing-md) / 3));\n --table-border-color: var(--nano-color-neutral-200);\n --table-border-color-header: var(--nano-color-primary-1000);\n --table-background: var(--nano-color-base-0);\n --table-max-col-width: clamp(200px, 500px, 50vw);\n --table-ordered-bg: var(--nano-color-neutral-100);\n --table-wrapper-max-height: 80vh;\n --table-wrapper-max-width: 100%;\n display: block;\n inline-size: 100%;\n color: var(--nano-color-neutral-1400);\n container-type: inline-size;\n --isLtR: 1;\n}\n.nano-data-table:dir(rtl) {\n --isLtR: -1;\n}\n.nano-data-table .nano-sortable__dragged {\n background: var(--nano-color-base-0);\n opacity: 0.9;\n box-shadow: var(--nano-shadow-l0);\n z-index: 10 !important;\n}\n\n.nano-tbl__wrap {\n display: table;\n min-inline-size: 100%;\n}\n.nano-data-table:not([scrollable=false]) .nano-tbl__wrap {\n max-inline-size: var(--table-wrapper-max-width);\n max-block-size: var(--table-wrapper-max-height);\n position: relative;\n display: block;\n}\n.nano-data-table:not([scrollable=false]) .nano-tbl__wrap table {\n margin-block-end: var(--nano-spacing-l);\n}\n\n.nano-data-table:not([scrollable=false]):has(.nano-tbl__pin--start, .nano-tbl__pin--end) .nano-masked-overflow {\n --fade-size: 0;\n}\n\n.nano-tbl {\n text-align: start;\n inline-size: 100%;\n border-spacing: 0 0;\n border-collapse: separate;\n border-inline-end: 1px solid transparent;\n border-block-start: 1px solid transparent;\n position: relative;\n z-index: 1;\n}\n.nano-tbl__top-anchor {\n clip-path: inset(50%);\n block-size: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n inline-size: 1px;\n position: relative;\n}\n.nano-tbl__ordered {\n background-color: var(--table-ordered-bg);\n --table-border-color: var(--nano-color-neutral-300);\n}\n.nano-tbl__order-btn {\n padding: 0;\n border: none;\n outline: none;\n font: inherit;\n background: none;\n appearance: none;\n color: inherit;\n display: flex;\n gap: var(--nano-spacing-sm);\n align-items: center;\n inline-size: 100%;\n}\n.nano-tbl__order-btn:focus-visible {\n outline: var(--nano-focus-ring);\n outline-offset: var(--nano-focus-ring-offset);\n}\n.nano-tbl__status-icons {\n margin-inline: auto 10px;\n display: flex;\n gap: 10px;\n}\n.nano-tbl__progress-bar {\n font-size: 0.2rem;\n position: sticky;\n inset-block-start: 0;\n inset-inline: 0;\n z-index: 10;\n transition: scale 0.25s;\n transform: scale(0);\n inline-size: 100%;\n block-size: 0;\n}\n.nano-tbl__progress-bar--show {\n transform: scale(1);\n block-size: auto;\n}\n.nano-tbl__caption--hide {\n clip-path: inset(50%);\n block-size: 1px;\n overflow: hidden;\n position: absolute;\n white-space: nowrap;\n inline-size: 1px;\n}\n.nano-tbl__td, .nano-tbl__th {\n max-inline-size: var(--table-max-col-width);\n}\nthead .nano-tbl__td .nano-sortable__keyboard-handle, thead .nano-tbl__th .nano-sortable__keyboard-handle {\n position: absolute;\n inset-inline-end: 5px;\n inset-block-start: 50%;\n transform: translateY(-50%);\n background: white;\n z-index: 10;\n}\n.nano-tbl__td.nano-tbl__ordered, .nano-tbl__th.nano-tbl__ordered {\n background-color: var(--table-ordered-bg) !important;\n --table-border-color: var(--nano-color-neutral-300);\n}\n.nano-tbl__cell-content {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n.nano-tbl__cell-content--no-result {\n padding-block: var(--nano-spacing-md);\n}\n.nano-tbl__cell-content--wrap {\n white-space: normal;\n overflow: visible;\n}\n.nano-tbl tbody {\n opacity: 1;\n transition: 0.1s ease opacity;\n}\n.nano-tbl tbody.nano-tbl__loading {\n z-index: -1;\n position: relative;\n}\n.nano-tbl tbody.nano-tbl__inactive {\n opacity: 0;\n}\n.nano-tbl tbody .nano-tbl__tr:has(~ .nano-tbl__tr--placeholder) {\n display: none;\n}\n.nano-tbl tbody .nano-tbl__tr--placeholder ~ .nano-tbl__tr {\n display: none;\n}\n.nano-tbl th[scope=row] {\n margin: 0;\n}\n.nano-tbl__tr {\n --base-z: 0;\n}\n.nano-tbl__pin {\n z-index: var(--z, var(--base-z, 0));\n}\n.nano-tbl__pin .nano-tbl__th, .nano-tbl__pin .nano-tbl__td {\n z-index: var(--z, var(--base-z, 0));\n}\n.nano-tbl__pin--start {\n position: sticky;\n inset-inline-start: var(--pin-start, -1px);\n}\n.nano-tbl__pin--start::after {\n content: \"\";\n position: absolute;\n inset: 0;\n box-shadow: calc(4px * var(--isLtR)) 0 4px -3px rgb(var(--nano-color-base-rgb-1000)/25%);\n opacity: var(--pin-start-active, 0);\n z-index: -1;\n}\n.nano-tbl__pinned--start .nano-tbl__pin--start {\n --z: calc(var(--base-z) + 3) !important;\n}\n.nano-tbl__pin--end {\n position: sticky;\n inset-inline-end: var(--pin-end, -1px);\n max-inline-size: min(50vw, 200px);\n}\n@container (width <= 500px) {\n .nano-tbl__pin--start ~ .nano-tbl__pin--end {\n --z: 0 !important;\n inset-inline-end: auto !important;\n }\n .nano-tbl__pin--start ~ .nano-tbl__pin--end::after {\n display: none !important;\n }\n}\n@media (width <= 500px) {\n .nano-tbl__pin--start ~ .nano-tbl__pin--end {\n --z: 0 !important;\n inset-inline-end: auto !important;\n }\n .nano-tbl__pin--start ~ .nano-tbl__pin--end::after {\n display: none !important;\n }\n}\n.nano-tbl__pin--end::after {\n display: block;\n content: \"\";\n position: absolute;\n inset: 0;\n box-shadow: calc(-4px * var(--isLtR)) 0 4px -3px rgb(var(--nano-color-base-rgb-1000)/25%);\n opacity: var(--pin-end-active, 0);\n z-index: -1;\n}\n.nano-tbl__pinned--end .nano-tbl__pin--end {\n --z: calc(var(--base-z) + 2);\n}\n.nano-tbl__pin--top .nano-tbl__th, .nano-tbl__pin--top .nano-tbl__td {\n position: sticky;\n inset-block-start: var(--pin-top, -1px);\n}\n.nano-tbl__pin--top .nano-tbl__pin--end, .nano-tbl__pin--top .nano-tbl__pin--start {\n --z: calc(var(--base-z) + 1);\n}\n.nano-tbl__pin--top.nano-tbl__pinned--top {\n --base-z: 4;\n}\ntbody .nano-tbl__pin--top.nano-tbl__pinned--top .nano-tbl__th, tbody .nano-tbl__pin--top.nano-tbl__pinned--top .nano-tbl__td {\n border-block-end: 1px solid var(--table-border-color-header);\n}\n.nano-tbl__pin--bottom .nano-tbl__th, .nano-tbl__pin--bottom .nano-tbl__td {\n position: sticky;\n inset-block-end: var(--pin-bottom, -1px);\n}\n.nano-tbl__pin--bottom .nano-tbl__pin--end, .nano-tbl__pin--bottom .nano-tbl__pin--start {\n --z: calc(var(--base-z) + 1);\n}\n.nano-tbl__pin--bottom.nano-tbl__pinned--bottom {\n --base-z: 5;\n}\n.nano-tbl__pin--bottom.nano-tbl__pinned--bottom:has(.nano-tbl__pin--bottom.nano-tbl__pinned--bottom) .nano-tbl__pin {\n --base-z: 6;\n}\ntbody .nano-tbl__pin--bottom.nano-tbl__pinned--bottom .nano-tbl__th, tbody .nano-tbl__pin--bottom.nano-tbl__pinned--bottom .nano-tbl__td {\n border-block-start: 1px solid var(--table-border-color-header);\n}\n.nano-tbl thead tr:last-of-type td,\n.nano-tbl thead tr:last-of-type th {\n border-block-end: 2px solid var(--table-border-color-header);\n}\n.nano-tbl tfoot tr:first-of-type td,\n.nano-tbl tfoot tr:first-of-type th {\n border-block-start: none;\n}\n.nano-tbl tfoot tr:last-of-type td,\n.nano-tbl tfoot tr:last-of-type th {\n border-block-end: 2px solid var(--table-border-color-header);\n border-block-start: 2px solid var(--table-border-color-header);\n}\n.nano-tbl .unlimited-width {\n max-inline-size: none;\n}\n.nano-tbl__spinner {\n font-size: 1.5rem;\n transition: scale 0.25s;\n scale: 0;\n padding: 0.5rem;\n position: absolute;\n inset-block-end: 0;\n inset-inline-start: calc(50% - 0.75rem);\n z-index: 0;\n}\n.nano-tbl__spinner--show {\n scale: 1;\n position: sticky;\n}\n.nano-tbl .nano-skeleton {\n line-height: var(--nano-line-height-normal);\n}";
|
1061
|
+
|
1062
|
+
let id = 0;
|
1063
|
+
const NanoDataTable = class {
|
1064
|
+
constructor(hostRef) {
|
1065
|
+
index.registerInstance(this, hostRef);
|
1066
|
+
this.nanoTblReady = index.createEvent(this, "nanoTblReady", 7);
|
1067
|
+
this.nanoTblBlockRendered = index.createEvent(this, "nanoTblBlockRendered", 7);
|
1068
|
+
this.nanoTblBeforeSort = index.createEvent(this, "nanoTblBeforeSort", 7);
|
1069
|
+
this.nanoTblAfterSort = index.createEvent(this, "nanoTblAfterSort", 7);
|
1070
|
+
this.nanoTblBeforeFilter = index.createEvent(this, "nanoTblBeforeFilter", 7);
|
1071
|
+
this.nanoTblAfterFilter = index.createEvent(this, "nanoTblAfterFilter", 7);
|
1072
|
+
this.nanoTblBeforeSearch = index.createEvent(this, "nanoTblBeforeSearch", 7);
|
1073
|
+
this.nanoTblAfterSearch = index.createEvent(this, "nanoTblAfterSearch", 7);
|
1074
|
+
this.nanoTblBeforeEdit = index.createEvent(this, "nanoTblBeforeEdit", 7);
|
1075
|
+
this.debounceSetLoading = throttle.debounce(this.debounceSetLoading.bind(this), 50);
|
1076
|
+
}
|
1077
|
+
// Public API
|
1078
|
+
// Props
|
1079
|
+
/** Function called whenever `col.cellTemplate` renders an unknown object.
|
1080
|
+
* The function should render a valid HTMLElement to the cell arg.
|
1081
|
+
* Example usage - render JSX from a 3rd party lib and append the result to the cell element. */
|
1082
|
+
customRenderer;
|
1083
|
+
/** If true, will render any nested table in a scrollable container (using `overflow: auto`) */
|
1084
|
+
scrollable = false;
|
1085
|
+
/** A descriptive title of the table.
|
1086
|
+
* You must use this or the `slot="caption"` for accessibility */
|
1087
|
+
caption;
|
1088
|
+
/** Show the caption on-screen */
|
1089
|
+
showCaption = false;
|
1090
|
+
/** Will show a loading state when set to true.
|
1091
|
+
* By default, will be shown automatically if `rows` is a promise waiting to resolve / or falsy
|
1092
|
+
* *or* when performing custom filtering or sorting.
|
1093
|
+
* *Note* when set manually, will overwrite any internal loading state.
|
1094
|
+
* Set to 'undefined' to revert to default behaviour. */
|
1095
|
+
loading = undefined;
|
1096
|
+
get _loading() {
|
1097
|
+
return this.loading !== undefined ? this.loading : this.internalLoading;
|
1098
|
+
}
|
1099
|
+
set _loading(l) {
|
1100
|
+
if (this.loading !== undefined)
|
1101
|
+
return;
|
1102
|
+
this.debounceSetLoading(l);
|
1103
|
+
}
|
1104
|
+
debounceSetLoading(l) {
|
1105
|
+
this.internalLoading = l;
|
1106
|
+
}
|
1107
|
+
internalLoading = true;
|
1108
|
+
/** When loading rows asynchronously render this number of placeholder rows */
|
1109
|
+
placeholderSize = 10;
|
1110
|
+
/** The data to place in the table */
|
1111
|
+
rows;
|
1112
|
+
handleRowsChange() {
|
1113
|
+
if (!this.rows) {
|
1114
|
+
this._loading = true;
|
1115
|
+
return;
|
1116
|
+
}
|
1117
|
+
this._loading = true;
|
1118
|
+
Promise.resolve(this.rows).then(async (rows) => {
|
1119
|
+
await storeSetData(this.host, rows);
|
1120
|
+
// reset everything
|
1121
|
+
if (!this.customFilterApplied) {
|
1122
|
+
// if we have a custom filter applied (which causes new rows),
|
1123
|
+
// we don't want to reset filters as this will cause a loop
|
1124
|
+
this.currentFilters = '';
|
1125
|
+
}
|
1126
|
+
else {
|
1127
|
+
this.customFilterApplied = false;
|
1128
|
+
}
|
1129
|
+
this.currentSort = '';
|
1130
|
+
await this.columnInit();
|
1131
|
+
if (!this.isReady)
|
1132
|
+
requestAnimationFrame(() => this.setInitialBlockDimension());
|
1133
|
+
this._loading = false;
|
1134
|
+
if (this.tablePinnedService)
|
1135
|
+
this.tablePinnedService.assessRows();
|
1136
|
+
});
|
1137
|
+
}
|
1138
|
+
/** The column config used to present the rows of data */
|
1139
|
+
columns = [];
|
1140
|
+
async handleColsChange() {
|
1141
|
+
await storeSetConfig(this.host, this.columns);
|
1142
|
+
if (this.isReady)
|
1143
|
+
this.columnInit();
|
1144
|
+
}
|
1145
|
+
/** Used for custom thead row rendering */
|
1146
|
+
headRender = { pinned: 'top' };
|
1147
|
+
/** Used for custom row rendering */
|
1148
|
+
rowRender;
|
1149
|
+
/** Used for custom tfoot row rendering */
|
1150
|
+
footRender = { pinned: 'bottom' };
|
1151
|
+
/** Whether to show a `<tfoot>` component */
|
1152
|
+
showFooter = false;
|
1153
|
+
/** To improve performance, data is split into blocks
|
1154
|
+
* which are shown / hidden and rendered as they become visible.
|
1155
|
+
* Use this to control the number of hits within a block -
|
1156
|
+
* A block should fill a scrolling viewport.
|
1157
|
+
* The less perBlock the better for performance */
|
1158
|
+
perBlock = 50;
|
1159
|
+
/** The number of total blocks currently rendered in the table. @readonly */
|
1160
|
+
get blocksLength() {
|
1161
|
+
return this.blocks.length;
|
1162
|
+
}
|
1163
|
+
/** Term to search for in the data */
|
1164
|
+
searchTerm;
|
1165
|
+
/** A custom filtering function. Should return a promise.
|
1166
|
+
* If the promise resolves as `true` the column UI will be updated.
|
1167
|
+
* If the promise resolves as falsy, the sort will be performed by the component.
|
1168
|
+
* A good use-case would be performing the filter on a server / via fetch.
|
1169
|
+
* Then on success, updating the table's data via the `rows` property */
|
1170
|
+
customFilterFn;
|
1171
|
+
/** A custom sorting function. Should return a promise.
|
1172
|
+
* If the promise resolves as `true` the column UI will be updated.
|
1173
|
+
* If the promise resolves as falsey, the sort will be performed by the component.
|
1174
|
+
* A good use-case would be performing the sort on a server / via fetch.
|
1175
|
+
* Then on success, updating the table's data via the `rows` property */
|
1176
|
+
customSortFn;
|
1177
|
+
/**
|
1178
|
+
* The default sortable option for all columns.
|
1179
|
+
* `true` will enable column sorting unless you set `sortable: false` on a column
|
1180
|
+
* `false` will disable column sorting unless you set `sortable: true` on a column
|
1181
|
+
*/
|
1182
|
+
defaultSort = true;
|
1183
|
+
handleSearchTermChange() {
|
1184
|
+
this.searchStart();
|
1185
|
+
}
|
1186
|
+
/** If true, will show a spinner at the bottom of the table when loading */
|
1187
|
+
showPaginateSpinner = false;
|
1188
|
+
/** Use this to render the table with roughly the correct dimensions.
|
1189
|
+
* a use-case might be; fetch a small initial dataset to minimise load-time,
|
1190
|
+
* render the table with the correct dimensions, the table becomes interactive,
|
1191
|
+
* load the rest of the data
|
1192
|
+
*/
|
1193
|
+
virtualTotalItems = 0;
|
1194
|
+
virtualTotalItemsChangeHandler() {
|
1195
|
+
this.setBlocks();
|
1196
|
+
}
|
1197
|
+
/** @readonly - shows the currently applied filters */
|
1198
|
+
get appliedFilters() {
|
1199
|
+
return this.filters;
|
1200
|
+
}
|
1201
|
+
/** Fired when the table has done it's first complete render */
|
1202
|
+
nanoTblReady;
|
1203
|
+
/** Fired whenever a block is activated by scrolling into view / becoming visible
|
1204
|
+
* This could be leveraged for infinite scrolling / to fetch more data.
|
1205
|
+
*/
|
1206
|
+
nanoTblBlockRendered;
|
1207
|
+
/** Fired before a column is sorted.
|
1208
|
+
* `event.preventDefault()` to stop sorting. */
|
1209
|
+
nanoTblBeforeSort;
|
1210
|
+
/** Fired after a column is sorted */
|
1211
|
+
nanoTblAfterSort;
|
1212
|
+
/** Fired before a column is filtered.
|
1213
|
+
* `event.preventDefault()` to stop filtering. */
|
1214
|
+
nanoTblBeforeFilter;
|
1215
|
+
/** Fired after a column is sorted */
|
1216
|
+
nanoTblAfterFilter;
|
1217
|
+
/** Fired before a general search.
|
1218
|
+
* `event.preventDefault()` to stop searching. */
|
1219
|
+
nanoTblBeforeSearch;
|
1220
|
+
/** Fired after a general / cross column search */
|
1221
|
+
nanoTblAfterSearch;
|
1222
|
+
/** Fired before a general search.
|
1223
|
+
* `event.preventDefault()` to stop searching. */
|
1224
|
+
nanoTblBeforeEdit;
|
1225
|
+
/** Remove any column sorts currently applied
|
1226
|
+
* @returns a promise which resolves when complete */
|
1227
|
+
async resetSorting() {
|
1228
|
+
const col = this.columns.find((c) => !!c.order);
|
1229
|
+
if (!col)
|
1230
|
+
return;
|
1231
|
+
return this.sortStart(null, col.prop);
|
1232
|
+
}
|
1233
|
+
/** Apply a sort on a column
|
1234
|
+
* @returns a promise which resolves when complete */
|
1235
|
+
async addSort(column, order) {
|
1236
|
+
const col = this.columns.find((c) => c.prop === column);
|
1237
|
+
if (!col)
|
1238
|
+
throw new Error('Cannot find column with ' + column);
|
1239
|
+
return this.sortStart(order, col.prop);
|
1240
|
+
}
|
1241
|
+
/** Remove any column filters currently applied
|
1242
|
+
* @returns a promise which resolves when complete */
|
1243
|
+
async resetFilters() {
|
1244
|
+
this.filters = [];
|
1245
|
+
return this.filterStart();
|
1246
|
+
}
|
1247
|
+
/** Apply a filter on a column
|
1248
|
+
* @param filters - the filters to apply
|
1249
|
+
* @param additive - if true, will add the filters to any currently applied
|
1250
|
+
* @returns a promise which resolves when complete
|
1251
|
+
*/
|
1252
|
+
async addFilters(filters, additive = true) {
|
1253
|
+
if (!additive)
|
1254
|
+
this.filters = [];
|
1255
|
+
return this.filterStart(filters, additive);
|
1256
|
+
}
|
1257
|
+
/** Remove filters from a column
|
1258
|
+
* @param columnNames - the filters to apply
|
1259
|
+
* @returns a promise which resolves when complete
|
1260
|
+
*/
|
1261
|
+
async removeFilters(columnNames) {
|
1262
|
+
this.filters = this.filters.filter((f) => !columnNames.includes(f.prop));
|
1263
|
+
return this.filterStart();
|
1264
|
+
}
|
1265
|
+
/** Updates a row model at a given index
|
1266
|
+
* @param row - the row to update.
|
1267
|
+
* @param rowIndex - the row index to insert this row
|
1268
|
+
*/
|
1269
|
+
async updateRow(row, rowIndex) {
|
1270
|
+
this.rows.splice(rowIndex, 1, row);
|
1271
|
+
this.handleRowsChange();
|
1272
|
+
}
|
1273
|
+
get host() { return index.getElement(this); }
|
1274
|
+
renderId = 'tbl-' + id++;
|
1275
|
+
store;
|
1276
|
+
filters = [];
|
1277
|
+
currentFilters = '[]';
|
1278
|
+
currentSort = '';
|
1279
|
+
tableEle;
|
1280
|
+
topAnchorEle;
|
1281
|
+
activeWatcherIo;
|
1282
|
+
tablePinnedService;
|
1283
|
+
customFilterApplied = false;
|
1284
|
+
// Block view management
|
1285
|
+
/** `tr` elements split into units - defined by `perBlock`
|
1286
|
+
These are show / hidden for perf */
|
1287
|
+
blocks = [];
|
1288
|
+
activeBlocks = [0, 1];
|
1289
|
+
measureHeight = 0;
|
1290
|
+
blockElements;
|
1291
|
+
blockHeights = [];
|
1292
|
+
// uses the first 'tr' of an active block as our yard stick
|
1293
|
+
set measureEle(el) {
|
1294
|
+
if (!el)
|
1295
|
+
return;
|
1296
|
+
const potentialHeight = el.getBoundingClientRect().height;
|
1297
|
+
this.measureHeight =
|
1298
|
+
Math.abs(this.measureHeight - potentialHeight) < 5
|
1299
|
+
? this.measureHeight
|
1300
|
+
: potentialHeight;
|
1301
|
+
this.unitHeight =
|
1302
|
+
el.querySelector('tr')?.getBoundingClientRect().height || this.unitHeight;
|
1303
|
+
}
|
1304
|
+
unitHeight = 0;
|
1305
|
+
get scrollParent() {
|
1306
|
+
return this._scrollParent;
|
1307
|
+
}
|
1308
|
+
set scrollParent(ele) {
|
1309
|
+
if (ele === this._scrollParent)
|
1310
|
+
return;
|
1311
|
+
if (this._scrollParent) {
|
1312
|
+
(this._scrollParent === document.documentElement
|
1313
|
+
? document
|
1314
|
+
: this._scrollParent).removeEventListener('scroll', this.scrollHandler);
|
1315
|
+
}
|
1316
|
+
(ele === document.documentElement ? document : ele).addEventListener('scroll', this.scrollHandler);
|
1317
|
+
this._scrollParent = ele;
|
1318
|
+
}
|
1319
|
+
_scrollParent;
|
1320
|
+
// used to fire `nanoTblBlockRendered` on block render change
|
1321
|
+
get primaryBlockIndex() {
|
1322
|
+
return this._primaryBlockIndex;
|
1323
|
+
}
|
1324
|
+
set primaryBlockIndex(blockIndex) {
|
1325
|
+
if (this._primaryBlockIndex === blockIndex)
|
1326
|
+
return;
|
1327
|
+
this._primaryBlockIndex = blockIndex;
|
1328
|
+
// fire block change event
|
1329
|
+
this.nanoTblBlockRendered.emit({
|
1330
|
+
block: blockIndex,
|
1331
|
+
totalBlocks: this.blockElements.length,
|
1332
|
+
});
|
1333
|
+
}
|
1334
|
+
_primaryBlockIndex;
|
1335
|
+
// Misc.
|
1336
|
+
get isReady() {
|
1337
|
+
return this._isReady;
|
1338
|
+
}
|
1339
|
+
set isReady(ready) {
|
1340
|
+
if (ready === this._isReady)
|
1341
|
+
return;
|
1342
|
+
this._isReady = ready;
|
1343
|
+
if (this.isReady)
|
1344
|
+
requestAnimationFrame(() => this.handleReady());
|
1345
|
+
}
|
1346
|
+
_isReady = false;
|
1347
|
+
// Private Logic
|
1348
|
+
// Listeners
|
1349
|
+
handleReady() {
|
1350
|
+
const hash = window.location.hash;
|
1351
|
+
if (hash.length > 1) {
|
1352
|
+
try {
|
1353
|
+
const idRow = document.querySelector(hash);
|
1354
|
+
if (idRow)
|
1355
|
+
idRow.scrollIntoView();
|
1356
|
+
// eslint-disable-next-line no-empty
|
1357
|
+
}
|
1358
|
+
catch (_e) { }
|
1359
|
+
}
|
1360
|
+
this.nanoTblReady.emit();
|
1361
|
+
}
|
1362
|
+
/**
|
1363
|
+
* Start a sort - can be cancelled by `preventDefault`
|
1364
|
+
* @param order - column order
|
1365
|
+
* @param column - column config object
|
1366
|
+
* @returns A promise
|
1367
|
+
*/
|
1368
|
+
sortStart = async (order, column, element) => {
|
1369
|
+
// did order change?
|
1370
|
+
if (this.currentSort === order + ':' + column)
|
1371
|
+
return;
|
1372
|
+
this._loading = true;
|
1373
|
+
const sortEvent = this.nanoTblBeforeSort.emit({ column: column, order });
|
1374
|
+
if (sortEvent.defaultPrevented)
|
1375
|
+
return;
|
1376
|
+
this.currentSort = order + ':' + column;
|
1377
|
+
// doesn't make sense to leave user in place for a sort
|
1378
|
+
this.scrollToTop(element);
|
1379
|
+
if (this.customSortFn) {
|
1380
|
+
try {
|
1381
|
+
const res = await this.customSortFn(column, order);
|
1382
|
+
// if the response is 'true', the custom sort did it's thing
|
1383
|
+
// handover to finish and stop loading state.
|
1384
|
+
// if response is falsey, carry on to do a FE sort
|
1385
|
+
if (res === true) {
|
1386
|
+
this.sortComplete(order, column);
|
1387
|
+
this._loading = false;
|
1388
|
+
return;
|
1389
|
+
}
|
1390
|
+
}
|
1391
|
+
catch (e) {
|
1392
|
+
// if response errored, stop loading state
|
1393
|
+
// clear current sort cache
|
1394
|
+
console.warn('custom sort failed', e);
|
1395
|
+
this.currentSort = '';
|
1396
|
+
this._loading = false;
|
1397
|
+
return;
|
1398
|
+
}
|
1399
|
+
}
|
1400
|
+
try {
|
1401
|
+
await storeSort(this.host, column, order);
|
1402
|
+
this.sortComplete(order, column);
|
1403
|
+
}
|
1404
|
+
catch (e) {
|
1405
|
+
console.warn('sort failed', e);
|
1406
|
+
this.currentSort = '';
|
1407
|
+
}
|
1408
|
+
finally {
|
1409
|
+
if (this.blocks.length)
|
1410
|
+
this._loading = false;
|
1411
|
+
}
|
1412
|
+
};
|
1413
|
+
/**
|
1414
|
+
* Complete a sort. Reflects the order to ui.
|
1415
|
+
* @param order - column order
|
1416
|
+
* @param column - column config object
|
1417
|
+
*/
|
1418
|
+
sortComplete(order, column) {
|
1419
|
+
this.columns = this.columns.map((c) => {
|
1420
|
+
if (c.prop === column)
|
1421
|
+
return { ...c, order };
|
1422
|
+
return { ...c, order: null };
|
1423
|
+
});
|
1424
|
+
this.nanoTblAfterSort.emit({ column: column, order });
|
1425
|
+
}
|
1426
|
+
async searchStart() {
|
1427
|
+
this._loading = true;
|
1428
|
+
const sortEvent = this.nanoTblBeforeSearch.emit({ term: this.searchTerm });
|
1429
|
+
if (sortEvent.defaultPrevented)
|
1430
|
+
return;
|
1431
|
+
// doesn't make sense to leave user in place for a search
|
1432
|
+
this.scrollToTop();
|
1433
|
+
try {
|
1434
|
+
await storeSearch(this.host, this.searchTerm);
|
1435
|
+
this.nanoTblAfterSearch.emit({ term: this.searchTerm });
|
1436
|
+
}
|
1437
|
+
catch (e) {
|
1438
|
+
console.warn('search failed', e);
|
1439
|
+
}
|
1440
|
+
finally {
|
1441
|
+
this._loading = false;
|
1442
|
+
}
|
1443
|
+
}
|
1444
|
+
async filterStart(filters, additive = true) {
|
1445
|
+
if (filters) {
|
1446
|
+
if (additive) {
|
1447
|
+
this.filters = [
|
1448
|
+
...this.filters.filter((f) => !filters.find((ff) => ff.prop === f.prop)),
|
1449
|
+
...filters,
|
1450
|
+
];
|
1451
|
+
}
|
1452
|
+
else {
|
1453
|
+
this.filters = filters;
|
1454
|
+
}
|
1455
|
+
}
|
1456
|
+
if (this.currentFilters === JSON.stringify(this.filters))
|
1457
|
+
return;
|
1458
|
+
this._loading = true;
|
1459
|
+
const sortEvent = this.nanoTblBeforeFilter.emit({ filters: this.filters });
|
1460
|
+
if (sortEvent.defaultPrevented)
|
1461
|
+
return;
|
1462
|
+
this.currentFilters = JSON.stringify(this.filters);
|
1463
|
+
// doesn't make sense to leave user in place for a search
|
1464
|
+
this.scrollToTop();
|
1465
|
+
if (this.customFilterFn) {
|
1466
|
+
try {
|
1467
|
+
const res = await this.customFilterFn(this.filters);
|
1468
|
+
// if the response is 'true', the custom filter did it's thing
|
1469
|
+
// handover to finish and stop loading state.
|
1470
|
+
// if response is falsy, carry on to do a FE filter
|
1471
|
+
if (res === true) {
|
1472
|
+
this.customFilterApplied = true;
|
1473
|
+
await this.filterComplete();
|
1474
|
+
this._loading = false;
|
1475
|
+
return;
|
1476
|
+
}
|
1477
|
+
}
|
1478
|
+
catch (e) {
|
1479
|
+
// if response errored, stop loading state
|
1480
|
+
// clear current sort cache
|
1481
|
+
console.warn('custom filter failed', e);
|
1482
|
+
this.currentFilters = '';
|
1483
|
+
this._loading = false;
|
1484
|
+
return;
|
1485
|
+
}
|
1486
|
+
}
|
1487
|
+
try {
|
1488
|
+
await this.filterComplete();
|
1489
|
+
}
|
1490
|
+
catch (e) {
|
1491
|
+
console.warn('filter failed', e);
|
1492
|
+
}
|
1493
|
+
finally {
|
1494
|
+
this._loading = false;
|
1495
|
+
}
|
1496
|
+
}
|
1497
|
+
async filterComplete() {
|
1498
|
+
this.columns = this.columns.map((c) => {
|
1499
|
+
const cFilter = this.filters.find((f) => f.prop === c.prop);
|
1500
|
+
// if we found a filter AND
|
1501
|
+
// it isn't true / false and has a length OR
|
1502
|
+
// it is true or false
|
1503
|
+
if (cFilter &&
|
1504
|
+
((typeof cFilter.filter !== 'boolean' && cFilter.filter.length) ||
|
1505
|
+
typeof cFilter.filter === 'boolean'))
|
1506
|
+
c.filter = cFilter.filter;
|
1507
|
+
// if a filter value is not set OR
|
1508
|
+
// it isn't true / false and has no length
|
1509
|
+
else if ((c.filter !== null && c.filter !== undefined) ||
|
1510
|
+
(!!c.filter && typeof c.filter !== 'boolean' && !c.filter.length))
|
1511
|
+
c.filter = undefined;
|
1512
|
+
return c;
|
1513
|
+
});
|
1514
|
+
await storeFilter(this.host, this.filters);
|
1515
|
+
this.nanoTblAfterFilter.emit({ filters: this.filters });
|
1516
|
+
}
|
1517
|
+
/** Scrolls to the top immediately - used whilst sorting / filtering */
|
1518
|
+
scrollToTop(element) {
|
1519
|
+
if (!this.scrollParent)
|
1520
|
+
return;
|
1521
|
+
const scrollBehaviour = this.scrollParent.style?.scrollBehavior;
|
1522
|
+
const scrollX = this.scrollParent.scrollLeft;
|
1523
|
+
this.scrollParent.style.scrollBehavior = 'auto';
|
1524
|
+
if (this.topAnchorEle && !scroll.isInViewport(this.topAnchorEle, 0.1)) {
|
1525
|
+
this.host.scrollIntoView();
|
1526
|
+
}
|
1527
|
+
if (element && !scroll.isInViewport(element, 1))
|
1528
|
+
setTimeout(() => element.scrollIntoView({ block: 'start' }), 500);
|
1529
|
+
if (scrollX)
|
1530
|
+
this.scrollParent.scrollLeft = scrollX;
|
1531
|
+
if (scrollBehaviour)
|
1532
|
+
this.scrollParent.style.scrollBehavior = scrollBehaviour;
|
1533
|
+
this.scrollHandler();
|
1534
|
+
}
|
1535
|
+
setMeasureElement() {
|
1536
|
+
return new Promise((resolve) => {
|
1537
|
+
index.readTask(() => {
|
1538
|
+
this.measureEle = this.blockElements.find((b) => !b?.classList?.contains(`${CSSNAMESPACE}__inactive`));
|
1539
|
+
resolve();
|
1540
|
+
});
|
1541
|
+
});
|
1542
|
+
}
|
1543
|
+
/**
|
1544
|
+
* Makes sure we have dimensions on at least one, active tbody element.
|
1545
|
+
* We'll use this is a yard stick for inactive tbody elements in future.
|
1546
|
+
* These elements have no natural height (on account of all their rows being hidden)
|
1547
|
+
*/
|
1548
|
+
setInitialBlockDimension() {
|
1549
|
+
if (!this.blockElements?.length)
|
1550
|
+
return;
|
1551
|
+
const testForDimensions = async () => {
|
1552
|
+
await this.setMeasureElement();
|
1553
|
+
if (this.unitHeight)
|
1554
|
+
return true;
|
1555
|
+
return false;
|
1556
|
+
};
|
1557
|
+
const dimensionsReady = new Promise((resolve) => {
|
1558
|
+
testForDimensions().then(async (ready) => {
|
1559
|
+
if (ready)
|
1560
|
+
resolve();
|
1561
|
+
else {
|
1562
|
+
// it's likely this table is hidden in the dom.
|
1563
|
+
// we need to wait until it's visible
|
1564
|
+
const observer = new IntersectionObserver(async () => {
|
1565
|
+
if (await testForDimensions()) {
|
1566
|
+
resolve();
|
1567
|
+
observer.disconnect();
|
1568
|
+
}
|
1569
|
+
}, { root: this.scrollParent });
|
1570
|
+
observer.observe(this.tableEle);
|
1571
|
+
}
|
1572
|
+
});
|
1573
|
+
});
|
1574
|
+
// we're all finished.
|
1575
|
+
dimensionsReady.then(() => {
|
1576
|
+
requestAnimationFrame(() => (this.isReady = true));
|
1577
|
+
});
|
1578
|
+
}
|
1579
|
+
/** Apply initial columns settings */
|
1580
|
+
async columnInit() {
|
1581
|
+
this.filters = this.columns
|
1582
|
+
.filter((c) => c.filter !== undefined && c.filter !== null)
|
1583
|
+
.map((c) => {
|
1584
|
+
const { filter, prop } = c;
|
1585
|
+
return { prop, filter };
|
1586
|
+
});
|
1587
|
+
if (this.searchTerm) {
|
1588
|
+
await this.searchStart();
|
1589
|
+
}
|
1590
|
+
if (this.filters.length) {
|
1591
|
+
await this.filterStart();
|
1592
|
+
}
|
1593
|
+
// apply sort
|
1594
|
+
const col = this.columns.find((c) => !!c.order);
|
1595
|
+
if (col) {
|
1596
|
+
await this.sortStart(col.order, col.prop);
|
1597
|
+
}
|
1598
|
+
if (this.tablePinnedService)
|
1599
|
+
this.tablePinnedService.assessCols();
|
1600
|
+
}
|
1601
|
+
/** Split up all incoming rows into 'blocks' split amongst tbody elements.
|
1602
|
+
* These can then be hidden / shown to improve performance.
|
1603
|
+
*/
|
1604
|
+
setBlocks() {
|
1605
|
+
const dRows = this.store.data.state.rows;
|
1606
|
+
if (!dRows.length) {
|
1607
|
+
this.blocks = [];
|
1608
|
+
return;
|
1609
|
+
}
|
1610
|
+
// this.ignoreIO = true;
|
1611
|
+
let i = 1;
|
1612
|
+
const l = this.virtualTotalItems > dRows.length
|
1613
|
+
? this.virtualTotalItems
|
1614
|
+
: dRows.length;
|
1615
|
+
let rows = [];
|
1616
|
+
const blocks = [];
|
1617
|
+
// old skool loop for perf
|
1618
|
+
for (i; i <= l; i++) {
|
1619
|
+
rows.push(this.store.data.state.rows[i - 1] || { __uuid: '' });
|
1620
|
+
if (i % this.perBlock === 0) {
|
1621
|
+
// assign a UUID for the whole block
|
1622
|
+
// for block diffing
|
1623
|
+
blocks.push({ rows, __uuid: math.cyrb53(rows.map((b) => b.__uuid).join()) });
|
1624
|
+
rows = [];
|
1625
|
+
}
|
1626
|
+
}
|
1627
|
+
// any leftover rows
|
1628
|
+
if (rows.length) {
|
1629
|
+
blocks.push({ rows, __uuid: math.cyrb53(rows.map((b) => b.__uuid).join()) });
|
1630
|
+
}
|
1631
|
+
this.blocks = blocks;
|
1632
|
+
}
|
1633
|
+
/**
|
1634
|
+
* Returns a block render height.
|
1635
|
+
* If it's currently active - let auto do it's thing
|
1636
|
+
* If we've rendered it before - return that
|
1637
|
+
* If all else fails, let's guess it
|
1638
|
+
* @param blockIndex
|
1639
|
+
* @returns a height string (incl px)
|
1640
|
+
*/
|
1641
|
+
getBlockHeight(blockIndex) {
|
1642
|
+
if (this.blockHeights.length) {
|
1643
|
+
const cachedBlockHeight = this.blockHeights.find((bh) => bh.blockIndex === blockIndex);
|
1644
|
+
if (cachedBlockHeight && cachedBlockHeight.height)
|
1645
|
+
return cachedBlockHeight.height;
|
1646
|
+
}
|
1647
|
+
const blockLength = this.blocks[blockIndex].rows.length;
|
1648
|
+
if (blockLength === this.perBlock && this.measureHeight) {
|
1649
|
+
return this.measureHeight;
|
1650
|
+
}
|
1651
|
+
return this.unitHeight ? this.unitHeight * blockLength : 100;
|
1652
|
+
}
|
1653
|
+
/** cache the height for all active blocks for later renders */
|
1654
|
+
setBlockHeight() {
|
1655
|
+
this.activeBlocks.forEach((blockIndex) => {
|
1656
|
+
const el = this.blockElements[blockIndex];
|
1657
|
+
if (!el)
|
1658
|
+
return;
|
1659
|
+
index.readTask(() => {
|
1660
|
+
if (el.classList.contains(`${CSSNAMESPACE}__inactive`))
|
1661
|
+
return;
|
1662
|
+
const height = el.getBoundingClientRect().height;
|
1663
|
+
// cache height to our block heights array
|
1664
|
+
// for subsequent renders
|
1665
|
+
const fBhIdx = this.blockHeights.findIndex((bh) => bh.blockIndex === blockIndex);
|
1666
|
+
if (fBhIdx > -1) {
|
1667
|
+
this.blockHeights[fBhIdx] = { height, blockIndex };
|
1668
|
+
}
|
1669
|
+
else
|
1670
|
+
this.blockHeights.push({ height, blockIndex });
|
1671
|
+
});
|
1672
|
+
});
|
1673
|
+
}
|
1674
|
+
/**
|
1675
|
+
* On scroll, loop through all blocks' heights and cumulatively, add them together.
|
1676
|
+
* When we find that the scroll position is less than this cumulative block height -
|
1677
|
+
* stop loop - it's on the current active block.
|
1678
|
+
*/
|
1679
|
+
scrollHandler = () => {
|
1680
|
+
let scrollPos = 0;
|
1681
|
+
// don't listen if this table isn't in the viewport
|
1682
|
+
if (!this.store?.general.state.isActive || !this.rows)
|
1683
|
+
return;
|
1684
|
+
if (this.primaryBlockIndex === undefined)
|
1685
|
+
this.primaryBlockIndex = 0;
|
1686
|
+
index.readTask(() => {
|
1687
|
+
scrollPos =
|
1688
|
+
typeof this.scrollParent.scrollTop !== 'undefined'
|
1689
|
+
? this.scrollParent.scrollTop
|
1690
|
+
: window.scrollY;
|
1691
|
+
scrollPos += this.host.offsetTop;
|
1692
|
+
if (this.tablePinnedService) {
|
1693
|
+
this.tablePinnedService.onScroll({
|
1694
|
+
x: typeof this.scrollParent.scrollLeft !== 'undefined'
|
1695
|
+
? this.scrollParent.scrollLeft
|
1696
|
+
: window.scrollX,
|
1697
|
+
y: scrollPos,
|
1698
|
+
});
|
1699
|
+
}
|
1700
|
+
let cumulativeHeight = this.host.offsetTop;
|
1701
|
+
let blockIndex = 0;
|
1702
|
+
const blockLen = this.blocks.length;
|
1703
|
+
while (blockIndex < blockLen && scrollPos >= cumulativeHeight) {
|
1704
|
+
cumulativeHeight += this.getBlockHeight(blockIndex);
|
1705
|
+
if (scrollPos < cumulativeHeight) {
|
1706
|
+
const potentialBlocks = [
|
1707
|
+
blockIndex,
|
1708
|
+
blockIndex + 1,
|
1709
|
+
// Math.max(0, blockIndex - 1),
|
1710
|
+
];
|
1711
|
+
if (potentialBlocks.toString() !== this.activeBlocks.toString()) {
|
1712
|
+
this.activeBlocks = potentialBlocks;
|
1713
|
+
}
|
1714
|
+
this.primaryBlockIndex = blockIndex;
|
1715
|
+
}
|
1716
|
+
blockIndex++;
|
1717
|
+
}
|
1718
|
+
});
|
1719
|
+
};
|
1720
|
+
/** Process slotted content */
|
1721
|
+
processSlots() {
|
1722
|
+
// see if we have slot content
|
1723
|
+
if (!this.caption && !this.host.querySelector('[slot="caption"]')) {
|
1724
|
+
console.error('For accessibility you must set a `caption` prop or use the `caption` slot');
|
1725
|
+
}
|
1726
|
+
}
|
1727
|
+
/** Adds an IO. Makes sure our scroll listener is only active when
|
1728
|
+
* the table is in viewport */
|
1729
|
+
setupActiveWatcher() {
|
1730
|
+
if (!this.host || !this.scrollParent || !this.store)
|
1731
|
+
return;
|
1732
|
+
if (this.activeWatcherIo) {
|
1733
|
+
this.activeWatcherIo.disconnect();
|
1734
|
+
this.activeWatcherIo = undefined;
|
1735
|
+
}
|
1736
|
+
const io = (this.activeWatcherIo = new IntersectionObserver(([e]) => {
|
1737
|
+
if (e.isIntersecting)
|
1738
|
+
this.store.general.state.isActive = true;
|
1739
|
+
else
|
1740
|
+
this.store.general.state.isActive = false;
|
1741
|
+
}, { root: this.scrollParent, threshold: 0 }));
|
1742
|
+
io.observe(this.scrollable ? this.tableEle : this.host);
|
1743
|
+
}
|
1744
|
+
// Component lifecycle
|
1745
|
+
async componentWillLoad() {
|
1746
|
+
// setup stores
|
1747
|
+
this.store = await generateStore(this.host, this.columns, this.scrollParent, this.isReady);
|
1748
|
+
this.handleRowsChange();
|
1749
|
+
this.store.general.onChange('isActive', () => {
|
1750
|
+
this.scrollHandler();
|
1751
|
+
});
|
1752
|
+
this.store.data.onChange('rows', () => this.setBlocks());
|
1753
|
+
// setup dom and attach listeners
|
1754
|
+
this.processSlots();
|
1755
|
+
this.setBlocks();
|
1756
|
+
if (!this.scrollable) {
|
1757
|
+
this.scrollParent = scroll.findScrollParent(this.host);
|
1758
|
+
this.setupActiveWatcher();
|
1759
|
+
}
|
1760
|
+
}
|
1761
|
+
connectedCallback() {
|
1762
|
+
if (!this.scrollable) {
|
1763
|
+
this.scrollParent = scroll.findScrollParent(this.host);
|
1764
|
+
this.setupActiveWatcher();
|
1765
|
+
}
|
1766
|
+
}
|
1767
|
+
componentDidLoad() {
|
1768
|
+
this.setInitialBlockDimension();
|
1769
|
+
if (this.scrollable) {
|
1770
|
+
this.scrollParent = this.host
|
1771
|
+
.querySelector(renderer.transformTag('nano-masked-overflow'))
|
1772
|
+
.shadowRoot.querySelector('.onav__scroller');
|
1773
|
+
this.setupActiveWatcher();
|
1774
|
+
}
|
1775
|
+
if (!this.tablePinnedService) {
|
1776
|
+
this.tablePinnedService = new TablePinService(this.tableEle, this.scrollParent);
|
1777
|
+
}
|
1778
|
+
}
|
1779
|
+
componentShouldUpdate(_newVal, _oldVal, stateName) {
|
1780
|
+
// stop double rendering - we use the store for rendering internally
|
1781
|
+
// the public facing props are kept in-sync with the store
|
1782
|
+
// but we don't want it to cause renders
|
1783
|
+
if (['rows', 'columns'].includes(stateName))
|
1784
|
+
return false;
|
1785
|
+
}
|
1786
|
+
componentWillRender() {
|
1787
|
+
}
|
1788
|
+
componentDidRender() {
|
1789
|
+
this.setMeasureElement().then(() => this.setBlockHeight());
|
1790
|
+
}
|
1791
|
+
disconnectedCallback() {
|
1792
|
+
if (!this.activeWatcherIo)
|
1793
|
+
return;
|
1794
|
+
this.activeWatcherIo.disconnect();
|
1795
|
+
this.activeWatcherIo = undefined;
|
1796
|
+
(this.scrollParent === document.documentElement
|
1797
|
+
? document
|
1798
|
+
: this.scrollParent).removeEventListener('scroll', this.scrollHandler);
|
1799
|
+
}
|
1800
|
+
render() {
|
1801
|
+
this.blockElements = [];
|
1802
|
+
const Wrap = (content) => {
|
1803
|
+
return this.scrollable ? (renderer.h("nano-masked-overflow", { hideScrollbars: false, scrollControls: false, label: this.caption }, content)) : (renderer.h("div", null, content));
|
1804
|
+
};
|
1805
|
+
return (renderer.h(index.Host, { class: "nano-data-table" }, renderer.h("div", { class: `${CSSNAMESPACE}__top-anchor`, ref: (a) => (this.topAnchorEle = a) }, "\u00A0"), renderer.h("nano-resize-observe", { onNanoResize: () => {
|
1806
|
+
if (this.tablePinnedService)
|
1807
|
+
this.tablePinnedService.onResize();
|
1808
|
+
} }), Wrap(renderer.h("div", { class: `${CSSNAMESPACE}__wrap` }, renderer.h("nano-progress-bar", { indeterminate: true, class: {
|
1809
|
+
[`${CSSNAMESPACE}__progress-bar`]: true,
|
1810
|
+
[`${CSSNAMESPACE}__progress-bar--show`]: this._loading,
|
1811
|
+
} }), renderer.h("table", { "aria-rowcount": this.store.data.state.rows.length, "aria-colcount": this.store.config.state.columns.length, class: `${CSSNAMESPACE}`, ref: (tbl) => (this.tableEle = tbl), id: 'nano-data-table-' + this.renderId }, renderer.h("caption", { class: {
|
1812
|
+
[`${CSSNAMESPACE}__caption`]: true,
|
1813
|
+
[`${CSSNAMESPACE}__caption--hide`]: !this.showCaption,
|
1814
|
+
} }, renderer.h("slot", { name: "caption" }, this.caption)), renderer.h("thead", null, renderer.h(TableHeadFootRow, { rowRenderer: this.headRender }, this.store.config.state.columns.map((colModel) => [
|
1815
|
+
renderer.h(TableColHead, { column: colModel, headRenderer: this.headRender, onColumnSortClick: this.sortStart, defaults: {
|
1816
|
+
sortable: this.defaultSort,
|
1817
|
+
} }),
|
1818
|
+
]))), this._loading && !this.blocks.length && (renderer.h("tbody", { class: `${CSSNAMESPACE}__active ${CSSNAMESPACE}__loading` }, [...Array(this.placeholderSize).keys()].map((rowIndex) => (renderer.h("tr", null, this.store.config.state.columns.map((_colModel, colIndex) => (renderer.h(TableCell, { rowIndex: rowIndex, colIndex: colIndex, nestedContent: () => renderer.h("nano-skeleton", null) })))))))), renderer.h("tr", { hidden: !!this._loading || !!this.blocks.length }, renderer.h("th", { class: `${CSSNAMESPACE}__th`, colSpan: this.store.config.state.columns.length }, renderer.h("div", { class: "nano-tbl__cell-content nano-tbl__cell-content--no-result" }, renderer.h("slot", { name: "no-results" }, "No results found")))), this.blocks.map((block, blockIndex) => (renderer.h("tbody", { key: block.__uuid, id: `tbody-${this.renderId}-${blockIndex}`, ref: (tb) => {
|
1819
|
+
this.blockElements.push(tb);
|
1820
|
+
}, class: {
|
1821
|
+
[`${CSSNAMESPACE}__inactive`]: !this.activeBlocks.includes(blockIndex),
|
1822
|
+
[`${CSSNAMESPACE}__active`]: this.activeBlocks.includes(blockIndex),
|
1823
|
+
} }, this.activeBlocks.includes(blockIndex) ? (block.rows.map((row, i) => {
|
1824
|
+
const rowIndex = blockIndex > 0 ? blockIndex * this.perBlock + i : i;
|
1825
|
+
return (renderer.h(TableRow, { rowRenderer: this.rowRender, rowModel: row, rowIndex: rowIndex }, this.store.config.state.columns.map((_colModel, colIndex) => (renderer.h(TableCell, { rowIndex: rowIndex, colIndex: colIndex })))));
|
1826
|
+
})) : (renderer.h("tr", { class: `${CSSNAMESPACE}__tr--placeholder` }, renderer.h("td", { colSpan: this.store.config.state.columns.length, style: {
|
1827
|
+
height: this.getBlockHeight(blockIndex) + 'px',
|
1828
|
+
} })))))), this.showFooter && (renderer.h("tfoot", null, renderer.h(TableHeadFootRow, { rowRenderer: this.footRender }, this.store.config.state.columns.map((colModel) => [
|
1829
|
+
renderer.h(TableColHead, { column: colModel, headRenderer: this.footRender, onColumnSortClick: this.sortStart, defaults: {
|
1830
|
+
sortable: this.defaultSort,
|
1831
|
+
} }),
|
1832
|
+
]))))), !!this.blocks.length && this.showPaginateSpinner && (renderer.h("nano-spinner", { type: "circle", class: {
|
1833
|
+
[`${CSSNAMESPACE}__spinner`]: true,
|
1834
|
+
[`${CSSNAMESPACE}__spinner--show`]: this._loading,
|
1835
|
+
} }))))));
|
1836
|
+
}
|
1837
|
+
static get watchers() { return {
|
1838
|
+
"rows": ["handleRowsChange"],
|
1839
|
+
"columns": ["handleColsChange"],
|
1840
|
+
"searchTerm": ["handleSearchTermChange"],
|
1841
|
+
"virtualTotalItems": ["virtualTotalItemsChangeHandler"]
|
1842
|
+
}; }
|
1843
|
+
};
|
1844
|
+
NanoDataTable.style = tableCss;
|
1845
|
+
|
1846
|
+
exports.NanoDataTable = NanoDataTable;
|
1847
|
+
exports.createWorker = createWorker;
|