@ulu/frontend 0.1.0-beta.98 → 0.2.0-beta.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/dist/style.css +1 -0
- package/{types/utils/system.d.ts → dist/types/js/core/component.d.ts} +11 -14
- package/dist/types/js/core/component.d.ts.map +1 -0
- package/dist/types/js/core/events.d.ts +27 -0
- package/dist/types/js/core/events.d.ts.map +1 -0
- package/dist/types/js/core/index.d.ts +4 -0
- package/{types/utils → dist/types/js/core}/index.d.ts.map +1 -1
- package/dist/types/js/core/settings.d.ts.map +1 -0
- package/dist/types/js/index.d.ts +4 -0
- package/{types → dist/types/js}/index.d.ts.map +1 -1
- package/{types → dist/types/js}/ui/breakpoints.d.ts +4 -6
- package/dist/types/js/ui/breakpoints.d.ts.map +1 -0
- package/dist/types/js/ui/collapsible.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/details-group.d.ts +1 -1
- package/dist/types/js/ui/details-group.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/dialog.d.ts +1 -1
- package/dist/types/js/ui/dialog.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/flipcard.d.ts +1 -1
- package/dist/types/js/ui/flipcard.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/grid.d.ts +1 -1
- package/dist/types/js/ui/grid.d.ts.map +1 -0
- package/dist/types/js/ui/index.d.ts +22 -0
- package/{types → dist/types/js}/ui/index.d.ts.map +1 -1
- package/{types → dist/types/js}/ui/modal-builder.d.ts +2 -2
- package/dist/types/js/ui/modal-builder.d.ts.map +1 -0
- package/dist/types/js/ui/overflow-scroller-pager.d.ts.map +1 -0
- package/dist/types/js/ui/overflow-scroller.d.ts.map +1 -0
- package/dist/types/js/ui/page.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/popover.d.ts +2 -2
- package/dist/types/js/ui/popover.d.ts.map +1 -0
- package/dist/types/js/ui/print-details.d.ts.map +1 -0
- package/dist/types/js/ui/print.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/programmatic-modal.d.ts +1 -1
- package/dist/types/js/ui/programmatic-modal.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/proxy-click.d.ts +1 -1
- package/dist/types/js/ui/proxy-click.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/resizer.d.ts +1 -1
- package/dist/types/js/ui/resizer.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/scroll-slider.d.ts +1 -1
- package/dist/types/js/ui/scroll-slider.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/scrollpoint.d.ts +2 -2
- package/dist/types/js/ui/scrollpoint.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/slider.d.ts +6 -6
- package/dist/types/js/ui/slider.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/tabs.d.ts +1 -1
- package/dist/types/js/ui/tabs.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/theme-toggle.d.ts +1 -1
- package/dist/types/js/ui/theme-toggle.d.ts.map +1 -0
- package/{types → dist/types/js}/ui/tooltip.d.ts +1 -1
- package/dist/types/js/ui/tooltip.d.ts.map +1 -0
- package/dist/types/js/utils/class-logger.d.ts.map +1 -0
- package/dist/types/js/utils/css.d.ts.map +1 -0
- package/dist/types/js/utils/dom.d.ts.map +1 -0
- package/{types → dist/types/js}/utils/file-save.d.ts +4 -1
- package/dist/types/js/utils/file-save.d.ts.map +1 -0
- package/dist/types/js/utils/floating-ui.d.ts.map +1 -0
- package/dist/types/js/utils/font-awesome.d.ts.map +1 -0
- package/dist/types/js/utils/id.d.ts.map +1 -0
- package/dist/types/js/utils/index.d.ts +8 -0
- package/dist/types/js/utils/index.d.ts.map +1 -0
- package/dist/types/js/utils/pause-youtube-video.d.ts.map +1 -0
- package/dist/ulu-frontend.es.js +5737 -0
- package/dist/ulu-frontend.umd.js +77 -0
- package/lib/index.js +5 -0
- package/{js/utils/system.js → lib/js/core/component.js} +13 -12
- package/lib/js/core/events.js +98 -0
- package/lib/js/core/index.js +34 -0
- package/{js → lib/js/core}/settings.js +3 -3
- package/lib/js/exports.md +126 -0
- package/lib/js/index.js +7 -0
- package/{js → lib/js}/ui/breakpoints.js +28 -31
- package/{js → lib/js}/ui/collapsible.js +2 -2
- package/{js → lib/js}/ui/details-group.js +2 -2
- package/{js → lib/js}/ui/dialog.js +6 -6
- package/{js → lib/js}/ui/flipcard.js +2 -2
- package/{js → lib/js}/ui/grid.js +2 -2
- package/lib/js/ui/index.js +161 -0
- package/{js → lib/js}/ui/modal-builder.js +6 -6
- package/{js → lib/js}/ui/overflow-scroller.js +2 -2
- package/{js → lib/js}/ui/popover.js +2 -2
- package/{js → lib/js}/ui/print-details.js +3 -3
- package/{js → lib/js}/ui/print.js +2 -2
- package/{js → lib/js}/ui/programmatic-modal.js +3 -3
- package/{js → lib/js}/ui/proxy-click.js +2 -2
- package/{js → lib/js}/ui/resizer.js +2 -2
- package/{js → lib/js}/ui/scroll-slider.js +2 -2
- package/{js → lib/js}/ui/scrollpoint.js +2 -2
- package/{js → lib/js}/ui/slider.js +3 -3
- package/{js → lib/js}/ui/tabs.js +2 -2
- package/{js → lib/js}/ui/theme-toggle.js +5 -5
- package/{js → lib/js}/ui/tooltip.js +4 -4
- package/{js → lib/js}/utils/css.js +1 -1
- package/{js → lib/js}/utils/font-awesome.js +2 -2
- package/lib/js/utils/index.js +63 -0
- package/{scss → lib/scss}/_breakpoint.scss +4 -4
- package/{scss → lib/scss}/_button.scss +1 -0
- package/{scss → lib/scss}/_color.scss +42 -38
- package/{scss → lib/scss}/_element.scss +6 -1
- package/{scss → lib/scss}/_typography.scss +15 -0
- package/lib/scss/components/_accordion.scss +274 -0
- package/{scss → lib/scss}/components/_basic-hero.scss +1 -1
- package/lib/scss/components/_breadcrumb.scss +110 -0
- package/{scss → lib/scss}/components/_button.scss +14 -4
- package/{scss/components/_card.scss → lib/scss/components/_card-before-no-position-relative.TRASH.scss} +80 -100
- package/{scss → lib/scss}/components/_card-grid.scss +8 -2
- package/lib/scss/components/_card.scss +656 -0
- package/lib/scss/components/_definition-list.scss +178 -0
- package/{scss → lib/scss}/components/_index.scss +25 -0
- package/{scss → lib/scss}/components/_menu-stack.scss +169 -16
- package/{scss → lib/scss}/components/_modal.scss +11 -1
- package/lib/scss/components/_progress-bar.scss +260 -0
- package/lib/scss/components/_progress-circle.scss +175 -0
- package/{scss → lib/scss}/components/_skeleton.scss +26 -15
- package/{scss → lib/scss}/components/_tag.scss +49 -7
- package/{scss → lib/scss}/helpers/_utilities.scss +25 -3
- package/package.json +28 -15
- package/.browserslistrc +0 -2
- package/.eslintrc +0 -17
- package/.prettierrc +0 -10
- package/CHANGELOG.md +0 -746
- package/deprecated/js/doc-ready.js +0 -28
- package/deprecated/js/drupal-programmatic-modal.js +0 -91
- package/deprecated/js/jquery-prototypes.js +0 -309
- package/deprecated/js/micromodal-modals.js +0 -196
- package/deprecated/js/mini-collapsible-popper-positioning.js +0 -126
- package/deprecated/js/mini-collapsible.js +0 -607
- package/deprecated/js/node-data-manager.js +0 -78
- package/deprecated/js/script-loader.js +0 -60
- package/deprecated/js/waypoints/README.md +0 -3
- package/deprecated/js/waypoints/anchor-menu.js +0 -76
- package/deprecated/js/waypoints/element-waypoint.js +0 -75
- package/deprecated/js/waypoints/examples/page-link-menu.md +0 -106
- package/deprecated/js/waypoints/state-in-attribute.js +0 -32
- package/dist/ulu-frontend.min.css +0 -1
- package/dist/ulu-frontend.min.js +0 -77
- package/docs-dev/.nojekyll +0 -1
- package/docs-dev/assets/chunks/modulepreload-polyfill.DaKOjhqt.js +0 -37
- package/docs-dev/assets/favicons/android-chrome-192x192.png +0 -0
- package/docs-dev/assets/favicons/android-chrome-256x256.png +0 -0
- package/docs-dev/assets/favicons/apple-touch-icon.png +0 -0
- package/docs-dev/assets/favicons/browserconfig.xml +0 -9
- package/docs-dev/assets/favicons/favicon-16x16.png +0 -0
- package/docs-dev/assets/favicons/favicon-32x32.png +0 -0
- package/docs-dev/assets/favicons/favicon.ico +0 -0
- package/docs-dev/assets/favicons/mstile-150x150.png +0 -0
- package/docs-dev/assets/favicons/safari-pinned-tab.svg +0 -1
- package/docs-dev/assets/favicons/site.webmanifest +0 -19
- package/docs-dev/assets/fonts/fontawesome/fa-brands-400.ttf +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-brands-400.woff2 +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-regular-400.ttf +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-regular-400.woff2 +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-solid-900.ttf +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-solid-900.woff2 +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-v4compatibility.ttf +0 -0
- package/docs-dev/assets/fonts/fontawesome/fa-v4compatibility.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Black.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-BlackItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Bold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-BoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-ExtraBold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-ExtraBoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-ExtraLight.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-ExtraLightItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Italic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Light.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-LightItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Medium.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-MediumItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Regular.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-SemiBold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-SemiBoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-Thin.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/Inter-ThinItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Black.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-BlackItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Bold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-BoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-ExtraBold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-ExtraBoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-ExtraLight.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-ExtraLightItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Italic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Light.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-LightItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Medium.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-MediumItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Regular.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-SemiBold.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-SemiBoldItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-Thin.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterDisplay-ThinItalic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterVariable-Italic.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/InterVariable.woff2 +0 -0
- package/docs-dev/assets/fonts/inter/LICENSE.txt +0 -92
- package/docs-dev/assets/fonts/inter/inter.css +0 -37
- package/docs-dev/assets/main.js +0 -23312
- package/docs-dev/assets/placeholder/4065947-uhd_4096_2160_25fps.credits.txt +0 -2
- package/docs-dev/assets/placeholder/4065947-uhd_4096_2160_25fps.mp4 +0 -0
- package/docs-dev/assets/placeholder/icon-calendar.svg +0 -1
- package/docs-dev/assets/placeholder/icon-check.svg +0 -1
- package/docs-dev/assets/placeholder/image-1-attribution.txt +0 -7
- package/docs-dev/assets/placeholder/image-1-darkened.jpg +0 -0
- package/docs-dev/assets/placeholder/image-1-lightened.jpg +0 -0
- package/docs-dev/assets/placeholder/image-1.jpg +0 -0
- package/docs-dev/assets/style.css +0 -19153
- package/docs-dev/changelog/index.html +0 -7177
- package/docs-dev/demos/accordion/index.html +0 -5811
- package/docs-dev/demos/badge/index.html +0 -5655
- package/docs-dev/demos/badge-stack/index.html +0 -5636
- package/docs-dev/demos/badge.1/index.html +0 -5595
- package/docs-dev/demos/basic-hero/index.html +0 -111
- package/docs-dev/demos/breakpoints-manager/index.html +0 -5666
- package/docs-dev/demos/button/index.html +0 -5665
- package/docs-dev/demos/button-group/index.html +0 -5652
- package/docs-dev/demos/button-verbose/index.html +0 -5658
- package/docs-dev/demos/callout/index.html +0 -5704
- package/docs-dev/demos/captioned-figure/index.html +0 -5686
- package/docs-dev/demos/card/index.html +0 -5682
- package/docs-dev/demos/card-grid/index.html +0 -5777
- package/docs-dev/demos/counter-list/index.html +0 -5660
- package/docs-dev/demos/css-icons/index.html +0 -6298
- package/docs-dev/demos/data-grid/index.html +0 -6529
- package/docs-dev/demos/data-table/index.html +0 -5833
- package/docs-dev/demos/details-group/index.html +0 -5687
- package/docs-dev/demos/file-save/index.html +0 -5675
- package/docs-dev/demos/flipcard/index.html +0 -6224
- package/docs-dev/demos/form-theme/index.html +0 -5842
- package/docs-dev/demos/headline-label/index.html +0 -5622
- package/docs-dev/demos/hero/index.html +0 -309
- package/docs-dev/demos/image-grid/index.html +0 -165
- package/docs-dev/demos/index.html +0 -5613
- package/docs-dev/demos/list-inline/index.html +0 -5640
- package/docs-dev/demos/list-lines/index.html +0 -5630
- package/docs-dev/demos/menu-stack/index.html +0 -5769
- package/docs-dev/demos/modals/index.html +0 -5844
- package/docs-dev/demos/nav-strip/index.html +0 -5725
- package/docs-dev/demos/overlay-section/index.html +0 -5701
- package/docs-dev/demos/panel/index.html +0 -5682
- package/docs-dev/demos/popovers/index.html +0 -5873
- package/docs-dev/demos/print/index.html +0 -5633
- package/docs-dev/demos/pull-quote/index.html +0 -5632
- package/docs-dev/demos/rail/index.html +0 -5730
- package/docs-dev/demos/rule/index.html +0 -5694
- package/docs-dev/demos/scroll-slider/index.html +0 -170
- package/docs-dev/demos/scrollpoints/index.html +0 -5651
- package/docs-dev/demos/skeleton/index.html +0 -5676
- package/docs-dev/demos/slider/index.html +0 -172
- package/docs-dev/demos/spoke-spinner/index.html +0 -5628
- package/docs-dev/demos/sticky-list/index.html +0 -5643
- package/docs-dev/demos/tabs/index.html +0 -5753
- package/docs-dev/demos/tag/index.html +0 -5633
- package/docs-dev/demos/theme-toggle/index.html +0 -5699
- package/docs-dev/demos/tile-grid-overlay/index.html +0 -390
- package/docs-dev/demos/tiles/index.html +0 -5882
- package/docs-dev/demos/tooltip/index.html +0 -5661
- package/docs-dev/demos/wysiwyg/index.html +0 -5672
- package/docs-dev/guide/building-stylesheet/index.html +0 -5682
- package/docs-dev/guide/developing-ulu-scss-module/index.html +0 -5734
- package/docs-dev/guide/index.html +0 -5615
- package/docs-dev/index.html +0 -5662
- package/docs-dev/javascript/events/index.html +0 -5811
- package/docs-dev/javascript/index.html +0 -5628
- package/docs-dev/javascript/settings/index.html +0 -5825
- package/docs-dev/javascript/ui-breakpoints/index.html +0 -6071
- package/docs-dev/javascript/ui-collapsible/index.html +0 -5738
- package/docs-dev/javascript/ui-details-group/index.html +0 -5742
- package/docs-dev/javascript/ui-dialog/index.html +0 -5787
- package/docs-dev/javascript/ui-flipcard/index.html +0 -5678
- package/docs-dev/javascript/ui-grid/index.html +0 -5653
- package/docs-dev/javascript/ui-modal-builder/index.html +0 -5901
- package/docs-dev/javascript/ui-overflow-scroller/index.html +0 -5611
- package/docs-dev/javascript/ui-overflow-scroller-pager/index.html +0 -5629
- package/docs-dev/javascript/ui-page/index.html +0 -5626
- package/docs-dev/javascript/ui-popover/index.html +0 -5661
- package/docs-dev/javascript/ui-print/index.html +0 -5670
- package/docs-dev/javascript/ui-print-details/index.html +0 -5641
- package/docs-dev/javascript/ui-programmatic-modal/index.html +0 -5611
- package/docs-dev/javascript/ui-proxy-click/index.html +0 -5740
- package/docs-dev/javascript/ui-resizer/index.html +0 -5946
- package/docs-dev/javascript/ui-scroll-slider/index.html +0 -5672
- package/docs-dev/javascript/ui-scrollpoint/index.html +0 -5851
- package/docs-dev/javascript/ui-slider/index.html +0 -5813
- package/docs-dev/javascript/ui-tabs/index.html +0 -5706
- package/docs-dev/javascript/ui-theme-toggle/index.html +0 -5830
- package/docs-dev/javascript/ui-tooltip/index.html +0 -5754
- package/docs-dev/javascript/utils-class-logger/index.html +0 -5746
- package/docs-dev/javascript/utils-css/index.html +0 -5644
- package/docs-dev/javascript/utils-dom/index.html +0 -5711
- package/docs-dev/javascript/utils-file-save/index.html +0 -5783
- package/docs-dev/javascript/utils-floating-ui/index.html +0 -5643
- package/docs-dev/javascript/utils-id/index.html +0 -5653
- package/docs-dev/javascript/utils-pause-youtube-video/index.html +0 -5661
- package/docs-dev/javascript/utils-system/index.html +0 -5947
- package/docs-dev/sass/base/color/index.html +0 -5644
- package/docs-dev/sass/base/elements/index.html +0 -5815
- package/docs-dev/sass/base/index/index.html +0 -5814
- package/docs-dev/sass/base/index.html +0 -5622
- package/docs-dev/sass/base/keyframes/index.html +0 -5646
- package/docs-dev/sass/base/layout/index.html +0 -5806
- package/docs-dev/sass/base/normalize/index.html +0 -5654
- package/docs-dev/sass/base/print/index.html +0 -5650
- package/docs-dev/sass/base/root/index.html +0 -5670
- package/docs-dev/sass/base/typography/index.html +0 -5670
- package/docs-dev/sass/components/accordion/index.html +0 -5979
- package/docs-dev/sass/components/adaptive-spacing/index.html +0 -5915
- package/docs-dev/sass/components/badge/index.html +0 -5881
- package/docs-dev/sass/components/badge-stack/index.html +0 -5811
- package/docs-dev/sass/components/basic-hero/index.html +0 -5805
- package/docs-dev/sass/components/button/index.html +0 -5799
- package/docs-dev/sass/components/button-group/index.html +0 -5803
- package/docs-dev/sass/components/button-verbose/index.html +0 -5986
- package/docs-dev/sass/components/callout/index.html +0 -5961
- package/docs-dev/sass/components/captioned-figure/index.html +0 -5904
- package/docs-dev/sass/components/card/index.html +0 -6219
- package/docs-dev/sass/components/card-grid/index.html +0 -5813
- package/docs-dev/sass/components/counter-list/index.html +0 -5887
- package/docs-dev/sass/components/css-icon/index.html +0 -5917
- package/docs-dev/sass/components/data-grid/index.html +0 -6052
- package/docs-dev/sass/components/data-table/index.html +0 -5988
- package/docs-dev/sass/components/fill-context/index.html +0 -5679
- package/docs-dev/sass/components/flipcard/index.html +0 -5980
- package/docs-dev/sass/components/flipcard-grid/index.html +0 -5800
- package/docs-dev/sass/components/form-theme/index.html +0 -6525
- package/docs-dev/sass/components/headline-label/index.html +0 -5833
- package/docs-dev/sass/components/hero/index.html +0 -5849
- package/docs-dev/sass/components/horizontal-rule/index.html +0 -5798
- package/docs-dev/sass/components/image-grid/index.html +0 -5805
- package/docs-dev/sass/components/index/index.html +0 -5859
- package/docs-dev/sass/components/index.html +0 -5622
- package/docs-dev/sass/components/links/index.html +0 -5649
- package/docs-dev/sass/components/list-inline/index.html +0 -5819
- package/docs-dev/sass/components/list-lines/index.html +0 -5840
- package/docs-dev/sass/components/list-ordered/index.html +0 -5645
- package/docs-dev/sass/components/list-unordered/index.html +0 -5649
- package/docs-dev/sass/components/menu-stack/index.html +0 -5992
- package/docs-dev/sass/components/modal/index.html +0 -6068
- package/docs-dev/sass/components/nav-strip/index.html +0 -5899
- package/docs-dev/sass/components/overlay-section/index.html +0 -5843
- package/docs-dev/sass/components/pager/index.html +0 -5961
- package/docs-dev/sass/components/panel/index.html +0 -6033
- package/docs-dev/sass/components/placeholder-block/index.html +0 -5883
- package/docs-dev/sass/components/popover/index.html +0 -5994
- package/docs-dev/sass/components/pull-quote/index.html +0 -5857
- package/docs-dev/sass/components/rail/index.html +0 -5823
- package/docs-dev/sass/components/ratio-box/index.html +0 -5803
- package/docs-dev/sass/components/rule/index.html +0 -5805
- package/docs-dev/sass/components/scroll-slider/index.html +0 -5904
- package/docs-dev/sass/components/skeleton/index.html +0 -5860
- package/docs-dev/sass/components/skip-link/index.html +0 -5789
- package/docs-dev/sass/components/slider/index.html +0 -5913
- package/docs-dev/sass/components/spoke-spinner/index.html +0 -5863
- package/docs-dev/sass/components/sticky-list/index.html +0 -6023
- package/docs-dev/sass/components/table-sticky/index.html +0 -5677
- package/docs-dev/sass/components/tabs/index.html +0 -5954
- package/docs-dev/sass/components/tag/index.html +0 -5964
- package/docs-dev/sass/components/tile-button/index.html +0 -5844
- package/docs-dev/sass/components/tile-grid/index.html +0 -5979
- package/docs-dev/sass/components/tile-grid-overlay/index.html +0 -5780
- package/docs-dev/sass/components/vignette/index.html +0 -5799
- package/docs-dev/sass/components/wysiwyg/index.html +0 -5827
- package/docs-dev/sass/core/breakpoint/index.html +0 -6454
- package/docs-dev/sass/core/button/index.html +0 -6538
- package/docs-dev/sass/core/color/index.html +0 -6520
- package/docs-dev/sass/core/cssvar/index.html +0 -6411
- package/docs-dev/sass/core/element/index.html +0 -6816
- package/docs-dev/sass/core/index.html +0 -5609
- package/docs-dev/sass/core/layout/index.html +0 -6388
- package/docs-dev/sass/core/path/index.html +0 -5778
- package/docs-dev/sass/core/selector/index.html +0 -5857
- package/docs-dev/sass/core/typography/index.html +0 -6783
- package/docs-dev/sass/core/units/index.html +0 -5822
- package/docs-dev/sass/core/utils/index.html +0 -8406
- package/docs-dev/sass/helpers/color/index.html +0 -5644
- package/docs-dev/sass/helpers/display/index.html +0 -5649
- package/docs-dev/sass/helpers/index/index.html +0 -5811
- package/docs-dev/sass/helpers/index.html +0 -5622
- package/docs-dev/sass/helpers/print/index.html +0 -5199
- package/docs-dev/sass/helpers/typography/index.html +0 -5672
- package/docs-dev/sass/helpers/units/index.html +0 -5818
- package/docs-dev/sass/helpers/utilities/index.html +0 -5649
- package/docs-dev/sass/index.html +0 -5673
- package/index.js +0 -7
- package/js/events/index.js +0 -108
- package/js/index.js +0 -11
- package/js/ui/index.js +0 -22
- package/js/utils/index.js +0 -8
- package/resources/drupal/twig-macros/accordion.twig +0 -99
- package/resources/drupal/twig-macros/dropdown.twig +0 -44
- package/resources/drupal/twig-macros/flipcard.twig +0 -69
- package/resources/drupal/twig-macros/image.twig +0 -30
- package/resources/drupal/twig-macros/layout.twig +0 -338
- package/resources/drupal/twig-macros/slider.twig +0 -214
- package/resources/drupal/twig-macros/tabs.twig +0 -84
- package/scss/components/_accordion.scss +0 -231
- package/types/events/index.d.ts +0 -26
- package/types/events/index.d.ts.map +0 -1
- package/types/index.d.ts +0 -5
- package/types/settings.d.ts.map +0 -1
- package/types/ui/breakpoints.d.ts.map +0 -1
- package/types/ui/collapsible.d.ts.map +0 -1
- package/types/ui/details-group.d.ts.map +0 -1
- package/types/ui/dialog.d.ts.map +0 -1
- package/types/ui/flipcard.d.ts.map +0 -1
- package/types/ui/grid.d.ts.map +0 -1
- package/types/ui/index.d.ts +0 -24
- package/types/ui/modal-builder.d.ts.map +0 -1
- package/types/ui/overflow-scroller-pager.d.ts.map +0 -1
- package/types/ui/overflow-scroller.d.ts.map +0 -1
- package/types/ui/page.d.ts.map +0 -1
- package/types/ui/popover.d.ts.map +0 -1
- package/types/ui/print-details.d.ts.map +0 -1
- package/types/ui/print.d.ts.map +0 -1
- package/types/ui/programmatic-modal.d.ts.map +0 -1
- package/types/ui/proxy-click.d.ts.map +0 -1
- package/types/ui/resizer.d.ts.map +0 -1
- package/types/ui/scroll-slider.d.ts.map +0 -1
- package/types/ui/scrollpoint.d.ts.map +0 -1
- package/types/ui/slider.d.ts.map +0 -1
- package/types/ui/tabs.d.ts.map +0 -1
- package/types/ui/theme-toggle.d.ts.map +0 -1
- package/types/ui/tooltip.d.ts.map +0 -1
- package/types/utils/class-logger.d.ts.map +0 -1
- package/types/utils/css.d.ts.map +0 -1
- package/types/utils/dom.d.ts.map +0 -1
- package/types/utils/file-save.d.ts.map +0 -1
- package/types/utils/floating-ui.d.ts.map +0 -1
- package/types/utils/font-awesome.d.ts.map +0 -1
- package/types/utils/id.d.ts.map +0 -1
- package/types/utils/index.d.ts +0 -10
- package/types/utils/pause-youtube-video.d.ts.map +0 -1
- package/types/utils/system.d.ts.map +0 -1
- /package/{types → dist/types/js/core}/settings.d.ts +0 -0
- /package/{types → dist/types/js}/ui/collapsible.d.ts +0 -0
- /package/{types → dist/types/js}/ui/overflow-scroller-pager.d.ts +0 -0
- /package/{types → dist/types/js}/ui/overflow-scroller.d.ts +0 -0
- /package/{types → dist/types/js}/ui/page.d.ts +0 -0
- /package/{types → dist/types/js}/ui/print-details.d.ts +0 -0
- /package/{types → dist/types/js}/ui/print.d.ts +0 -0
- /package/{types → dist/types/js}/utils/class-logger.d.ts +0 -0
- /package/{types → dist/types/js}/utils/css.d.ts +0 -0
- /package/{types → dist/types/js}/utils/dom.d.ts +0 -0
- /package/{types → dist/types/js}/utils/floating-ui.d.ts +0 -0
- /package/{types → dist/types/js}/utils/font-awesome.d.ts +0 -0
- /package/{types → dist/types/js}/utils/id.d.ts +0 -0
- /package/{types → dist/types/js}/utils/pause-youtube-video.d.ts +0 -0
- /package/{js → lib/js}/ui/dialog.todo +0 -0
- /package/{js → lib/js}/ui/overflow-scroller-pager.js +0 -0
- /package/{js → lib/js}/ui/page.js +0 -0
- /package/{js → lib/js}/utils/class-logger.js +0 -0
- /package/{js → lib/js}/utils/dom.js +0 -0
- /package/{js → lib/js}/utils/file-save.js +0 -0
- /package/{js → lib/js}/utils/floating-ui.js +0 -0
- /package/{js → lib/js}/utils/id.js +0 -0
- /package/{js → lib/js}/utils/pause-youtube-video.js +0 -0
- /package/{scss → lib/scss}/README.md +0 -0
- /package/{scss → lib/scss}/_cssvar.scss +0 -0
- /package/{scss → lib/scss}/_index.scss +0 -0
- /package/{scss → lib/scss}/_layout.scss +0 -0
- /package/{scss → lib/scss}/_path.scss +0 -0
- /package/{scss → lib/scss}/_selector.scss +0 -0
- /package/{scss → lib/scss}/_units.scss +0 -0
- /package/{scss → lib/scss}/_utils.scss +0 -0
- /package/{scss → lib/scss}/base/_color.scss +0 -0
- /package/{scss → lib/scss}/base/_elements.scss +0 -0
- /package/{scss → lib/scss}/base/_index.scss +0 -0
- /package/{scss → lib/scss}/base/_keyframes.scss +0 -0
- /package/{scss → lib/scss}/base/_layout.scss +0 -0
- /package/{scss → lib/scss}/base/_normalize.scss +0 -0
- /package/{scss → lib/scss}/base/_print.scss +0 -0
- /package/{scss → lib/scss}/base/_root.scss +0 -0
- /package/{scss → lib/scss}/base/_typography.scss +0 -0
- /package/{scss → lib/scss}/components/README.md +0 -0
- /package/{scss → lib/scss}/components/README.todos +0 -0
- /package/{scss → lib/scss}/components/_adaptive-spacing.scss +0 -0
- /package/{scss → lib/scss}/components/_badge-stack.scss +0 -0
- /package/{scss → lib/scss}/components/_badge.scss +0 -0
- /package/{scss → lib/scss}/components/_button-group.scss +0 -0
- /package/{scss → lib/scss}/components/_button-verbose.scss +0 -0
- /package/{scss → lib/scss}/components/_callout.scss +0 -0
- /package/{scss → lib/scss}/components/_captioned-figure.scss +0 -0
- /package/{scss → lib/scss}/components/_counter-list.scss +0 -0
- /package/{scss → lib/scss}/components/_css-icon.scss +0 -0
- /package/{scss → lib/scss}/components/_data-grid.scss +0 -0
- /package/{scss → lib/scss}/components/_data-table.scss +0 -0
- /package/{scss → lib/scss}/components/_fill-context.scss +0 -0
- /package/{scss → lib/scss}/components/_flipcard-grid.scss +0 -0
- /package/{scss → lib/scss}/components/_flipcard.scss +0 -0
- /package/{scss → lib/scss}/components/_form-theme.scss +0 -0
- /package/{scss → lib/scss}/components/_headline-label.scss +0 -0
- /package/{scss → lib/scss}/components/_hero.scss +0 -0
- /package/{scss → lib/scss}/components/_horizontal-rule.scss +0 -0
- /package/{scss → lib/scss}/components/_image-grid.scss +0 -0
- /package/{scss → lib/scss}/components/_links.scss +0 -0
- /package/{scss → lib/scss}/components/_list-inline.scss +0 -0
- /package/{scss → lib/scss}/components/_list-lines.scss +0 -0
- /package/{scss → lib/scss}/components/_list-ordered.scss +0 -0
- /package/{scss → lib/scss}/components/_list-unordered.scss +0 -0
- /package/{scss → lib/scss}/components/_nav-strip.scss +0 -0
- /package/{scss → lib/scss}/components/_overlay-section.scss +0 -0
- /package/{scss → lib/scss}/components/_pager.scss +0 -0
- /package/{scss → lib/scss}/components/_panel.scss +0 -0
- /package/{scss → lib/scss}/components/_placeholder-block.scss +0 -0
- /package/{scss → lib/scss}/components/_popover.scss +0 -0
- /package/{scss → lib/scss}/components/_pull-quote.scss +0 -0
- /package/{scss → lib/scss}/components/_rail.scss +0 -0
- /package/{scss → lib/scss}/components/_ratio-box.scss +0 -0
- /package/{scss → lib/scss}/components/_rule.scss +0 -0
- /package/{scss → lib/scss}/components/_scroll-slider.scss +0 -0
- /package/{scss → lib/scss}/components/_skip-link.scss +0 -0
- /package/{scss → lib/scss}/components/_slider.scss +0 -0
- /package/{scss → lib/scss}/components/_spoke-spinner.scss +0 -0
- /package/{scss → lib/scss}/components/_sticky-list.scss +0 -0
- /package/{scss → lib/scss}/components/_tabs.scss +0 -0
- /package/{scss → lib/scss}/components/_tile-button.scss +0 -0
- /package/{scss → lib/scss}/components/_tile-grid-overlay.scss +0 -0
- /package/{scss → lib/scss}/components/_tile-grid.scss +0 -0
- /package/{scss → lib/scss}/components/_vignette.scss +0 -0
- /package/{scss → lib/scss}/components/_wysiwyg.scss +0 -0
- /package/{scss → lib/scss}/helpers/_color.scss +0 -0
- /package/{scss → lib/scss}/helpers/_display.scss +0 -0
- /package/{scss → lib/scss}/helpers/_index.scss +0 -0
- /package/{scss → lib/scss}/helpers/_print.scss +0 -0
- /package/{scss → lib/scss}/helpers/_typography.scss +0 -0
- /package/{scss → lib/scss}/helpers/_units.scss +0 -0
- /package/{scss → lib/scss}/stylesheets/README.md +0 -0
- /package/{scss → lib/scss}/stylesheets/base-styles.scss +0 -0
- /package/{scss → lib/scss}/stylesheets/component-styles.scss +0 -0
- /package/{scss → lib/scss}/stylesheets/full.scss +0 -0
- /package/{scss → lib/scss}/stylesheets/helper-styles.scss +0 -0
|
@@ -1,607 +0,0 @@
|
|
|
1
|
-
// =============================================================================
|
|
2
|
-
// Collapsibles Mini
|
|
3
|
-
// =============================================================================
|
|
4
|
-
|
|
5
|
-
// Version: 1.0.9
|
|
6
|
-
//
|
|
7
|
-
// Requires: Ally.js v1.4.1
|
|
8
|
-
|
|
9
|
-
// Changes: 1.0.2 | Added clickWithinCloses
|
|
10
|
-
// 1.0.3 | Tested In NVDA on Firefox Windows (everything works for basic and accordion)
|
|
11
|
-
// 1.0.4 | Fixed duplicate ID, remove incorrect aria-selected attr
|
|
12
|
-
// 1.0.5 | Converted to ES module
|
|
13
|
-
// 1.0.6 | Added the ability to change the toggle text with [data-cc-state-text]
|
|
14
|
-
// 1.0.7 | Added ability to fade instead of just slide
|
|
15
|
-
// 1.0.8 | Added dependency ally.js for focus trapping, and added
|
|
16
|
-
// option for closeOnEscape.
|
|
17
|
-
// 1.0.9 | Added event object from click/keyboard that caused change
|
|
18
|
-
|
|
19
|
-
// Description: Mini collapsible module that supports basic show and hide
|
|
20
|
-
// and accordions. This is not maintained with the Informatics
|
|
21
|
-
// core module Collapsibles but works similarly, based on
|
|
22
|
-
// version 4.0.7.
|
|
23
|
-
// - Handlers are attached to the document for convenience.
|
|
24
|
-
// - Self managed option exists for those that want to manage the click handlers.
|
|
25
|
-
// - Callbacks for change in state (before and after)
|
|
26
|
-
// - Type support:
|
|
27
|
-
// - hide/show
|
|
28
|
-
// - accordion
|
|
29
|
-
// - tabs (with keyboard controls) @coming-soon
|
|
30
|
-
|
|
31
|
-
// Support: - Built to work in legacy jQuery 1.12 (may not work in newer versions)
|
|
32
|
-
// - Uses ES5 include polyfill for:
|
|
33
|
-
// - Array.every(), Array.forEach()
|
|
34
|
-
// - Object.assign
|
|
35
|
-
// - Function.bind()
|
|
36
|
-
|
|
37
|
-
// Options: See the "defaults" object below for options and descriptions. All default
|
|
38
|
-
// properties can be modified and viewed at MiniCollapsibles.defaults [object]
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
// Setup: 1. Create the correct markup (see below)
|
|
42
|
-
// - This plugin will set the aria attributes for you with one exception
|
|
43
|
-
// if an element is added to the page after calling the constructor
|
|
44
|
-
// you will need to run instance.init(); to do the same for new elements.
|
|
45
|
-
// For convenience the module provides a method to update all instances with:
|
|
46
|
-
//
|
|
47
|
-
// MiniCollapsibles.parse()
|
|
48
|
-
//
|
|
49
|
-
// - This can be avoided by including the aria attributes in the HTML
|
|
50
|
-
// use the ariaStates object below for reference on what attributes
|
|
51
|
-
// should be set initially (based on if you want it open or closed)
|
|
52
|
-
// 2. Setup an instance by calling the constructor:
|
|
53
|
-
//
|
|
54
|
-
// var dropdown = new MiniCollapsible({
|
|
55
|
-
// container: '.collapsible',
|
|
56
|
-
// toggle: '.collapsible__toggle',
|
|
57
|
-
// content: '.collapsible__content',
|
|
58
|
-
// slide: 500
|
|
59
|
-
// });
|
|
60
|
-
//
|
|
61
|
-
// 3. Setup the CSS, the only requirement is adding display none when closed
|
|
62
|
-
// on the content container:
|
|
63
|
-
|
|
64
|
-
// .collapsible__content {
|
|
65
|
-
// display: none;
|
|
66
|
-
// }
|
|
67
|
-
// .collapsible__content[data-cc-state="open"] {
|
|
68
|
-
// display: block;
|
|
69
|
-
// }
|
|
70
|
-
//
|
|
71
|
-
// Markup: See comments below code
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
// Todo: - Tabs type (time permitting)
|
|
75
|
-
// - Add arrow key cycler from framework collapsible module
|
|
76
|
-
|
|
77
|
-
import maintain from 'ally.js/maintain/_maintain';
|
|
78
|
-
import { hasRequiredProps } from "@ulu/utils/object.js";
|
|
79
|
-
|
|
80
|
-
const requiredProps = ['selectorContainer', 'selectorToggle', 'selectorContent'];
|
|
81
|
-
const hasRequired = hasRequiredProps(requiredProps);
|
|
82
|
-
const $ = jQuery;
|
|
83
|
-
const $document = $(document);
|
|
84
|
-
const merge = Object.assign;
|
|
85
|
-
const elementsFocusable = [
|
|
86
|
-
'a[href]',
|
|
87
|
-
'button:not([disabled])',
|
|
88
|
-
'area[href]',
|
|
89
|
-
'input:not([disabled])',
|
|
90
|
-
'select:not([disabled])',
|
|
91
|
-
'textarea:not([disabled])',
|
|
92
|
-
'iframe','object',
|
|
93
|
-
'embed','*[tabindex]',
|
|
94
|
-
'*[contenteditable]'
|
|
95
|
-
];
|
|
96
|
-
const selectorFocusable = elementsFocusable.join(' ');
|
|
97
|
-
const dataKeyParsed = "MiniCollapsibleInit";
|
|
98
|
-
const defaults = {
|
|
99
|
-
idPrefix: 'mc-id--', // So user can adjust if needed
|
|
100
|
-
selectorContainer: null, // (required, string) Selector
|
|
101
|
-
selectorToggle: null, // see above
|
|
102
|
-
selectorContent: null, // see above
|
|
103
|
-
selectorContext: 'body', // (string) Selector for container that holds multiple collapsibles (oneOpenPerContext)
|
|
104
|
-
aria: true, // (boolean) Toggle aria attributes for accessibility
|
|
105
|
-
selfManaged: false, // (boolean) The module will not handle the clicks (Attach yourself and run methods yourself)
|
|
106
|
-
clickOutsideCloses: false, // Will close the collapsible if it's open and the user clicks outside, not available to self managed
|
|
107
|
-
clickWithinCloses: false, // Useful for menus
|
|
108
|
-
focusoutCloses: false, // Focusing away from the element closes it
|
|
109
|
-
closeOnEscape: false, // Add escape key handler when collapsible is open
|
|
110
|
-
onChangeBefore: null, // Callback(elements, newState, event) called before open/closed/toggled
|
|
111
|
-
onChangeAfter: null, // Callback(elements, newState, event) called after open/closed/toggled
|
|
112
|
-
attr: 'data-cc-state', // The attribute to use to indicate the state (for styling), for adding a class use the callbacks
|
|
113
|
-
slide: false, // Whether or not to use jQuery slide animation pass value for duration or false, also can use keywords
|
|
114
|
-
fade: false, // Whether or not to use jQuery fadeIn/Out animation pass value for duration or false, also can use keywords (Cannot slide and fade)
|
|
115
|
-
oneOpenPerContext: false, // If enabled the selector for "context" will be used to close all others before opening a new one
|
|
116
|
-
closeBeforeOpen: true, // The closing of other items in the context (may be expanded to other things in future) should be done before opening another
|
|
117
|
-
type: 'basic', // The type of collapsible (basic, accordion, tabs[not created yet])
|
|
118
|
-
trapFocus: false // Only allow focusing within the open collapsible
|
|
119
|
-
};
|
|
120
|
-
// Object holds info for plugin internally
|
|
121
|
-
const managed = {
|
|
122
|
-
all: [],
|
|
123
|
-
click: {
|
|
124
|
-
// ".container-selector .toggle-selector" : { instance object }
|
|
125
|
-
},
|
|
126
|
-
clickOutside: {
|
|
127
|
-
// ".container-selector .toggle-selector" : { instance object }
|
|
128
|
-
},
|
|
129
|
-
clickWithin: {
|
|
130
|
-
// ".container-selector .toggle-selector" : { instance object }
|
|
131
|
-
}
|
|
132
|
-
};
|
|
133
|
-
let ariaStates = {
|
|
134
|
-
basic: {
|
|
135
|
-
init: { // Dev note: Use this property to add specific props for this type (non dynamic like aria-role, etc)
|
|
136
|
-
toggle: null,
|
|
137
|
-
content: null,
|
|
138
|
-
container: null,
|
|
139
|
-
callback: null // Dev note: Use this for doing custom stuff
|
|
140
|
-
},
|
|
141
|
-
open: {
|
|
142
|
-
toggle: {
|
|
143
|
-
'aria-expanded' : 'true',
|
|
144
|
-
},
|
|
145
|
-
content: {
|
|
146
|
-
'aria-hidden' : 'false'
|
|
147
|
-
}
|
|
148
|
-
},
|
|
149
|
-
closed: {
|
|
150
|
-
toggle: {
|
|
151
|
-
'aria-expanded' : 'false',
|
|
152
|
-
},
|
|
153
|
-
content: {
|
|
154
|
-
'aria-hidden' : 'true'
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
let instanceCount = 0;
|
|
160
|
-
|
|
161
|
-
// Adding other merged Aria States
|
|
162
|
-
ariaStates.accordion = merge({}, ariaStates.basic, {
|
|
163
|
-
init: {
|
|
164
|
-
callback: function(elements) {
|
|
165
|
-
if (elements.index === 0) {
|
|
166
|
-
elements.context.attr('aria-label', 'Accordion Control Group Buttons');
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
class MiniCollapsible {
|
|
175
|
-
constructor(options) {
|
|
176
|
-
if (!hasRequired(options)) {
|
|
177
|
-
console.warn('MiniCollapsible: Missing required options:', options);
|
|
178
|
-
}
|
|
179
|
-
|
|
180
|
-
merge(this, defaults, options);
|
|
181
|
-
managed.all.push(this); // Register
|
|
182
|
-
|
|
183
|
-
// Click handlers
|
|
184
|
-
if (!this.selfManaged) {
|
|
185
|
-
var clickSelector = this.clickSelector();
|
|
186
|
-
managed.click[clickSelector] = this;
|
|
187
|
-
|
|
188
|
-
if (this.clickOutsideCloses) {
|
|
189
|
-
managed.clickOutside[clickSelector] = this;
|
|
190
|
-
}
|
|
191
|
-
if (this.clickWithinCloses) {
|
|
192
|
-
managed.clickWithin[this.clickSelectorWithin()] = this;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
this.init();
|
|
197
|
-
}
|
|
198
|
-
// Plugin Interface to re-parse plugin managed collapsibles
|
|
199
|
-
static parse() {
|
|
200
|
-
var all = managed.all;
|
|
201
|
-
for(var k = 0, l = all.length; k < l; k++) {
|
|
202
|
-
all[k].init();
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
clickSelector() {
|
|
206
|
-
return this.selectorContainer + ' ' + this.selectorToggle;
|
|
207
|
-
}
|
|
208
|
-
clickSelectorWithin() {
|
|
209
|
-
return this.selectorContainer + ' ' + this.selectorContent;
|
|
210
|
-
}
|
|
211
|
-
openSelector() {
|
|
212
|
-
return this.selectorContainer + '[' + this.attr + '="open"]';
|
|
213
|
-
}
|
|
214
|
-
handleClick(event, $toggle) {
|
|
215
|
-
var elements = this.getElements($toggle);
|
|
216
|
-
this.toggle(elements, event);
|
|
217
|
-
}
|
|
218
|
-
getElements($toggle) {
|
|
219
|
-
|
|
220
|
-
var $container = $toggle.closest(this.selectorContainer),
|
|
221
|
-
$content = $container.find(this.selectorContent).first();
|
|
222
|
-
return {
|
|
223
|
-
container: $container,
|
|
224
|
-
toggle: $toggle,
|
|
225
|
-
content: $content,
|
|
226
|
-
context: $container.closest(this.selectorContext),
|
|
227
|
-
all: $container.add($toggle).add($content)
|
|
228
|
-
};
|
|
229
|
-
}
|
|
230
|
-
getElementsFromContainer($container) {
|
|
231
|
-
var $toggle = $container.find(this.selectorToggle).first(),
|
|
232
|
-
$content = $container.find(this.selectorContent).first();
|
|
233
|
-
return {
|
|
234
|
-
container: $container,
|
|
235
|
-
toggle: $toggle,
|
|
236
|
-
content: $content,
|
|
237
|
-
context: $container.closest(this.selectorContext),
|
|
238
|
-
all: $container.add($toggle).add($content)
|
|
239
|
-
};
|
|
240
|
-
}
|
|
241
|
-
getElementsFromContent($content) {
|
|
242
|
-
var $container = $content.closest(this.selectorContainer),
|
|
243
|
-
$toggle = $container.find(this.selectorToggle).first();
|
|
244
|
-
return {
|
|
245
|
-
container: $container,
|
|
246
|
-
toggle: $toggle,
|
|
247
|
-
content: $content,
|
|
248
|
-
context: $container.closest(this.selectorContext),
|
|
249
|
-
all: $container.add($toggle).add($content)
|
|
250
|
-
};
|
|
251
|
-
}
|
|
252
|
-
getElementsArray($container) {
|
|
253
|
-
// Expects multiple containers returns arrays of elements objects
|
|
254
|
-
var self = this,
|
|
255
|
-
elementsArray = [];
|
|
256
|
-
|
|
257
|
-
function collect() {
|
|
258
|
-
elementsArray.push(self.getElementsFromContainer($(this)));
|
|
259
|
-
}
|
|
260
|
-
|
|
261
|
-
$container.each(collect);
|
|
262
|
-
return elementsArray;
|
|
263
|
-
}
|
|
264
|
-
getOtherElements({ container, content, toggle }) {
|
|
265
|
-
|
|
266
|
-
var $context = container.closest(this.selectorContext),
|
|
267
|
-
$container = $context.find(this.selectorContainer).not(container),
|
|
268
|
-
$toggle = $context.find(this.selectorToggle).not(toggle),
|
|
269
|
-
$content = $context.find(this.selectorContent).not(content);
|
|
270
|
-
|
|
271
|
-
return {
|
|
272
|
-
container: $container,
|
|
273
|
-
toggle: $toggle,
|
|
274
|
-
content: $content,
|
|
275
|
-
context: $context,
|
|
276
|
-
all: $container.add($toggle).add($content)
|
|
277
|
-
};
|
|
278
|
-
}
|
|
279
|
-
// Switched the state
|
|
280
|
-
toggle(elements, event) {
|
|
281
|
-
const state = this.getState(elements),
|
|
282
|
-
isOpening = state === "closed",
|
|
283
|
-
changeTo = isOpening ? "open" : "closed",
|
|
284
|
-
change = () => this.setState(elements, changeTo, event);
|
|
285
|
-
if (isOpening && this.oneOpenPerContext) {
|
|
286
|
-
if (this.closeBeforeOpen) {
|
|
287
|
-
this.setState(this.getOtherElements(elements), "closed", event, change);
|
|
288
|
-
} else {
|
|
289
|
-
this.setState(this.getOtherElements(elements), "closed", event);
|
|
290
|
-
change();
|
|
291
|
-
}
|
|
292
|
-
} else {
|
|
293
|
-
change();
|
|
294
|
-
}
|
|
295
|
-
}
|
|
296
|
-
setState(elements, state, event, onComplete) {
|
|
297
|
-
const handleComplete = () => onComplete && onComplete();
|
|
298
|
-
// Don't want to fire callbacks if no changes were made
|
|
299
|
-
if (!elements.container.length) return handleComplete();
|
|
300
|
-
|
|
301
|
-
// Callback after element is open/closed
|
|
302
|
-
const after = () => {
|
|
303
|
-
elements.all.attr(this.attr, state);
|
|
304
|
-
if (this.onChangeAfter) {
|
|
305
|
-
this.onChangeAfter.call(this, elements, state, event);
|
|
306
|
-
}
|
|
307
|
-
if (this.aria) {
|
|
308
|
-
this.setAriaAttr(elements, state);
|
|
309
|
-
}
|
|
310
|
-
if (this.trapFocus) {
|
|
311
|
-
this.setTrapFocus(elements, state);
|
|
312
|
-
}
|
|
313
|
-
if (this.closeOnEscape) {
|
|
314
|
-
this.setEscapeClose(elements, state);
|
|
315
|
-
}
|
|
316
|
-
if (this.focusoutCloses) {
|
|
317
|
-
this.setFocusoutCloses(elements, state);
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
// Change the toggle text if user passes state text object
|
|
321
|
-
const textState = elements.toggle.data('cc-state-text');
|
|
322
|
-
if (textState) {
|
|
323
|
-
elements.toggle.text(textState[state]);
|
|
324
|
-
}
|
|
325
|
-
handleComplete();
|
|
326
|
-
}
|
|
327
|
-
// Change the state and call callback
|
|
328
|
-
if (this.onChangeBefore) {
|
|
329
|
-
this.onChangeBefore.call(this, elements, state, event);
|
|
330
|
-
}
|
|
331
|
-
if (this.slide) {
|
|
332
|
-
elements.content[state === "open" ? "slideDown" : "slideUp"](this.slide, after);
|
|
333
|
-
} else if (this.fade) {
|
|
334
|
-
elements.content[state === "open" ? "fadeIn" : "fadeOut"](this.slide, after);
|
|
335
|
-
} else {
|
|
336
|
-
after();
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
|
-
getState({ content }) {
|
|
340
|
-
return content.attr(this.attr) || "closed";
|
|
341
|
-
}
|
|
342
|
-
setAriaAttr(elements, state, setImmutable) {
|
|
343
|
-
|
|
344
|
-
var ariaAttrs = ariaStates[this.type],
|
|
345
|
-
ariaInit = ariaAttrs.init,
|
|
346
|
-
ariaState = ariaAttrs[state],
|
|
347
|
-
toggleAttrs = ariaState.toggle,
|
|
348
|
-
contentAttrs = ariaState.content;
|
|
349
|
-
|
|
350
|
-
if (setImmutable) {
|
|
351
|
-
|
|
352
|
-
var tid = this.uniqueId(),
|
|
353
|
-
cid = this.uniqueId();
|
|
354
|
-
|
|
355
|
-
toggleAttrs = merge(toggleAttrs, ariaInit.toggle, {
|
|
356
|
-
"id": tid,
|
|
357
|
-
"aria-controls" : cid,
|
|
358
|
-
});
|
|
359
|
-
|
|
360
|
-
contentAttrs = merge(contentAttrs, ariaInit.content, {
|
|
361
|
-
"id": cid,
|
|
362
|
-
"aria-labelledby" : tid
|
|
363
|
-
});
|
|
364
|
-
|
|
365
|
-
if (ariaInit.container) {
|
|
366
|
-
elements.container.attr(ariaInit.container);
|
|
367
|
-
}
|
|
368
|
-
if (ariaInit.context) {
|
|
369
|
-
elements.context.attr(ariaInit.context);
|
|
370
|
-
}
|
|
371
|
-
// Do custom stuff
|
|
372
|
-
if (ariaInit.callback) {
|
|
373
|
-
ariaInit.callback.call(this, elements);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
elements.toggle.attr(toggleAttrs);
|
|
378
|
-
elements.content.attr(contentAttrs);
|
|
379
|
-
}
|
|
380
|
-
/**
|
|
381
|
-
* Attaches temporary ally handler for disabling
|
|
382
|
-
* focus outside of the collapsible instance
|
|
383
|
-
* @param {Object} elements
|
|
384
|
-
* @param {String} state
|
|
385
|
-
*/
|
|
386
|
-
setTrapFocus(elements, state) {
|
|
387
|
-
const filter = elements.container.get(0);
|
|
388
|
-
if (state === "open") {
|
|
389
|
-
this._focusTrapHandler = maintain.disabled({ filter });
|
|
390
|
-
} else if (this.focusTrapHandler) {
|
|
391
|
-
this._focusTrapHandler.disengage();
|
|
392
|
-
delete this._focusTrapHandler;
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
/**
|
|
396
|
-
* Attaches temporary handler for the escape key
|
|
397
|
-
* while the collapsible is open. Removing it when
|
|
398
|
-
* it closes.
|
|
399
|
-
* @param {Object} elements
|
|
400
|
-
* @param {String} state
|
|
401
|
-
*/
|
|
402
|
-
setEscapeClose(elements, state) {
|
|
403
|
-
const { container } = elements;
|
|
404
|
-
if (state === "open") {
|
|
405
|
-
this._escapeCloseHandler = e => {
|
|
406
|
-
if (e.keyCode === 27) {
|
|
407
|
-
this.setState(elements, "closed", e);
|
|
408
|
-
container.off('keyup', handler);
|
|
409
|
-
delete this._escapeCloseHandler;
|
|
410
|
-
}
|
|
411
|
-
};
|
|
412
|
-
container.on('keyup', this._escapeCloseHandler);
|
|
413
|
-
} else if (this._escapeCloseHandler) {
|
|
414
|
-
container.off('keyup', this._escapeCloseHandler);
|
|
415
|
-
delete this._escapeCloseHandler;
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
|
-
setFocusoutCloses(elements, state) {
|
|
419
|
-
const { container } = elements;
|
|
420
|
-
if (state === "open") {
|
|
421
|
-
this._focusoutClosesHandler = e => {
|
|
422
|
-
if (!container.get(0).contains(e.relatedTarget)) {
|
|
423
|
-
console.log('Closed due to focu out');
|
|
424
|
-
this.setState(elements, "closed", e);
|
|
425
|
-
delete this._focusoutClosesHandler;
|
|
426
|
-
}
|
|
427
|
-
};
|
|
428
|
-
container.on('focusout', this._focusoutClosesHandler);
|
|
429
|
-
} else if (this._focusoutClosesHandler) {
|
|
430
|
-
container.off('focusout', this._focusoutClosesHandler);
|
|
431
|
-
delete this._focusoutClosesHandler;
|
|
432
|
-
}
|
|
433
|
-
}
|
|
434
|
-
init() {
|
|
435
|
-
this.each(this.initElementSet);
|
|
436
|
-
}
|
|
437
|
-
initElementSet(elements) {
|
|
438
|
-
// Check if they are already setting attributes if not set them
|
|
439
|
-
if (elements.container.data(dataKeyParsed)) {
|
|
440
|
-
return;
|
|
441
|
-
}
|
|
442
|
-
var state = this.getState(elements);
|
|
443
|
-
this.setAriaAttr(elements, state, true);
|
|
444
|
-
elements.container.data(dataKeyParsed, true);
|
|
445
|
-
}
|
|
446
|
-
each(callback) {
|
|
447
|
-
|
|
448
|
-
$(this.selectorContainer).each(eachContainer.bind(this));
|
|
449
|
-
|
|
450
|
-
function eachContainer(index, container) {
|
|
451
|
-
var $container = $(container),
|
|
452
|
-
$toggle = $container.find(this.selectorToggle).first(),
|
|
453
|
-
$content = $container.find(this.selectorContent).first();
|
|
454
|
-
|
|
455
|
-
var elements = {
|
|
456
|
-
container: $container,
|
|
457
|
-
toggle: $toggle,
|
|
458
|
-
content: $content,
|
|
459
|
-
index: index,
|
|
460
|
-
context: $container.closest(this.selectorContext),
|
|
461
|
-
all: $container.add($toggle).add($content)
|
|
462
|
-
};
|
|
463
|
-
|
|
464
|
-
callback.call(this, elements);
|
|
465
|
-
}
|
|
466
|
-
}
|
|
467
|
-
// Function should test DOM for an ID and return one that doesn't exist.
|
|
468
|
-
// - User can override this function if needed
|
|
469
|
-
uniqueId(attempt) {
|
|
470
|
-
|
|
471
|
-
attempt = attempt === undefined ? 1 : ++attempt;
|
|
472
|
-
|
|
473
|
-
var id = this.idPrefix + (++instanceCount),
|
|
474
|
-
el = $('#' + id);
|
|
475
|
-
|
|
476
|
-
// Check to make sure this ID isn't in the DOM (try again)
|
|
477
|
-
// The attempt limit is so this doesn't go into infinite loop for some
|
|
478
|
-
// reason (very unlikely but it didn't feel right leaving the
|
|
479
|
-
// opportunity to loop forever)
|
|
480
|
-
if (el.length && attempt < 50) {
|
|
481
|
-
return this.uniqueId(attempt);
|
|
482
|
-
} else {
|
|
483
|
-
return id;
|
|
484
|
-
}
|
|
485
|
-
}
|
|
486
|
-
}
|
|
487
|
-
|
|
488
|
-
// Attaching properties to class so user can modify globally
|
|
489
|
-
MiniCollapsible.defaults = defaults;
|
|
490
|
-
MiniCollapsible.ariaStates = ariaStates;
|
|
491
|
-
MiniCollapsible.managed = managed;
|
|
492
|
-
|
|
493
|
-
$document.on('click', onClick); // Module click handler
|
|
494
|
-
|
|
495
|
-
// Internal Functions
|
|
496
|
-
// =============================================================================
|
|
497
|
-
|
|
498
|
-
function onClick(event) {
|
|
499
|
-
var $target = $(event.target),
|
|
500
|
-
selector,
|
|
501
|
-
$toggle,
|
|
502
|
-
$content,
|
|
503
|
-
instance,
|
|
504
|
-
elements;
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
// Check for open instances before changing new ones
|
|
508
|
-
for (selector in managed.clickOutside) {
|
|
509
|
-
// Need to select all open
|
|
510
|
-
instance = managed.clickOutside[selector];
|
|
511
|
-
ifOutsideClose(instance, $target, event);
|
|
512
|
-
}
|
|
513
|
-
// Check all instances
|
|
514
|
-
for (selector in managed.click) {
|
|
515
|
-
$toggle = $target.closest(selector);
|
|
516
|
-
if ($toggle.length) {
|
|
517
|
-
instance = managed.click[selector];
|
|
518
|
-
instance.handleClick(event, $toggle);
|
|
519
|
-
}
|
|
520
|
-
}
|
|
521
|
-
// check Click within and close
|
|
522
|
-
for (selector in managed.clickWithin) {
|
|
523
|
-
$content = $target.closest(selector);
|
|
524
|
-
if ($content.length) {
|
|
525
|
-
instance = managed.clickWithin[selector];
|
|
526
|
-
elements = instance.getElementsFromContent($content);
|
|
527
|
-
instance.setState(elements, 'closed', event);
|
|
528
|
-
}
|
|
529
|
-
}
|
|
530
|
-
}
|
|
531
|
-
function ifOutsideClose(self, $target, event) {
|
|
532
|
-
// Decide if the current click target is a toggle
|
|
533
|
-
var cont = self.selectorContainer,
|
|
534
|
-
contOpen = self.openSelector(),
|
|
535
|
-
$targetContainer = $target.parents(cont).addBack(cont),
|
|
536
|
-
$openContainer = $document.find(contOpen).not($targetContainer);
|
|
537
|
-
|
|
538
|
-
// Then close the open containers
|
|
539
|
-
if ($openContainer.length) {
|
|
540
|
-
var elementsArray = self.getElementsArray($openContainer);
|
|
541
|
-
for(var i = 0; i < elementsArray.length; i++){
|
|
542
|
-
self.setState(elementsArray[i], "closed", event);
|
|
543
|
-
}
|
|
544
|
-
}
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
export default MiniCollapsible;
|
|
548
|
-
|
|
549
|
-
/*
|
|
550
|
-
Markup Example:
|
|
551
|
-
|
|
552
|
-
<!-- Basic Hide and Show -->
|
|
553
|
-
<div class="collapsible" data-cc-state="closed">
|
|
554
|
-
<button class="collapsible__toggle" type="button" data-cc-state="closed" data-cc-state-text='{ "open" : "Hide Filters", "closed" : "Show Filters" }'>
|
|
555
|
-
Open Me
|
|
556
|
-
</button>
|
|
557
|
-
<div class="collapsible__content" data-cc-state="closed">
|
|
558
|
-
<p>
|
|
559
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eu molestie est. Proin ante augue, sollicitudin at diam sed, ullamcorper vehicula libero. Vestibulum hendrerit, arcu eget viverra imperdiet, ipsum nunc consectetur sapien, eu tincidunt velit leo vel neque. Quisque sit amet venenatis turpis. Donec ac faucibus nisi. Aliquam nec rhoncus
|
|
560
|
-
</p>
|
|
561
|
-
</div>
|
|
562
|
-
</div>
|
|
563
|
-
|
|
564
|
-
<!-- Example accordion -->
|
|
565
|
-
<ul class="accordion">
|
|
566
|
-
<li class="accordion__item" data-cc-state="open">
|
|
567
|
-
<button class="accordion__toggle" data-cc-state="open" type="button">
|
|
568
|
-
<strong>Toggle the accordion</strong>
|
|
569
|
-
</button>
|
|
570
|
-
<div class="accordion__content" data-cc-state="open">
|
|
571
|
-
<p>
|
|
572
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eu molestie est. Proin ante augue, sollicitudin at diam sed, ullamcorper vehicula libero. Vestibulum hendrerit, arcu eget viverra imperdiet, ipsum nunc consectetur sapien, eu tincidunt velit leo vel neque. Quisque sit amet venenatis turpis. Donec ac faucibus nisi. Aliquam nec rhoncus turpis, sit amet euismod sem. Morbi facilisis, ipsum eget fermentum interdum, ligula diam tincidunt nisi, eu auctor lacus sem maximus erat. Sed at metus ex. Nam vestibulum convallis magna, et ultricies eros suscipit non. Quisque ornare semper ipsum vitae tempor. Aliquam semper ante leo, eget pretium nisi fringilla quis.
|
|
573
|
-
</p>
|
|
574
|
-
</div>
|
|
575
|
-
</li>
|
|
576
|
-
<li class="accordion__item" data-cc-state="closed">
|
|
577
|
-
<button class="accordion__toggle" data-cc-state="closed">
|
|
578
|
-
<strong>Toggle the accordion</strong>
|
|
579
|
-
</button>
|
|
580
|
-
<div class="accordion__content" data-cc-state="closed">
|
|
581
|
-
<p>
|
|
582
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eu molestie est. Proin ante augue, sollicitudin at diam sed, ullamcorper vehicula libero. Vestibulum hendrerit, arcu eget viverra imperdiet, ipsum nunc consectetur sapien, eu tincidunt velit leo vel neque. Quisque sit amet venenatis turpis. Donec ac faucibus nisi. Aliquam nec rhoncus turpis, sit amet euismod sem. Morbi facilisis, ipsum eget fermentum interdum, ligula diam tincidunt nisi, eu auctor lacus sem maximus erat. Sed at metus ex. Nam vestibulum convallis magna, et ultricies eros suscipit non. Quisque ornare semper ipsum vitae tempor. Aliquam semper ante leo, eget pretium nisi fringilla quis.
|
|
583
|
-
</p>
|
|
584
|
-
</div>
|
|
585
|
-
</li>
|
|
586
|
-
<li class="accordion__item" data-cc-state="closed">
|
|
587
|
-
<button class="accordion__toggle" data-cc-state="closed">
|
|
588
|
-
<strong>Toggle the accordion</strong>
|
|
589
|
-
</button>
|
|
590
|
-
<div class="accordion__content" data-cc-state="closed">
|
|
591
|
-
<p>
|
|
592
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eu molestie est. Proin ante augue, sollicitudin at diam sed, ullamcorper vehicula libero. Vestibulum hendrerit, arcu eget viverra imperdiet, ipsum nunc consectetur sapien, eu tincidunt velit leo vel neque. Quisque sit amet venenatis turpis. Donec ac faucibus nisi. Aliquam nec rhoncus turpis, sit amet euismod sem. Morbi facilisis, ipsum eget fermentum interdum, ligula diam tincidunt nisi, eu auctor lacus sem maximus erat. Sed at metus ex. Nam vestibulum convallis magna, et ultricies eros suscipit non. Quisque ornare semper ipsum vitae tempor. Aliquam semper ante leo, eget pretium nisi fringilla quis.
|
|
593
|
-
</p>
|
|
594
|
-
</div>
|
|
595
|
-
</li>
|
|
596
|
-
<li class="accordion__item" data-cc-state="closed">
|
|
597
|
-
<button class="accordion__toggle" data-cc-state="closed">
|
|
598
|
-
<strong>Toggle the accordion</strong>
|
|
599
|
-
</button>
|
|
600
|
-
<div class="accordion__content" data-cc-state="closed">
|
|
601
|
-
<p>
|
|
602
|
-
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aliquam eu molestie est. Proin ante augue, sollicitudin at diam sed, ullamcorper vehicula libero. Vestibulum hendrerit, arcu eget viverra imperdiet, ipsum nunc consectetur sapien, eu tincidunt velit leo vel neque. Quisque sit amet venenatis turpis. Donec ac faucibus nisi. Aliquam nec rhoncus turpis, sit amet euismod sem. Morbi facilisis, ipsum eget fermentum interdum, ligula diam tincidunt nisi, eu auctor lacus sem maximus erat. Sed at metus ex. Nam vestibulum convallis magna, et ultricies eros suscipit non. Quisque ornare semper ipsum vitae tempor. Aliquam semper ante leo, eget pretium nisi fringilla quis.
|
|
603
|
-
</p>
|
|
604
|
-
</div>
|
|
605
|
-
</li>
|
|
606
|
-
</ul>
|
|
607
|
-
*/
|
|
@@ -1,78 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @module helpers/node-data-manager
|
|
3
|
-
*/
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Class that provides a method to store data based on node/element
|
|
7
|
-
*/
|
|
8
|
-
export default class NodeDataManager {
|
|
9
|
-
constructor() {
|
|
10
|
-
this.store = [];
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Get data for an element/node
|
|
14
|
-
* @param {Node} node Html Node/Element to get data for
|
|
15
|
-
* @param {String|Boolean} key If key is passed, return that key's data for the element, if falsey return elements complete dataset
|
|
16
|
-
*/
|
|
17
|
-
get(node, key = false) {
|
|
18
|
-
const nodeData = this.find(node);
|
|
19
|
-
if (nodeData) {
|
|
20
|
-
return nodeData.get(key);
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Bind data to a specific Node/Element
|
|
25
|
-
* @param {Node} node Html Node/Element to get data for
|
|
26
|
-
* @param {String} key Key to save the data under
|
|
27
|
-
* @param {*} value Value to save
|
|
28
|
-
*/
|
|
29
|
-
set(node, key, value) {
|
|
30
|
-
const nodeData = this.find(node);
|
|
31
|
-
if (nodeData) {
|
|
32
|
-
nodeData.set(key, value);
|
|
33
|
-
} else {
|
|
34
|
-
this.store.push(new NodeDataStore(node, { [key] : value }));
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Return an elements store object
|
|
39
|
-
*/
|
|
40
|
-
find(node) {
|
|
41
|
-
return this.store.find(nd => nd.isNode(node));
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Destroy all references to data and nodes/elements
|
|
45
|
-
*/
|
|
46
|
-
destroy() {
|
|
47
|
-
this.store.forEach(nd => nd.destroy());
|
|
48
|
-
this.store = [];
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Child class that provides a store for one specific node/element
|
|
53
|
-
*/
|
|
54
|
-
export class NodeDataStore {
|
|
55
|
-
constructor(node, data) {
|
|
56
|
-
this.node = node;
|
|
57
|
-
this.data = data || {}; // Lookup
|
|
58
|
-
}
|
|
59
|
-
set(key, value) {
|
|
60
|
-
this.data[key] = value;
|
|
61
|
-
}
|
|
62
|
-
get(key = false) {
|
|
63
|
-
return key ? this.data[key] : this.data;
|
|
64
|
-
}
|
|
65
|
-
remove(key) {
|
|
66
|
-
delete this.data[key];
|
|
67
|
-
}
|
|
68
|
-
isNode(node) {
|
|
69
|
-
return this.node.isSameNode(node);
|
|
70
|
-
}
|
|
71
|
-
clearData() {
|
|
72
|
-
this.data = {};
|
|
73
|
-
}
|
|
74
|
-
destroy() {
|
|
75
|
-
this.clearData();
|
|
76
|
-
this.node = null;
|
|
77
|
-
}
|
|
78
|
-
}
|