@nanoporetech-digital/components 5.10.0 → 5.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +48 -0
- package/dist/cjs/{algolia-data-6841724e.js → algolia-data-dba27b97.js} +2 -2
- package/dist/cjs/{algolia-data-6841724e.js.map → algolia-data-dba27b97.js.map} +1 -1
- package/dist/cjs/{algoliasearch-lite.esm.browser-992a2eff.js → algoliasearch-lite.esm.browser-b74ca774.js} +30 -5
- package/dist/cjs/algoliasearch-lite.esm.browser-b74ca774.js.map +1 -0
- package/dist/cjs/{component-store-6d7b8855.js → component-store-149aeffe.js} +2 -2
- package/dist/cjs/{component-store-6d7b8855.js.map → component-store-149aeffe.js.map} +1 -1
- package/dist/cjs/fade-dcabf3c1.js +211 -0
- package/dist/cjs/fade-dcabf3c1.js.map +1 -0
- package/dist/cjs/{form-control-8db579a2.js → form-control-f100407e.js} +2 -2
- package/dist/cjs/{form-control-8db579a2.js.map → form-control-f100407e.js.map} +1 -1
- package/dist/cjs/fullscreen-d24940a1.js +133 -0
- package/dist/cjs/fullscreen-d24940a1.js.map +1 -0
- package/dist/cjs/{global-3a6a7873.js → global-a5710651.js} +7 -7
- package/dist/cjs/{global-3a6a7873.js.map → global-a5710651.js.map} +1 -1
- package/dist/cjs/{index-1d3ebe1a.js → index-14451c95.js} +8 -6
- package/dist/cjs/index-14451c95.js.map +1 -0
- package/dist/cjs/{index-0f470227.js → index-f6f89d47.js} +2 -2
- package/dist/cjs/{index-0f470227.js.map → index-f6f89d47.js.map} +1 -1
- package/dist/cjs/lazyload-f6be7590.js +95 -0
- package/dist/cjs/lazyload-f6be7590.js.map +1 -0
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/nano-accordion.cjs.entry.js +1 -1
- package/dist/cjs/nano-alert.cjs.entry.js +3 -3
- package/dist/cjs/nano-alert.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-filter.cjs.entry.js +3 -3
- package/dist/cjs/nano-algolia-filter.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-pagination.cjs.entry.js +2 -7
- package/dist/cjs/nano-algolia-pagination.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia-results.cjs.entry.js +2 -2
- package/dist/cjs/nano-algolia-results.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-algolia.cjs.entry.js +982 -26
- package/dist/cjs/nano-algolia.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-aspect-ratio.cjs.entry.js +1 -1
- package/dist/cjs/nano-checkbox-group.cjs.entry.js +10 -4
- package/dist/cjs/nano-checkbox-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-checkbox.cjs.entry.js +4 -2
- package/dist/cjs/nano-checkbox.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-components.cjs.js +4 -4
- package/dist/cjs/nano-components.cjs.js.map +1 -1
- package/dist/cjs/nano-datalist_3.cjs.entry.js +4 -4
- package/dist/cjs/nano-datalist_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-date-input.cjs.entry.js +1 -1
- package/dist/cjs/nano-date-picker.cjs.entry.js +2 -2
- package/dist/cjs/nano-date-picker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-demo.cjs.entry.js +1 -1
- package/dist/cjs/nano-details.cjs.entry.js +2 -2
- package/dist/cjs/nano-details.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dialog.cjs.entry.js +5 -5
- package/dist/cjs/nano-dialog.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-drawer.cjs.entry.js +5 -5
- package/dist/cjs/nano-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-dropdown.cjs.entry.js +1 -1
- package/dist/cjs/nano-dropdown.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-field-validator.cjs.entry.js +7 -5
- package/dist/cjs/nano-field-validator.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-file-upload.cjs.entry.js +2 -2
- package/dist/cjs/nano-file-upload.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js +4 -4
- package/dist/cjs/nano-global-nav-user-profile_3.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-nav.cjs.entry.js +122 -153
- package/dist/cjs/nano-global-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-global-search-results.cjs.entry.js +4 -4
- package/dist/cjs/nano-global-search-results.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-grid-item.cjs.entry.js +1 -1
- package/dist/cjs/nano-grid_2.cjs.entry.js +2 -2
- package/dist/cjs/nano-grid_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-hero.cjs.entry.js +2 -2
- package/dist/cjs/nano-hero.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-icon-button_2.cjs.entry.js +24 -4
- package/dist/cjs/nano-icon-button_2.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-icon.cjs.entry.js +4 -4
- package/dist/cjs/nano-icon.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-input.cjs.entry.js +3 -3
- package/dist/cjs/nano-input.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-menu-drawer.cjs.entry.js +2 -2
- package/dist/cjs/nano-menu-drawer.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-overflow-nav.cjs.entry.js +2 -2
- package/dist/cjs/nano-overflow-nav.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/nano-progress-bar.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-range.cjs.entry.js +2 -2
- package/dist/cjs/nano-range.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-rating.cjs.entry.js +2 -2
- package/dist/cjs/nano-rating.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-resize-observe_2.cjs.entry.js +1 -1
- package/dist/cjs/nano-slide.cjs.entry.js +1 -1
- package/dist/cjs/nano-slides-2f3dcc02.js +2975 -0
- package/dist/cjs/nano-slides-2f3dcc02.js.map +1 -0
- package/dist/cjs/nano-slides.cjs.entry.js +3 -4292
- package/dist/cjs/nano-slides.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-sortable.cjs.entry.js +1 -1
- package/dist/cjs/nano-spinner.cjs.entry.js +2 -2
- package/dist/cjs/nano-spinner.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-split-pane.cjs.entry.js +1 -1
- package/dist/cjs/nano-sticker.cjs.entry.js +3 -2
- package/dist/cjs/nano-sticker.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab-content.cjs.entry.js +1 -1
- package/dist/cjs/nano-tab-group.cjs.entry.js +4 -4
- package/dist/cjs/nano-tab-group.cjs.entry.js.map +1 -1
- package/dist/cjs/nano-tab.cjs.entry.js +2 -2
- package/dist/cjs/nano-tab.cjs.entry.js.map +1 -1
- package/dist/cjs/{nano-table-72d5dc63.js → nano-table-bbd65636.js} +5 -5
- package/dist/cjs/{nano-table-72d5dc63.js.map → nano-table-bbd65636.js.map} +1 -1
- package/dist/cjs/nano-table.cjs.entry.js +3 -3
- package/dist/cjs/page-dots-ae2cefb4.js +140 -0
- package/dist/cjs/page-dots-ae2cefb4.js.map +1 -0
- package/dist/cjs/{scroll-fc1b8387.js → scroll-e8c21f80.js} +8 -4
- package/dist/cjs/scroll-e8c21f80.js.map +1 -0
- package/dist/cjs/{table.worker-3df34efe.js → table.worker-ea98a8dd.js} +4 -4
- package/dist/cjs/table.worker-ea98a8dd.js.map +1 -0
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/alert/alert.css +1 -2
- package/dist/collection/components/algolia/algolia-data.js.map +1 -1
- package/dist/collection/components/algolia/algolia-filter.js.map +1 -1
- package/dist/collection/components/algolia/algolia-pagination.js +0 -5
- package/dist/collection/components/algolia/algolia-pagination.js.map +1 -1
- package/dist/collection/components/algolia/algolia-results.js.map +1 -1
- package/dist/collection/components/algolia/algolia.js +4 -27
- package/dist/collection/components/algolia/algolia.js.map +1 -1
- package/dist/collection/components/algolia/lib/squirrelly/browser.js +10 -0
- package/dist/collection/components/algolia/lib/squirrelly/browser.js.map +1 -0
- package/dist/collection/components/algolia/lib/squirrelly/compile-string.js +151 -0
- package/dist/collection/components/algolia/lib/squirrelly/compile-string.js.map +1 -0
- package/dist/collection/components/algolia/lib/squirrelly/compile.js +44 -0
- package/dist/collection/components/algolia/lib/squirrelly/compile.js.map +1 -0
- package/dist/collection/components/algolia/lib/squirrelly/config.js +68 -0
- package/dist/collection/components/algolia/lib/squirrelly/config.js.map +1 -0
- package/dist/collection/components/algolia/lib/squirrelly/container-utils.js +57 -0
- package/dist/collection/components/algolia/lib/squirrelly/container-utils.js.map +1 -0
- package/dist/collection/components/algolia/lib/squirrelly/containers.js +128 -0
- package/dist/collection/components/algolia/lib/squirrelly/containers.js.map +1 -0
- package/dist/collection/components/algolia/lib/squirrelly/err.js +39 -0
- package/dist/collection/components/algolia/lib/squirrelly/err.js.map +1 -0
- package/dist/collection/components/algolia/lib/squirrelly/parse.js +327 -0
- package/dist/collection/components/algolia/lib/squirrelly/parse.js.map +1 -0
- package/dist/collection/components/algolia/lib/squirrelly/render.js +62 -0
- package/dist/collection/components/algolia/lib/squirrelly/render.js.map +1 -0
- package/dist/collection/components/algolia/lib/squirrelly/storage.js +32 -0
- package/dist/collection/components/algolia/lib/squirrelly/storage.js.map +1 -0
- package/dist/collection/components/algolia/lib/squirrelly/utils.js +102 -0
- package/dist/collection/components/algolia/lib/squirrelly/utils.js.map +1 -0
- package/dist/collection/{utils → components/algolia/lib}/template.js +1 -2
- package/dist/collection/components/algolia/lib/template.js.map +1 -0
- package/dist/collection/components/checkbox/checkbox-group.css +17 -15
- package/dist/collection/components/checkbox/checkbox-group.js +29 -2
- package/dist/collection/components/checkbox/checkbox-group.js.map +1 -1
- package/dist/collection/components/checkbox/checkbox.css +20 -22
- package/dist/collection/components/checkbox/checkbox.js +2 -0
- package/dist/collection/components/checkbox/checkbox.js.map +1 -1
- package/dist/collection/components/date-picker/date-picker.css +5 -10
- package/dist/collection/components/details/details.css +4 -4
- package/dist/collection/components/dialog/dialog.css +3 -6
- package/dist/collection/components/dialog/dialog.js +1 -1
- package/dist/collection/components/dialog/dialog.js.map +1 -1
- package/dist/collection/components/drawer/drawer.css +18 -24
- package/dist/collection/components/drawer/drawer.js +1 -1
- package/dist/collection/components/drawer/drawer.js.map +1 -1
- package/dist/collection/components/dropdown/dropdown.js +1 -1
- package/dist/collection/components/dropdown/dropdown.js.map +1 -1
- package/dist/collection/components/field-validator/field-validator.js +5 -3
- package/dist/collection/components/field-validator/field-validator.js.map +1 -1
- package/dist/collection/components/file-upload/file-upload.css +16 -30
- package/dist/collection/components/global-nav/global-nav.js +118 -157
- package/dist/collection/components/global-nav/global-nav.js.map +1 -1
- package/dist/collection/components/global-nav/style/global-nav.css +97 -138
- package/dist/collection/components/global-search-results/global-search-results.css +85 -127
- package/dist/collection/components/global-search-results/global-search-results.js +2 -2
- package/dist/collection/components/global-search-results/global-search-results.js.map +1 -1
- package/dist/collection/components/hero/hero.css +13 -26
- package/dist/collection/components/icon/icon.css +6 -6
- package/dist/collection/components/icon/icon.js +2 -2
- package/dist/collection/components/icon/icon.js.map +1 -1
- package/dist/collection/components/img/img.css +7 -17
- package/dist/collection/components/input/input.css +15 -36
- package/dist/collection/components/menu/menu.css +1 -1
- package/dist/collection/components/menu/menu.js +1 -1
- package/dist/collection/components/menu/menu.js.map +1 -1
- package/dist/collection/components/menu-drawer/menu-drawer.css +5 -14
- package/dist/collection/components/nav-item/nav-item.css +25 -46
- package/dist/collection/components/option/option.css +3 -5
- package/dist/collection/components/overflow-nav/overflow-nav.css +16 -27
- package/dist/collection/components/progress-bar/progress-bar.css +2 -2
- package/dist/collection/components/range/range.css +17 -19
- package/dist/collection/components/rating/rating.css +2 -8
- package/dist/collection/components/select/select.css +30 -53
- package/dist/collection/components/slides/lib/js/animate.js +29 -54
- package/dist/collection/components/slides/lib/js/animate.js.map +1 -0
- package/dist/collection/components/slides/lib/js/cell.js +12 -24
- package/dist/collection/components/slides/lib/js/cell.js.map +1 -0
- package/dist/collection/components/slides/lib/js/drag.js +65 -116
- package/dist/collection/components/slides/lib/js/drag.js.map +1 -0
- package/dist/collection/components/slides/lib/js/fade.js +52 -79
- package/dist/collection/components/slides/lib/js/fade.js.map +1 -0
- package/dist/collection/components/slides/lib/js/flickity.js +118 -206
- package/dist/collection/components/slides/lib/js/flickity.js.map +1 -0
- package/dist/collection/components/slides/lib/js/fullscreen.js +21 -40
- package/dist/collection/components/slides/lib/js/fullscreen.js.map +1 -0
- package/dist/collection/components/slides/lib/js/index.js +4 -6
- package/dist/collection/components/slides/lib/js/index.js.map +1 -0
- package/dist/collection/components/slides/lib/js/lazyload.js +21 -36
- package/dist/collection/components/slides/lib/js/lazyload.js.map +1 -0
- package/dist/collection/components/slides/lib/js/page-dots.js +21 -45
- package/dist/collection/components/slides/lib/js/page-dots.js.map +1 -0
- package/dist/collection/components/slides/lib/js/player.js +12 -40
- package/dist/collection/components/slides/lib/js/player.js.map +1 -0
- package/dist/collection/components/slides/lib/js/prev-next-button.js +24 -52
- package/dist/collection/components/slides/lib/js/prev-next-button.js.map +1 -0
- package/dist/collection/components/slides/lib/js/slide.js +10 -15
- package/dist/collection/components/slides/lib/js/slide.js.map +1 -0
- package/dist/collection/components/slides/lib/js/utils/event-emitter.js +75 -0
- package/dist/collection/components/slides/lib/js/utils/event-emitter.js.map +1 -0
- package/dist/collection/components/slides/lib/js/utils/gestures.js +436 -0
- package/dist/collection/components/slides/lib/js/utils/gestures.js.map +1 -0
- package/dist/collection/components/slides/lib/js/utils/get-size.js +160 -0
- package/dist/collection/components/slides/lib/js/utils/get-size.js.map +1 -0
- package/dist/collection/components/slides/lib/js/utils/utils.js +166 -0
- package/dist/collection/components/slides/lib/js/utils/utils.js.map +1 -0
- package/dist/collection/components/slides/slides.css +18 -19
- package/dist/collection/components/slides/slides.js +31 -5
- package/dist/collection/components/slides/slides.js.map +1 -1
- package/dist/collection/components/spinner/spinner.css +1 -2
- package/dist/collection/components/sticker/sticker.js +2 -1
- package/dist/collection/components/sticker/sticker.js.map +1 -1
- package/dist/collection/components/table/table.css +29 -48
- package/dist/collection/components/tabs/tab-group.css +10 -14
- package/dist/collection/components/tabs/tab.css +8 -18
- package/dist/collection/components/tooltip/tooltip.css +34 -31
- package/dist/collection/components/tooltip/tooltip.js +23 -3
- package/dist/collection/components/tooltip/tooltip.js.map +1 -1
- package/dist/collection/global/script/global.js +6 -6
- package/dist/collection/global/script/global.js.map +1 -1
- package/dist/collection/utils/scroll.js +7 -3
- package/dist/collection/utils/scroll.js.map +1 -1
- package/dist/components/algolia-data.js.map +1 -1
- package/dist/components/algolia.js +978 -23
- package/dist/components/algolia.js.map +1 -1
- package/dist/components/algoliasearch-lite.esm.browser.js +29 -4
- package/dist/components/algoliasearch-lite.esm.browser.js.map +1 -1
- package/dist/components/date-picker.js +1 -1
- package/dist/components/date-picker.js.map +1 -1
- package/dist/components/dropdown.js +1 -1
- package/dist/components/dropdown.js.map +1 -1
- package/dist/components/fade.js +208 -0
- package/dist/components/fade.js.map +1 -0
- package/dist/components/fullscreen.js +130 -0
- package/dist/components/fullscreen.js.map +1 -0
- package/dist/components/icon.js +3 -3
- package/dist/components/icon.js.map +1 -1
- package/dist/components/img.js +1 -1
- package/dist/components/img.js.map +1 -1
- package/dist/components/index.js +6 -6
- package/dist/components/index.js.map +1 -1
- package/dist/components/input.js +1 -1
- package/dist/components/input.js.map +1 -1
- package/dist/components/lazyload.js +92 -0
- package/dist/components/lazyload.js.map +1 -0
- package/dist/components/menu.js +2 -2
- package/dist/components/menu.js.map +1 -1
- package/dist/components/nano-alert.js +1 -1
- package/dist/components/nano-alert.js.map +1 -1
- package/dist/components/nano-algolia-filter.js.map +1 -1
- package/dist/components/nano-algolia-pagination.js +0 -5
- package/dist/components/nano-algolia-pagination.js.map +1 -1
- package/dist/components/nano-algolia-results.js.map +1 -1
- package/dist/components/nano-checkbox-group.js +10 -3
- package/dist/components/nano-checkbox-group.js.map +1 -1
- package/dist/components/nano-checkbox.js +3 -1
- package/dist/components/nano-checkbox.js.map +1 -1
- package/dist/components/nano-details.js +1 -1
- package/dist/components/nano-details.js.map +1 -1
- package/dist/components/nano-dialog.js +2 -2
- package/dist/components/nano-dialog.js.map +1 -1
- package/dist/components/nano-drawer.js +2 -2
- package/dist/components/nano-drawer.js.map +1 -1
- package/dist/components/nano-field-validator.js +5 -3
- package/dist/components/nano-field-validator.js.map +1 -1
- package/dist/components/nano-file-upload.js +1 -1
- package/dist/components/nano-file-upload.js.map +1 -1
- package/dist/components/nano-global-nav.js +119 -152
- package/dist/components/nano-global-nav.js.map +1 -1
- package/dist/components/nano-global-search-results.js +3 -3
- package/dist/components/nano-global-search-results.js.map +1 -1
- package/dist/components/nano-hero.js +1 -1
- package/dist/components/nano-hero.js.map +1 -1
- package/dist/components/nano-menu-drawer.js +1 -1
- package/dist/components/nano-menu-drawer.js.map +1 -1
- package/dist/components/nano-overflow-nav.js +1 -1
- package/dist/components/nano-overflow-nav.js.map +1 -1
- package/dist/components/nano-range.js +1 -1
- package/dist/components/nano-range.js.map +1 -1
- package/dist/components/nano-rating.js +1 -1
- package/dist/components/nano-rating.js.map +1 -1
- package/dist/components/nano-slides.js +760 -2090
- package/dist/components/nano-slides.js.map +1 -1
- package/dist/components/nano-tab-group.js +1 -1
- package/dist/components/nano-tab-group.js.map +1 -1
- package/dist/components/nano-tab.js +1 -1
- package/dist/components/nano-tab.js.map +1 -1
- package/dist/components/nav-item.js +1 -1
- package/dist/components/nav-item.js.map +1 -1
- package/dist/components/option.js +1 -1
- package/dist/components/option.js.map +1 -1
- package/dist/components/page-dots.js +137 -0
- package/dist/components/page-dots.js.map +1 -0
- package/dist/components/progress-bar.js +1 -1
- package/dist/components/progress-bar.js.map +1 -1
- package/dist/components/scroll.js +7 -3
- package/dist/components/scroll.js.map +1 -1
- package/dist/components/select.js +1 -1
- package/dist/components/select.js.map +1 -1
- package/dist/components/spinner.js +1 -1
- package/dist/components/spinner.js.map +1 -1
- package/dist/components/sticker.js +2 -1
- package/dist/components/sticker.js.map +1 -1
- package/dist/components/table.js +1 -1
- package/dist/components/table.js.map +1 -1
- package/dist/components/tooltip.js +24 -4
- package/dist/components/tooltip.js.map +1 -1
- package/dist/esm/{algolia-data-ebf2a439.js → algolia-data-1b42827c.js} +2 -2
- package/dist/esm/{algolia-data-ebf2a439.js.map → algolia-data-1b42827c.js.map} +1 -1
- package/dist/esm/{algoliasearch-lite.esm.browser-04891fdc.js → algoliasearch-lite.esm.browser-d71a28dc.js} +30 -5
- package/dist/esm/algoliasearch-lite.esm.browser-d71a28dc.js.map +1 -0
- package/dist/esm/{component-store-54df2005.js → component-store-f7eb0a56.js} +2 -2
- package/dist/esm/{component-store-54df2005.js.map → component-store-f7eb0a56.js.map} +1 -1
- package/dist/esm/fade-1aa7a6db.js +209 -0
- package/dist/esm/fade-1aa7a6db.js.map +1 -0
- package/dist/esm/{form-control-eb06e009.js → form-control-881fa3af.js} +2 -2
- package/dist/esm/{form-control-eb06e009.js.map → form-control-881fa3af.js.map} +1 -1
- package/dist/esm/fullscreen-86fa276a.js +131 -0
- package/dist/esm/fullscreen-86fa276a.js.map +1 -0
- package/dist/esm/{global-f6e05656.js → global-be484e8c.js} +7 -7
- package/dist/esm/{global-f6e05656.js.map → global-be484e8c.js.map} +1 -1
- package/dist/esm/{index-e8891229.js → index-3003356f.js} +2 -2
- package/dist/esm/{index-e8891229.js.map → index-3003356f.js.map} +1 -1
- package/dist/esm/{index-06666022.js → index-9695db0a.js} +8 -6
- package/dist/esm/index-9695db0a.js.map +1 -0
- package/dist/esm/lazyload-994232a6.js +93 -0
- package/dist/esm/lazyload-994232a6.js.map +1 -0
- package/dist/esm/loader.js +5 -5
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/nano-accordion.entry.js +1 -1
- package/dist/esm/nano-alert.entry.js +3 -3
- package/dist/esm/nano-alert.entry.js.map +1 -1
- package/dist/esm/nano-algolia-filter.entry.js +3 -3
- package/dist/esm/nano-algolia-filter.entry.js.map +1 -1
- package/dist/esm/nano-algolia-pagination.entry.js +2 -7
- package/dist/esm/nano-algolia-pagination.entry.js.map +1 -1
- package/dist/esm/nano-algolia-results.entry.js +2 -2
- package/dist/esm/nano-algolia-results.entry.js.map +1 -1
- package/dist/esm/nano-algolia.entry.js +982 -26
- package/dist/esm/nano-algolia.entry.js.map +1 -1
- package/dist/esm/nano-aspect-ratio.entry.js +1 -1
- package/dist/esm/nano-checkbox-group.entry.js +10 -4
- package/dist/esm/nano-checkbox-group.entry.js.map +1 -1
- package/dist/esm/nano-checkbox.entry.js +4 -2
- package/dist/esm/nano-checkbox.entry.js.map +1 -1
- package/dist/esm/nano-components.js +5 -5
- package/dist/esm/nano-components.js.map +1 -1
- package/dist/esm/nano-datalist_3.entry.js +4 -4
- package/dist/esm/nano-datalist_3.entry.js.map +1 -1
- package/dist/esm/nano-date-input.entry.js +1 -1
- package/dist/esm/nano-date-picker.entry.js +2 -2
- package/dist/esm/nano-date-picker.entry.js.map +1 -1
- package/dist/esm/nano-demo.entry.js +1 -1
- package/dist/esm/nano-details.entry.js +2 -2
- package/dist/esm/nano-details.entry.js.map +1 -1
- package/dist/esm/nano-dialog.entry.js +5 -5
- package/dist/esm/nano-dialog.entry.js.map +1 -1
- package/dist/esm/nano-drawer.entry.js +5 -5
- package/dist/esm/nano-drawer.entry.js.map +1 -1
- package/dist/esm/nano-dropdown.entry.js +1 -1
- package/dist/esm/nano-dropdown.entry.js.map +1 -1
- package/dist/esm/nano-field-validator.entry.js +7 -5
- package/dist/esm/nano-field-validator.entry.js.map +1 -1
- package/dist/esm/nano-file-upload.entry.js +2 -2
- package/dist/esm/nano-file-upload.entry.js.map +1 -1
- package/dist/esm/nano-global-nav-user-profile_3.entry.js +4 -4
- package/dist/esm/nano-global-nav-user-profile_3.entry.js.map +1 -1
- package/dist/esm/nano-global-nav.entry.js +122 -153
- package/dist/esm/nano-global-nav.entry.js.map +1 -1
- package/dist/esm/nano-global-search-results.entry.js +4 -4
- package/dist/esm/nano-global-search-results.entry.js.map +1 -1
- package/dist/esm/nano-grid-item.entry.js +1 -1
- package/dist/esm/nano-grid_2.entry.js +2 -2
- package/dist/esm/nano-grid_2.entry.js.map +1 -1
- package/dist/esm/nano-hero.entry.js +2 -2
- package/dist/esm/nano-hero.entry.js.map +1 -1
- package/dist/esm/nano-icon-button_2.entry.js +24 -4
- package/dist/esm/nano-icon-button_2.entry.js.map +1 -1
- package/dist/esm/nano-icon.entry.js +4 -4
- package/dist/esm/nano-icon.entry.js.map +1 -1
- package/dist/esm/nano-input.entry.js +3 -3
- package/dist/esm/nano-input.entry.js.map +1 -1
- package/dist/esm/nano-menu-drawer.entry.js +2 -2
- package/dist/esm/nano-menu-drawer.entry.js.map +1 -1
- package/dist/esm/nano-overflow-nav.entry.js +2 -2
- package/dist/esm/nano-overflow-nav.entry.js.map +1 -1
- package/dist/esm/nano-progress-bar.entry.js +2 -2
- package/dist/esm/nano-progress-bar.entry.js.map +1 -1
- package/dist/esm/nano-range.entry.js +2 -2
- package/dist/esm/nano-range.entry.js.map +1 -1
- package/dist/esm/nano-rating.entry.js +2 -2
- package/dist/esm/nano-rating.entry.js.map +1 -1
- package/dist/esm/nano-resize-observe_2.entry.js +1 -1
- package/dist/esm/nano-slide.entry.js +1 -1
- package/dist/esm/nano-slides-9908c44d.js +2970 -0
- package/dist/esm/nano-slides-9908c44d.js.map +1 -0
- package/dist/esm/nano-slides.entry.js +2 -4295
- package/dist/esm/nano-slides.entry.js.map +1 -1
- package/dist/esm/nano-sortable.entry.js +1 -1
- package/dist/esm/nano-spinner.entry.js +2 -2
- package/dist/esm/nano-spinner.entry.js.map +1 -1
- package/dist/esm/nano-split-pane.entry.js +1 -1
- package/dist/esm/nano-sticker.entry.js +3 -2
- package/dist/esm/nano-sticker.entry.js.map +1 -1
- package/dist/esm/nano-tab-content.entry.js +1 -1
- package/dist/esm/nano-tab-group.entry.js +4 -4
- package/dist/esm/nano-tab-group.entry.js.map +1 -1
- package/dist/esm/nano-tab.entry.js +2 -2
- package/dist/esm/nano-tab.entry.js.map +1 -1
- package/dist/esm/{nano-table-5af42ba4.js → nano-table-3ab8cd85.js} +5 -5
- package/dist/esm/{nano-table-5af42ba4.js.map → nano-table-3ab8cd85.js.map} +1 -1
- package/dist/esm/nano-table.entry.js +3 -3
- package/dist/esm/page-dots-467ace2e.js +138 -0
- package/dist/esm/page-dots-467ace2e.js.map +1 -0
- package/dist/esm/{scroll-ec7ac257.js → scroll-ac332213.js} +8 -4
- package/dist/esm/scroll-ac332213.js.map +1 -0
- package/dist/esm/{table.worker-3cae908c.js → table.worker-75d6e1d2.js} +4 -4
- package/dist/esm/table.worker-75d6e1d2.js.map +1 -0
- package/dist/nano-components/{p-74a7fc4f.js → active-element-75b7c8a0.js} +1 -1
- package/dist/nano-components/algolia-data-1b42827c.js +5 -0
- package/dist/nano-components/{p-a26bdb65.js.map → algolia-data-1b42827c.js.map} +1 -1
- package/dist/nano-components/algoliasearch-lite.esm.browser-d71a28dc.js +5 -0
- package/dist/nano-components/algoliasearch-lite.esm.browser-d71a28dc.js.map +1 -0
- package/dist/nano-components/component-store-f7eb0a56.js +5 -0
- package/dist/nano-components/{p-dd5687db.js.map → component-store-f7eb0a56.js.map} +1 -1
- package/dist/nano-components/{p-cecb9af1.js → date-utils-6b7a6e1f.js} +1 -1
- package/dist/nano-components/{p-cdfc507e.js → dom-8599fac1.js} +1 -1
- package/dist/nano-components/{p-842cf127.js → drag-1723a4cc.js} +1 -1
- package/dist/nano-components/{p-9bfdee71.js → events-6a805b42.js} +1 -1
- package/dist/nano-components/fade-1aa7a6db.js +5 -0
- package/dist/nano-components/fade-1aa7a6db.js.map +1 -0
- package/dist/nano-components/{p-f8f89998.js → focus-visible-8b2c14da.js} +1 -1
- package/dist/nano-components/form-control-881fa3af.js +5 -0
- package/dist/nano-components/{p-dc805ecc.js.map → form-control-881fa3af.js.map} +1 -1
- package/dist/nano-components/fullscreen-86fa276a.js +5 -0
- package/dist/nano-components/fullscreen-86fa276a.js.map +1 -0
- package/dist/nano-components/{p-d4f6ec9f.js → global-be484e8c.js} +2 -2
- package/dist/nano-components/{p-d4f6ec9f.js.map → global-be484e8c.js.map} +1 -1
- package/dist/nano-components/index-3003356f.js +5 -0
- package/dist/nano-components/{p-70747f20.js.map → index-3003356f.js.map} +1 -1
- package/dist/nano-components/{p-d6a04b3a.js → index-9695db0a.js} +2 -2
- package/dist/nano-components/{p-d6a04b3a.js.map → index-9695db0a.js.map} +1 -1
- package/dist/nano-components/{p-bb07c3d0.js → index-f626f476.js} +1 -1
- package/dist/nano-components/index.esm.js +1 -1
- package/dist/nano-components/index.esm.js.map +1 -1
- package/dist/nano-components/lazyload-994232a6.js +5 -0
- package/dist/nano-components/lazyload-994232a6.js.map +1 -0
- package/dist/nano-components/{p-2155fc2c.js → local-my-account-6662da72.js} +1 -1
- package/dist/nano-components/{p-ee045579.js → math-c02ddfda.js} +1 -1
- package/dist/nano-components/modal-bd9638c0.js +5 -0
- package/dist/nano-components/{p-2234694a.js.map → modal-bd9638c0.js.map} +1 -1
- package/dist/nano-components/nano-accordion.entry.js +5 -0
- package/dist/nano-components/{p-9f60ff14.entry.js.map → nano-accordion.entry.js.map} +1 -1
- package/dist/nano-components/nano-alert.entry.js +5 -0
- package/dist/nano-components/{p-191352c4.entry.js.map → nano-alert.entry.js.map} +1 -1
- package/dist/nano-components/nano-algolia-filter.entry.js +5 -0
- package/dist/nano-components/nano-algolia-filter.entry.js.map +1 -0
- package/dist/nano-components/nano-algolia-pagination.entry.js +5 -0
- package/dist/nano-components/nano-algolia-pagination.entry.js.map +1 -0
- package/dist/nano-components/nano-algolia-results.entry.js +5 -0
- package/dist/nano-components/nano-algolia-results.entry.js.map +1 -0
- package/dist/nano-components/nano-algolia.entry.js +5 -0
- package/dist/nano-components/nano-algolia.entry.js.map +1 -0
- package/dist/nano-components/nano-aspect-ratio.entry.js +5 -0
- package/dist/nano-components/{p-87329424.entry.js.map → nano-aspect-ratio.entry.js.map} +1 -1
- package/dist/nano-components/nano-checkbox-group.entry.js +5 -0
- package/dist/nano-components/nano-checkbox-group.entry.js.map +1 -0
- package/dist/nano-components/nano-checkbox.entry.js +5 -0
- package/dist/nano-components/nano-checkbox.entry.js.map +1 -0
- package/dist/nano-components/nano-components.css +1 -1
- package/dist/nano-components/nano-components.esm.js +1 -1
- package/dist/nano-components/nano-components.esm.js.map +1 -1
- package/dist/nano-components/nano-datalist_3.entry.js +5 -0
- package/dist/nano-components/nano-datalist_3.entry.js.map +1 -0
- package/dist/nano-components/nano-date-input.entry.js +5 -0
- package/dist/nano-components/{p-d4e44f93.entry.js.map → nano-date-input.entry.js.map} +1 -1
- package/dist/nano-components/nano-date-picker.entry.js +5 -0
- package/dist/nano-components/{p-efd3e121.entry.js.map → nano-date-picker.entry.js.map} +1 -1
- package/dist/nano-components/nano-demo.entry.js +5 -0
- package/dist/nano-components/{p-e98835e2.entry.js.map → nano-demo.entry.js.map} +1 -1
- package/dist/nano-components/nano-details.entry.js +5 -0
- package/dist/nano-components/nano-details.entry.js.map +1 -0
- package/dist/nano-components/nano-dialog.entry.js +5 -0
- package/dist/nano-components/{p-79fff4fd.entry.js.map → nano-dialog.entry.js.map} +1 -1
- package/dist/nano-components/nano-drawer.entry.js +5 -0
- package/dist/nano-components/nano-drawer.entry.js.map +1 -0
- package/dist/nano-components/nano-dropdown.entry.js +5 -0
- package/dist/nano-components/nano-dropdown.entry.js.map +1 -0
- package/dist/nano-components/nano-field-validator.entry.js +5 -0
- package/dist/nano-components/nano-field-validator.entry.js.map +1 -0
- package/dist/nano-components/nano-file-upload.entry.js +5 -0
- package/dist/nano-components/nano-file-upload.entry.js.map +1 -0
- package/dist/nano-components/nano-global-nav-user-profile_3.entry.js +5 -0
- package/dist/nano-components/nano-global-nav-user-profile_3.entry.js.map +1 -0
- package/dist/nano-components/nano-global-nav.entry.js +5 -0
- package/dist/nano-components/nano-global-nav.entry.js.map +1 -0
- package/dist/nano-components/nano-global-search-results.entry.js +5 -0
- package/dist/nano-components/nano-global-search-results.entry.js.map +1 -0
- package/dist/nano-components/nano-grid-item.entry.js +5 -0
- package/dist/nano-components/{p-9c290055.entry.js.map → nano-grid-item.entry.js.map} +1 -1
- package/dist/nano-components/nano-grid_2.entry.js +5 -0
- package/dist/nano-components/{p-7c82af28.entry.js.map → nano-grid_2.entry.js.map} +1 -1
- package/dist/nano-components/nano-hero.entry.js +5 -0
- package/dist/nano-components/{p-328ef9d3.entry.js.map → nano-hero.entry.js.map} +1 -1
- package/dist/nano-components/nano-icon-button_2.entry.js +5 -0
- package/dist/nano-components/nano-icon-button_2.entry.js.map +1 -0
- package/dist/nano-components/nano-icon.entry.js +5 -0
- package/dist/nano-components/nano-icon.entry.js.map +1 -0
- package/dist/nano-components/nano-input.entry.js +5 -0
- package/dist/nano-components/nano-input.entry.js.map +1 -0
- package/dist/nano-components/nano-menu-drawer.entry.js +5 -0
- package/dist/nano-components/nano-menu-drawer.entry.js.map +1 -0
- package/dist/nano-components/nano-overflow-nav.entry.js +5 -0
- package/dist/nano-components/nano-overflow-nav.entry.js.map +1 -0
- package/dist/nano-components/nano-progress-bar.entry.js +5 -0
- package/dist/nano-components/nano-progress-bar.entry.js.map +1 -0
- package/dist/nano-components/nano-range.entry.js +5 -0
- package/dist/nano-components/nano-range.entry.js.map +1 -0
- package/dist/nano-components/nano-rating.entry.js +5 -0
- package/dist/nano-components/nano-rating.entry.js.map +1 -0
- package/dist/nano-components/nano-resize-observe_2.entry.js +5 -0
- package/dist/nano-components/{p-e6a0675e.entry.js.map → nano-resize-observe_2.entry.js.map} +1 -1
- package/dist/nano-components/nano-slide.entry.js +5 -0
- package/dist/nano-components/{p-3d8fb8a1.entry.js.map → nano-slide.entry.js.map} +1 -1
- package/dist/nano-components/nano-slides-9908c44d.js +20 -0
- package/dist/nano-components/nano-slides-9908c44d.js.map +1 -0
- package/dist/nano-components/nano-slides.entry.js +5 -0
- package/dist/nano-components/nano-sortable.entry.js +5 -0
- package/dist/nano-components/{p-3ae362ae.entry.js.map → nano-sortable.entry.js.map} +1 -1
- package/dist/nano-components/nano-spinner.entry.js +5 -0
- package/dist/nano-components/{p-9925e504.entry.js.map → nano-spinner.entry.js.map} +1 -1
- package/dist/nano-components/nano-split-pane.entry.js +5 -0
- package/dist/nano-components/{p-6c4171fa.entry.js.map → nano-split-pane.entry.js.map} +1 -1
- package/dist/nano-components/nano-sticker.entry.js +5 -0
- package/dist/nano-components/nano-sticker.entry.js.map +1 -0
- package/dist/nano-components/nano-tab-content.entry.js +5 -0
- package/dist/nano-components/{p-3f40e370.entry.js.map → nano-tab-content.entry.js.map} +1 -1
- package/dist/nano-components/nano-tab-group.entry.js +5 -0
- package/dist/nano-components/nano-tab-group.entry.js.map +1 -0
- package/dist/nano-components/nano-tab.entry.js +5 -0
- package/dist/nano-components/{p-3cac5f6d.entry.js.map → nano-tab.entry.js.map} +1 -1
- package/dist/nano-components/nano-table-3ab8cd85.js +5 -0
- package/dist/nano-components/nano-table-3ab8cd85.js.map +1 -0
- package/dist/nano-components/nano-table.entry.js +5 -0
- package/dist/nano-components/page-dots-467ace2e.js +5 -0
- package/dist/nano-components/page-dots-467ace2e.js.map +1 -0
- package/dist/nano-components/{p-cd1fd454.js → popover-e5e7a641.js} +1 -1
- package/dist/nano-components/scroll-ac332213.js +5 -0
- package/dist/nano-components/scroll-ac332213.js.map +1 -0
- package/dist/nano-components/{p-dc565459.js → slot-8126e238.js} +1 -1
- package/dist/nano-components/{p-f88fa15c.js → tabbable-26a66a22.js} +1 -1
- package/dist/nano-components/table.worker-75d6e1d2.js +5 -0
- package/dist/nano-components/{p-411bb8f1.js → theme-82feb8cf.js} +1 -1
- package/dist/nano-components/{p-7bff5224.js → throttle-ac4fcefa.js} +1 -1
- package/dist/nano-components/{p-c3e8e3f9.js → transitions-fb09eb32.js} +1 -1
- package/dist/themes/nanopore.cn.css +1 -1
- package/dist/themes/nanopore.cn.css.map +1 -1
- package/dist/themes/nanopore.css +1 -1
- package/dist/themes/nanopore.css.map +1 -1
- package/dist/types/components/algolia/algolia-data.d.ts +1 -1
- package/dist/types/components/algolia/algolia-filter.d.ts +1 -1
- package/dist/types/components/algolia/algolia-pagination.d.ts +1 -1
- package/dist/types/components/algolia/algolia-results.d.ts +1 -1
- package/dist/types/components/algolia/algolia.d.ts +1 -7
- package/dist/types/components/algolia/lib/squirrelly/browser.d.ts +6 -0
- package/dist/types/components/algolia/lib/squirrelly/compile-string.d.ts +5 -0
- package/dist/types/components/algolia/lib/squirrelly/compile.d.ts +3 -0
- package/dist/types/components/algolia/lib/squirrelly/config.d.ts +48 -0
- package/dist/types/components/algolia/lib/squirrelly/container-utils.d.ts +8 -0
- package/dist/types/components/algolia/lib/squirrelly/containers.d.ts +18 -0
- package/dist/types/components/algolia/lib/squirrelly/err.d.ts +6 -0
- package/dist/types/components/algolia/lib/squirrelly/parse.d.ts +23 -0
- package/dist/types/components/algolia/lib/squirrelly/render.d.ts +3 -0
- package/dist/types/components/algolia/lib/squirrelly/storage.d.ts +13 -0
- package/dist/types/components/algolia/lib/squirrelly/utils.d.ts +8 -0
- package/dist/types/components/algolia/lib/template.d.ts +2 -0
- package/dist/types/components/checkbox/checkbox-group.d.ts +5 -0
- package/dist/types/components/global-nav/global-nav.d.ts +15 -20
- package/dist/types/components/slides/lib/js/animate.d.ts +2 -0
- package/dist/types/components/slides/lib/js/cell.d.ts +1 -0
- package/dist/types/components/slides/lib/js/drag.d.ts +1 -0
- package/dist/types/components/slides/lib/js/fade.d.ts +1 -0
- package/dist/types/components/slides/lib/js/flickity.d.ts +23 -0
- package/dist/types/components/slides/lib/js/fullscreen.d.ts +1 -0
- package/dist/types/components/slides/lib/js/index.d.ts +5 -0
- package/dist/types/components/slides/lib/js/lazyload.d.ts +1 -0
- package/dist/types/components/slides/lib/js/page-dots.d.ts +1 -0
- package/dist/types/components/slides/lib/js/player.d.ts +1 -0
- package/dist/types/components/slides/lib/js/prev-next-button.d.ts +1 -0
- package/dist/types/components/slides/lib/js/slide.d.ts +1 -0
- package/dist/types/components/slides/lib/js/utils/event-emitter.d.ts +1 -0
- package/dist/types/components/slides/lib/js/utils/gestures.d.ts +26 -0
- package/dist/types/components/slides/lib/js/utils/get-size.d.ts +6 -0
- package/dist/types/components/slides/lib/js/utils/utils.d.ts +5 -0
- package/dist/types/components/slides/slides-interface.d.ts +17 -7
- package/dist/types/components/slides/slides.d.ts +5 -0
- package/dist/types/components.d.ts +10 -10
- package/dist/types/utils/scroll.d.ts +5 -1
- package/docs-json.json +33 -24
- package/docs-vscode.json +4 -0
- package/hydrate/index.js +4147 -3953
- package/package.json +5 -8
- package/dist/cjs/_commonjsHelpers-29614748.js +0 -30
- package/dist/cjs/_commonjsHelpers-29614748.js.map +0 -1
- package/dist/cjs/algoliasearch-lite.esm.browser-992a2eff.js.map +0 -1
- package/dist/cjs/index-1d3ebe1a.js.map +0 -1
- package/dist/cjs/scroll-fc1b8387.js.map +0 -1
- package/dist/cjs/table.worker-3df34efe.js.map +0 -1
- package/dist/collection/components/slides/lib/js/add-remove-cell.js +0 -128
- package/dist/collection/components/slides/lib/js/images-loaded.js +0 -24
- package/dist/collection/components/slides/slides-interface.js +0 -2
- package/dist/collection/components/slides/slides-interface.js.map +0 -1
- package/dist/collection/utils/template.js.map +0 -1
- package/dist/components/_commonjsHelpers.js +0 -26
- package/dist/components/_commonjsHelpers.js.map +0 -1
- package/dist/esm/_commonjsHelpers-04a0e019.js +0 -26
- package/dist/esm/_commonjsHelpers-04a0e019.js.map +0 -1
- package/dist/esm/algoliasearch-lite.esm.browser-04891fdc.js.map +0 -1
- package/dist/esm/index-06666022.js.map +0 -1
- package/dist/esm/scroll-ec7ac257.js.map +0 -1
- package/dist/esm/table.worker-3cae908c.js.map +0 -1
- package/dist/nano-components/p-0563e812.entry.js +0 -5
- package/dist/nano-components/p-0563e812.entry.js.map +0 -1
- package/dist/nano-components/p-0bc40dd1.entry.js +0 -5
- package/dist/nano-components/p-0bc40dd1.entry.js.map +0 -1
- package/dist/nano-components/p-0e0f07f0.entry.js +0 -5
- package/dist/nano-components/p-0e0f07f0.entry.js.map +0 -1
- package/dist/nano-components/p-0e4da739.entry.js +0 -5
- package/dist/nano-components/p-0e4da739.entry.js.map +0 -1
- package/dist/nano-components/p-16e75af9.entry.js +0 -5
- package/dist/nano-components/p-16e75af9.entry.js.map +0 -1
- package/dist/nano-components/p-17eb456c.entry.js +0 -5
- package/dist/nano-components/p-17eb456c.entry.js.map +0 -1
- package/dist/nano-components/p-191352c4.entry.js +0 -5
- package/dist/nano-components/p-1987f7a9.js +0 -5
- package/dist/nano-components/p-1a55e282.entry.js +0 -5
- package/dist/nano-components/p-1a55e282.entry.js.map +0 -1
- package/dist/nano-components/p-2234694a.js +0 -5
- package/dist/nano-components/p-2a105609.entry.js +0 -5
- package/dist/nano-components/p-2a105609.entry.js.map +0 -1
- package/dist/nano-components/p-2c0218e6.entry.js +0 -5
- package/dist/nano-components/p-2c0218e6.entry.js.map +0 -1
- package/dist/nano-components/p-328ef9d3.entry.js +0 -5
- package/dist/nano-components/p-359b7cd2.entry.js +0 -5
- package/dist/nano-components/p-359b7cd2.entry.js.map +0 -1
- package/dist/nano-components/p-36c3ded8.entry.js +0 -5
- package/dist/nano-components/p-36c3ded8.entry.js.map +0 -1
- package/dist/nano-components/p-3ae362ae.entry.js +0 -5
- package/dist/nano-components/p-3cac5f6d.entry.js +0 -5
- package/dist/nano-components/p-3d8fb8a1.entry.js +0 -5
- package/dist/nano-components/p-3eeaba47.entry.js +0 -5
- package/dist/nano-components/p-3eeaba47.entry.js.map +0 -1
- package/dist/nano-components/p-3f40e370.entry.js +0 -5
- package/dist/nano-components/p-51133e62.entry.js +0 -5
- package/dist/nano-components/p-51133e62.entry.js.map +0 -1
- package/dist/nano-components/p-54c4a2f5.entry.js +0 -5
- package/dist/nano-components/p-54c4a2f5.entry.js.map +0 -1
- package/dist/nano-components/p-5fc3035d.entry.js +0 -5
- package/dist/nano-components/p-5fc3035d.entry.js.map +0 -1
- package/dist/nano-components/p-650aa197.entry.js +0 -5
- package/dist/nano-components/p-650aa197.entry.js.map +0 -1
- package/dist/nano-components/p-67ab5a5f.entry.js +0 -5
- package/dist/nano-components/p-67ab5a5f.entry.js.map +0 -1
- package/dist/nano-components/p-688f1a55.entry.js +0 -5
- package/dist/nano-components/p-688f1a55.entry.js.map +0 -1
- package/dist/nano-components/p-6c4171fa.entry.js +0 -5
- package/dist/nano-components/p-70747f20.js +0 -5
- package/dist/nano-components/p-7670058b.entry.js +0 -5
- package/dist/nano-components/p-7670058b.entry.js.map +0 -1
- package/dist/nano-components/p-79fff4fd.entry.js +0 -5
- package/dist/nano-components/p-7c82af28.entry.js +0 -5
- package/dist/nano-components/p-87329424.entry.js +0 -5
- package/dist/nano-components/p-8fe51abf.js +0 -5
- package/dist/nano-components/p-935968b8.entry.js +0 -23
- package/dist/nano-components/p-935968b8.entry.js.map +0 -1
- package/dist/nano-components/p-9925e504.entry.js +0 -5
- package/dist/nano-components/p-9c290055.entry.js +0 -5
- package/dist/nano-components/p-9f60ff14.entry.js +0 -5
- package/dist/nano-components/p-a225e976.entry.js +0 -5
- package/dist/nano-components/p-a225e976.entry.js.map +0 -1
- package/dist/nano-components/p-a26bdb65.js +0 -5
- package/dist/nano-components/p-abd11243.entry.js +0 -5
- package/dist/nano-components/p-abd11243.entry.js.map +0 -1
- package/dist/nano-components/p-b27b56d3.js +0 -5
- package/dist/nano-components/p-b27b56d3.js.map +0 -1
- package/dist/nano-components/p-c80336b2.entry.js +0 -5
- package/dist/nano-components/p-c80336b2.entry.js.map +0 -1
- package/dist/nano-components/p-cad86fb8.js +0 -5
- package/dist/nano-components/p-cad86fb8.js.map +0 -1
- package/dist/nano-components/p-d4e44f93.entry.js +0 -5
- package/dist/nano-components/p-dc4020f8.js +0 -5
- package/dist/nano-components/p-dc4020f8.js.map +0 -1
- package/dist/nano-components/p-dc6cb252.entry.js +0 -5
- package/dist/nano-components/p-dc6cb252.entry.js.map +0 -1
- package/dist/nano-components/p-dc805ecc.js +0 -5
- package/dist/nano-components/p-dd5687db.js +0 -5
- package/dist/nano-components/p-e6a0675e.entry.js +0 -5
- package/dist/nano-components/p-e98835e2.entry.js +0 -5
- package/dist/nano-components/p-efd3e121.entry.js +0 -5
- package/dist/nano-components/p-f73f52ed.entry.js +0 -5
- package/dist/nano-components/p-f73f52ed.entry.js.map +0 -1
- package/dist/nano-components/p-fbde7010.entry.js +0 -5
- package/dist/nano-components/p-fcbc9122.entry.js +0 -5
- package/dist/nano-components/p-fcbc9122.entry.js.map +0 -1
- package/dist/types/utils/template.d.ts +0 -2
- /package/dist/nano-components/{p-74a7fc4f.js.map → active-element-75b7c8a0.js.map} +0 -0
- /package/dist/nano-components/{p-cecb9af1.js.map → date-utils-6b7a6e1f.js.map} +0 -0
- /package/dist/nano-components/{p-cdfc507e.js.map → dom-8599fac1.js.map} +0 -0
- /package/dist/nano-components/{p-842cf127.js.map → drag-1723a4cc.js.map} +0 -0
- /package/dist/nano-components/{p-9bfdee71.js.map → events-6a805b42.js.map} +0 -0
- /package/dist/nano-components/{p-f8f89998.js.map → focus-visible-8b2c14da.js.map} +0 -0
- /package/dist/nano-components/{p-bb07c3d0.js.map → index-f626f476.js.map} +0 -0
- /package/dist/nano-components/{p-1987f7a9.js.map → local-my-account-6662da72.js.map} +0 -0
- /package/dist/nano-components/{p-ee045579.js.map → math-c02ddfda.js.map} +0 -0
- /package/dist/nano-components/{p-2155fc2c.js.map → nano-slides.entry.js.map} +0 -0
- /package/dist/nano-components/{p-8fe51abf.js.map → nano-table.entry.js.map} +0 -0
- /package/dist/nano-components/{p-cd1fd454.js.map → popover-e5e7a641.js.map} +0 -0
- /package/dist/nano-components/{p-dc565459.js.map → slot-8126e238.js.map} +0 -0
- /package/dist/nano-components/{p-f88fa15c.js.map → tabbable-26a66a22.js.map} +0 -0
- /package/dist/nano-components/{p-fbde7010.entry.js.map → table.worker-75d6e1d2.js.map} +0 -0
- /package/dist/nano-components/{p-f258383d.js → table.worker-f258383d.js} +0 -0
- /package/dist/nano-components/{p-411bb8f1.js.map → theme-82feb8cf.js.map} +0 -0
- /package/dist/nano-components/{p-7bff5224.js.map → throttle-ac4fcefa.js.map} +0 -0
- /package/dist/nano-components/{p-c3e8e3f9.js.map → transitions-fb09eb32.js.map} +0 -0
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"container-utils.js","sourceRoot":"","sources":["../../../../../src/components/algolia/lib/squirrelly/container-utils.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,OAAO,CAAC;AAE5B,MAAM,UAAU,sBAAsB,CACpC,IAAY,EACZ,MAA0B,EAAE,0BAA0B;AACtD,OAA2B,EAC3B,MAAgB;EAEhB,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;IAC/B,MAAM,OAAO,CACX,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,IAAI,GAAG,yBAAyB,CACzE,CAAC;GACH;EACD,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;IACjC,MAAM,OAAO,CACX,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,UAAU,GAAG,IAAI,GAAG,0BAA0B,CAC1E,CAAC;GACH;AACH,CAAC;AAED,oBAAoB;AACpB,MAAM,UAAU,YAAY,CAC1B,GAAe,EACf,KAAa,EACb,EAAY,EACZ,GAAW,EACX,EAAY;EAEZ,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC,CAAC,IAAI,CAAC,UAAU,GAAW;IAC9C,GAAG,IAAI,GAAG,CAAC;IACX,IAAI,KAAK,KAAK,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;MAC5B,EAAE,CAAC,GAAG,CAAC,CAAC;KACT;SAAM;MACL,YAAY,CAAC,GAAG,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;KAC3C;EACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,YAAY,CAC1B,GAA6B,EAC7B,IAAmB,EACnB,KAAa,EACb,EAAY,EACZ,GAAW,EACX,EAAY;EAEZ,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,GAAW;IAC1D,GAAG,IAAI,GAAG,CAAC;IACX,IAAI,KAAK,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;MAC7B,EAAE,CAAC,GAAG,CAAC,CAAC;KACT;SAAM;MACL,YAAY,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;KACjD;EACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,MAAM,GAAc;EACxB,GAAG,EAAE,OAAO;EACZ,GAAG,EAAE,MAAM;EACX,GAAG,EAAE,MAAM;EACX,GAAG,EAAE,QAAQ;EACb,GAAG,EAAE,OAAO;CACb,CAAC;AAEF,MAAM,UAAU,WAAW,CAAC,CAAS;EACnC,OAAO,MAAM,CAAC,CAAC,CAAC,CAAC;AACnB,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAY;EACpC,+FAA+F;EAC/F,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;EAC3B,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE;IAC1B,OAAO,MAAM,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;GAChD;OAAM;IACL,OAAO,MAAM,CAAC;GACf;AACH,CAAC","sourcesContent":["import SqrlErr from './err';\n\nexport function errWithBlocksOrFilters(\n name: string,\n blocks: Array<any> | false, // false means don't check\n filters: Array<any> | false,\n native?: boolean\n) {\n if (blocks && blocks.length > 0) {\n throw SqrlErr(\n (native ? 'Native' : '') + \"Helper '\" + name + \"' doesn't accept blocks\"\n );\n }\n if (filters && filters.length > 0) {\n throw SqrlErr(\n (native ? 'Native' : '') + \"Helper '\" + name + \"' doesn't accept filters\"\n );\n }\n}\n\n/* ASYNC LOOP FNs */\nexport function asyncArrLoop(\n arr: Array<any>,\n index: number,\n fn: Function,\n res: string,\n cb: Function\n) {\n fn(arr[index], index).then(function (val: string) {\n res += val;\n if (index === arr.length - 1) {\n cb(res);\n } else {\n asyncArrLoop(arr, index + 1, fn, res, cb);\n }\n });\n}\n\nexport function asyncObjLoop(\n obj: { [index: string]: any },\n keys: Array<string>,\n index: number,\n fn: Function,\n res: string,\n cb: Function\n) {\n fn(keys[index], obj[keys[index]]).then(function (val: string) {\n res += val;\n if (index === keys.length - 1) {\n cb(res);\n } else {\n asyncObjLoop(obj, keys, index + 1, fn, res, cb);\n }\n });\n}\n\nconst escMap: EscapeMap = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": ''',\n};\n\nexport function replaceChar(s: string): string {\n return escMap[s];\n}\n\nexport function XMLEscape(str: unknown) {\n // To deal with XSS. Based on Escape implementations of Mustache.JS and Marko, then customized.\n const newStr = String(str);\n if (/[&<>\"']/.test(newStr)) {\n return newStr.replace(/[&<>\"']/g, replaceChar);\n } else {\n return newStr;\n }\n}\n\n/* INTERFACES */\ninterface EscapeMap {\n '&': '&';\n '<': '<';\n '>': '>';\n '\"': '"';\n \"'\": ''';\n [index: string]: string;\n}\n"]}
|
@@ -0,0 +1,128 @@
|
|
1
|
+
/*!
|
2
|
+
* Web Components for Nanopore digital Web Apps
|
3
|
+
*/
|
4
|
+
import { Cacher } from './storage';
|
5
|
+
import SqrlErr from './err';
|
6
|
+
import { compileScope, compileScopeIntoFunction } from './compile-string';
|
7
|
+
import { hasOwnProp } from './utils';
|
8
|
+
import { errWithBlocksOrFilters, asyncArrLoop, asyncObjLoop, XMLEscape, } from './container-utils';
|
9
|
+
/* END TYPES */
|
10
|
+
const templates = new Cacher({});
|
11
|
+
/* ASYNC LOOP FNs */
|
12
|
+
const helpers = new Cacher({
|
13
|
+
each: function (content, blocks) {
|
14
|
+
let res = '';
|
15
|
+
const arr = content.params[0];
|
16
|
+
errWithBlocksOrFilters('each', blocks, false);
|
17
|
+
if (content.async) {
|
18
|
+
return new Promise(function (resolve) {
|
19
|
+
asyncArrLoop(arr, 0, content.exec, res, resolve);
|
20
|
+
});
|
21
|
+
}
|
22
|
+
else {
|
23
|
+
for (let i = 0; i < arr.length; i++) {
|
24
|
+
res += content.exec(arr[i], i);
|
25
|
+
}
|
26
|
+
return res;
|
27
|
+
}
|
28
|
+
},
|
29
|
+
foreach: function (content, blocks) {
|
30
|
+
const obj = content.params[0];
|
31
|
+
errWithBlocksOrFilters('foreach', blocks, false);
|
32
|
+
if (content.async) {
|
33
|
+
return new Promise(function (resolve) {
|
34
|
+
asyncObjLoop(obj, Object.keys(obj), 0, content.exec, '', resolve);
|
35
|
+
});
|
36
|
+
}
|
37
|
+
else {
|
38
|
+
let res = '';
|
39
|
+
for (const key in obj) {
|
40
|
+
if (!hasOwnProp(obj, key))
|
41
|
+
continue;
|
42
|
+
res += content.exec(key, obj[key]); // todo: check on order
|
43
|
+
}
|
44
|
+
return res;
|
45
|
+
}
|
46
|
+
},
|
47
|
+
include: function (content, blocks, config) {
|
48
|
+
errWithBlocksOrFilters('include', blocks, false);
|
49
|
+
const template = config.storage.templates.get(content.params[0]);
|
50
|
+
if (!template) {
|
51
|
+
throw SqrlErr('Could not fetch template "' + content.params[0] + '"');
|
52
|
+
}
|
53
|
+
return template(content.params[1], config);
|
54
|
+
},
|
55
|
+
extends: function (content, blocks, config) {
|
56
|
+
const data = content.params[1] || {};
|
57
|
+
data.content = content.exec();
|
58
|
+
for (let i = 0; i < blocks.length; i++) {
|
59
|
+
const currentBlock = blocks[i];
|
60
|
+
data[currentBlock.name] = currentBlock.exec();
|
61
|
+
}
|
62
|
+
const template = config.storage.templates.get(content.params[0]);
|
63
|
+
if (!template) {
|
64
|
+
throw SqrlErr('Could not fetch template "' + content.params[0] + '"');
|
65
|
+
}
|
66
|
+
return template(data, config);
|
67
|
+
},
|
68
|
+
useScope: function (content, blocks) {
|
69
|
+
errWithBlocksOrFilters('useScope', blocks, false);
|
70
|
+
return content.exec(content.params[0]);
|
71
|
+
},
|
72
|
+
});
|
73
|
+
const nativeHelpers = new Cacher({
|
74
|
+
if: function (buffer, env) {
|
75
|
+
errWithBlocksOrFilters('if', false, buffer.f, true);
|
76
|
+
let returnStr = 'if(' + buffer.p + '){' + compileScope(buffer.d, env) + '}';
|
77
|
+
if (buffer.b) {
|
78
|
+
for (let i = 0; i < buffer.b.length; i++) {
|
79
|
+
const currentBlock = buffer.b[i];
|
80
|
+
if (currentBlock.n === 'else') {
|
81
|
+
returnStr += 'else{' + compileScope(currentBlock.d, env) + '}';
|
82
|
+
}
|
83
|
+
else if (currentBlock.n === 'elif') {
|
84
|
+
returnStr +=
|
85
|
+
'else if(' +
|
86
|
+
currentBlock.p +
|
87
|
+
'){' +
|
88
|
+
compileScope(currentBlock.d, env) +
|
89
|
+
'}';
|
90
|
+
}
|
91
|
+
}
|
92
|
+
}
|
93
|
+
return returnStr;
|
94
|
+
},
|
95
|
+
try: function (buffer, env) {
|
96
|
+
errWithBlocksOrFilters('try', false, buffer.f, true);
|
97
|
+
if (!buffer.b || buffer.b.length !== 1 || buffer.b[0].n !== 'catch') {
|
98
|
+
throw SqrlErr("native helper 'try' only accepts 1 block, 'catch'");
|
99
|
+
}
|
100
|
+
let returnStr = 'try{' + compileScope(buffer.d, env) + '}';
|
101
|
+
const currentBlock = buffer.b[0];
|
102
|
+
returnStr +=
|
103
|
+
'catch' +
|
104
|
+
(currentBlock.res ? '(' + currentBlock.res + ')' : '') +
|
105
|
+
'{' +
|
106
|
+
compileScope(currentBlock.d, env) +
|
107
|
+
'}';
|
108
|
+
return returnStr;
|
109
|
+
},
|
110
|
+
block: function (buffer, env) {
|
111
|
+
errWithBlocksOrFilters('block', buffer.b, buffer.f, true);
|
112
|
+
const returnStr = 'if(!' +
|
113
|
+
env.varName +
|
114
|
+
'[' +
|
115
|
+
buffer.p +
|
116
|
+
']){tR+=(' +
|
117
|
+
compileScopeIntoFunction(buffer.d, '', env) +
|
118
|
+
')()}else{tR+=' +
|
119
|
+
env.varName +
|
120
|
+
'[' +
|
121
|
+
buffer.p +
|
122
|
+
']}';
|
123
|
+
return returnStr;
|
124
|
+
},
|
125
|
+
});
|
126
|
+
const filters = new Cacher({ e: XMLEscape });
|
127
|
+
export { templates, helpers, nativeHelpers, filters };
|
128
|
+
//# sourceMappingURL=containers.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"containers.js","sourceRoot":"","sources":["../../../../../src/components/algolia/lib/squirrelly/containers.ts"],"names":[],"mappings":"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","sourcesContent":["import { Cacher } from './storage';\nimport SqrlErr from './err';\nimport { compileScope, compileScopeIntoFunction } from './compile-string';\nimport { hasOwnProp } from './utils';\nimport {\n errWithBlocksOrFilters,\n asyncArrLoop,\n asyncObjLoop,\n XMLEscape,\n} from './container-utils';\n\n/* TYPES */\n\nimport { SqrlConfig } from './config';\nimport { TemplateFunction } from './compile';\nimport { ParentTemplateObject } from './parse';\n\nexport interface HelperContent {\n exec: Function;\n params: Array<any>;\n async?: boolean;\n}\n\nexport interface HelperBlock extends HelperContent {\n name: string;\n}\n\nexport type HelperFunction = (\n content: HelperContent,\n blocks: Array<HelperBlock>,\n config: SqrlConfig\n) => string | Promise<string>;\n\nexport type FilterFunction = (...args: any[]) => any | Promise<any>;\n\ninterface IncludeHelperContent extends HelperContent {\n params: [string, object];\n}\n\ninterface GenericData {\n [index: string]: any;\n}\n\n/* END TYPES */\n\nconst templates = new Cacher<TemplateFunction>({});\n\n/* ASYNC LOOP FNs */\n\nconst helpers = new Cacher<HelperFunction>({\n each: function (content: HelperContent, blocks: Array<HelperBlock>) {\n let res = '';\n const arr = content.params[0];\n errWithBlocksOrFilters('each', blocks, false);\n\n if (content.async) {\n return new Promise(function (resolve) {\n asyncArrLoop(arr, 0, content.exec, res, resolve);\n });\n } else {\n for (let i = 0; i < arr.length; i++) {\n res += content.exec(arr[i], i);\n }\n return res;\n }\n },\n foreach: function (content: HelperContent, blocks: Array<HelperBlock>) {\n const obj = content.params[0];\n errWithBlocksOrFilters('foreach', blocks, false);\n\n if (content.async) {\n return new Promise(function (resolve) {\n asyncObjLoop(obj, Object.keys(obj), 0, content.exec, '', resolve);\n });\n } else {\n let res = '';\n\n for (const key in obj) {\n if (!hasOwnProp(obj, key)) continue;\n res += content.exec(key, obj[key]); // todo: check on order\n }\n return res;\n }\n },\n include: function (\n content: IncludeHelperContent,\n blocks: Array<HelperBlock>,\n config: SqrlConfig\n ): string {\n errWithBlocksOrFilters('include', blocks, false);\n const template = config.storage.templates.get(content.params[0]);\n if (!template) {\n throw SqrlErr('Could not fetch template \"' + content.params[0] + '\"');\n }\n return template(content.params[1], config);\n } as HelperFunction,\n extends: function (\n content: IncludeHelperContent,\n blocks: Array<HelperBlock>,\n config: SqrlConfig\n ): string {\n const data: GenericData = content.params[1] || {};\n data.content = content.exec();\n\n for (let i = 0; i < blocks.length; i++) {\n const currentBlock = blocks[i];\n data[currentBlock.name] = currentBlock.exec();\n }\n\n const template = config.storage.templates.get(content.params[0]);\n if (!template) {\n throw SqrlErr('Could not fetch template \"' + content.params[0] + '\"');\n }\n return template(data, config);\n } as HelperFunction,\n useScope: function (\n content: HelperContent,\n blocks: Array<HelperBlock>\n ): string {\n errWithBlocksOrFilters('useScope', blocks, false);\n\n return content.exec(content.params[0]);\n } as HelperFunction,\n});\n\nconst nativeHelpers = new Cacher<Function>({\n if: function (buffer: ParentTemplateObject, env: SqrlConfig) {\n errWithBlocksOrFilters('if', false, buffer.f, true);\n\n let returnStr = 'if(' + buffer.p + '){' + compileScope(buffer.d, env) + '}';\n if (buffer.b) {\n for (let i = 0; i < buffer.b.length; i++) {\n const currentBlock = buffer.b[i];\n if (currentBlock.n === 'else') {\n returnStr += 'else{' + compileScope(currentBlock.d, env) + '}';\n } else if (currentBlock.n === 'elif') {\n returnStr +=\n 'else if(' +\n currentBlock.p +\n '){' +\n compileScope(currentBlock.d, env) +\n '}';\n }\n }\n }\n return returnStr;\n },\n try: function (buffer: ParentTemplateObject, env: SqrlConfig) {\n errWithBlocksOrFilters('try', false, buffer.f, true);\n\n if (!buffer.b || buffer.b.length !== 1 || buffer.b[0].n !== 'catch') {\n throw SqrlErr(\"native helper 'try' only accepts 1 block, 'catch'\");\n }\n let returnStr = 'try{' + compileScope(buffer.d, env) + '}';\n\n const currentBlock = buffer.b[0];\n returnStr +=\n 'catch' +\n (currentBlock.res ? '(' + currentBlock.res + ')' : '') +\n '{' +\n compileScope(currentBlock.d, env) +\n '}';\n\n return returnStr;\n },\n block: function (buffer: ParentTemplateObject, env: SqrlConfig) {\n errWithBlocksOrFilters('block', buffer.b, buffer.f, true);\n\n const returnStr =\n 'if(!' +\n env.varName +\n '[' +\n buffer.p +\n ']){tR+=(' +\n compileScopeIntoFunction(buffer.d, '', env) +\n ')()}else{tR+=' +\n env.varName +\n '[' +\n buffer.p +\n ']}';\n\n return returnStr;\n },\n});\n\nconst filters = new Cacher<FilterFunction>({ e: XMLEscape });\n\nexport { templates, helpers, nativeHelpers, filters };\n"]}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
/*!
|
2
|
+
* Web Components for Nanopore digital Web Apps
|
3
|
+
*/
|
4
|
+
function setPrototypeOf(obj, proto) {
|
5
|
+
if (Object.setPrototypeOf) {
|
6
|
+
Object.setPrototypeOf(obj, proto);
|
7
|
+
}
|
8
|
+
else {
|
9
|
+
obj.__proto__ = proto;
|
10
|
+
}
|
11
|
+
}
|
12
|
+
export default function SqrlErr(message) {
|
13
|
+
const err = new Error(message);
|
14
|
+
setPrototypeOf(err, SqrlErr.prototype);
|
15
|
+
return err;
|
16
|
+
}
|
17
|
+
SqrlErr.prototype = Object.create(Error.prototype, {
|
18
|
+
name: { value: 'Squirrelly Error', enumerable: false },
|
19
|
+
});
|
20
|
+
// TODO: Class transpilation adds a lot to the bundle size
|
21
|
+
export function ParseErr(message, str, indx) {
|
22
|
+
const whitespace = str.slice(0, indx).split(/\n/);
|
23
|
+
const lineNo = whitespace.length;
|
24
|
+
const colNo = whitespace[lineNo - 1].length + 1;
|
25
|
+
message +=
|
26
|
+
' at line ' +
|
27
|
+
lineNo +
|
28
|
+
' col ' +
|
29
|
+
colNo +
|
30
|
+
':\n\n' +
|
31
|
+
' ' +
|
32
|
+
str.split(/\n/)[lineNo - 1] +
|
33
|
+
'\n' +
|
34
|
+
' ' +
|
35
|
+
Array(colNo).join(' ') +
|
36
|
+
'^';
|
37
|
+
throw SqrlErr(message);
|
38
|
+
}
|
39
|
+
//# sourceMappingURL=err.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"err.js","sourceRoot":"","sources":["../../../../../src/components/algolia/lib/squirrelly/err.ts"],"names":[],"mappings":"AAAA,SAAS,cAAc,CAAC,GAAQ,EAAE,KAAU;EAC1C,IAAI,MAAM,CAAC,cAAc,EAAE;IACzB,MAAM,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;GACnC;OAAM;IACL,GAAG,CAAC,SAAS,GAAG,KAAK,CAAC;GACvB;AACH,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,OAAe;EAC7C,MAAM,GAAG,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;EAC/B,cAAc,CAAC,GAAG,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;EACvC,OAAO,GAAG,CAAC;AACb,CAAC;AAED,OAAO,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,EAAE;EACjD,IAAI,EAAE,EAAE,KAAK,EAAE,kBAAkB,EAAE,UAAU,EAAE,KAAK,EAAE;CACvD,CAAC,CAAC;AAEH,0DAA0D;AAE1D,MAAM,UAAU,QAAQ,CAAC,OAAe,EAAE,GAAW,EAAE,IAAY;EACjE,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;EAElD,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;EACjC,MAAM,KAAK,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;EAChD,OAAO;IACL,WAAW;MACX,MAAM;MACN,OAAO;MACP,KAAK;MACL,OAAO;MACP,IAAI;MACJ,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC;MAC3B,IAAI;MACJ,IAAI;MACJ,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;MACtB,GAAG,CAAC;EACN,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;AACzB,CAAC","sourcesContent":["function setPrototypeOf(obj: any, proto: any) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(obj, proto);\n } else {\n obj.__proto__ = proto;\n }\n}\n\nexport default function SqrlErr(message: string): Error {\n const err = new Error(message);\n setPrototypeOf(err, SqrlErr.prototype);\n return err;\n}\n\nSqrlErr.prototype = Object.create(Error.prototype, {\n name: { value: 'Squirrelly Error', enumerable: false },\n});\n\n// TODO: Class transpilation adds a lot to the bundle size\n\nexport function ParseErr(message: string, str: string, indx: number) {\n const whitespace = str.slice(0, indx).split(/\\n/);\n\n const lineNo = whitespace.length;\n const colNo = whitespace[lineNo - 1].length + 1;\n message +=\n ' at line ' +\n lineNo +\n ' col ' +\n colNo +\n ':\\n\\n' +\n ' ' +\n str.split(/\\n/)[lineNo - 1] +\n '\\n' +\n ' ' +\n Array(colNo).join(' ') +\n '^';\n throw SqrlErr(message);\n}\n"]}
|
@@ -0,0 +1,327 @@
|
|
1
|
+
/*!
|
2
|
+
* Web Components for Nanopore digital Web Apps
|
3
|
+
*/
|
4
|
+
import SqrlErr, { ParseErr } from './err';
|
5
|
+
import { trimWS } from './utils';
|
6
|
+
/* END TYPES */
|
7
|
+
const asyncRegExp = /^async +/;
|
8
|
+
const templateLitReg = /`(?:\\[\s\S]|\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\${)[^\\`])*`/g;
|
9
|
+
const singleQuoteReg = /'(?:\\[\s\w"'\\`]|[^\n\r'\\])*?'/g;
|
10
|
+
const doubleQuoteReg = /"(?:\\[\s\w"'\\`]|[^\n\r"\\])*?"/g;
|
11
|
+
const specialCharsReg = /[.*+\-?^${}()|[\]\\]/g;
|
12
|
+
function escapeRegExp(string) {
|
13
|
+
// From MDN
|
14
|
+
return specialCharsReg.test(string)
|
15
|
+
? string.replace(specialCharsReg, '\\$&') // $& means the whole matched string
|
16
|
+
: string;
|
17
|
+
}
|
18
|
+
export default function parse(str, env) {
|
19
|
+
/* Adding for EJS compatibility */
|
20
|
+
if (env.rmWhitespace) {
|
21
|
+
// Code taken directly from EJS
|
22
|
+
// Have to use two separate replaces here as `^` and `$` operators don't
|
23
|
+
// work well with `\r` and empty lines don't work well with the `m` flag.
|
24
|
+
// Essentially, this replaces the whitespace at the beginning and end of
|
25
|
+
// each line and removes multiple newlines.
|
26
|
+
str = str.replace(/[\r\n]+/g, '\n').replace(/^\s+|\s+$/gm, '');
|
27
|
+
}
|
28
|
+
/* End rmWhitespace option */
|
29
|
+
templateLitReg.lastIndex = 0;
|
30
|
+
singleQuoteReg.lastIndex = 0;
|
31
|
+
doubleQuoteReg.lastIndex = 0;
|
32
|
+
const envPrefixes = env.prefixes;
|
33
|
+
const prefixes = [
|
34
|
+
envPrefixes.h,
|
35
|
+
envPrefixes.b,
|
36
|
+
envPrefixes.i,
|
37
|
+
envPrefixes.r,
|
38
|
+
envPrefixes.c,
|
39
|
+
envPrefixes.e,
|
40
|
+
].reduce(function (accumulator, prefix) {
|
41
|
+
if (accumulator && prefix) {
|
42
|
+
return accumulator + '|' + escapeRegExp(prefix);
|
43
|
+
}
|
44
|
+
else if (prefix) {
|
45
|
+
// accumulator is empty
|
46
|
+
return escapeRegExp(prefix);
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
// prefix and accumulator are both empty strings
|
50
|
+
return accumulator;
|
51
|
+
}
|
52
|
+
}, '');
|
53
|
+
const parseCloseReg = new RegExp('([|()]|=>)|' + // powerchars
|
54
|
+
'(\'|"|`|\\/\\*)|\\s*((\\/)?(-|_)?' + // comments, strings
|
55
|
+
escapeRegExp(env.tags[1]) +
|
56
|
+
')', 'g');
|
57
|
+
const tagOpenReg = new RegExp('([^]*?)' + escapeRegExp(env.tags[0]) + '(-|_)?\\s*(' + prefixes + ')?\\s*', 'g');
|
58
|
+
let startInd = 0;
|
59
|
+
let trimNextLeftWs = false;
|
60
|
+
function parseTag(tagOpenIndex, currentType) {
|
61
|
+
const currentObj = { f: [] };
|
62
|
+
let numParens = 0;
|
63
|
+
let currentAttribute = 'c'; // default - Valid values: 'c'=content, 'f'=filter, 'fp'=filter params, 'p'=param, 'n'=name
|
64
|
+
if (currentType === 'h' || currentType === 'b' || currentType === 'c') {
|
65
|
+
currentAttribute = 'n';
|
66
|
+
}
|
67
|
+
else if (currentType === 'r') {
|
68
|
+
currentObj.raw = true;
|
69
|
+
currentType = 'i';
|
70
|
+
}
|
71
|
+
function addAttrValue(indx) {
|
72
|
+
const valUnprocessed = str.slice(startInd, indx);
|
73
|
+
// console.log(valUnprocessed)
|
74
|
+
let val = valUnprocessed.trim();
|
75
|
+
if (currentAttribute === 'f') {
|
76
|
+
if (val === 'safe') {
|
77
|
+
currentObj.raw = true;
|
78
|
+
}
|
79
|
+
else {
|
80
|
+
if (env.async && asyncRegExp.test(val)) {
|
81
|
+
val = val.replace(asyncRegExp, '');
|
82
|
+
currentObj.f.push([val, '', true]);
|
83
|
+
}
|
84
|
+
else {
|
85
|
+
currentObj.f.push([val, '']);
|
86
|
+
}
|
87
|
+
}
|
88
|
+
}
|
89
|
+
else if (currentAttribute === 'fp') {
|
90
|
+
currentObj.f[currentObj.f.length - 1][1] += val;
|
91
|
+
}
|
92
|
+
else if (currentAttribute === 'err') {
|
93
|
+
if (val) {
|
94
|
+
const found = valUnprocessed.search(/\S/);
|
95
|
+
ParseErr('invalid syntax', str, startInd + found);
|
96
|
+
}
|
97
|
+
}
|
98
|
+
else {
|
99
|
+
// if (currentObj[currentAttribute]) { // TODO make sure no errs
|
100
|
+
// currentObj[currentAttribute] += val
|
101
|
+
// } else {
|
102
|
+
currentObj[currentAttribute] = val;
|
103
|
+
// }
|
104
|
+
}
|
105
|
+
startInd = indx + 1;
|
106
|
+
}
|
107
|
+
parseCloseReg.lastIndex = startInd;
|
108
|
+
let m;
|
109
|
+
// tslint:disable-next-line:no-conditional-assignment
|
110
|
+
while ((m = parseCloseReg.exec(str)) !== null) {
|
111
|
+
const char = m[1];
|
112
|
+
const punctuator = m[2];
|
113
|
+
const tagClose = m[3];
|
114
|
+
const slash = m[4];
|
115
|
+
const wsControl = m[5];
|
116
|
+
const i = m.index;
|
117
|
+
if (char) {
|
118
|
+
// Power character
|
119
|
+
if (char === '(') {
|
120
|
+
if (numParens === 0) {
|
121
|
+
if (currentAttribute === 'n') {
|
122
|
+
addAttrValue(i);
|
123
|
+
currentAttribute = 'p';
|
124
|
+
}
|
125
|
+
else if (currentAttribute === 'f') {
|
126
|
+
addAttrValue(i);
|
127
|
+
currentAttribute = 'fp';
|
128
|
+
}
|
129
|
+
}
|
130
|
+
numParens++;
|
131
|
+
}
|
132
|
+
else if (char === ')') {
|
133
|
+
numParens--;
|
134
|
+
if (numParens === 0 && currentAttribute !== 'c') {
|
135
|
+
// Then it's closing a filter, block, or helper
|
136
|
+
addAttrValue(i);
|
137
|
+
currentAttribute = 'err'; // Reset the current attribute
|
138
|
+
}
|
139
|
+
}
|
140
|
+
else if (numParens === 0 && char === '|') {
|
141
|
+
addAttrValue(i); // this should actually always be whitespace or empty
|
142
|
+
currentAttribute = 'f';
|
143
|
+
}
|
144
|
+
else if (char === '=>') {
|
145
|
+
addAttrValue(i);
|
146
|
+
startInd += 1; // this is 2 chars
|
147
|
+
currentAttribute = 'res';
|
148
|
+
}
|
149
|
+
}
|
150
|
+
else if (punctuator) {
|
151
|
+
if (punctuator === '/*') {
|
152
|
+
const commentCloseInd = str.indexOf('*/', parseCloseReg.lastIndex);
|
153
|
+
if (commentCloseInd === -1) {
|
154
|
+
ParseErr('unclosed comment', str, m.index);
|
155
|
+
}
|
156
|
+
parseCloseReg.lastIndex = commentCloseInd + 2; // since */ is 2 characters, and we're using indexOf rather than a RegExp
|
157
|
+
}
|
158
|
+
else if (punctuator === "'") {
|
159
|
+
singleQuoteReg.lastIndex = m.index;
|
160
|
+
const singleQuoteMatch = singleQuoteReg.exec(str);
|
161
|
+
if (singleQuoteMatch) {
|
162
|
+
parseCloseReg.lastIndex = singleQuoteReg.lastIndex;
|
163
|
+
}
|
164
|
+
else {
|
165
|
+
ParseErr('unclosed string', str, m.index);
|
166
|
+
}
|
167
|
+
}
|
168
|
+
else if (punctuator === '"') {
|
169
|
+
doubleQuoteReg.lastIndex = m.index;
|
170
|
+
const doubleQuoteMatch = doubleQuoteReg.exec(str);
|
171
|
+
if (doubleQuoteMatch) {
|
172
|
+
parseCloseReg.lastIndex = doubleQuoteReg.lastIndex;
|
173
|
+
}
|
174
|
+
else {
|
175
|
+
ParseErr('unclosed string', str, m.index);
|
176
|
+
}
|
177
|
+
}
|
178
|
+
else if (punctuator === '`') {
|
179
|
+
templateLitReg.lastIndex = m.index;
|
180
|
+
const templateLitMatch = templateLitReg.exec(str);
|
181
|
+
if (templateLitMatch) {
|
182
|
+
parseCloseReg.lastIndex = templateLitReg.lastIndex;
|
183
|
+
}
|
184
|
+
else {
|
185
|
+
ParseErr('unclosed string', str, m.index);
|
186
|
+
}
|
187
|
+
}
|
188
|
+
}
|
189
|
+
else if (tagClose) {
|
190
|
+
addAttrValue(i);
|
191
|
+
startInd = i + m[0].length;
|
192
|
+
tagOpenReg.lastIndex = startInd;
|
193
|
+
// console.log('tagClose: ' + startInd)
|
194
|
+
trimNextLeftWs = wsControl;
|
195
|
+
if (slash && currentType === 'h') {
|
196
|
+
currentType = 's';
|
197
|
+
} // TODO throw err
|
198
|
+
currentObj.t = currentType;
|
199
|
+
return currentObj;
|
200
|
+
}
|
201
|
+
}
|
202
|
+
ParseErr('unclosed tag', str, tagOpenIndex);
|
203
|
+
return currentObj; // To prevent TypeScript from erroring
|
204
|
+
}
|
205
|
+
function parseContext(parentObj, firstParse) {
|
206
|
+
parentObj.b = []; // assume there will be blocks // TODO: perf optimize this
|
207
|
+
parentObj.d = [];
|
208
|
+
let lastBlock = false;
|
209
|
+
let buffer = [];
|
210
|
+
function pushString(strng, shouldTrimRightOfString) {
|
211
|
+
if (strng) {
|
212
|
+
// if string is truthy it must be of type 'string'
|
213
|
+
// TODO: benchmark replace( /(\\|')/g, '\\$1')
|
214
|
+
strng = trimWS(strng, env, trimNextLeftWs, // this will only be false on the first str, the next ones will be null or undefined
|
215
|
+
shouldTrimRightOfString);
|
216
|
+
if (strng) {
|
217
|
+
// replace \ with \\, ' with \'
|
218
|
+
strng = strng.replace(/\\|'/g, '\\$&').replace(/\r\n|\n|\r/g, '\\n');
|
219
|
+
// we're going to convert all CRLF to LF so it doesn't take more than one replace
|
220
|
+
buffer.push(strng);
|
221
|
+
}
|
222
|
+
}
|
223
|
+
}
|
224
|
+
// Random TODO: parentObj.b doesn't need to have t: #
|
225
|
+
let tagOpenMatch;
|
226
|
+
// tslint:disable-next-line:no-conditional-assignment
|
227
|
+
while ((tagOpenMatch = tagOpenReg.exec(str)) !== null) {
|
228
|
+
const precedingString = tagOpenMatch[1];
|
229
|
+
const shouldTrimRightPrecedingString = tagOpenMatch[2];
|
230
|
+
const prefix = tagOpenMatch[3] || '';
|
231
|
+
let prefixType;
|
232
|
+
for (const key in envPrefixes) {
|
233
|
+
if (envPrefixes[key] === prefix) {
|
234
|
+
prefixType = key;
|
235
|
+
break;
|
236
|
+
}
|
237
|
+
}
|
238
|
+
pushString(precedingString, shouldTrimRightPrecedingString);
|
239
|
+
startInd = tagOpenMatch.index + tagOpenMatch[0].length;
|
240
|
+
if (!prefixType) {
|
241
|
+
ParseErr('unrecognized tag type: ' + prefix, str, startInd);
|
242
|
+
}
|
243
|
+
let currentObj = parseTag(tagOpenMatch.index, prefixType);
|
244
|
+
// ===== NOW ADD THE OBJECT TO OUR BUFFER =====
|
245
|
+
const currentType = currentObj.t;
|
246
|
+
if (currentType === 'h') {
|
247
|
+
const hName = currentObj.n || '';
|
248
|
+
if (env.async && asyncRegExp.test(hName)) {
|
249
|
+
currentObj.a = true;
|
250
|
+
currentObj.n = hName.replace(asyncRegExp, '');
|
251
|
+
}
|
252
|
+
currentObj = parseContext(currentObj); // currentObj is the parent object
|
253
|
+
buffer.push(currentObj);
|
254
|
+
}
|
255
|
+
else if (currentType === 'c') {
|
256
|
+
// tag close
|
257
|
+
if (parentObj.n === currentObj.n) {
|
258
|
+
if (lastBlock) {
|
259
|
+
// If there's a previous block
|
260
|
+
lastBlock.d = buffer;
|
261
|
+
parentObj.b.push(lastBlock);
|
262
|
+
}
|
263
|
+
else {
|
264
|
+
parentObj.d = buffer;
|
265
|
+
}
|
266
|
+
// console.log('parentObj: ' + JSON.stringify(parentObj))
|
267
|
+
return parentObj;
|
268
|
+
}
|
269
|
+
else {
|
270
|
+
ParseErr("Helper start and end don't match", str, tagOpenMatch.index + tagOpenMatch[0].length);
|
271
|
+
}
|
272
|
+
}
|
273
|
+
else if (currentType === 'b') {
|
274
|
+
// block
|
275
|
+
// TODO: make sure async stuff inside blocks are recognized
|
276
|
+
if (lastBlock) {
|
277
|
+
// If there's a previous block
|
278
|
+
lastBlock.d = buffer;
|
279
|
+
parentObj.b.push(lastBlock);
|
280
|
+
}
|
281
|
+
else {
|
282
|
+
parentObj.d = buffer;
|
283
|
+
}
|
284
|
+
const blockName = currentObj.n || '';
|
285
|
+
if (env.async && asyncRegExp.test(blockName)) {
|
286
|
+
currentObj.a = true;
|
287
|
+
currentObj.n = blockName.replace(asyncRegExp, '');
|
288
|
+
}
|
289
|
+
lastBlock = currentObj; // Set the 'lastBlock' object to the value of the current block
|
290
|
+
buffer = [];
|
291
|
+
}
|
292
|
+
else if (currentType === 's') {
|
293
|
+
const selfClosingHName = currentObj.n || '';
|
294
|
+
if (env.async && asyncRegExp.test(selfClosingHName)) {
|
295
|
+
currentObj.a = true;
|
296
|
+
currentObj.n = selfClosingHName.replace(asyncRegExp, '');
|
297
|
+
}
|
298
|
+
buffer.push(currentObj);
|
299
|
+
}
|
300
|
+
else {
|
301
|
+
buffer.push(currentObj);
|
302
|
+
}
|
303
|
+
// ===== DONE ADDING OBJECT TO BUFFER =====
|
304
|
+
}
|
305
|
+
if (firstParse) {
|
306
|
+
pushString(str.slice(startInd, str.length), false);
|
307
|
+
parentObj.d = buffer;
|
308
|
+
}
|
309
|
+
else {
|
310
|
+
throw SqrlErr('unclosed helper "' + parentObj.n + '"');
|
311
|
+
// It should have returned by now
|
312
|
+
}
|
313
|
+
return parentObj;
|
314
|
+
}
|
315
|
+
const parseResult = parseContext({ f: [] }, true);
|
316
|
+
// console.log(JSON.stringify(parseResult))
|
317
|
+
if (env.plugins) {
|
318
|
+
for (let i = 0; i < env.plugins.length; i++) {
|
319
|
+
const plugin = env.plugins[i];
|
320
|
+
if (plugin.processAST) {
|
321
|
+
parseResult.d = plugin.processAST(parseResult.d, env);
|
322
|
+
}
|
323
|
+
}
|
324
|
+
}
|
325
|
+
return parseResult.d; // Parse the very outside context
|
326
|
+
}
|
327
|
+
//# sourceMappingURL=parse.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../../../src/components/algolia/lib/squirrelly/parse.ts"],"names":[],"mappings":"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","sourcesContent":["import SqrlErr, { ParseErr } from './err';\nimport { trimWS } from './utils';\n\n/* TYPES */\n\nimport { SqrlConfig } from './config';\n\nexport type TagType = 'h' | 'b' | 'i' | 'r' | 'c' | 'e' | 'q' | 's';\n// TODO: change to anagram \"QBIRCHES\"\nexport type TemplateAttribute = 'c' | 'f' | 'fp' | 'p' | 'n' | 'res' | 'err';\nexport type TemplateObjectAttribute = 'c' | 'p' | 'n' | 'res';\n\nexport type AstObject = string | TemplateObject;\n\nexport type Filter = [string, string] | [string, string, true];\n// [name, params, async]\nexport interface TemplateObject {\n n?: string;\n t?: 'h' | 'b' | 'i' | 'c' | 'q' | 'e' | 's';\n f: Array<Filter>;\n c?: string;\n p?: string;\n res?: string;\n d?: Array<AstObject>;\n raw?: boolean;\n a?: boolean; // async\n b?: Array<ParentTemplateObject>;\n}\n\nexport interface ParentTemplateObject extends TemplateObject {\n d: Array<AstObject>;\n b: Array<ParentTemplateObject>;\n}\n\n/* END TYPES */\n\nconst asyncRegExp = /^async +/;\n\nconst templateLitReg =\n /`(?:\\\\[\\s\\S]|\\${(?:[^{}]|{(?:[^{}]|{[^}]*})*})*}|(?!\\${)[^\\\\`])*`/g;\n\nconst singleQuoteReg = /'(?:\\\\[\\s\\w\"'\\\\`]|[^\\n\\r'\\\\])*?'/g;\n\nconst doubleQuoteReg = /\"(?:\\\\[\\s\\w\"'\\\\`]|[^\\n\\r\"\\\\])*?\"/g;\n\nconst specialCharsReg = /[.*+\\-?^${}()|[\\]\\\\]/g;\n\nfunction escapeRegExp(string: string) {\n // From MDN\n return specialCharsReg.test(string)\n ? string.replace(specialCharsReg, '\\\\$&') // $& means the whole matched string\n : string;\n}\n\nexport default function parse(str: string, env: SqrlConfig): Array<AstObject> {\n /* Adding for EJS compatibility */\n if (env.rmWhitespace) {\n // Code taken directly from EJS\n // Have to use two separate replaces here as `^` and `$` operators don't\n // work well with `\\r` and empty lines don't work well with the `m` flag.\n // Essentially, this replaces the whitespace at the beginning and end of\n // each line and removes multiple newlines.\n str = str.replace(/[\\r\\n]+/g, '\\n').replace(/^\\s+|\\s+$/gm, '');\n }\n /* End rmWhitespace option */\n\n templateLitReg.lastIndex = 0;\n singleQuoteReg.lastIndex = 0;\n doubleQuoteReg.lastIndex = 0;\n\n const envPrefixes = env.prefixes;\n\n const prefixes = [\n envPrefixes.h,\n envPrefixes.b,\n envPrefixes.i,\n envPrefixes.r,\n envPrefixes.c,\n envPrefixes.e,\n ].reduce(function (accumulator, prefix) {\n if (accumulator && prefix) {\n return accumulator + '|' + escapeRegExp(prefix);\n } else if (prefix) {\n // accumulator is empty\n return escapeRegExp(prefix);\n } else {\n // prefix and accumulator are both empty strings\n return accumulator;\n }\n }, '');\n\n const parseCloseReg = new RegExp(\n '([|()]|=>)|' + // powerchars\n '(\\'|\"|`|\\\\/\\\\*)|\\\\s*((\\\\/)?(-|_)?' + // comments, strings\n escapeRegExp(env.tags[1]) +\n ')',\n 'g'\n );\n\n const tagOpenReg = new RegExp(\n '([^]*?)' + escapeRegExp(env.tags[0]) + '(-|_)?\\\\s*(' + prefixes + ')?\\\\s*',\n 'g'\n );\n\n let startInd = 0;\n let trimNextLeftWs: string | false = false;\n\n function parseTag(\n tagOpenIndex: number,\n currentType: TagType\n ): TemplateObject {\n const currentObj: TemplateObject = { f: [] };\n let numParens = 0;\n let currentAttribute: TemplateAttribute = 'c'; // default - Valid values: 'c'=content, 'f'=filter, 'fp'=filter params, 'p'=param, 'n'=name\n\n if (currentType === 'h' || currentType === 'b' || currentType === 'c') {\n currentAttribute = 'n';\n } else if (currentType === 'r') {\n currentObj.raw = true;\n currentType = 'i';\n }\n\n function addAttrValue(indx: number) {\n const valUnprocessed = str.slice(startInd, indx);\n // console.log(valUnprocessed)\n let val = valUnprocessed.trim();\n if (currentAttribute === 'f') {\n if (val === 'safe') {\n currentObj.raw = true;\n } else {\n if (env.async && asyncRegExp.test(val)) {\n val = val.replace(asyncRegExp, '');\n currentObj.f.push([val, '', true]);\n } else {\n currentObj.f.push([val, '']);\n }\n }\n } else if (currentAttribute === 'fp') {\n currentObj.f[currentObj.f.length - 1][1] += val;\n } else if (currentAttribute === 'err') {\n if (val) {\n const found = valUnprocessed.search(/\\S/);\n ParseErr('invalid syntax', str, startInd + found);\n }\n } else {\n // if (currentObj[currentAttribute]) { // TODO make sure no errs\n // currentObj[currentAttribute] += val\n // } else {\n currentObj[currentAttribute] = val;\n // }\n }\n startInd = indx + 1;\n }\n\n parseCloseReg.lastIndex = startInd;\n\n let m;\n // tslint:disable-next-line:no-conditional-assignment\n while ((m = parseCloseReg.exec(str)) !== null) {\n const char = m[1];\n const punctuator = m[2];\n const tagClose = m[3];\n const slash = m[4];\n const wsControl = m[5];\n const i = m.index;\n\n if (char) {\n // Power character\n if (char === '(') {\n if (numParens === 0) {\n if (currentAttribute === 'n') {\n addAttrValue(i);\n currentAttribute = 'p';\n } else if (currentAttribute === 'f') {\n addAttrValue(i);\n currentAttribute = 'fp';\n }\n }\n numParens++;\n } else if (char === ')') {\n numParens--;\n if (numParens === 0 && currentAttribute !== 'c') {\n // Then it's closing a filter, block, or helper\n addAttrValue(i);\n\n currentAttribute = 'err'; // Reset the current attribute\n }\n } else if (numParens === 0 && char === '|') {\n addAttrValue(i); // this should actually always be whitespace or empty\n currentAttribute = 'f';\n } else if (char === '=>') {\n addAttrValue(i);\n startInd += 1; // this is 2 chars\n currentAttribute = 'res';\n }\n } else if (punctuator) {\n if (punctuator === '/*') {\n const commentCloseInd = str.indexOf('*/', parseCloseReg.lastIndex);\n if (commentCloseInd === -1) {\n ParseErr('unclosed comment', str, m.index);\n }\n parseCloseReg.lastIndex = commentCloseInd + 2; // since */ is 2 characters, and we're using indexOf rather than a RegExp\n } else if (punctuator === \"'\") {\n singleQuoteReg.lastIndex = m.index;\n\n const singleQuoteMatch = singleQuoteReg.exec(str);\n if (singleQuoteMatch) {\n parseCloseReg.lastIndex = singleQuoteReg.lastIndex;\n } else {\n ParseErr('unclosed string', str, m.index);\n }\n } else if (punctuator === '\"') {\n doubleQuoteReg.lastIndex = m.index;\n const doubleQuoteMatch = doubleQuoteReg.exec(str);\n\n if (doubleQuoteMatch) {\n parseCloseReg.lastIndex = doubleQuoteReg.lastIndex;\n } else {\n ParseErr('unclosed string', str, m.index);\n }\n } else if (punctuator === '`') {\n templateLitReg.lastIndex = m.index;\n const templateLitMatch = templateLitReg.exec(str);\n if (templateLitMatch) {\n parseCloseReg.lastIndex = templateLitReg.lastIndex;\n } else {\n ParseErr('unclosed string', str, m.index);\n }\n }\n } else if (tagClose) {\n addAttrValue(i);\n startInd = i + m[0].length;\n tagOpenReg.lastIndex = startInd;\n // console.log('tagClose: ' + startInd)\n trimNextLeftWs = wsControl;\n if (slash && currentType === 'h') {\n currentType = 's';\n } // TODO throw err\n currentObj.t = currentType;\n return currentObj;\n }\n }\n ParseErr('unclosed tag', str, tagOpenIndex);\n return currentObj; // To prevent TypeScript from erroring\n }\n\n function parseContext(\n parentObj: TemplateObject,\n firstParse?: boolean\n ): ParentTemplateObject {\n parentObj.b = []; // assume there will be blocks // TODO: perf optimize this\n parentObj.d = [];\n let lastBlock: ParentTemplateObject | false = false;\n let buffer: Array<AstObject> = [];\n\n function pushString(\n strng: string,\n shouldTrimRightOfString?: string | false\n ) {\n if (strng) {\n // if string is truthy it must be of type 'string'\n\n // TODO: benchmark replace( /(\\\\|')/g, '\\\\$1')\n strng = trimWS(\n strng,\n env,\n trimNextLeftWs, // this will only be false on the first str, the next ones will be null or undefined\n shouldTrimRightOfString\n );\n\n if (strng) {\n // replace \\ with \\\\, ' with \\'\n\n strng = strng.replace(/\\\\|'/g, '\\\\$&').replace(/\\r\\n|\\n|\\r/g, '\\\\n');\n // we're going to convert all CRLF to LF so it doesn't take more than one replace\n\n buffer.push(strng);\n }\n }\n }\n\n // Random TODO: parentObj.b doesn't need to have t: #\n let tagOpenMatch;\n // tslint:disable-next-line:no-conditional-assignment\n while ((tagOpenMatch = tagOpenReg.exec(str)) !== null) {\n const precedingString = tagOpenMatch[1];\n const shouldTrimRightPrecedingString = tagOpenMatch[2];\n const prefix = tagOpenMatch[3] || '';\n let prefixType: TagType | undefined;\n\n for (const key in envPrefixes) {\n if (envPrefixes[key] === prefix) {\n prefixType = key as TagType;\n break;\n }\n }\n\n pushString(precedingString, shouldTrimRightPrecedingString);\n startInd = tagOpenMatch.index + tagOpenMatch[0].length;\n\n if (!prefixType) {\n ParseErr('unrecognized tag type: ' + prefix, str, startInd);\n }\n\n let currentObj = parseTag(tagOpenMatch.index, prefixType as TagType);\n // ===== NOW ADD THE OBJECT TO OUR BUFFER =====\n\n const currentType = currentObj.t;\n if (currentType === 'h') {\n const hName = currentObj.n || '';\n if (env.async && asyncRegExp.test(hName)) {\n currentObj.a = true;\n currentObj.n = hName.replace(asyncRegExp, '');\n }\n currentObj = parseContext(currentObj); // currentObj is the parent object\n buffer.push(currentObj);\n } else if (currentType === 'c') {\n // tag close\n if (parentObj.n === currentObj.n) {\n if (lastBlock) {\n // If there's a previous block\n lastBlock.d = buffer;\n parentObj.b.push(lastBlock);\n } else {\n parentObj.d = buffer;\n }\n // console.log('parentObj: ' + JSON.stringify(parentObj))\n return parentObj as ParentTemplateObject;\n } else {\n ParseErr(\n \"Helper start and end don't match\",\n str,\n tagOpenMatch.index + tagOpenMatch[0].length\n );\n }\n } else if (currentType === 'b') {\n // block\n // TODO: make sure async stuff inside blocks are recognized\n if (lastBlock) {\n // If there's a previous block\n lastBlock.d = buffer;\n parentObj.b.push(lastBlock);\n } else {\n parentObj.d = buffer;\n }\n\n const blockName = currentObj.n || '';\n if (env.async && asyncRegExp.test(blockName)) {\n currentObj.a = true;\n currentObj.n = blockName.replace(asyncRegExp, '');\n }\n\n lastBlock = currentObj as ParentTemplateObject; // Set the 'lastBlock' object to the value of the current block\n\n buffer = [];\n } else if (currentType === 's') {\n const selfClosingHName = currentObj.n || '';\n if (env.async && asyncRegExp.test(selfClosingHName)) {\n currentObj.a = true;\n currentObj.n = selfClosingHName.replace(asyncRegExp, '');\n }\n buffer.push(currentObj);\n } else {\n buffer.push(currentObj);\n }\n // ===== DONE ADDING OBJECT TO BUFFER =====\n }\n\n if (firstParse) {\n pushString(str.slice(startInd, str.length), false);\n parentObj.d = buffer;\n } else {\n throw SqrlErr('unclosed helper \"' + parentObj.n + '\"');\n // It should have returned by now\n }\n\n return parentObj as ParentTemplateObject;\n }\n\n const parseResult = parseContext({ f: [] }, true);\n // console.log(JSON.stringify(parseResult))\n if (env.plugins) {\n for (let i = 0; i < env.plugins.length; i++) {\n const plugin = env.plugins[i];\n if (plugin.processAST) {\n parseResult.d = plugin.processAST(parseResult.d, env);\n }\n }\n }\n return parseResult.d; // Parse the very outside context\n}\n"]}
|
@@ -0,0 +1,62 @@
|
|
1
|
+
/*!
|
2
|
+
* Web Components for Nanopore digital Web Apps
|
3
|
+
*/
|
4
|
+
import compile from './compile';
|
5
|
+
import { getConfig } from './config';
|
6
|
+
import { promiseImpl } from './utils';
|
7
|
+
import SqrlErr from './err';
|
8
|
+
/* TYPES */
|
9
|
+
/* END TYPES */
|
10
|
+
function handleCache(template, options) {
|
11
|
+
let templateFunc;
|
12
|
+
if (options.cache &&
|
13
|
+
options.name &&
|
14
|
+
options.storage.templates.get(options.name)) {
|
15
|
+
return options.storage.templates.get(options.name);
|
16
|
+
}
|
17
|
+
if (typeof template === 'function') {
|
18
|
+
templateFunc = template;
|
19
|
+
}
|
20
|
+
else {
|
21
|
+
templateFunc = compile(template, options);
|
22
|
+
}
|
23
|
+
if (options.cache && options.name) {
|
24
|
+
options.storage.templates.define(options.name, templateFunc);
|
25
|
+
}
|
26
|
+
return templateFunc;
|
27
|
+
}
|
28
|
+
export default function render(template, data, env, cb) {
|
29
|
+
const options = getConfig(env || {});
|
30
|
+
if (options.async) {
|
31
|
+
let result;
|
32
|
+
if (!cb) {
|
33
|
+
// No callback, try returning a promise
|
34
|
+
if (typeof promiseImpl === 'function') {
|
35
|
+
return new promiseImpl(function (resolve, reject) {
|
36
|
+
try {
|
37
|
+
result = handleCache(template, options)(data, options);
|
38
|
+
resolve(result);
|
39
|
+
}
|
40
|
+
catch (err) {
|
41
|
+
reject(err);
|
42
|
+
}
|
43
|
+
});
|
44
|
+
}
|
45
|
+
else {
|
46
|
+
throw SqrlErr("Please provide a callback function, this env doesn't support Promises");
|
47
|
+
}
|
48
|
+
}
|
49
|
+
else {
|
50
|
+
try {
|
51
|
+
handleCache(template, options)(data, options, cb);
|
52
|
+
}
|
53
|
+
catch (err) {
|
54
|
+
return cb(err);
|
55
|
+
}
|
56
|
+
}
|
57
|
+
}
|
58
|
+
else {
|
59
|
+
return handleCache(template, options)(data, options);
|
60
|
+
}
|
61
|
+
}
|
62
|
+
//# sourceMappingURL=render.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../../../../../src/components/algolia/lib/squirrelly/render.ts"],"names":[],"mappings":"AAAA,OAAO,OAA6B,MAAM,WAAW,CAAC;AACtD,OAAO,EAAE,SAAS,EAA6B,MAAM,UAAU,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACtC,OAAO,OAAO,MAAM,OAAO,CAAC;AAE5B,WAAW;AAEX,eAAe;AAEf,SAAS,WAAW,CAClB,QAAmC,EACnC,OAAmB;EAEnB,IAAI,YAAY,CAAC;EAEjB,IACE,OAAO,CAAC,KAAK;IACb,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,EAC3C;IACA,OAAO,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;GACpD;EAED,IAAI,OAAO,QAAQ,KAAK,UAAU,EAAE;IAClC,YAAY,GAAG,QAAQ,CAAC;GACzB;OAAM;IACL,YAAY,GAAG,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;GAC3C;EAED,IAAI,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE;IACjC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,CAAC;GAC9D;EAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,MAAM,CAAC,OAAO,UAAU,MAAM,CAC5B,QAAmC,EACnC,IAAY,EACZ,GAAmB,EACnB,EAAQ;EAER,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;EAErC,IAAI,OAAO,CAAC,KAAK,EAAE;IACjB,IAAI,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,EAAE;MACP,uCAAuC;MACvC,IAAI,OAAO,WAAW,KAAK,UAAU,EAAE;QACrC,OAAO,IAAI,WAAW,CAAC,UAAU,OAAiB,EAAE,MAAgB;UAClE,IAAI;YACF,MAAM,GAAG,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YACvD,OAAO,CAAC,MAAM,CAAC,CAAC;WACjB;UAAC,OAAO,GAAG,EAAE;YACZ,MAAM,CAAC,GAAG,CAAC,CAAC;WACb;QACH,CAAC,CAAC,CAAC;OACJ;WAAM;QACL,MAAM,OAAO,CACX,uEAAuE,CACxE,CAAC;OACH;KACF;SAAM;MACL,IAAI;QACF,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC;OACnD;MAAC,OAAO,GAAG,EAAE;QACZ,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;OAChB;KACF;GACF;OAAM;IACL,OAAO,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;GACtD;AACH,CAAC","sourcesContent":["import compile, { TemplateFunction } from './compile';\nimport { getConfig, SqrlConfig, PartialConfig } from './config';\nimport { promiseImpl } from './utils';\nimport SqrlErr from './err';\n\n/* TYPES */\n\n/* END TYPES */\n\nfunction handleCache(\n template: string | TemplateFunction,\n options: SqrlConfig\n): TemplateFunction {\n let templateFunc;\n\n if (\n options.cache &&\n options.name &&\n options.storage.templates.get(options.name)\n ) {\n return options.storage.templates.get(options.name);\n }\n\n if (typeof template === 'function') {\n templateFunc = template;\n } else {\n templateFunc = compile(template, options);\n }\n\n if (options.cache && options.name) {\n options.storage.templates.define(options.name, templateFunc);\n }\n\n return templateFunc;\n}\n\nexport default function render(\n template: string | TemplateFunction,\n data: object,\n env?: PartialConfig,\n cb?: any\n) {\n const options = getConfig(env || {});\n\n if (options.async) {\n let result;\n if (!cb) {\n // No callback, try returning a promise\n if (typeof promiseImpl === 'function') {\n return new promiseImpl(function (resolve: Function, reject: Function) {\n try {\n result = handleCache(template, options)(data, options);\n resolve(result);\n } catch (err) {\n reject(err);\n }\n });\n } else {\n throw SqrlErr(\n \"Please provide a callback function, this env doesn't support Promises\"\n );\n }\n } else {\n try {\n handleCache(template, options)(data, options, cb);\n } catch (err) {\n return cb(err);\n }\n }\n } else {\n return handleCache(template, options)(data, options);\n }\n}\n"]}
|