@six-group/ui-library 3.0.0-beta.1.7 → 3.0.0-beta.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{event-listeners-4a8d66d5.js → event-listeners-74715e62.js} +38 -38
- package/dist/cjs/{execution-control-3bc9c7c4.js → execution-control-46f388e0.js} +35 -35
- package/dist/cjs/{focus-visible-b08d956f.js → focus-visible-0b352c74.js} +40 -40
- package/dist/cjs/{form-control-9e4dffd1.js → form-control-866bbece.js} +25 -25
- package/dist/cjs/{modal-a9679ddf.js → modal-48d42228.js} +41 -41
- package/dist/cjs/{popover-e3781f5a.js → popover-1d2a037c.js} +95 -95
- package/dist/cjs/{scroll-5b8676ba.js → scroll-76e6f5d7.js} +57 -57
- package/dist/cjs/set-attributes_2.cjs.entry.js +57 -57
- package/dist/cjs/six-alert.cjs.entry.js +131 -131
- package/dist/cjs/six-avatar.cjs.entry.js +28 -28
- package/dist/cjs/six-badge.cjs.entry.js +26 -26
- package/dist/cjs/six-button.cjs.entry.js +97 -97
- package/dist/cjs/six-card.cjs.entry.js +8 -8
- package/dist/cjs/six-checkbox.cjs.entry.js +152 -152
- package/dist/cjs/six-datepicker.cjs.entry.js +1189 -1189
- package/dist/cjs/six-details.cjs.entry.js +139 -139
- package/dist/cjs/six-dialog.cjs.entry.js +152 -152
- package/dist/cjs/six-drawer.cjs.entry.js +174 -174
- package/dist/cjs/six-dropdown_3.cjs.entry.js +728 -728
- package/dist/cjs/six-error-page.cjs.entry.js +94 -94
- package/dist/cjs/six-file-list-item.cjs.entry.js +38 -38
- package/dist/cjs/six-file-list.cjs.entry.js +8 -8
- package/dist/cjs/six-file-upload.cjs.entry.js +96 -96
- package/dist/cjs/six-footer.cjs.entry.js +8 -8
- package/dist/cjs/six-form.cjs.entry.js +219 -219
- package/dist/cjs/six-group-label.cjs.entry.js +46 -46
- package/dist/cjs/six-header.cjs.entry.js +149 -149
- package/dist/cjs/six-icon-button.cjs.entry.js +33 -33
- package/dist/cjs/six-icon.cjs.entry.js +24 -24
- package/dist/cjs/six-input.cjs.entry.js +230 -230
- package/dist/cjs/six-item-picker.cjs.entry.js +361 -361
- package/dist/cjs/six-language-switcher.cjs.entry.js +52 -52
- package/dist/cjs/six-layout-grid.cjs.entry.js +19 -19
- package/dist/cjs/six-main-container.cjs.entry.js +11 -11
- package/dist/cjs/six-menu-divider.cjs.entry.js +8 -8
- package/dist/cjs/six-menu-label.cjs.entry.js +8 -8
- package/dist/cjs/six-picto.cjs.entry.js +15 -15
- package/dist/cjs/six-progress-bar.cjs.entry.js +17 -17
- package/dist/cjs/six-progress-ring.cjs.entry.js +31 -31
- package/dist/cjs/six-radio.cjs.entry.js +121 -121
- package/dist/cjs/six-range.cjs.entry.js +198 -198
- package/dist/cjs/six-root.cjs.entry.js +34 -34
- package/dist/cjs/six-search-field.cjs.entry.js +43 -43
- package/dist/cjs/six-select.cjs.entry.js +447 -447
- package/dist/cjs/six-sidebar-item-group.cjs.entry.js +42 -42
- package/dist/cjs/six-sidebar-item.cjs.entry.js +18 -18
- package/dist/cjs/six-sidebar.cjs.entry.js +171 -171
- package/dist/cjs/six-spinner.cjs.entry.js +16 -16
- package/dist/cjs/six-switch.cjs.entry.js +100 -100
- package/dist/cjs/six-tab-group.cjs.entry.js +226 -226
- package/dist/cjs/six-tab-panel.cjs.entry.js +17 -17
- package/dist/cjs/six-tab.cjs.entry.js +42 -42
- package/dist/cjs/six-table-cell_4.cjs.entry.js +70 -70
- package/dist/cjs/six-table.cjs.entry.js +145 -145
- package/dist/cjs/six-tag.cjs.entry.js +40 -40
- package/dist/cjs/six-textarea.cjs.entry.js +211 -211
- package/dist/cjs/six-tile.cjs.entry.js +89 -89
- package/dist/cjs/six-timepicker.cjs.entry.js +489 -489
- package/dist/cjs/{six-timepicker.types-c58cc88b.js → six-timepicker.types-c19ebff3.js} +43 -43
- package/dist/cjs/six-tooltip.cjs.entry.js +172 -172
- package/dist/cjs/{slot-8abe833c.js → slot-ad537f24.js} +42 -42
- package/dist/cjs/{types-65e5c95b.js → types-581e8ff0.js} +12 -12
- package/dist/cjs/{types-0c28e484.js → types-64878648.js} +12 -12
- package/dist/collection/components/six-alert/six-alert.js +366 -366
- package/dist/collection/components/six-avatar/six-avatar.js +131 -131
- package/dist/collection/components/six-badge/six-badge.js +101 -101
- package/dist/collection/components/six-button/six-button.js +466 -466
- package/dist/collection/components/six-card/six-card.js +21 -21
- package/dist/collection/components/six-checkbox/six-checkbox.js +550 -550
- package/dist/collection/components/six-datepicker/components/day-selection.js +13 -13
- package/dist/collection/components/six-datepicker/components/month-selection.js +12 -12
- package/dist/collection/components/six-datepicker/components/year-selection.js +10 -10
- package/dist/collection/components/six-datepicker/six-date-formats.js +23 -23
- package/dist/collection/components/six-datepicker/six-datepicker.js +1343 -1343
- package/dist/collection/components/six-datepicker/test/six-datepicker.test-helpers.js +16 -16
- package/dist/collection/components/six-details/six-details.js +432 -432
- package/dist/collection/components/six-dialog/six-dialog.js +401 -401
- package/dist/collection/components/six-drawer/six-drawer.js +458 -458
- package/dist/collection/components/six-dropdown/six-dropdown.js +939 -939
- package/dist/collection/components/six-error-page/six-error-page.js +199 -199
- package/dist/collection/components/six-file-list/six-file-list.js +20 -20
- package/dist/collection/components/six-file-list-item/six-file-list-item.js +203 -203
- package/dist/collection/components/six-file-upload/six-file-upload.js +272 -272
- package/dist/collection/components/six-footer/six-footer.js +21 -21
- package/dist/collection/components/six-form/six-form.js +408 -408
- package/dist/collection/components/six-group-label/six-group-label.js +166 -166
- package/dist/collection/components/six-header/six-header.js +420 -420
- package/dist/collection/components/six-icon/six-icon.js +77 -77
- package/dist/collection/components/six-icon-button/six-icon-button.js +142 -142
- package/dist/collection/components/six-input/six-input.js +1141 -1141
- package/dist/collection/components/six-item-picker/six-item-picker.js +688 -688
- package/dist/collection/components/six-item-picker/types.js +13 -13
- package/dist/collection/components/six-language-switcher/six-language-switcher.js +128 -128
- package/dist/collection/components/six-layout-grid/six-layout-grid.js +52 -52
- package/dist/collection/components/six-main-container/six-main-container.js +53 -53
- package/dist/collection/components/six-menu/six-menu.js +406 -406
- package/dist/collection/components/six-menu-divider/six-menu-divider.js +22 -22
- package/dist/collection/components/six-menu-item/six-menu-item.js +177 -177
- package/dist/collection/components/six-menu-label/six-menu-label.js +25 -25
- package/dist/collection/components/six-picto/six-picto.js +50 -50
- package/dist/collection/components/six-progress-bar/six-progress-bar.js +77 -77
- package/dist/collection/components/six-progress-ring/six-progress-ring.js +111 -111
- package/dist/collection/components/six-radio/six-radio.js +410 -410
- package/dist/collection/components/six-range/six-range.js +620 -620
- package/dist/collection/components/six-root/six-root.js +167 -167
- package/dist/collection/components/six-search-field/six-search-field.js +171 -171
- package/dist/collection/components/six-select/six-select.js +1105 -1105
- package/dist/collection/components/six-sidebar/six-sidebar.js +455 -455
- package/dist/collection/components/six-sidebar-item/six-sidebar-item.js +89 -89
- package/dist/collection/components/six-sidebar-item-group/six-sidebar-item-group.js +158 -158
- package/dist/collection/components/six-spinner/six-spinner.js +55 -55
- package/dist/collection/components/six-stage-indicator/six-stage-indicator.js +46 -46
- package/dist/collection/components/six-switch/six-switch.js +393 -393
- package/dist/collection/components/six-tab/six-tab.js +198 -198
- package/dist/collection/components/six-tab-group/six-tab-group.js +362 -362
- package/dist/collection/components/six-tab-panel/six-tab-panel.js +75 -75
- package/dist/collection/components/six-table/six-table.js +209 -209
- package/dist/collection/components/six-table/test/helpers.js +13 -13
- package/dist/collection/components/six-table/types.js +8 -8
- package/dist/collection/components/six-table/util/filter-by.js +34 -34
- package/dist/collection/components/six-table/util/from-data.js +33 -33
- package/dist/collection/components/six-table/util/is.js +3 -3
- package/dist/collection/components/six-table/util/quick-filter-by.js +13 -13
- package/dist/collection/components/six-table/util/sort-by.js +25 -25
- package/dist/collection/components/six-table-cell/six-table-cell.js +21 -21
- package/dist/collection/components/six-table-header/six-table-header.js +21 -21
- package/dist/collection/components/six-table-header-cell/get-next-state.js +7 -7
- package/dist/collection/components/six-table-header-cell/icons.js +12 -12
- package/dist/collection/components/six-table-header-cell/six-table-header-cell.js +174 -174
- package/dist/collection/components/six-table-header-cell/types.js +13 -13
- package/dist/collection/components/six-table-header-cell/util/create-model.js +6 -6
- package/dist/collection/components/six-table-header-cell/util/get-next-state.js +7 -7
- package/dist/collection/components/six-table-row/six-table-row.js +21 -21
- package/dist/collection/components/six-tag/six-tag.js +157 -157
- package/dist/collection/components/six-textarea/six-textarea.js +912 -912
- package/dist/collection/components/six-tile/six-tile.js +315 -315
- package/dist/collection/components/six-timepicker/six-time-format.js +14 -14
- package/dist/collection/components/six-timepicker/six-timepicker.js +980 -980
- package/dist/collection/components/six-timepicker/six-timepicker.types.js +40 -40
- package/dist/collection/components/six-tooltip/six-tooltip.js +435 -435
- package/dist/collection/functional-components/form-control/form-control.js +28 -28
- package/dist/collection/index.js +1 -1
- package/dist/collection/testUtil/delay.js +3 -3
- package/dist/collection/utils/as-array.js +1 -1
- package/dist/collection/utils/date-util.js +712 -712
- package/dist/collection/utils/event-listeners.js +39 -39
- package/dist/collection/utils/execution-control.js +38 -38
- package/dist/collection/utils/focus-visible.js +41 -41
- package/dist/collection/utils/matchers.js +2 -2
- package/dist/collection/utils/modal.js +28 -28
- package/dist/collection/utils/offset.js +13 -13
- package/dist/collection/utils/popover.js +113 -113
- package/dist/collection/utils/scroll.js +47 -47
- package/dist/collection/utils/slot.js +59 -59
- package/dist/collection/utils/support.js +15 -15
- package/dist/collection/utils/tabbable.js +22 -22
- package/dist/collection/utils/testing.js +38 -38
- package/dist/collection/utils/time.util.js +74 -74
- package/dist/collection/utils/type-check.js +5 -5
- package/dist/collection/utils/types.js +1 -1
- package/dist/collection/wrappers/set-attributes/set-attributes.js +68 -68
- package/dist/components.json +1 -1
- package/dist/custom-elements/index.js +7595 -7595
- package/dist/esm/{event-listeners-1bef934e.js → event-listeners-570a24ea.js} +38 -38
- package/dist/esm/{execution-control-235f5126.js → execution-control-1a60d709.js} +35 -35
- package/dist/esm/{focus-visible-4b7946aa.js → focus-visible-97933ea9.js} +40 -40
- package/dist/esm/{form-control-17478ad2.js → form-control-24f446af.js} +25 -25
- package/dist/esm/{modal-e5709f6b.js → modal-5ebdc320.js} +41 -41
- package/dist/esm/polyfills/core-js.js +0 -0
- package/dist/esm/polyfills/dom.js +0 -0
- package/dist/esm/polyfills/es5-html-element.js +0 -0
- package/dist/esm/polyfills/index.js +0 -0
- package/dist/esm/polyfills/system.js +0 -0
- package/dist/esm/{popover-5a51f84d.js → popover-1c7a1139.js} +95 -95
- package/dist/esm/{scroll-99b214c2.js → scroll-180b53fd.js} +57 -57
- package/dist/esm/set-attributes_2.entry.js +57 -57
- package/dist/esm/six-alert.entry.js +131 -131
- package/dist/esm/six-avatar.entry.js +28 -28
- package/dist/esm/six-badge.entry.js +26 -26
- package/dist/esm/six-button.entry.js +97 -97
- package/dist/esm/six-card.entry.js +8 -8
- package/dist/esm/six-checkbox.entry.js +152 -152
- package/dist/esm/six-datepicker.entry.js +1189 -1189
- package/dist/esm/six-details.entry.js +139 -139
- package/dist/esm/six-dialog.entry.js +152 -152
- package/dist/esm/six-drawer.entry.js +174 -174
- package/dist/esm/six-dropdown_3.entry.js +728 -728
- package/dist/esm/six-error-page.entry.js +94 -94
- package/dist/esm/six-file-list-item.entry.js +38 -38
- package/dist/esm/six-file-list.entry.js +8 -8
- package/dist/esm/six-file-upload.entry.js +96 -96
- package/dist/esm/six-footer.entry.js +8 -8
- package/dist/esm/six-form.entry.js +219 -219
- package/dist/esm/six-group-label.entry.js +46 -46
- package/dist/esm/six-header.entry.js +149 -149
- package/dist/esm/six-icon-button.entry.js +33 -33
- package/dist/esm/six-icon.entry.js +24 -24
- package/dist/esm/six-input.entry.js +230 -230
- package/dist/esm/six-item-picker.entry.js +361 -361
- package/dist/esm/six-language-switcher.entry.js +52 -52
- package/dist/esm/six-layout-grid.entry.js +19 -19
- package/dist/esm/six-main-container.entry.js +11 -11
- package/dist/esm/six-menu-divider.entry.js +8 -8
- package/dist/esm/six-menu-label.entry.js +8 -8
- package/dist/esm/six-picto.entry.js +15 -15
- package/dist/esm/six-progress-bar.entry.js +17 -17
- package/dist/esm/six-progress-ring.entry.js +31 -31
- package/dist/esm/six-radio.entry.js +121 -121
- package/dist/esm/six-range.entry.js +198 -198
- package/dist/esm/six-root.entry.js +34 -34
- package/dist/esm/six-search-field.entry.js +43 -43
- package/dist/esm/six-select.entry.js +447 -447
- package/dist/esm/six-sidebar-item-group.entry.js +42 -42
- package/dist/esm/six-sidebar-item.entry.js +18 -18
- package/dist/esm/six-sidebar.entry.js +171 -171
- package/dist/esm/six-spinner.entry.js +16 -16
- package/dist/esm/six-switch.entry.js +100 -100
- package/dist/esm/six-tab-group.entry.js +226 -226
- package/dist/esm/six-tab-panel.entry.js +17 -17
- package/dist/esm/six-tab.entry.js +42 -42
- package/dist/esm/six-table-cell_4.entry.js +70 -70
- package/dist/esm/six-table.entry.js +145 -145
- package/dist/esm/six-tag.entry.js +40 -40
- package/dist/esm/six-textarea.entry.js +211 -211
- package/dist/esm/six-tile.entry.js +89 -89
- package/dist/esm/six-timepicker.entry.js +489 -489
- package/dist/esm/{six-timepicker.types-cd6bac03.js → six-timepicker.types-e161a447.js} +43 -43
- package/dist/esm/six-tooltip.entry.js +172 -172
- package/dist/esm/{slot-5253e199.js → slot-6f3984c7.js} +42 -42
- package/dist/esm/{types-a37c1695.js → types-4b10b413.js} +12 -12
- package/dist/esm/{types-33d15673.js → types-ed860f7c.js} +12 -12
- package/dist/types/components/six-alert/six-alert.d.ts +60 -60
- package/dist/types/components/six-avatar/six-avatar.d.ts +27 -27
- package/dist/types/components/six-badge/six-badge.d.ts +20 -20
- package/dist/types/components/six-button/six-button.d.ts +69 -69
- package/dist/types/components/six-card/six-card.d.ts +9 -9
- package/dist/types/components/six-checkbox/six-checkbox.d.ts +86 -86
- package/dist/types/components/six-datepicker/components/day-selection.d.ts +5 -5
- package/dist/types/components/six-datepicker/components/month-selection.d.ts +5 -5
- package/dist/types/components/six-datepicker/components/year-selection.d.ts +5 -5
- package/dist/types/components/six-datepicker/six-date-formats.d.ts +22 -22
- package/dist/types/components/six-datepicker/six-datepicker.d.ts +214 -214
- package/dist/types/components/six-datepicker/test/six-datepicker.test-helpers.d.ts +1 -1
- package/dist/types/components/six-details/six-details.d.ts +61 -61
- package/dist/types/components/six-dialog/six-dialog.d.ts +75 -75
- package/dist/types/components/six-drawer/six-drawer.d.ts +82 -82
- package/dist/types/components/six-dropdown/six-dropdown.d.ts +140 -140
- package/dist/types/components/six-error-page/six-error-page.d.ts +27 -27
- package/dist/types/components/six-file-list/six-file-list.d.ts +8 -8
- package/dist/types/components/six-file-list-item/six-file-list-item.d.ts +35 -35
- package/dist/types/components/six-file-upload/six-file-upload.d.ts +42 -42
- package/dist/types/components/six-footer/six-footer.d.ts +9 -9
- package/dist/types/components/six-form/six-form.d.ts +69 -69
- package/dist/types/components/six-group-label/six-group-label.d.ts +37 -37
- package/dist/types/components/six-header/six-header.d.ts +90 -90
- package/dist/types/components/six-icon/six-icon.d.ts +13 -13
- package/dist/types/components/six-icon-button/six-icon-button.d.ts +28 -28
- package/dist/types/components/six-input/six-input.d.ts +165 -165
- package/dist/types/components/six-item-picker/six-item-picker.d.ts +106 -106
- package/dist/types/components/six-item-picker/types.d.ts +11 -11
- package/dist/types/components/six-language-switcher/six-language-switcher.d.ts +25 -25
- package/dist/types/components/six-layout-grid/six-layout-grid.d.ts +14 -14
- package/dist/types/components/six-main-container/six-main-container.d.ts +16 -16
- package/dist/types/components/six-menu/six-menu.d.ts +81 -81
- package/dist/types/components/six-menu-divider/six-menu-divider.d.ts +11 -11
- package/dist/types/components/six-menu-item/six-menu-item.d.ts +36 -36
- package/dist/types/components/six-menu-label/six-menu-label.d.ts +13 -13
- package/dist/types/components/six-picto/six-picto.d.ts +14 -14
- package/dist/types/components/six-progress-bar/six-progress-bar.d.ts +19 -19
- package/dist/types/components/six-progress-ring/six-progress-ring.d.ts +24 -24
- package/dist/types/components/six-radio/six-radio.d.ts +66 -66
- package/dist/types/components/six-range/six-range.d.ts +101 -101
- package/dist/types/components/six-root/six-root.d.ts +34 -34
- package/dist/types/components/six-search-field/six-search-field.d.ts +32 -32
- package/dist/types/components/six-select/six-select.d.ts +163 -163
- package/dist/types/components/six-sidebar/six-sidebar.d.ts +55 -55
- package/dist/types/components/six-sidebar-item/six-sidebar-item.d.ts +15 -15
- package/dist/types/components/six-sidebar-item-group/six-sidebar-item-group.d.ts +26 -26
- package/dist/types/components/six-spinner/six-spinner.d.ts +15 -15
- package/dist/types/components/six-stage-indicator/six-stage-indicator.d.ts +6 -6
- package/dist/types/components/six-switch/six-switch.d.ts +62 -62
- package/dist/types/components/six-tab/six-tab.d.ts +35 -35
- package/dist/types/components/six-tab-group/six-tab-group.d.ts +62 -62
- package/dist/types/components/six-tab-panel/six-tab-panel.d.ts +19 -19
- package/dist/types/components/six-table/six-table.d.ts +30 -30
- package/dist/types/components/six-table/test/helpers.d.ts +2 -2
- package/dist/types/components/six-table/types.d.ts +33 -33
- package/dist/types/components/six-table/util/filter-by.d.ts +2 -2
- package/dist/types/components/six-table/util/from-data.d.ts +8 -8
- package/dist/types/components/six-table/util/is.d.ts +3 -3
- package/dist/types/components/six-table/util/quick-filter-by.d.ts +2 -2
- package/dist/types/components/six-table/util/sort-by.d.ts +2 -2
- package/dist/types/components/six-table-cell/six-table-cell.d.ts +9 -9
- package/dist/types/components/six-table-header/six-table-header.d.ts +9 -9
- package/dist/types/components/six-table-header-cell/get-next-state.d.ts +2 -2
- package/dist/types/components/six-table-header-cell/icons.d.ts +3 -3
- package/dist/types/components/six-table-header-cell/six-table-header-cell.d.ts +32 -32
- package/dist/types/components/six-table-header-cell/types.d.ts +11 -11
- package/dist/types/components/six-table-header-cell/util/create-model.d.ts +4 -4
- package/dist/types/components/six-table-header-cell/util/get-next-state.d.ts +3 -3
- package/dist/types/components/six-table-row/six-table-row.d.ts +9 -9
- package/dist/types/components/six-tag/six-tag.d.ts +30 -30
- package/dist/types/components/six-textarea/six-textarea.d.ts +134 -134
- package/dist/types/components/six-tile/six-tile.d.ts +40 -40
- package/dist/types/components/six-timepicker/six-time-format.d.ts +13 -13
- package/dist/types/components/six-timepicker/six-timepicker.d.ts +184 -184
- package/dist/types/components/six-timepicker/six-timepicker.types.d.ts +36 -36
- package/dist/types/components/six-tooltip/six-tooltip.d.ts +72 -72
- package/dist/types/functional-components/form-control/form-control.d.ts +34 -34
- package/dist/types/index.d.ts +1 -1
- package/dist/types/testUtil/delay.d.ts +1 -1
- package/dist/types/utils/as-array.d.ts +1 -1
- package/dist/types/utils/date-util.d.ts +194 -194
- package/dist/types/utils/event-listeners.d.ts +15 -15
- package/dist/types/utils/execution-control.d.ts +26 -26
- package/dist/types/utils/focus-visible.d.ts +6 -6
- package/dist/types/utils/matchers.d.ts +2 -2
- package/dist/types/utils/modal.d.ts +13 -13
- package/dist/types/utils/offset.d.ts +4 -4
- package/dist/types/utils/popover.d.ts +27 -27
- package/dist/types/utils/scroll.d.ts +3 -3
- package/dist/types/utils/slot.d.ts +9 -9
- package/dist/types/utils/support.d.ts +1 -1
- package/dist/types/utils/tabbable.d.ts +2 -2
- package/dist/types/utils/testing.d.ts +2 -2
- package/dist/types/utils/time.util.d.ts +10 -10
- package/dist/types/utils/type-check.d.ts +4 -4
- package/dist/types/utils/types.d.ts +4 -4
- package/dist/types/wrappers/set-attributes/set-attributes.d.ts +9 -9
- package/dist/ui-library/{p-a8c225f2.entry.js → p-007bc8e8.entry.js} +1 -1
- package/dist/ui-library/{p-f9c0cfb7.entry.js → p-044b784e.entry.js} +1 -1
- package/dist/ui-library/{p-c733dead.js → p-0786fa7c.js} +0 -0
- package/dist/ui-library/{p-12cc24c3.js → p-07d1e830.js} +0 -0
- package/dist/ui-library/{p-48ea4419.entry.js → p-09cb13fa.entry.js} +1 -1
- package/dist/ui-library/{p-e96dcf96.entry.js → p-0c596054.entry.js} +1 -1
- package/dist/ui-library/{p-a77a6442.entry.js → p-1b8dc7b7.entry.js} +1 -1
- package/dist/ui-library/{p-68d31736.js → p-25a3bf57.js} +0 -0
- package/dist/ui-library/{p-ebaea182.entry.js → p-281e8c2d.entry.js} +1 -1
- package/dist/ui-library/{p-9f2dc381.entry.js → p-2924f82f.entry.js} +1 -1
- package/dist/ui-library/{p-ea1fcff2.entry.js → p-2d7ed407.entry.js} +1 -1
- package/dist/ui-library/{p-89f68e76.entry.js → p-4162dcdd.entry.js} +1 -1
- package/dist/ui-library/{p-6f67f986.entry.js → p-4d3a4e93.entry.js} +1 -1
- package/dist/ui-library/{p-8bd0873f.entry.js → p-4ed023b8.entry.js} +1 -1
- package/dist/ui-library/{p-af3d757c.js → p-4f8394d7.js} +0 -0
- package/dist/ui-library/{p-1b92cc7a.entry.js → p-530ea6ec.entry.js} +1 -1
- package/dist/ui-library/{p-19543c96.entry.js → p-531ab886.entry.js} +1 -1
- package/dist/ui-library/{p-fdb455d7.entry.js → p-54c48654.entry.js} +1 -1
- package/dist/ui-library/{p-c948d3db.entry.js → p-55c64cbc.entry.js} +1 -1
- package/dist/ui-library/{p-1c9f0dc6.js → p-5f1c6a5f.js} +0 -0
- package/dist/ui-library/{p-60491176.entry.js → p-675a8243.entry.js} +1 -1
- package/dist/ui-library/{p-b9fb8455.entry.js → p-6d622ed0.entry.js} +1 -1
- package/dist/ui-library/{p-572e3690.js → p-75297ad7.js} +0 -0
- package/dist/ui-library/{p-2ff97cdf.entry.js → p-90b26447.entry.js} +1 -1
- package/dist/ui-library/{p-fcd2356c.entry.js → p-93945629.entry.js} +1 -1
- package/dist/ui-library/{p-7735d99f.js → p-9a860acc.js} +0 -0
- package/dist/ui-library/{p-4cc01afc.entry.js → p-aa37e45a.entry.js} +1 -1
- package/dist/ui-library/{p-191f958b.js → p-b1e66136.js} +0 -0
- package/dist/ui-library/{p-c09dc3a9.js → p-b4dfb7cf.js} +0 -0
- package/dist/ui-library/{p-968c5169.entry.js → p-c24292b3.entry.js} +1 -1
- package/dist/ui-library/{p-ed21cc57.entry.js → p-cd79de73.entry.js} +1 -1
- package/dist/ui-library/{p-34e6d8e8.js → p-d12c6092.js} +0 -0
- package/dist/ui-library/{p-f0e91e17.entry.js → p-d28ac80a.entry.js} +1 -1
- package/dist/ui-library/{p-5ead7b2f.entry.js → p-d837e5a8.entry.js} +1 -1
- package/dist/ui-library/{p-ec1ecc2a.entry.js → p-dd3cae68.entry.js} +1 -1
- package/dist/ui-library/{p-044c6bf9.js → p-eb8f05a9.js} +0 -0
- package/dist/ui-library/ui-library.esm.js +1 -1
- package/package.json +1 -1
|
@@ -1,39 +1,39 @@
|
|
|
1
|
-
const equals = (a) => (b) => Object.keys(a).every((key) => a[key] === b[key]);
|
|
2
|
-
export class EventListeners {
|
|
3
|
-
constructor() {
|
|
4
|
-
this.eventListeners = [];
|
|
5
|
-
this.add = (el, name, listener, identifier = null) => {
|
|
6
|
-
this.eventListeners.push({ el, name, listener, identifier });
|
|
7
|
-
el.addEventListener(name, listener);
|
|
8
|
-
};
|
|
9
|
-
this.remove = (el, name, listener) => {
|
|
10
|
-
const sameItem = equals({ el, name, listener });
|
|
11
|
-
this.eventListeners = this.getFilteredEventListeners(sameItem);
|
|
12
|
-
};
|
|
13
|
-
this.removeByIdentifier = (identifier) => {
|
|
14
|
-
const sameItem = (el) => el.identifier === identifier;
|
|
15
|
-
const foundListener = this.eventListeners.find(sameItem) !== undefined;
|
|
16
|
-
if (!foundListener) {
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
this.eventListeners = this.getFilteredEventListeners(sameItem);
|
|
20
|
-
};
|
|
21
|
-
this.removeAll = () => {
|
|
22
|
-
while (this.eventListeners.length) {
|
|
23
|
-
const { el, name, listener } = this.eventListeners.pop();
|
|
24
|
-
el.removeEventListener(name, listener);
|
|
25
|
-
}
|
|
26
|
-
};
|
|
27
|
-
}
|
|
28
|
-
getFilteredEventListeners(sameItem) {
|
|
29
|
-
return this.eventListeners.filter((item) => {
|
|
30
|
-
if (sameItem(item)) {
|
|
31
|
-
item.el.removeEventListener(item.name, item.listener);
|
|
32
|
-
return false;
|
|
33
|
-
}
|
|
34
|
-
else {
|
|
35
|
-
return true;
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
}
|
|
1
|
+
const equals = (a) => (b) => Object.keys(a).every((key) => a[key] === b[key]);
|
|
2
|
+
export class EventListeners {
|
|
3
|
+
constructor() {
|
|
4
|
+
this.eventListeners = [];
|
|
5
|
+
this.add = (el, name, listener, identifier = null) => {
|
|
6
|
+
this.eventListeners.push({ el, name, listener, identifier });
|
|
7
|
+
el.addEventListener(name, listener);
|
|
8
|
+
};
|
|
9
|
+
this.remove = (el, name, listener) => {
|
|
10
|
+
const sameItem = equals({ el, name, listener });
|
|
11
|
+
this.eventListeners = this.getFilteredEventListeners(sameItem);
|
|
12
|
+
};
|
|
13
|
+
this.removeByIdentifier = (identifier) => {
|
|
14
|
+
const sameItem = (el) => el.identifier === identifier;
|
|
15
|
+
const foundListener = this.eventListeners.find(sameItem) !== undefined;
|
|
16
|
+
if (!foundListener) {
|
|
17
|
+
return;
|
|
18
|
+
}
|
|
19
|
+
this.eventListeners = this.getFilteredEventListeners(sameItem);
|
|
20
|
+
};
|
|
21
|
+
this.removeAll = () => {
|
|
22
|
+
while (this.eventListeners.length) {
|
|
23
|
+
const { el, name, listener } = this.eventListeners.pop();
|
|
24
|
+
el.removeEventListener(name, listener);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
getFilteredEventListeners(sameItem) {
|
|
29
|
+
return this.eventListeners.filter((item) => {
|
|
30
|
+
if (sameItem(item)) {
|
|
31
|
+
item.el.removeEventListener(item.name, item.listener);
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
else {
|
|
35
|
+
return true;
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
}
|
|
@@ -1,38 +1,38 @@
|
|
|
1
|
-
export const DEFAULT_DEBOUNCE_INSANELY_FAST = 35;
|
|
2
|
-
export const DEFAULT_DEBOUNCE_VERY_FAST = 100;
|
|
3
|
-
export const DEFAULT_DEBOUNCE_FAST = 300;
|
|
4
|
-
export const DEFAULT_DEBOUNCE_SLOW = 600;
|
|
5
|
-
/**
|
|
6
|
-
* Debounce function to implement a timeframe to wait for no new changes before executing a callback
|
|
7
|
-
|
|
8
|
-
* example usages:
|
|
9
|
-
* debounce(() => saveInput());
|
|
10
|
-
* debounce(() => saveInput(), 750);
|
|
11
|
-
* this.searchInput.addEventListener('six-input-input', debounce((event) => this.searchInputChange(event)));
|
|
12
|
-
*
|
|
13
|
-
* regarding default timeout check https://lawsofux.com/doherty-threshold/
|
|
14
|
-
*
|
|
15
|
-
* @param callback
|
|
16
|
-
* @param timeout
|
|
17
|
-
*/
|
|
18
|
-
export const debounce = (callback, timeout = DEFAULT_DEBOUNCE_FAST) => {
|
|
19
|
-
let timer;
|
|
20
|
-
return (...args) => {
|
|
21
|
-
clearTimeout(timer);
|
|
22
|
-
timer = setTimeout(() => callback.apply(this, args), timeout);
|
|
23
|
-
};
|
|
24
|
-
};
|
|
25
|
-
/**
|
|
26
|
-
* Debounce an event
|
|
27
|
-
*
|
|
28
|
-
* @param event
|
|
29
|
-
* @param timeout
|
|
30
|
-
*/
|
|
31
|
-
export const debounceEvent = (event, timeout) => {
|
|
32
|
-
const original = event._original || event;
|
|
33
|
-
const emit = debounce(original.emit.bind(original), timeout);
|
|
34
|
-
return {
|
|
35
|
-
_original: event,
|
|
36
|
-
emit: emit,
|
|
37
|
-
};
|
|
38
|
-
};
|
|
1
|
+
export const DEFAULT_DEBOUNCE_INSANELY_FAST = 35;
|
|
2
|
+
export const DEFAULT_DEBOUNCE_VERY_FAST = 100;
|
|
3
|
+
export const DEFAULT_DEBOUNCE_FAST = 300;
|
|
4
|
+
export const DEFAULT_DEBOUNCE_SLOW = 600;
|
|
5
|
+
/**
|
|
6
|
+
* Debounce function to implement a timeframe to wait for no new changes before executing a callback
|
|
7
|
+
|
|
8
|
+
* example usages:
|
|
9
|
+
* debounce(() => saveInput());
|
|
10
|
+
* debounce(() => saveInput(), 750);
|
|
11
|
+
* this.searchInput.addEventListener('six-input-input', debounce((event) => this.searchInputChange(event)));
|
|
12
|
+
*
|
|
13
|
+
* regarding default timeout check https://lawsofux.com/doherty-threshold/
|
|
14
|
+
*
|
|
15
|
+
* @param callback
|
|
16
|
+
* @param timeout
|
|
17
|
+
*/
|
|
18
|
+
export const debounce = (callback, timeout = DEFAULT_DEBOUNCE_FAST) => {
|
|
19
|
+
let timer;
|
|
20
|
+
return (...args) => {
|
|
21
|
+
clearTimeout(timer);
|
|
22
|
+
timer = setTimeout(() => callback.apply(this, args), timeout);
|
|
23
|
+
};
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* Debounce an event
|
|
27
|
+
*
|
|
28
|
+
* @param event
|
|
29
|
+
* @param timeout
|
|
30
|
+
*/
|
|
31
|
+
export const debounceEvent = (event, timeout) => {
|
|
32
|
+
const original = event._original || event;
|
|
33
|
+
const emit = debounce(original.emit.bind(original), timeout);
|
|
34
|
+
return {
|
|
35
|
+
_original: event,
|
|
36
|
+
emit: emit,
|
|
37
|
+
};
|
|
38
|
+
};
|
|
@@ -1,41 +1,41 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Simulates :focus-visible behavior on an element by watching for certain keyboard and mouse heuristics and toggling a
|
|
3
|
-
// `focus-visible` class. Works at the component level so no global polyfill is necessary.
|
|
4
|
-
//
|
|
5
|
-
// This will eventually be removed pending better :focus-visible support: https://caniuse.com/#search=focus-visible
|
|
6
|
-
//
|
|
7
|
-
const listeners = new WeakMap();
|
|
8
|
-
export function observe(el) {
|
|
9
|
-
if (!el)
|
|
10
|
-
return;
|
|
11
|
-
const keys = ['Tab', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End', 'PageDown', 'PageUp'];
|
|
12
|
-
const is = (event) => {
|
|
13
|
-
if (keys.includes(event.key)) {
|
|
14
|
-
el.classList.add('focus-visible');
|
|
15
|
-
}
|
|
16
|
-
};
|
|
17
|
-
const isNot = () => el.classList.remove('focus-visible');
|
|
18
|
-
listeners.set(el, { is, isNot });
|
|
19
|
-
el.addEventListener('keydown', is);
|
|
20
|
-
el.addEventListener('keyup', is);
|
|
21
|
-
el.addEventListener('mousedown', isNot);
|
|
22
|
-
el.addEventListener('mousedown', isNot);
|
|
23
|
-
}
|
|
24
|
-
export function unobserve(el) {
|
|
25
|
-
if (!el)
|
|
26
|
-
return;
|
|
27
|
-
const listener = listeners.get(el);
|
|
28
|
-
if (!listener) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const { is, isNot } = listener;
|
|
32
|
-
el.classList.remove('focus-visible');
|
|
33
|
-
el.removeEventListener('keydown', is);
|
|
34
|
-
el.removeEventListener('keyup', is);
|
|
35
|
-
el.removeEventListener('mousedown', isNot);
|
|
36
|
-
el.removeEventListener('mousedown', isNot);
|
|
37
|
-
}
|
|
38
|
-
export const focusVisible = {
|
|
39
|
-
observe,
|
|
40
|
-
unobserve,
|
|
41
|
-
};
|
|
1
|
+
//
|
|
2
|
+
// Simulates :focus-visible behavior on an element by watching for certain keyboard and mouse heuristics and toggling a
|
|
3
|
+
// `focus-visible` class. Works at the component level so no global polyfill is necessary.
|
|
4
|
+
//
|
|
5
|
+
// This will eventually be removed pending better :focus-visible support: https://caniuse.com/#search=focus-visible
|
|
6
|
+
//
|
|
7
|
+
const listeners = new WeakMap();
|
|
8
|
+
export function observe(el) {
|
|
9
|
+
if (!el)
|
|
10
|
+
return;
|
|
11
|
+
const keys = ['Tab', 'ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight', 'Home', 'End', 'PageDown', 'PageUp'];
|
|
12
|
+
const is = (event) => {
|
|
13
|
+
if (keys.includes(event.key)) {
|
|
14
|
+
el.classList.add('focus-visible');
|
|
15
|
+
}
|
|
16
|
+
};
|
|
17
|
+
const isNot = () => el.classList.remove('focus-visible');
|
|
18
|
+
listeners.set(el, { is, isNot });
|
|
19
|
+
el.addEventListener('keydown', is);
|
|
20
|
+
el.addEventListener('keyup', is);
|
|
21
|
+
el.addEventListener('mousedown', isNot);
|
|
22
|
+
el.addEventListener('mousedown', isNot);
|
|
23
|
+
}
|
|
24
|
+
export function unobserve(el) {
|
|
25
|
+
if (!el)
|
|
26
|
+
return;
|
|
27
|
+
const listener = listeners.get(el);
|
|
28
|
+
if (!listener) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
const { is, isNot } = listener;
|
|
32
|
+
el.classList.remove('focus-visible');
|
|
33
|
+
el.removeEventListener('keydown', is);
|
|
34
|
+
el.removeEventListener('keyup', is);
|
|
35
|
+
el.removeEventListener('mousedown', isNot);
|
|
36
|
+
el.removeEventListener('mousedown', isNot);
|
|
37
|
+
}
|
|
38
|
+
export const focusVisible = {
|
|
39
|
+
observe,
|
|
40
|
+
unobserve,
|
|
41
|
+
};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export const equals = (expected) => (value) => value === expected;
|
|
2
|
-
export const notEquals = (expected) => (value) => value !== expected;
|
|
1
|
+
export const equals = (expected) => (value) => value === expected;
|
|
2
|
+
export const notEquals = (expected) => (value) => value !== expected;
|
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
let activeModals = [];
|
|
2
|
-
export default class Modal {
|
|
3
|
-
constructor(element, options) {
|
|
4
|
-
this.element = element;
|
|
5
|
-
this.options = options;
|
|
6
|
-
this.handleFocusIn = this.handleFocusIn.bind(this);
|
|
7
|
-
}
|
|
8
|
-
activate() {
|
|
9
|
-
activeModals.push(this.element);
|
|
10
|
-
document.addEventListener('focusin', this.handleFocusIn);
|
|
11
|
-
}
|
|
12
|
-
deactivate() {
|
|
13
|
-
activeModals = activeModals.filter((modal) => modal !== this.element);
|
|
14
|
-
document.removeEventListener('focusin', this.handleFocusIn);
|
|
15
|
-
}
|
|
16
|
-
isActive() {
|
|
17
|
-
// The "active" modal is always the most recent one shown
|
|
18
|
-
return activeModals[activeModals.length - 1] === this.element;
|
|
19
|
-
}
|
|
20
|
-
handleFocusIn(event) {
|
|
21
|
-
const target = event.target;
|
|
22
|
-
const tagName = this.element.tagName.toLowerCase();
|
|
23
|
-
// If focus is lost while the modal is active, run the onFocusOut callback
|
|
24
|
-
if (this.isActive() && target.closest(tagName) !== this.element && typeof this.options.onFocusOut === 'function') {
|
|
25
|
-
this.options.onFocusOut(event);
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
1
|
+
let activeModals = [];
|
|
2
|
+
export default class Modal {
|
|
3
|
+
constructor(element, options) {
|
|
4
|
+
this.element = element;
|
|
5
|
+
this.options = options;
|
|
6
|
+
this.handleFocusIn = this.handleFocusIn.bind(this);
|
|
7
|
+
}
|
|
8
|
+
activate() {
|
|
9
|
+
activeModals.push(this.element);
|
|
10
|
+
document.addEventListener('focusin', this.handleFocusIn);
|
|
11
|
+
}
|
|
12
|
+
deactivate() {
|
|
13
|
+
activeModals = activeModals.filter((modal) => modal !== this.element);
|
|
14
|
+
document.removeEventListener('focusin', this.handleFocusIn);
|
|
15
|
+
}
|
|
16
|
+
isActive() {
|
|
17
|
+
// The "active" modal is always the most recent one shown
|
|
18
|
+
return activeModals[activeModals.length - 1] === this.element;
|
|
19
|
+
}
|
|
20
|
+
handleFocusIn(event) {
|
|
21
|
+
const target = event.target;
|
|
22
|
+
const tagName = this.element.tagName.toLowerCase();
|
|
23
|
+
// If focus is lost while the modal is active, run the onFocusOut callback
|
|
24
|
+
if (this.isActive() && target.closest(tagName) !== this.element && typeof this.options.onFocusOut === 'function') {
|
|
25
|
+
this.options.onFocusOut(event);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Returns an element's offset relative to its parent. Similar to element.offsetTop and element.offsetLeft, except the
|
|
3
|
-
// parent doesn't have to be positioned relative or absolute.
|
|
4
|
-
//
|
|
5
|
-
// NOTE: This was created to work around what appears to be a bug in Chrome where a slotted element's offsetParent
|
|
6
|
-
// seems to ignore elements inside the surrounding shadow DOM: https://bugs.chromium.org/p/chromium/issues/detail?id=920069
|
|
7
|
-
//
|
|
8
|
-
export function getOffset(element, parent) {
|
|
9
|
-
return {
|
|
10
|
-
top: Math.round(element.getBoundingClientRect().top - parent.getBoundingClientRect().top),
|
|
11
|
-
left: Math.round(element.getBoundingClientRect().left - parent.getBoundingClientRect().left),
|
|
12
|
-
};
|
|
13
|
-
}
|
|
1
|
+
//
|
|
2
|
+
// Returns an element's offset relative to its parent. Similar to element.offsetTop and element.offsetLeft, except the
|
|
3
|
+
// parent doesn't have to be positioned relative or absolute.
|
|
4
|
+
//
|
|
5
|
+
// NOTE: This was created to work around what appears to be a bug in Chrome where a slotted element's offsetParent
|
|
6
|
+
// seems to ignore elements inside the surrounding shadow DOM: https://bugs.chromium.org/p/chromium/issues/detail?id=920069
|
|
7
|
+
//
|
|
8
|
+
export function getOffset(element, parent) {
|
|
9
|
+
return {
|
|
10
|
+
top: Math.round(element.getBoundingClientRect().top - parent.getBoundingClientRect().top),
|
|
11
|
+
left: Math.round(element.getBoundingClientRect().left - parent.getBoundingClientRect().left),
|
|
12
|
+
};
|
|
13
|
+
}
|
|
@@ -1,113 +1,113 @@
|
|
|
1
|
-
//
|
|
2
|
-
// A positioning utility for popovers that handles show/hide/transitionEnd events with simple callbacks.
|
|
3
|
-
//
|
|
4
|
-
// Powered by Popper.js.
|
|
5
|
-
//
|
|
6
|
-
// NOTE:
|
|
7
|
-
//
|
|
8
|
-
// - The popover MUST have at least one property that transitions, otherwise transitionEnd won't fire and the popover
|
|
9
|
-
// won't be hidden. If transitions are delegated to a child element, set the `transitionElement` property accordingly.
|
|
10
|
-
//
|
|
11
|
-
// - When the popover is shown, it's assigned `PopoverOptions.visibleClass`. You can use this class to provide different
|
|
12
|
-
// transitions for show/hide.
|
|
13
|
-
//
|
|
14
|
-
// - Popper uses `translate3d` to position elements, so adding a transition to the `transform` property may have an
|
|
15
|
-
// undesired effect when the element is shown and when its placement changes.
|
|
16
|
-
//
|
|
17
|
-
import { createPopper } from '@popperjs/core';
|
|
18
|
-
export default class Popover {
|
|
19
|
-
constructor(anchor, popover, options) {
|
|
20
|
-
this.handleTransitionEnd = this.handleTransitionEnd.bind(this);
|
|
21
|
-
this.anchor = anchor;
|
|
22
|
-
this.popover = popover;
|
|
23
|
-
this.options = Object.assign({
|
|
24
|
-
skidding: 0,
|
|
25
|
-
distance: 0,
|
|
26
|
-
placement: 'bottom-start',
|
|
27
|
-
strategy: 'absolute',
|
|
28
|
-
transitionElement: this.popover,
|
|
29
|
-
visibleClass: 'popover-visible',
|
|
30
|
-
onAfterShow: () => { },
|
|
31
|
-
onAfterHide: () => { },
|
|
32
|
-
onTransitionEnd: () => { },
|
|
33
|
-
}, options);
|
|
34
|
-
this.isVisible = false;
|
|
35
|
-
this.popover.hidden = true;
|
|
36
|
-
this.popover.classList.remove(this.options.visibleClass);
|
|
37
|
-
this.popover.addEventListener('transitionend', this.handleTransitionEnd);
|
|
38
|
-
}
|
|
39
|
-
handleTransitionEnd(event) {
|
|
40
|
-
const target = event.target;
|
|
41
|
-
// Make sure the transition event originates from from the correct element, and not one that has bubbled up
|
|
42
|
-
if (target === this.options.transitionElement) {
|
|
43
|
-
// This is called before the element is hidden so users can do things like reset scroll. It will fire once for
|
|
44
|
-
// every transition property. Use `event.propertyName` to determine which property has finished transitioning.
|
|
45
|
-
this.options.onTransitionEnd.call(this, event);
|
|
46
|
-
// Make sure we only do this once, since transitionend will fire for every transition
|
|
47
|
-
if (!this.isVisible && !this.popover.hidden) {
|
|
48
|
-
this.popover.hidden = true;
|
|
49
|
-
this.popover.classList.remove(this.options.visibleClass);
|
|
50
|
-
this.options.onAfterHide.call(this);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
destroy() {
|
|
55
|
-
this.popover.removeEventListener('transitionend', this.handleTransitionEnd);
|
|
56
|
-
if (this.popper) {
|
|
57
|
-
this.popper.destroy();
|
|
58
|
-
this.popper = null;
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
show() {
|
|
62
|
-
this.isVisible = true;
|
|
63
|
-
this.popover.hidden = false;
|
|
64
|
-
this.popover.clientWidth; // force reflow
|
|
65
|
-
requestAnimationFrame(() => this.popover.classList.add(this.options.visibleClass));
|
|
66
|
-
if (this.popper) {
|
|
67
|
-
this.popper.destroy();
|
|
68
|
-
}
|
|
69
|
-
this.popper = createPopper(this.anchor, this.popover, {
|
|
70
|
-
placement: this.options.placement,
|
|
71
|
-
strategy: this.options.strategy,
|
|
72
|
-
modifiers: [
|
|
73
|
-
{
|
|
74
|
-
name: 'flip',
|
|
75
|
-
options: {
|
|
76
|
-
boundary: 'viewport',
|
|
77
|
-
},
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
name: 'offset',
|
|
81
|
-
options: {
|
|
82
|
-
offset: [this.options.skidding, this.options.distance],
|
|
83
|
-
},
|
|
84
|
-
},
|
|
85
|
-
],
|
|
86
|
-
});
|
|
87
|
-
this.popover.addEventListener('transitionend', () => this.options.onAfterShow.call(this), { once: true });
|
|
88
|
-
// Reposition the menu after it appears in case a modifier kicked in
|
|
89
|
-
requestAnimationFrame(() => { var _a; return (_a = this.popper) === null || _a === void 0 ? void 0 : _a.update(); });
|
|
90
|
-
}
|
|
91
|
-
reposition() {
|
|
92
|
-
this.popper.update();
|
|
93
|
-
}
|
|
94
|
-
hide() {
|
|
95
|
-
// Apply the hidden styles and wait for the transition before hiding completely
|
|
96
|
-
this.isVisible = false;
|
|
97
|
-
this.popover.classList.remove(this.options.visibleClass);
|
|
98
|
-
}
|
|
99
|
-
setOptions(options) {
|
|
100
|
-
this.options = Object.assign(this.options, options);
|
|
101
|
-
this.isVisible
|
|
102
|
-
? this.popover.classList.add(this.options.visibleClass)
|
|
103
|
-
: this.popover.classList.remove(this.options.visibleClass);
|
|
104
|
-
// Update popper options
|
|
105
|
-
if (this.popper) {
|
|
106
|
-
this.popper.setOptions({
|
|
107
|
-
placement: this.options.placement,
|
|
108
|
-
strategy: this.options.strategy,
|
|
109
|
-
});
|
|
110
|
-
requestAnimationFrame(() => this.popper.update());
|
|
111
|
-
}
|
|
112
|
-
}
|
|
113
|
-
}
|
|
1
|
+
//
|
|
2
|
+
// A positioning utility for popovers that handles show/hide/transitionEnd events with simple callbacks.
|
|
3
|
+
//
|
|
4
|
+
// Powered by Popper.js.
|
|
5
|
+
//
|
|
6
|
+
// NOTE:
|
|
7
|
+
//
|
|
8
|
+
// - The popover MUST have at least one property that transitions, otherwise transitionEnd won't fire and the popover
|
|
9
|
+
// won't be hidden. If transitions are delegated to a child element, set the `transitionElement` property accordingly.
|
|
10
|
+
//
|
|
11
|
+
// - When the popover is shown, it's assigned `PopoverOptions.visibleClass`. You can use this class to provide different
|
|
12
|
+
// transitions for show/hide.
|
|
13
|
+
//
|
|
14
|
+
// - Popper uses `translate3d` to position elements, so adding a transition to the `transform` property may have an
|
|
15
|
+
// undesired effect when the element is shown and when its placement changes.
|
|
16
|
+
//
|
|
17
|
+
import { createPopper } from '@popperjs/core';
|
|
18
|
+
export default class Popover {
|
|
19
|
+
constructor(anchor, popover, options) {
|
|
20
|
+
this.handleTransitionEnd = this.handleTransitionEnd.bind(this);
|
|
21
|
+
this.anchor = anchor;
|
|
22
|
+
this.popover = popover;
|
|
23
|
+
this.options = Object.assign({
|
|
24
|
+
skidding: 0,
|
|
25
|
+
distance: 0,
|
|
26
|
+
placement: 'bottom-start',
|
|
27
|
+
strategy: 'absolute',
|
|
28
|
+
transitionElement: this.popover,
|
|
29
|
+
visibleClass: 'popover-visible',
|
|
30
|
+
onAfterShow: () => { },
|
|
31
|
+
onAfterHide: () => { },
|
|
32
|
+
onTransitionEnd: () => { },
|
|
33
|
+
}, options);
|
|
34
|
+
this.isVisible = false;
|
|
35
|
+
this.popover.hidden = true;
|
|
36
|
+
this.popover.classList.remove(this.options.visibleClass);
|
|
37
|
+
this.popover.addEventListener('transitionend', this.handleTransitionEnd);
|
|
38
|
+
}
|
|
39
|
+
handleTransitionEnd(event) {
|
|
40
|
+
const target = event.target;
|
|
41
|
+
// Make sure the transition event originates from from the correct element, and not one that has bubbled up
|
|
42
|
+
if (target === this.options.transitionElement) {
|
|
43
|
+
// This is called before the element is hidden so users can do things like reset scroll. It will fire once for
|
|
44
|
+
// every transition property. Use `event.propertyName` to determine which property has finished transitioning.
|
|
45
|
+
this.options.onTransitionEnd.call(this, event);
|
|
46
|
+
// Make sure we only do this once, since transitionend will fire for every transition
|
|
47
|
+
if (!this.isVisible && !this.popover.hidden) {
|
|
48
|
+
this.popover.hidden = true;
|
|
49
|
+
this.popover.classList.remove(this.options.visibleClass);
|
|
50
|
+
this.options.onAfterHide.call(this);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
destroy() {
|
|
55
|
+
this.popover.removeEventListener('transitionend', this.handleTransitionEnd);
|
|
56
|
+
if (this.popper) {
|
|
57
|
+
this.popper.destroy();
|
|
58
|
+
this.popper = null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
show() {
|
|
62
|
+
this.isVisible = true;
|
|
63
|
+
this.popover.hidden = false;
|
|
64
|
+
this.popover.clientWidth; // force reflow
|
|
65
|
+
requestAnimationFrame(() => this.popover.classList.add(this.options.visibleClass));
|
|
66
|
+
if (this.popper) {
|
|
67
|
+
this.popper.destroy();
|
|
68
|
+
}
|
|
69
|
+
this.popper = createPopper(this.anchor, this.popover, {
|
|
70
|
+
placement: this.options.placement,
|
|
71
|
+
strategy: this.options.strategy,
|
|
72
|
+
modifiers: [
|
|
73
|
+
{
|
|
74
|
+
name: 'flip',
|
|
75
|
+
options: {
|
|
76
|
+
boundary: 'viewport',
|
|
77
|
+
},
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
name: 'offset',
|
|
81
|
+
options: {
|
|
82
|
+
offset: [this.options.skidding, this.options.distance],
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
});
|
|
87
|
+
this.popover.addEventListener('transitionend', () => this.options.onAfterShow.call(this), { once: true });
|
|
88
|
+
// Reposition the menu after it appears in case a modifier kicked in
|
|
89
|
+
requestAnimationFrame(() => { var _a; return (_a = this.popper) === null || _a === void 0 ? void 0 : _a.update(); });
|
|
90
|
+
}
|
|
91
|
+
reposition() {
|
|
92
|
+
this.popper.update();
|
|
93
|
+
}
|
|
94
|
+
hide() {
|
|
95
|
+
// Apply the hidden styles and wait for the transition before hiding completely
|
|
96
|
+
this.isVisible = false;
|
|
97
|
+
this.popover.classList.remove(this.options.visibleClass);
|
|
98
|
+
}
|
|
99
|
+
setOptions(options) {
|
|
100
|
+
this.options = Object.assign(this.options, options);
|
|
101
|
+
this.isVisible
|
|
102
|
+
? this.popover.classList.add(this.options.visibleClass)
|
|
103
|
+
: this.popover.classList.remove(this.options.visibleClass);
|
|
104
|
+
// Update popper options
|
|
105
|
+
if (this.popper) {
|
|
106
|
+
this.popper.setOptions({
|
|
107
|
+
placement: this.options.placement,
|
|
108
|
+
strategy: this.options.strategy,
|
|
109
|
+
});
|
|
110
|
+
requestAnimationFrame(() => this.popper.update());
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
@@ -1,47 +1,47 @@
|
|
|
1
|
-
import { getOffset } from './offset';
|
|
2
|
-
const locks = new Set();
|
|
3
|
-
//
|
|
4
|
-
// Prevents body scrolling. Keeps track of which elements requested a lock so multiple levels of locking are possible
|
|
5
|
-
// without premature unlocking.
|
|
6
|
-
//
|
|
7
|
-
export function lockBodyScrolling(lockingEl) {
|
|
8
|
-
locks.add(lockingEl);
|
|
9
|
-
document.body.classList.add('six-scroll-lock');
|
|
10
|
-
}
|
|
11
|
-
//
|
|
12
|
-
// Unlocks body scrolling. Scrolling will only be unlocked once all elements that requested a lock call this method.
|
|
13
|
-
//
|
|
14
|
-
export function unlockBodyScrolling(lockingEl) {
|
|
15
|
-
locks.delete(lockingEl);
|
|
16
|
-
if (locks.size === 0) {
|
|
17
|
-
document.body.classList.remove('six-scroll-lock');
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
//
|
|
21
|
-
// Scrolls an element into view of its container. If the element is already in view, nothing will happen.
|
|
22
|
-
//
|
|
23
|
-
export function scrollIntoView(element, container, direction = 'vertical', behavior = 'smooth') {
|
|
24
|
-
const offset = getOffset(element, container);
|
|
25
|
-
const offsetTop = offset.top + container.scrollTop;
|
|
26
|
-
const offsetLeft = offset.left + container.scrollLeft;
|
|
27
|
-
const minX = container.scrollLeft;
|
|
28
|
-
const maxX = container.scrollLeft + container.offsetWidth;
|
|
29
|
-
const minY = container.scrollTop;
|
|
30
|
-
const maxY = container.scrollTop + container.offsetHeight;
|
|
31
|
-
if (direction === 'horizontal' || direction === 'both') {
|
|
32
|
-
if (offsetLeft < minX) {
|
|
33
|
-
container.scrollTo({ left: offsetLeft, behavior });
|
|
34
|
-
}
|
|
35
|
-
else if (offsetLeft + element.clientWidth > maxX) {
|
|
36
|
-
container.scrollTo({ left: offsetLeft - container.offsetWidth + element.clientWidth, behavior });
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
if (direction === 'vertical' || direction === 'both') {
|
|
40
|
-
if (offsetTop < minY) {
|
|
41
|
-
container.scrollTo({ top: offsetTop, behavior });
|
|
42
|
-
}
|
|
43
|
-
else if (offsetTop + element.clientHeight > maxY) {
|
|
44
|
-
container.scrollTo({ top: offsetTop - container.offsetHeight + element.clientHeight, behavior });
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
1
|
+
import { getOffset } from './offset';
|
|
2
|
+
const locks = new Set();
|
|
3
|
+
//
|
|
4
|
+
// Prevents body scrolling. Keeps track of which elements requested a lock so multiple levels of locking are possible
|
|
5
|
+
// without premature unlocking.
|
|
6
|
+
//
|
|
7
|
+
export function lockBodyScrolling(lockingEl) {
|
|
8
|
+
locks.add(lockingEl);
|
|
9
|
+
document.body.classList.add('six-scroll-lock');
|
|
10
|
+
}
|
|
11
|
+
//
|
|
12
|
+
// Unlocks body scrolling. Scrolling will only be unlocked once all elements that requested a lock call this method.
|
|
13
|
+
//
|
|
14
|
+
export function unlockBodyScrolling(lockingEl) {
|
|
15
|
+
locks.delete(lockingEl);
|
|
16
|
+
if (locks.size === 0) {
|
|
17
|
+
document.body.classList.remove('six-scroll-lock');
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
//
|
|
21
|
+
// Scrolls an element into view of its container. If the element is already in view, nothing will happen.
|
|
22
|
+
//
|
|
23
|
+
export function scrollIntoView(element, container, direction = 'vertical', behavior = 'smooth') {
|
|
24
|
+
const offset = getOffset(element, container);
|
|
25
|
+
const offsetTop = offset.top + container.scrollTop;
|
|
26
|
+
const offsetLeft = offset.left + container.scrollLeft;
|
|
27
|
+
const minX = container.scrollLeft;
|
|
28
|
+
const maxX = container.scrollLeft + container.offsetWidth;
|
|
29
|
+
const minY = container.scrollTop;
|
|
30
|
+
const maxY = container.scrollTop + container.offsetHeight;
|
|
31
|
+
if (direction === 'horizontal' || direction === 'both') {
|
|
32
|
+
if (offsetLeft < minX) {
|
|
33
|
+
container.scrollTo({ left: offsetLeft, behavior });
|
|
34
|
+
}
|
|
35
|
+
else if (offsetLeft + element.clientWidth > maxX) {
|
|
36
|
+
container.scrollTo({ left: offsetLeft - container.offsetWidth + element.clientWidth, behavior });
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
if (direction === 'vertical' || direction === 'both') {
|
|
40
|
+
if (offsetTop < minY) {
|
|
41
|
+
container.scrollTo({ top: offsetTop, behavior });
|
|
42
|
+
}
|
|
43
|
+
else if (offsetTop + element.clientHeight > maxY) {
|
|
44
|
+
container.scrollTo({ top: offsetTop - container.offsetHeight + element.clientHeight, behavior });
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|