impulse_view_components 0.8.0 → 0.9.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +85 -1
- data/README.md +2 -1
- data/app/assets/dist/impulse_view_components.css +1 -1
- data/app/assets/dist/impulse_view_components.css.map +1 -1
- data/app/assets/dist/impulse_view_components.js +3 -3
- data/app/components/impulse/ajax_select_component.rb +4 -2
- data/app/components/impulse/autocomplete_component.html.erb +5 -5
- data/app/components/impulse/autocomplete_component.rb +26 -9
- data/app/components/impulse/clipboard_copy_component.rb +20 -0
- data/app/components/impulse/dialog/header_component.html.erb +1 -1
- data/app/components/impulse/dialog_component.html.erb +1 -1
- data/app/components/impulse/popover/header_component.html.erb +2 -2
- data/app/components/impulse/popover/header_component.rb +2 -1
- data/app/components/impulse/popover_component.html.erb +2 -2
- data/app/components/impulse/popover_component.rb +14 -4
- data/app/components/impulse/select_component.rb +49 -33
- data/app/components/impulse/time_zone_select_component.rb +41 -40
- data/lib/impulse/view_components/version.rb +1 -1
- data/lib/impulse/view_components.rb +0 -2
- metadata +25 -22
- data/app/components/impulse/select_component.html.erb +0 -21
- data/app/components/impulse/time_zone_select_component.html.erb +0 -20
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: f6068f711a96da7104ddc287d32e68ff7a30dc27eb4f0741688a41d49b26c3d7
|
|
4
|
+
data.tar.gz: 9cdf5d6266a428e8f956087a8bc0bda50ddec7a572e21ca76bb99deafd0ccd9d
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a28bba312d80518e75a0f0fa4ae62dd86a04e8962ad29479a5049f6a5c2e0d177e99f3b80c4b2415b4dba686471d63009ed29a2460b727aa1ae35b691e2ec16b
|
|
7
|
+
data.tar.gz: 638cf6abdc550001f364cdc9c6107bce079defc97f53ac0ce031155207742de76824154588d959a367330511291e0618e22cfe0cc432451a22980ad75fbed464
|
data/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,88 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
6
6
|
|
|
7
7
|
## [Unreleased]
|
|
8
8
|
|
|
9
|
+
## [0.9.1] - 2026-11-06
|
|
10
|
+
|
|
11
|
+
### Fixed
|
|
12
|
+
|
|
13
|
+
- Fixed `<awc-popover>` showing open, and throwing when it opens or closes, in browsers without the Popover API (before Chrome 114, Firefox 125 and Safari 17). There the panel stays in the page, stacked with `$zindex-popover` and hidden while the popover is closed ([#365](https://github.com/Ambiki/impulse_view_components/pull/365))
|
|
14
|
+
|
|
15
|
+
## [0.9.0] - 2026-11-05
|
|
16
|
+
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- `Impulse::ClipboardCopyComponent` (`<awc-clipboard-copy>`), a button that copies text to the clipboard ([#348](https://github.com/Ambiki/impulse_view_components/pull/348))
|
|
20
|
+
- `--rounded-xl` (12px) in the border radius scale ([#344](https://github.com/Ambiki/impulse_view_components/pull/344))
|
|
21
|
+
- Style import paths: `/base`, then `/<element>` or the bare path for Sass, and `/styles.css` precompiled for apps without Sass ([#331](https://github.com/Ambiki/impulse_view_components/pull/331))
|
|
22
|
+
- Shorter import paths: `/<element>` (such as `/popover`) and `/hooks`, which export by name and with the types their APIs use. Bundlers drop what an app doesn't import ([#330](https://github.com/Ambiki/impulse_view_components/pull/330))
|
|
23
|
+
- `toggle()` on `<awc-popover>` takes the event that toggled it, so that one press asks each popover to hide once ([#324](https://github.com/Ambiki/impulse_view_components/pull/324))
|
|
24
|
+
- `useFocusOut`, a hook that calls back when focus moves to an element outside its boundaries, such as on Tab past a popover's last element ([#322](https://github.com/Ambiki/impulse_view_components/pull/322))
|
|
25
|
+
- `keep-flipped` on `<awc-anchor>` (`keep_flipped:` on `Impulse::AnchorComponent`) and `keepFlipped` on `useFloatingUI`, which keep the side a floating element flipped to while it's positioned ([#320](https://github.com/Ambiki/impulse_view_components/pull/320))
|
|
26
|
+
- `awc-autocomplete:commit` carries `selected` in its detail, so listeners can tell whether the commit selected or deselected the option ([#311](https://github.com/Ambiki/impulse_view_components/pull/311))
|
|
27
|
+
- `requestShow()` and `requestHide()` on `<awc-popover>`, `<awc-dialog>` and `<awc-autocomplete>`, which emit a cancelable `show` or `hide` before acting ([#302](https://github.com/Ambiki/impulse_view_components/pull/302))
|
|
28
|
+
- `Impulse::SelectComponent`'s block form can group options with `with_group` ([#299](https://github.com/Ambiki/impulse_view_components/pull/299))
|
|
29
|
+
- Added `auto-size` and `auto-size-padding` to `<awc-anchor>` (`auto_size:` and `auto_size_padding:` on `Impulse::AnchorComponent`) ([#274](https://github.com/Ambiki/impulse_view_components/pull/274))
|
|
30
|
+
- `useFloatingUI` accepts a function for its options, read on every reposition, and exports its options type as `UseFloatingUIOptions` ([#273](https://github.com/Ambiki/impulse_view_components/pull/273))
|
|
31
|
+
- Every prefixed autocomplete event is now declared, so `show`, `shown`, `hide`, `hidden`, `clear` and `reset` listeners receive a typed `CustomEvent` alongside `commit` and `remove`. The four ajax events (`loadstart`, `load`, `error`, `loadend`) are unchanged — they stay unprefixed and non-bubbling ([#255](https://github.com/Ambiki/impulse_view_components/pull/255))
|
|
32
|
+
- Autocomplete now infers its API types from the selection mode and source: `value`/`removeValue` resolve by narrowing on `multiple`, and `setValue`'s `text` requirement by narrowing on the new `ajax` getter. Exported `SingleAutocompleteElement` / `MultipleAutocompleteElement` / `LocalAutocompleteElement` / `AjaxAutocompleteElement` types allow pinning the shape explicitly ([#217](https://github.com/Ambiki/impulse_view_components/pull/217))
|
|
33
|
+
- Added `GlobalEventHandlersEventMap` entries for the dialog and popover events so listeners receive a typed `CustomEvent` ([#216](https://github.com/Ambiki/impulse_view_components/pull/216))
|
|
34
|
+
|
|
35
|
+
### Changed
|
|
36
|
+
|
|
37
|
+
- **Breaking:** Requires Rails 7.1 and `view_component` 4.17, which brings [ViewComponent 4's breaking changes](https://github.com/ViewComponent/view_component/releases/tag/v4.0.0). It raises `ViewComponent::ReusedInstanceError` when an app renders one component instance more than once ([#346](https://github.com/Ambiki/impulse_view_components/pull/346))
|
|
38
|
+
- `<awc-dialog>`'s corners are 12px (`--rounded-xl`), up from 4px ([#344](https://github.com/Ambiki/impulse_view_components/pull/344))
|
|
39
|
+
- **Breaking:** One click outside, or focus moving out, closes `<awc-popover>` and the popovers nested in it together. A request to hide a popover asks its nested popovers first, and one that refuses keeps it open ([#324](https://github.com/Ambiki/impulse_view_components/pull/324))
|
|
40
|
+
- **Breaking:** Elements no longer write their defaults to attributes when they connect, so a selector like `awc-popover[placement="bottom"]` stops matching. Read the property, or render the attribute explicitly. To turn off a Boolean that defaults to on, such as `flip`, set it to `"false"`: removing the attribute now turns it back on ([#321](https://github.com/Ambiki/impulse_view_components/pull/321))
|
|
41
|
+
- **Breaking:** `<awc-autocomplete>` auto sizes by default (`auto-size="false"` or `auto_size: false` turns it off), and its listbox is never taller than `--awc-autocomplete-listbox-max-height`. Compiling the SCSS now needs Dart Sass ([#318](https://github.com/Ambiki/impulse_view_components/pull/318))
|
|
42
|
+
- **Breaking:** `<awc-popover>` renders in the top layer as `<div role="dialog" popover="manual">` instead of a `<dialog>`. It moves focus in when it opens, returns it to the trigger when it closes, and closes when focus moves out. `handleClose` is gone, and a `<form method="dialog">` inside no longer closes it ([#308](https://github.com/Ambiki/impulse_view_components/pull/308))
|
|
43
|
+
- `<awc-dialog>`'s `hide()` and `requestHide()` return a promise, like the popover's and the autocomplete's ([#305](https://github.com/Ambiki/impulse_view_components/pull/305))
|
|
44
|
+
- **Breaking:** Removing an open `<awc-popover>`, `<awc-dialog>` or `<awc-autocomplete>` keeps `open`, so re-inserting it opens it again ([#303](https://github.com/Ambiki/impulse_view_components/pull/303))
|
|
45
|
+
- **Breaking:** Open and close events now follow native elements: user actions, `requestShow()`, `requestHide()` and `toggle()` emit a cancelable `show` or `hide`, `show()` and `hide()` emit only `shown` or `hidden`, and connecting or removing an element emits nothing. Hand-written `<awc-dialog>` markup needs the `cancel->awc-dialog#handleCancel` and `close->awc-dialog#handleClose` actions for Escape ([#302](https://github.com/Ambiki/impulse_view_components/pull/302))
|
|
46
|
+
- The JavaScript now compiles to ES2020, so `?.`, `??` and object spread ship untranspiled. No supported browser is dropped, but bundlers that can't parse ES2020, such as webpack 4, need to transpile the package ([#298](https://github.com/Ambiki/impulse_view_components/pull/298))
|
|
47
|
+
- **Breaking:** Renamed `useFloatingUI`'s `referenceElement` and `popupElement` options to `anchorElement` and `floatingElement` ([#278](https://github.com/Ambiki/impulse_view_components/pull/278))
|
|
48
|
+
- **Breaking:** `<awc-anchor>`'s `start()` and `stop()` now turn `active` on and off ([#277](https://github.com/Ambiki/impulse_view_components/pull/277))
|
|
49
|
+
- **Breaking:** `useFloatingUI` and `<awc-anchor>` now share their defaults: `bottom` placement, with flip and shift on. Hook callers that omit `placement` get `bottom` instead of `bottom-start`, and `<awc-anchor>` now shifts unless `shift` is `false` ([#276](https://github.com/Ambiki/impulse_view_components/pull/276))
|
|
50
|
+
- **Breaking:** Requires Ruby 3.4 ([#256](https://github.com/Ambiki/impulse_view_components/pull/256), [#210](https://github.com/Ambiki/impulse_view_components/pull/210))
|
|
51
|
+
|
|
52
|
+
### Deprecated
|
|
53
|
+
|
|
54
|
+
- Import paths under `@ambiki/impulse-view-components/dist/`. They keep working; see Getting Started for the paths that replace them ([#330](https://github.com/Ambiki/impulse_view_components/pull/330))
|
|
55
|
+
|
|
56
|
+
### Removed
|
|
57
|
+
|
|
58
|
+
- **Breaking:** `click_boundaries:` on `Impulse::PopoverComponent` and `click-boundaries` on `<awc-popover>` ([#323](https://github.com/Ambiki/impulse_view_components/pull/323))
|
|
59
|
+
|
|
60
|
+
### Fixed
|
|
61
|
+
|
|
62
|
+
- Fixed the dismiss button of a tag added to a disabled multiple `<awc-autocomplete>`, such as by a form reset or `setValue`, removing the tag ([#337](https://github.com/Ambiki/impulse_view_components/pull/337))
|
|
63
|
+
- Fixed `useOutsideClick` calling back for a click without a press, such as from Enter or `click()`, after a right-click, a drag or a prevented click ([#326](https://github.com/Ambiki/impulse_view_components/pull/326))
|
|
64
|
+
- Fixed a page morph resetting the defaults of `<awc-autocomplete>`, `<awc-dialog>`, `<awc-popover>` and `<awc-anchor>` ([#321](https://github.com/Ambiki/impulse_view_components/pull/321))
|
|
65
|
+
- Fixed the `<awc-autocomplete>` listbox jumping between sides of its control while filtering ([#320](https://github.com/Ambiki/impulse_view_components/pull/320))
|
|
66
|
+
- Fixed an auto sized `<awc-anchor>`, `useFloatingUI` floating element or `<awc-autocomplete>` listbox staying squashed instead of flipping to the side of its anchor with more room ([#318](https://github.com/Ambiki/impulse_view_components/pull/318))
|
|
67
|
+
- Fixed Enter after a paste committing an option from the previous results in an ajax `<awc-autocomplete>` ([#316](https://github.com/Ambiki/impulse_view_components/pull/316))
|
|
68
|
+
- Fixed a response that lands after an ajax `<awc-autocomplete>` closes setting its active option, selection, `no-options` or `error` ([#314](https://github.com/Ambiki/impulse_view_components/pull/314))
|
|
69
|
+
- Fixed Enter committing an option hidden by the query in `<awc-autocomplete>`, after pasting text that matches no option ([#314](https://github.com/Ambiki/impulse_view_components/pull/314))
|
|
70
|
+
- Fixed a single select `<awc-autocomplete>` leaving the old option marked selected when its value changed while open ([#314](https://github.com/Ambiki/impulse_view_components/pull/314))
|
|
71
|
+
- Fixed `<awc-popover>` having no accessible name: it's labelled by its title, or by its trigger ([#308](https://github.com/Ambiki/impulse_view_components/pull/308))
|
|
72
|
+
- Fixed `useFloatingUI` and `useOutsideClick` wrapping an element's `disconnected` again every time it moved, which kept old positioners alive ([#307](https://github.com/Ambiki/impulse_view_components/pull/307))
|
|
73
|
+
- Fixed setting or removing `open` on `<awc-popover>`, `<awc-dialog>` and `<awc-autocomplete>` not opening or closing them ([#303](https://github.com/Ambiki/impulse_view_components/pull/303))
|
|
74
|
+
- Fixed an autocomplete that connects with `open` set not opening its listbox ([#303](https://github.com/Ambiki/impulse_view_components/pull/303))
|
|
75
|
+
- Fixed `show()` throwing when called before the element initialized ([#303](https://github.com/Ambiki/impulse_view_components/pull/303))
|
|
76
|
+
- Fixed `preventDefault()` on a `show` or `hide` event not stopping the open or close ([#302](https://github.com/Ambiki/impulse_view_components/pull/302))
|
|
77
|
+
- Fixed a popover that connects with `open` set not opening ([#302](https://github.com/Ambiki/impulse_view_components/pull/302))
|
|
78
|
+
- Fixed `Impulse::TimeZoneSelectComponent` with `multiple: true` not preselecting its `selected` values ([#299](https://github.com/Ambiki/impulse_view_components/pull/299))
|
|
79
|
+
- Fixed type declarations that apps using `moduleResolution: node16` couldn't resolve, which turned some types into `any` ([#296](https://github.com/Ambiki/impulse_view_components/pull/296))
|
|
80
|
+
- Fixed `<awc-anchor>`'s `fallbackPlacements` being typed as `never[]` ([#295](https://github.com/Ambiki/impulse_view_components/pull/295))
|
|
81
|
+
- Fixed the autocomplete ignoring changes to `auto-size` and `auto-size-padding` after it connected ([#292](https://github.com/Ambiki/impulse_view_components/pull/292))
|
|
82
|
+
- Fixed an open popover breaking after it's moved in the page ([#282](https://github.com/Ambiki/impulse_view_components/pull/282))
|
|
83
|
+
- Fixed removing an open popover from the page throwing a `TypeError` ([#281](https://github.com/Ambiki/impulse_view_components/pull/281))
|
|
84
|
+
- Fixed the popover ignoring changes to `placement` after it connected ([#273](https://github.com/Ambiki/impulse_view_components/pull/273))
|
|
85
|
+
- Fixed `useFloatingUI` ignoring its `middleware` option. Custom middleware now runs before the arrow is aligned ([#269](https://github.com/Ambiki/impulse_view_components/pull/269))
|
|
86
|
+
- Fixed `Impulse::AjaxSelectComponent` raising `NameError` for `OpenStruct` when given `selected:` in an app that doesn't load `ostruct` ([#266](https://github.com/Ambiki/impulse_view_components/pull/266))
|
|
87
|
+
- Fixed the autocomplete issuing a request against a source it was no longer using: changing `src`, or removing the element, now cancels a request that is in flight and one that is still waiting out the debounce. Previously a response from the old source could overwrite the options of the new one ([#255](https://github.com/Ambiki/impulse_view_components/pull/255))
|
|
88
|
+
- Fixed the `exports` subpath map pointing at directories instead of files, which broke `dist/elements/*`, `dist/hooks/*` and `dist/helpers/*` imports for Node and for TypeScript under `moduleResolution: bundler`/`node16`. Every subpath now maps to a real file and declares a `types` condition, and element stylesheets stay reachable through the `sass`/`style` conditions ([#241](https://github.com/Ambiki/impulse_view_components/pull/241))
|
|
89
|
+
- Fixed `useOutsideClick` leaking its `click` listener by switching teardown to `AbortController` ([#215](https://github.com/Ambiki/impulse_view_components/pull/215))
|
|
90
|
+
|
|
9
91
|
## [0.8.0] - 2026-01-09
|
|
10
92
|
|
|
11
93
|
### Changed
|
|
@@ -183,7 +265,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
183
265
|
|
|
184
266
|
- Everything!
|
|
185
267
|
|
|
186
|
-
[unreleased]: https://github.com/Ambiki/impulse_view_components/compare/v0.
|
|
268
|
+
[unreleased]: https://github.com/Ambiki/impulse_view_components/compare/v0.9.1...HEAD
|
|
269
|
+
[0.9.1]: https://github.com/Ambiki/impulse_view_components/compare/v0.9.0...v0.9.1
|
|
270
|
+
[0.9.0]: https://github.com/Ambiki/impulse_view_components/compare/v0.8.0...v0.9.0
|
|
187
271
|
[0.8.0]: https://github.com/Ambiki/impulse_view_components/compare/v0.7.2...v0.8.0
|
|
188
272
|
[0.7.2]: https://github.com/Ambiki/impulse_view_components/compare/v0.7.1...v0.7.2
|
|
189
273
|
[0.7.1]: https://github.com/Ambiki/impulse_view_components/compare/v0.7.0...v0.7.1
|
data/README.md
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
:root{--blue: #007bff;--indigo: #6610f2;--purple: #6f42c1;--pink: #e83e8c;--red: #dc3545;--orange: #fd7e14;--yellow: #ffc107;--green: #28a745;--teal: #20c997;--cyan: #17a2b8;--white: #fff;--gray: #6c757d;--gray-dark: #343a40;--primary: #007bff;--secondary: #6c757d;--success: #28a745;--info: #17a2b8;--warning: #ffc107;--danger: #dc3545;--light: #f8f9fa;--dark: #343a40;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--white: #ffffff;--n300: #627291;--color-fg-default: #1c3158;--color-fg-secondary: var(--n300);--color-border-default: #d0d7de;--rounded-sm: 2px;--rounded-default: 4px;--rounded-md: 6px;--rounded-lg: 8px;--rounded-full: 9999px;--fs-sm: 0.8125rem;--fs-default: 0.875rem;--fs-lg: 1rem;--fs-xl: 1.25rem;--fw-default: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-default: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--space-1: 0.25rem;--space-2: 0.5rem;--space-3: 1rem;--space-4: 1.5rem;--awc-autocomplete-control-min-height: calc(1.5em + 0.75rem + 2px);--awc-autocomplete-control-min-height-sm: calc(1.5em + 0.5rem + 2px);--awc-autocomplete-control-min-height-lg: calc(1.5em + 1rem + 2px);--awc-autocomplete-control-focus-color: #495057;--awc-autocomplete-control-focus-border-color: #80bdff;--awc-autocomplete-control-disabled-bg-color: #eef4ff;--awc-autocomplete-control-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);--awc-autocomplete-control-focus-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);--awc-autocomplete-input-min-width: 2rem;--awc-autocomplete-input-height: calc(calc(1.5em + 0.75rem + 2px) - (0.375rem * 2) - (1px * 2));--awc-autocomplete-input-bg-color: #fff;--awc-autocomplete-adornment-item-size: 1.5rem;--awc-autocomplete-listbox-font-size: 0.875rem;--awc-autocomplete-listbox-max-height: 256px;--awc-autocomplete-option-padding-x: 1rem;--awc-autocomplete-option-padding-y: 0.5rem;--awc-autocomplete-option-font-size: 0.875rem;--awc-autocomplete-option-lh: 1.25rem;--awc-autocomplete-option-hover-bg-color: #e9ecef;--awc-autocomplete-option-check-color: #38b57c;--awc-autocomplete-option-check-disabled-color: #afe1cb;--awc-autocomplete-group-header-padding-x: var(--awc-autocomplete-option-padding-x);--awc-autocomplete-group-header-padding-y: 0.25rem;--awc-autocomplete-group-header-color: #384b6e;--awc-autocomplete-group-header-font-size: 0.75rem;--awc-autocomplete-group-header-lh: 18px;--awc-autocomplete-group-header-fw: 500;--awc-autocomplete-tag-padding-x: 0.5rem;--awc-autocomplete-tag-btn-size: 1.25rem;--awc-autocomplete-tag-btn-bg-hover-color: var(--n300);--awc-autocomplete-tag-gap: 0.25rem;--awc-autocomplete-tag-max-width: 24rem;--awc-autocomplete-tag-bg-color: #e0e7f7;--awc-autocomplete-tag-border-color: #c4cdde;--awc-autocomplete-tag-border-radius: 0.125rem;--awc-autocomplete-tag-font-size: 0.75rem;--awc-autocomplete-blankslate-color: #384b6e;--awc-autocomplete-blankslate-padding-x: 1rem;--awc-autocomplete-blankslate-padding-y: 0.5rem;--awc-autocomplete-error-color: #c01303;--awc-autocomplete-input-height-sm: calc( calc(1.5em + 0.5rem + 2px) - (0.25rem * 2) - (1px * 2) );--awc-autocomplete-input-height-lg: calc( calc(1.5em + 1rem + 2px) - (0.5rem * 2) - (1px * 2) );--awc-autocomplete-tag-font-size-lg: 0.875rem;--awc-autocomplete-tag-gap-lg: 0.375rem}[hidden][hidden]{display:none !important}.awc-autocomplete{position:relative;display:block}.awc-autocomplete-control{display:flex;align-items:center;position:relative;cursor:text;padding-right:2.5rem;height:100%;min-height:var(--awc-autocomplete-control-min-height)}.awc-autocomplete:focus-within .awc-autocomplete-control{color:var(--awc-autocomplete-control-focus-color);background-color:#fff;border-color:var(--awc-autocomplete-control-focus-border-color);outline:0;box-shadow:var(--awc-autocomplete-control-focus-box-shadow)}.awc-autocomplete[disabled] .awc-autocomplete-control{cursor:default;background-color:var(--awc-autocomplete-control-disabled-bg-color)}.awc-autocomplete[disabled] .awc-autocomplete-clear-btn{background-color:var(--awc-autocomplete-control-disabled-bg-color);border-color:var(--awc-autocomplete-control-disabled-bg-color)}.awc-autocomplete-input{display:block;min-width:var(--awc-autocomplete-input-min-width);height:var(--awc-autocomplete-input-height);width:100%;margin:0;padding:0;flex:1 1 0%;font:inherit;letter-spacing:inherit;background:none;color:currentColor;border:0;outline:none;background-clip:padding-box}.awc-autocomplete-input::-moz-placeholder{color:#6c757d}.awc-autocomplete-input::placeholder{color:#6c757d}.awc-autocomplete-end-adornment{flex-shrink:0;position:absolute;right:.75rem;top:0;bottom:0;display:flex;align-items:center;margin-right:calc(0.75rem/2*-1)}.awc-autocomplete-adornment-btn,.awc-autocomplete-adornment-decorator{width:var(--awc-autocomplete-adornment-item-size);height:var(--awc-autocomplete-adornment-item-size);padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--rounded-sm);font-size:var(--fs-sm)}.awc-autocomplete-adornment-btn i,.awc-autocomplete-adornment-decorator i{display:inline-flex;align-items:center;justify-content:center;font-style:normal}.awc-autocomplete-adornment-btn i::before,.awc-autocomplete-adornment-decorator i::before{line-height:inherit}.awc-autocomplete-clear-btn{display:none;background-color:var(--awc-autocomplete-input-bg-color);border-color:var(--awc-autocomplete-input-bg-color)}.awc-autocomplete-adornment-decorator{pointer-events:none}.awc-autocomplete-listbox{font-size:var(--awc-autocomplete-listbox-font-size);max-height:var(--awc-auto-size-height, var(--awc-autocomplete-listbox-max-height));overflow:hidden auto;box-shadow:var(--shadow-md)}.awc-autocomplete-options{margin:0;padding:0}.awc-autocomplete-options .awc-autocomplete-group:not([hidden])~:not([hidden]){border-top:1px solid var(--color-border-default);margin-top:var(--space-1)}.awc-autocomplete-group-header{padding:var(--awc-autocomplete-group-header-padding-y) var(--awc-autocomplete-group-header-padding-x);line-height:var(--awc-autocomplete-group-header-lh);font-size:var(--awc-autocomplete-group-header-font-size);font-weight:var(--awc-autocomplete-group-header-fw);color:var(--awc-autocomplete-group-header-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.awc-autocomplete-option-check{color:var(--awc-autocomplete-option-check-color);flex-shrink:0;visibility:hidden;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-xl)}.awc-autocomplete-option{position:relative;display:flex;align-items:flex-start;justify-content:space-between;-moz-column-gap:.25rem;column-gap:.25rem;padding:var(--awc-autocomplete-option-padding-y) var(--awc-autocomplete-option-padding-x);line-height:var(--awc-autocomplete-option-lh);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none;font-size:var(--awc-autocomplete-option-font-size);white-space:initial}.awc-autocomplete-option[data-active],.awc-autocomplete-option:active,.awc-autocomplete-option .active{color:#16181b;background-color:var(--awc-autocomplete-option-hover-bg-color)}.awc-autocomplete-option.disabled{pointer-events:auto;cursor:not-allowed}.awc-autocomplete-option[data-active].disabled{color:#adb5bd}.awc-autocomplete-option.disabled .awc-autocomplete-option-check{color:var(--awc-autocomplete-option-check-disabled-color)}.awc-autocomplete-option:not(.disabled) .awc-autocomplete-option-description{color:var(--color-fg-secondary)}.awc-autocomplete-option[aria-selected=true] .awc-autocomplete-option-check{visibility:visible}.awc-autocomplete-option-content{flex:1 1 0%;display:flex;flex-direction:column;row-gap:2px;word-break:break-word}.awc-autocomplete-option-text{display:block}.awc-autocomplete-option-description{font-size:var(--fs-sm)}.awc-autocomplete-tag{display:flex;align-items:center;-moz-column-gap:.25rem;column-gap:.25rem;padding-inline:var(--awc-autocomplete-tag-padding-x);min-width:0;max-width:var(--awc-autocomplete-tag-max-width);height:var(--awc-autocomplete-input-height);vertical-align:middle;background-color:var(--awc-autocomplete-tag-bg-color);border-radius:var(--awc-autocomplete-tag-border-radius);border:1px solid var(--awc-autocomplete-tag-border-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}.awc-autocomplete-tag-text{display:block;line-height:var(--awc-autocomplete-tag-btn-size);font-size:var(--awc-autocomplete-tag-font-size);text-decoration:none;flex:1 1 0%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.awc-autocomplete-tag-end-adornment{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;margin-right:calc(var(--awc-autocomplete-tag-padding-x)/2*-1)}.awc-autocomplete-tag-dismiss-btn{padding:0;display:inline-flex;align-items:center;justify-content:center;height:var(--awc-autocomplete-tag-btn-size);width:var(--awc-autocomplete-tag-btn-size);border-radius:var(--rounded-sm);font-size:var(--fs-lg)}.awc-autocomplete-tag-dismiss-btn:hover{background-color:var(--awc-autocomplete-tag-btn-bg-hover-color);color:#fff}.awc-autocomplete-tag-dismiss-btn[disabled]{background-color:rgba(0,0,0,0);color:inherit}.awc-autocomplete-tag-dismiss-btn i{display:inline-flex;align-items:center;justify-content:center;font-style:normal}.awc-autocomplete-tag-dismiss-btn i::before{line-height:inherit}.awc-autocomplete-blankslate{display:none;text-align:center;padding:var(--awc-autocomplete-blankslate-padding-y) var(--awc-autocomplete-blankslate-padding-x);color:var(--awc-autocomplete-blankslate-color)}.awc-autocomplete-error{display:none;text-align:center;padding:var(--awc-autocomplete-blankslate-padding-y) var(--awc-autocomplete-blankslate-padding-x);color:var(--awc-autocomplete-error-color)}.awc-autocomplete-spinner{display:none;align-items:center;justify-content:center;padding:var(--awc-autocomplete-blankslate-padding-y) var(--awc-autocomplete-blankslate-padding-x)}.awc-autocomplete[open] .awc-autocomplete-listbox{display:block}.awc-autocomplete--selected.awc-autocomplete--clearable .awc-autocomplete-adornment-decorator{display:none}.awc-autocomplete--selected .awc-autocomplete-clear-btn{display:inline-flex}.awc-autocomplete[loading] .awc-autocomplete-options,.awc-autocomplete[loading] .awc-autocomplete-blankslate{display:none}.awc-autocomplete[loading] .awc-autocomplete-spinner{display:flex}.awc-autocomplete[no-options] .awc-autocomplete-options{display:none}.awc-autocomplete[no-options]:not([error]):not([loading]) .awc-autocomplete-blankslate{display:block}.awc-autocomplete[error] .awc-autocomplete-error{display:block}.awc-autocomplete[multiple] .awc-autocomplete-control{flex-wrap:wrap;gap:var(--awc-autocomplete-tag-gap)}.awc-autocomplete--sm{--awc-autocomplete-input-height: var(--awc-autocomplete-input-height-sm);--awc-autocomplete-tag-btn-size: 1rem}.awc-autocomplete--sm .awc-autocomplete-control{min-height:var(--awc-autocomplete-control-min-height-sm);padding-right:2.25rem}.awc-autocomplete--sm .awc-autocomplete-end-adornment{right:.5rem;margin-right:calc(0.5rem/2*-1)}.awc-autocomplete--lg{--awc-autocomplete-input-height: var(--awc-autocomplete-input-height-lg);--awc-autocomplete-tag-font-size: var(--awc-autocomplete-tag-font-size-lg);--awc-autocomplete-tag-gap: var(--awc-autocomplete-tag-gap-lg)}.awc-autocomplete--lg .awc-autocomplete-control{min-height:var(--awc-autocomplete-control-min-height-lg);padding-right:2.75rem}.awc-autocomplete--lg .awc-autocomplete-end-adornment{right:1rem;margin-right:calc(1rem/2*-1)}.awc-dialog-dialog{--margin-y: 0.5rem;--margin-y-sm-up: 1.75rem;border:0;border-radius:var(--rounded-default);max-width:92vw;width:100%;color:inherit;background-color:var(--white);box-shadow:var(--shadow-lg);padding:0;margin:var(--margin-y) auto;max-height:calc(100vh - var(--margin-y)*2);overflow:hidden;animation:dialog-show 150ms cubic-bezier(0.16, 1, 0.3, 1)}.awc-dialog-dialog[open]{display:flex;flex-direction:column}.awc-dialog-dialog:focus-visible{outline:none}.awc-dialog-dialog::backdrop{background-color:rgba(0,23,66,.5);animation:dialog-overlay 150ms cubic-bezier(0.16, 1, 0.3, 1)}@media(min-width: 576px){.awc-dialog-dialog{max-width:498px;max-height:calc(100vh - var(--margin-y-sm-up)*2);margin-top:var(--margin-y-sm-up);margin-bottom:var(--margin-y-sm-up)}}.awc-dialog-dialog--centered{margin-top:auto;margin-bottom:auto}.awc-dialog--scrollable{flex-grow:1;display:flex;flex-direction:column;overflow-y:hidden}.awc-dialog-header{flex-shrink:0;display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-1) var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-default)}.awc-dialog-title-container{flex:1 1 0%;padding:var(--space-2) 0}.awc-dialog-title{margin:0 !important;font-size:var(--fs-lg);font-weight:var(--fw-medium);line-height:20px}.awc-dialog-close-btn{position:relative;flex-shrink:0;padding:0;width:32px;height:32px;font-size:1.25rem;line-height:20px;display:inline-flex;align-items:center;justify-content:center}.awc-dialog-close-btn:not(:hover){background-color:var(--white);border-color:var(--white)}.awc-dialog-close-btn:focus{box-shadow:none}.awc-dialog-close-btn:focus-visible{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.awc-dialog-close-btn i{display:inline-flex;align-items:center;justify-content:center;font-style:normal}.awc-dialog-close-btn i::before{line-height:inherit}.awc-dialog-body{flex-grow:1;overflow-y:auto;padding:var(--space-3);font-size:var(--fs-default)}.awc-dialog-footer{flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;padding:var(--space-3);flex-wrap:wrap;gap:var(--space-2);border-top:1px solid var(--color-border-default)}.awc-dialog--sm .awc-dialog-dialog{max-width:298px}.awc-dialog--lg .awc-dialog-dialog{max-width:798px}.awc-dialog--fullscreen .awc-dialog-dialog{max-width:100vw;box-shadow:none;border-radius:0;max-height:100vh;height:100%}@supports(max-height: 100dvh){.awc-dialog--fullscreen .awc-dialog-dialog{max-height:100dvh}}@supports(max-width: 100dvw){.awc-dialog--fullscreen .awc-dialog-dialog{max-width:100dvw}}@media(max-width: 576px){.awc-dialog--fullscreen-sm-down .awc-dialog-dialog{max-width:100vw;box-shadow:none;border-radius:0;max-height:100vh;height:100%}@supports(max-height: 100dvh){.awc-dialog--fullscreen-sm-down .awc-dialog-dialog{max-height:100dvh}}@supports(max-width: 100dvw){.awc-dialog--fullscreen-sm-down .awc-dialog-dialog{max-width:100dvw}}}@media(max-width: 768px){.awc-dialog--fullscreen-md-down .awc-dialog-dialog{max-width:100vw;box-shadow:none;border-radius:0;max-height:100vh;height:100%}@supports(max-height: 100dvh){.awc-dialog--fullscreen-md-down .awc-dialog-dialog{max-height:100dvh}}@supports(max-width: 100dvw){.awc-dialog--fullscreen-md-down .awc-dialog-dialog{max-width:100dvw}}}@media(max-width: 992px){.awc-dialog--fullscreen-lg-down .awc-dialog-dialog{max-width:100vw;box-shadow:none;border-radius:0;max-height:100vh;height:100%}@supports(max-height: 100dvh){.awc-dialog--fullscreen-lg-down .awc-dialog-dialog{max-height:100dvh}}@supports(max-width: 100dvw){.awc-dialog--fullscreen-lg-down .awc-dialog-dialog{max-width:100dvw}}}@media(max-width: 1200px){.awc-dialog--fullscreen-xl-down .awc-dialog-dialog{max-width:100vw;box-shadow:none;border-radius:0;max-height:100vh;height:100%}@supports(max-height: 100dvh){.awc-dialog--fullscreen-xl-down .awc-dialog-dialog{max-height:100dvh}}@supports(max-width: 100dvw){.awc-dialog--fullscreen-xl-down .awc-dialog-dialog{max-width:100dvw}}}@keyframes dialog-show{from{opacity:0;transform:scale(0.96)}to{opacity:1;transform:scale(1)}}@keyframes dialog-overlay{from{opacity:0}to{opacity:1}}.awc-popover{display:block}.awc-popover-container{outline:none;background-clip:padding-box;background-color:var(--white);border-radius:var(--rounded-default);box-shadow:var(--shadow-md);max-width:276px;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--fs-default);overflow:visible;border:1px solid var(--color-border-default);animation-duration:400ms;animation-timing-function:cubic-bezier(0.16, 1, 0.3, 1);word-wrap:break-word;z-index:1060}.awc-popover-container::backdrop{display:none}.awc-popover-container .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.awc-popover-container .arrow::before,.awc-popover-container .arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid}.bs-popover-auto[x-placement^=top]{margin-bottom:0;animation-name:slide-down-and-fade}.bs-popover-auto[x-placement^=top]>.arrow{bottom:-0.5rem;margin-left:0;margin-right:0}.bs-popover-auto[x-placement^=right]{margin-left:0;animation-name:slide-left-and-fade}.bs-popover-auto[x-placement^=right]>.arrow{left:-0.5rem;margin-top:0;margin-bottom:0}.bs-popover-auto[x-placement^=bottom]{margin-top:0;animation-name:slide-up-and-fade}.bs-popover-auto[x-placement^=bottom]>.arrow{top:-0.5rem;margin-left:0;margin-right:0}.bs-popover-auto[x-placement^=left]{margin-right:0;animation-name:slide-right-and-fade}.bs-popover-auto[x-placement^=left]>.arrow{right:-0.5rem;margin-top:0;margin-bottom:0}@keyframes slide-up-and-fade{from{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-right-and-fade{from{opacity:0;transform:translateX(-2px)}to{opacity:1;transform:translateX(0)}}@keyframes slide-down-and-fade{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-left-and-fade{from{opacity:0;transform:translateX(2px)}to{opacity:1;transform:translateX(0)}}
|
|
1
|
+
:root{--blue: #007bff;--indigo: #6610f2;--purple: #6f42c1;--pink: #e83e8c;--red: #dc3545;--orange: #fd7e14;--yellow: #ffc107;--green: #28a745;--teal: #20c997;--cyan: #17a2b8;--white: #fff;--gray: #6c757d;--gray-dark: #343a40;--primary: #007bff;--secondary: #6c757d;--success: #28a745;--info: #17a2b8;--warning: #ffc107;--danger: #dc3545;--light: #f8f9fa;--dark: #343a40;--breakpoint-xs: 0;--breakpoint-sm: 576px;--breakpoint-md: 768px;--breakpoint-lg: 992px;--breakpoint-xl: 1200px;--font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", "Liberation Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace}:root{--white: #ffffff;--n300: #627291;--color-fg-default: #1c3158;--color-fg-secondary: var(--n300);--color-border-default: #d0d7de;--rounded-sm: 2px;--rounded-default: 4px;--rounded-md: 6px;--rounded-lg: 8px;--rounded-xl: 12px;--rounded-full: 9999px;--fs-sm: 0.8125rem;--fs-default: 0.875rem;--fs-lg: 1rem;--fs-xl: 1.25rem;--fw-default: 400;--fw-medium: 500;--fw-semibold: 600;--fw-bold: 700;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.05);--shadow-default: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);--space-1: 0.25rem;--space-2: 0.5rem;--space-3: 1rem;--space-4: 1.5rem;--awc-autocomplete-control-min-height: calc(1.5em + 0.75rem + 2px);--awc-autocomplete-control-min-height-sm: calc(1.5em + 0.5rem + 2px);--awc-autocomplete-control-min-height-lg: calc(1.5em + 1rem + 2px);--awc-autocomplete-control-focus-color: #495057;--awc-autocomplete-control-focus-border-color: rgb(50%, 74.1176470588%, 100%);--awc-autocomplete-control-disabled-bg-color: #eef4ff;--awc-autocomplete-control-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);--awc-autocomplete-control-focus-box-shadow: 0 0 0 0.2rem rgba(0, 123, 255, 0.25);--awc-autocomplete-input-min-width: 2rem;--awc-autocomplete-input-height: calc(calc(1.5em + 0.75rem + 2px) - (0.375rem * 2) - (1px * 2));--awc-autocomplete-input-bg-color: #fff;--awc-autocomplete-adornment-item-size: 1.5rem;--awc-autocomplete-listbox-font-size: 0.875rem;--awc-autocomplete-listbox-max-height: 256px;--awc-autocomplete-option-padding-x: 1rem;--awc-autocomplete-option-padding-y: 0.5rem;--awc-autocomplete-option-font-size: 0.875rem;--awc-autocomplete-option-lh: 1.25rem;--awc-autocomplete-option-hover-bg-color: #e9ecef;--awc-autocomplete-option-check-color: #38b57c;--awc-autocomplete-option-check-disabled-color: #afe1cb;--awc-autocomplete-group-header-padding-x: var(--awc-autocomplete-option-padding-x);--awc-autocomplete-group-header-padding-y: 0.25rem;--awc-autocomplete-group-header-color: #384b6e;--awc-autocomplete-group-header-font-size: 0.75rem;--awc-autocomplete-group-header-lh: 18px;--awc-autocomplete-group-header-fw: 500;--awc-autocomplete-tag-padding-x: 0.5rem;--awc-autocomplete-tag-btn-size: 1.25rem;--awc-autocomplete-tag-btn-bg-hover-color: var(--n300);--awc-autocomplete-tag-gap: 0.25rem;--awc-autocomplete-tag-max-width: 24rem;--awc-autocomplete-tag-bg-color: #e0e7f7;--awc-autocomplete-tag-border-color: #c4cdde;--awc-autocomplete-tag-border-radius: 0.125rem;--awc-autocomplete-tag-font-size: 0.75rem;--awc-autocomplete-blankslate-color: #384b6e;--awc-autocomplete-blankslate-padding-x: 1rem;--awc-autocomplete-blankslate-padding-y: 0.5rem;--awc-autocomplete-error-color: #c01303;--awc-autocomplete-input-height-sm: calc( calc(1.5em + 0.5rem + 2px) - (0.25rem * 2) - (1px * 2) );--awc-autocomplete-input-height-lg: calc( calc(1.5em + 1rem + 2px) - (0.5rem * 2) - (1px * 2) );--awc-autocomplete-tag-font-size-lg: 0.875rem;--awc-autocomplete-tag-gap-lg: 0.375rem}[hidden][hidden]{display:none !important}.awc-autocomplete{position:relative;display:block}.awc-autocomplete-control{display:flex;align-items:center;position:relative;cursor:text;padding-right:2.5rem;height:100%;min-height:var(--awc-autocomplete-control-min-height)}.awc-autocomplete:focus-within .awc-autocomplete-control{color:var(--awc-autocomplete-control-focus-color);background-color:#fff;border-color:var(--awc-autocomplete-control-focus-border-color);outline:0;box-shadow:var(--awc-autocomplete-control-focus-box-shadow)}.awc-autocomplete[disabled] .awc-autocomplete-control{cursor:default;background-color:var(--awc-autocomplete-control-disabled-bg-color)}.awc-autocomplete[disabled] .awc-autocomplete-clear-btn{background-color:var(--awc-autocomplete-control-disabled-bg-color);border-color:var(--awc-autocomplete-control-disabled-bg-color)}.awc-autocomplete-input{display:block;min-width:var(--awc-autocomplete-input-min-width);height:var(--awc-autocomplete-input-height);width:100%;margin:0;padding:0;flex:1 1 0%;font:inherit;letter-spacing:inherit;background:none;color:currentColor;border:0;outline:none;background-clip:padding-box}.awc-autocomplete-input::-moz-placeholder{color:#6c757d}.awc-autocomplete-input::placeholder{color:#6c757d}.awc-autocomplete-end-adornment{flex-shrink:0;position:absolute;right:.75rem;top:0;bottom:0;display:flex;align-items:center;margin-right:calc(0.75rem/2*-1)}.awc-autocomplete-adornment-btn,.awc-autocomplete-adornment-decorator{width:var(--awc-autocomplete-adornment-item-size);height:var(--awc-autocomplete-adornment-item-size);padding:0;display:flex;align-items:center;justify-content:center;border-radius:var(--rounded-sm);font-size:var(--fs-sm)}.awc-autocomplete-adornment-btn i,.awc-autocomplete-adornment-decorator i{display:inline-flex;align-items:center;justify-content:center;font-style:normal}.awc-autocomplete-adornment-btn i::before,.awc-autocomplete-adornment-decorator i::before{line-height:inherit}.awc-autocomplete-clear-btn{display:none;background-color:var(--awc-autocomplete-input-bg-color);border-color:var(--awc-autocomplete-input-bg-color)}.awc-autocomplete-adornment-decorator{pointer-events:none}.awc-autocomplete-listbox{font-size:var(--awc-autocomplete-listbox-font-size);max-height:min(var(--awc-autocomplete-listbox-max-height),var(--awc-auto-size-height, var(--awc-autocomplete-listbox-max-height)));overflow:hidden auto;box-shadow:var(--shadow-md)}.awc-autocomplete-options{margin:0;padding:0}.awc-autocomplete-options .awc-autocomplete-group:not([hidden])~:not([hidden]){border-top:1px solid var(--color-border-default);margin-top:var(--space-1)}.awc-autocomplete-group-header{padding:var(--awc-autocomplete-group-header-padding-y) var(--awc-autocomplete-group-header-padding-x);line-height:var(--awc-autocomplete-group-header-lh);font-size:var(--awc-autocomplete-group-header-font-size);font-weight:var(--awc-autocomplete-group-header-fw);color:var(--awc-autocomplete-group-header-color);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.awc-autocomplete-option-check{color:var(--awc-autocomplete-option-check-color);flex-shrink:0;visibility:hidden;display:inline-flex;align-items:center;justify-content:center;font-size:var(--fs-xl)}.awc-autocomplete-option{position:relative;display:flex;align-items:flex-start;justify-content:space-between;-moz-column-gap:.25rem;column-gap:.25rem;padding:var(--awc-autocomplete-option-padding-y) var(--awc-autocomplete-option-padding-x);line-height:var(--awc-autocomplete-option-lh);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;text-decoration:none;font-size:var(--awc-autocomplete-option-font-size);white-space:initial}.awc-autocomplete-option[data-active],.awc-autocomplete-option:active,.awc-autocomplete-option .active{color:hsl(210,10.8108108108%,9.5098039216%);background-color:var(--awc-autocomplete-option-hover-bg-color)}.awc-autocomplete-option.disabled{pointer-events:auto;cursor:not-allowed}.awc-autocomplete-option[data-active].disabled{color:#adb5bd}.awc-autocomplete-option.disabled .awc-autocomplete-option-check{color:var(--awc-autocomplete-option-check-disabled-color)}.awc-autocomplete-option:not(.disabled) .awc-autocomplete-option-description{color:var(--color-fg-secondary)}.awc-autocomplete-option[aria-selected=true] .awc-autocomplete-option-check{visibility:visible}.awc-autocomplete-option-content{flex:1 1 0%;display:flex;flex-direction:column;row-gap:2px;word-break:break-word}.awc-autocomplete-option-text{display:block}.awc-autocomplete-option-description{font-size:var(--fs-sm)}.awc-autocomplete-tag{display:flex;align-items:center;-moz-column-gap:.25rem;column-gap:.25rem;padding-inline:var(--awc-autocomplete-tag-padding-x);min-width:0;max-width:var(--awc-autocomplete-tag-max-width);height:var(--awc-autocomplete-input-height);vertical-align:middle;background-color:var(--awc-autocomplete-tag-bg-color);border-radius:var(--awc-autocomplete-tag-border-radius);border:1px solid var(--awc-autocomplete-tag-border-color);-webkit-user-select:none;-moz-user-select:none;user-select:none}.awc-autocomplete-tag-text{display:block;line-height:var(--awc-autocomplete-tag-btn-size);font-size:var(--awc-autocomplete-tag-font-size);text-decoration:none;flex:1 1 0%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.awc-autocomplete-tag-end-adornment{flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;margin-right:calc(var(--awc-autocomplete-tag-padding-x)/2*-1)}.awc-autocomplete-tag-dismiss-btn{padding:0;display:inline-flex;align-items:center;justify-content:center;height:var(--awc-autocomplete-tag-btn-size);width:var(--awc-autocomplete-tag-btn-size);border-radius:var(--rounded-sm);font-size:var(--fs-lg)}.awc-autocomplete-tag-dismiss-btn:hover{background-color:var(--awc-autocomplete-tag-btn-bg-hover-color);color:#fff}.awc-autocomplete-tag-dismiss-btn[disabled]{background-color:rgba(0,0,0,0);color:inherit}.awc-autocomplete-tag-dismiss-btn i{display:inline-flex;align-items:center;justify-content:center;font-style:normal}.awc-autocomplete-tag-dismiss-btn i::before{line-height:inherit}.awc-autocomplete-blankslate{display:none;text-align:center;padding:var(--awc-autocomplete-blankslate-padding-y) var(--awc-autocomplete-blankslate-padding-x);color:var(--awc-autocomplete-blankslate-color)}.awc-autocomplete-error{display:none;text-align:center;padding:var(--awc-autocomplete-blankslate-padding-y) var(--awc-autocomplete-blankslate-padding-x);color:var(--awc-autocomplete-error-color)}.awc-autocomplete-spinner{display:none;align-items:center;justify-content:center;padding:var(--awc-autocomplete-blankslate-padding-y) var(--awc-autocomplete-blankslate-padding-x)}.awc-autocomplete[open] .awc-autocomplete-listbox{display:block}.awc-autocomplete--selected.awc-autocomplete--clearable .awc-autocomplete-adornment-decorator{display:none}.awc-autocomplete--selected .awc-autocomplete-clear-btn{display:inline-flex}.awc-autocomplete[loading] .awc-autocomplete-options,.awc-autocomplete[loading] .awc-autocomplete-blankslate{display:none}.awc-autocomplete[loading] .awc-autocomplete-spinner{display:flex}.awc-autocomplete[no-options] .awc-autocomplete-options{display:none}.awc-autocomplete[no-options]:not([error]):not([loading]) .awc-autocomplete-blankslate{display:block}.awc-autocomplete[error] .awc-autocomplete-error{display:block}.awc-autocomplete[multiple] .awc-autocomplete-control{flex-wrap:wrap;gap:var(--awc-autocomplete-tag-gap)}.awc-autocomplete--sm{--awc-autocomplete-input-height: var(--awc-autocomplete-input-height-sm);--awc-autocomplete-tag-btn-size: 1rem}.awc-autocomplete--sm .awc-autocomplete-control{min-height:var(--awc-autocomplete-control-min-height-sm);padding-right:2.25rem}.awc-autocomplete--sm .awc-autocomplete-end-adornment{right:.5rem;margin-right:calc(0.5rem/2*-1)}.awc-autocomplete--lg{--awc-autocomplete-input-height: var(--awc-autocomplete-input-height-lg);--awc-autocomplete-tag-font-size: var(--awc-autocomplete-tag-font-size-lg);--awc-autocomplete-tag-gap: var(--awc-autocomplete-tag-gap-lg)}.awc-autocomplete--lg .awc-autocomplete-control{min-height:var(--awc-autocomplete-control-min-height-lg);padding-right:2.75rem}.awc-autocomplete--lg .awc-autocomplete-end-adornment{right:1rem;margin-right:calc(1rem/2*-1)}.awc-dialog-dialog{--margin-y: 0.5rem;--margin-y-sm-up: 1.75rem;border:0;border-radius:var(--rounded-xl);max-width:92vw;width:100%;color:inherit;background-color:var(--white);box-shadow:var(--shadow-lg);padding:0;margin:var(--margin-y) auto;max-height:calc(100vh - var(--margin-y)*2);overflow:hidden;animation:dialog-show 150ms cubic-bezier(0.16, 1, 0.3, 1)}.awc-dialog-dialog[open]{display:flex;flex-direction:column}.awc-dialog-dialog:focus-visible{outline:none}.awc-dialog-dialog::backdrop{background-color:rgba(0,23,66,.5);animation:dialog-overlay 150ms cubic-bezier(0.16, 1, 0.3, 1)}@media(min-width: 576px){.awc-dialog-dialog{max-width:498px;max-height:calc(100vh - var(--margin-y-sm-up)*2);margin-top:var(--margin-y-sm-up);margin-bottom:var(--margin-y-sm-up)}}.awc-dialog-dialog--centered{margin-top:auto;margin-bottom:auto}.awc-dialog--scrollable{flex-grow:1;display:flex;flex-direction:column;overflow-y:hidden}.awc-dialog-header{flex-shrink:0;display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-2) var(--space-1) var(--space-2) var(--space-3);border-bottom:1px solid var(--color-border-default)}.awc-dialog-title-container{flex:1 1 0%;padding:var(--space-2) 0}.awc-dialog-title{margin:0 !important;font-size:var(--fs-lg);font-weight:var(--fw-medium);line-height:20px}.awc-dialog-close-btn{position:relative;flex-shrink:0;padding:0;width:32px;height:32px;font-size:1.25rem;line-height:20px;display:inline-flex;align-items:center;justify-content:center}.awc-dialog-close-btn:not(:hover){background-color:var(--white);border-color:var(--white)}.awc-dialog-close-btn:focus{box-shadow:none}.awc-dialog-close-btn:focus-visible{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.awc-dialog-close-btn i{display:inline-flex;align-items:center;justify-content:center;font-style:normal}.awc-dialog-close-btn i::before{line-height:inherit}.awc-dialog-body{flex-grow:1;overflow-y:auto;padding:var(--space-3);font-size:var(--fs-default)}.awc-dialog-footer{flex-shrink:0;display:flex;align-items:center;justify-content:flex-end;padding:var(--space-3);flex-wrap:wrap;gap:var(--space-2);border-top:1px solid var(--color-border-default)}.awc-dialog--sm .awc-dialog-dialog{max-width:298px}.awc-dialog--lg .awc-dialog-dialog{max-width:798px}.awc-dialog--fullscreen .awc-dialog-dialog{max-width:100vw;box-shadow:none;border-radius:0;max-height:100vh;height:100%}@supports(max-height: 100dvh){.awc-dialog--fullscreen .awc-dialog-dialog{max-height:100dvh}}@supports(max-width: 100dvw){.awc-dialog--fullscreen .awc-dialog-dialog{max-width:100dvw}}@media(max-width: 576px){.awc-dialog--fullscreen-sm-down .awc-dialog-dialog{max-width:100vw;box-shadow:none;border-radius:0;max-height:100vh;height:100%}@supports(max-height: 100dvh){.awc-dialog--fullscreen-sm-down .awc-dialog-dialog{max-height:100dvh}}@supports(max-width: 100dvw){.awc-dialog--fullscreen-sm-down .awc-dialog-dialog{max-width:100dvw}}}@media(max-width: 768px){.awc-dialog--fullscreen-md-down .awc-dialog-dialog{max-width:100vw;box-shadow:none;border-radius:0;max-height:100vh;height:100%}@supports(max-height: 100dvh){.awc-dialog--fullscreen-md-down .awc-dialog-dialog{max-height:100dvh}}@supports(max-width: 100dvw){.awc-dialog--fullscreen-md-down .awc-dialog-dialog{max-width:100dvw}}}@media(max-width: 992px){.awc-dialog--fullscreen-lg-down .awc-dialog-dialog{max-width:100vw;box-shadow:none;border-radius:0;max-height:100vh;height:100%}@supports(max-height: 100dvh){.awc-dialog--fullscreen-lg-down .awc-dialog-dialog{max-height:100dvh}}@supports(max-width: 100dvw){.awc-dialog--fullscreen-lg-down .awc-dialog-dialog{max-width:100dvw}}}@media(max-width: 1200px){.awc-dialog--fullscreen-xl-down .awc-dialog-dialog{max-width:100vw;box-shadow:none;border-radius:0;max-height:100vh;height:100%}@supports(max-height: 100dvh){.awc-dialog--fullscreen-xl-down .awc-dialog-dialog{max-height:100dvh}}@supports(max-width: 100dvw){.awc-dialog--fullscreen-xl-down .awc-dialog-dialog{max-width:100dvw}}}@keyframes dialog-show{from{opacity:0;transform:scale(0.96)}to{opacity:1;transform:scale(1)}}@keyframes dialog-overlay{from{opacity:0}to{opacity:1}}.awc-popover{display:block}.awc-popover-container{outline:none;background-clip:padding-box;background-color:var(--white);border-radius:var(--rounded-default);box-shadow:var(--shadow-md);max-width:276px;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;white-space:normal;word-spacing:normal;line-break:auto;font-size:var(--fs-default);overflow:visible;border:1px solid var(--color-border-default);animation-duration:400ms;animation-timing-function:cubic-bezier(0.16, 1, 0.3, 1);word-wrap:break-word}.awc-popover-container::backdrop{display:none}.awc-popover-container .arrow{position:absolute;display:block;width:1rem;height:.5rem;margin:0 .3rem}.awc-popover-container .arrow::before,.awc-popover-container .arrow::after{position:absolute;display:block;content:"";border-color:rgba(0,0,0,0);border-style:solid}@supports not selector(:popover-open){awc-popover:not([open])>.awc-popover-container{display:none}.awc-popover-container{z-index:1060}}.bs-popover-auto[x-placement^=top]{margin-bottom:0;animation-name:slide-down-and-fade}.bs-popover-auto[x-placement^=top]>.arrow{bottom:-0.5rem;margin-left:0;margin-right:0}.bs-popover-auto[x-placement^=right]{margin-left:0;animation-name:slide-left-and-fade}.bs-popover-auto[x-placement^=right]>.arrow{left:-0.5rem;margin-top:0;margin-bottom:0}.bs-popover-auto[x-placement^=bottom]{margin-top:0;animation-name:slide-up-and-fade}.bs-popover-auto[x-placement^=bottom]>.arrow{top:-0.5rem;margin-left:0;margin-right:0}.bs-popover-auto[x-placement^=left]{margin-right:0;animation-name:slide-right-and-fade}.bs-popover-auto[x-placement^=left]>.arrow{right:-0.5rem;margin-top:0;margin-bottom:0}@keyframes slide-up-and-fade{from{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-right-and-fade{from{opacity:0;transform:translateX(-2px)}to{opacity:1;transform:translateX(0)}}@keyframes slide-down-and-fade{from{opacity:0;transform:translateY(-2px)}to{opacity:1;transform:translateY(0)}}@keyframes slide-left-and-fade{from{opacity:0;transform:translateX(2px)}to{opacity:1;transform:translateX(0)}}
|
|
2
2
|
|
|
3
3
|
/*# sourceMappingURL=impulse_view_components.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../node_modules/bootstrap/scss/_root.scss","../../../src/styles/variables.scss","../../../src/styles/base.scss","../../../src/elements/autocomplete/index.scss","../../../node_modules/bootstrap/scss/_variables.scss","../../../node_modules/bootstrap/scss/mixins/_text-truncate.scss","../../../node_modules/bootstrap/scss/mixins/_gradients.scss","../../../src/elements/dialog/index.scss","../../../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../../../src/elements/popover/index.scss","../../../node_modules/bootstrap/scss/mixins/_reset-text.scss","../../../node_modules/bootstrap/scss/vendor/_rfs.scss"],"names":[],"mappings":"AAAA,MAGI,eAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,eAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,gBAAA,CAAA,eAAA,CAAA,eAAA,CAAA,aAAA,CAAA,eAAA,CAAA,oBAAA,CAIA,kBAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,eAAA,CAAA,kBAAA,CAAA,iBAAA,CAAA,gBAAA,CAAA,eAAA,CAIA,kBAAA,CAAA,sBAAA,CAAA,sBAAA,CAAA,sBAAA,CAAA,uBAAA,CAKF,kOAAA,CACA,6GAAA,CCjBF,MAEE,gBAAA,CAEA,eAAA,CAEA,2BAAA,CACA,iCAAA,CACA,+BAAA,CAGA,iBAAA,CACA,sBAAA,CACA,iBAAA,CACA,iBAAA,CACA,sBAAA,CAGA,kBAAA,CACA,sBAAA,CACA,aAAA,CACA,gBAAA,CAGA,iBAAA,CACA,gBAAA,CACA,kBAAA,CACA,cAAA,CAGA,0CAAA,CACA,+EAAA,CACA,6EAAA,CACA,+EAAA,CAGA,kBAAA,CACA,iBAAA,CACA,eAAA,CACA,iBAAA,CAGA,kEAAA,CACA,oEAAA,CACA,kEAAA,CACA,+CAAA,CACA,
|
|
1
|
+
{"version":3,"sources":["../../../node_modules/bootstrap/scss/_root.scss","../../../src/styles/variables.scss","../../../src/styles/base.scss","../../../src/elements/autocomplete/index.scss","../../../node_modules/bootstrap/scss/_variables.scss","../../../node_modules/bootstrap/scss/mixins/_text-truncate.scss","../../../node_modules/bootstrap/scss/mixins/_gradients.scss","../../../src/elements/dialog/index.scss","../../../node_modules/bootstrap/scss/mixins/_breakpoints.scss","../../../src/elements/popover/index.scss","../../../node_modules/bootstrap/scss/mixins/_reset-text.scss","../../../node_modules/bootstrap/scss/vendor/_rfs.scss"],"names":[],"mappings":"AAAA,MAGI,eAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,eAAA,CAAA,cAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,gBAAA,CAAA,eAAA,CAAA,eAAA,CAAA,aAAA,CAAA,eAAA,CAAA,oBAAA,CAIA,kBAAA,CAAA,oBAAA,CAAA,kBAAA,CAAA,eAAA,CAAA,kBAAA,CAAA,iBAAA,CAAA,gBAAA,CAAA,eAAA,CAIA,kBAAA,CAAA,sBAAA,CAAA,sBAAA,CAAA,sBAAA,CAAA,uBAAA,CAKF,kOAAA,CACA,6GAAA,CCjBF,MAEE,gBAAA,CAEA,eAAA,CAEA,2BAAA,CACA,iCAAA,CACA,+BAAA,CAGA,iBAAA,CACA,sBAAA,CACA,iBAAA,CACA,iBAAA,CACA,kBAAA,CACA,sBAAA,CAGA,kBAAA,CACA,sBAAA,CACA,aAAA,CACA,gBAAA,CAGA,iBAAA,CACA,gBAAA,CACA,kBAAA,CACA,cAAA,CAGA,0CAAA,CACA,+EAAA,CACA,6EAAA,CACA,+EAAA,CAGA,kBAAA,CACA,iBAAA,CACA,eAAA,CACA,iBAAA,CAGA,kEAAA,CACA,oEAAA,CACA,kEAAA,CACA,+CAAA,CACA,6EAAA,CACA,qDAAA,CACA,2EAAA,CACA,iFAAA,CACA,wCAAA,CACA,+FAAA,CACA,uCAAA,CACA,8CAAA,CACA,8CAAA,CACA,4CAAA,CACA,yCAAA,CACA,2CAAA,CACA,6CAAA,CACA,qCAAA,CACA,iDAAA,CACA,8CAAA,CACA,uDAAA,CACA,mFAAA,CACA,kDAAA,CACA,8CAAA,CACA,kDAAA,CACA,wCAAA,CACA,uCAAA,CACA,wCAAA,CACA,wCAAA,CACA,sDAAA,CACA,mCAAA,CACA,uCAAA,CACA,wCAAA,CACA,4CAAA,CACA,8CAAA,CACA,yCAAA,CACA,4CAAA,CACA,6CAAA,CACA,+CAAA,CACA,uCAAA,CAEA,kGAAA,CAIA,+FAAA,CAGA,6CAAA,CACA,uCAAA,CC5FF,iBACE,uBAAA,CCDF,kBACE,iBAAA,CACA,aAAA,CAGF,0BACE,YAAA,CACA,kBAAA,CACA,iBAAA,CACA,WAAA,CACA,oBAAA,CACA,WAAA,CACA,qDAAA,CAKF,yDACE,iDAAA,CACA,qBCZS,CDaT,+DAAA,CACA,SAAA,CAKE,2DAAA,CAKF,sDACE,cAAA,CACA,kEAAA,CAGF,wDACE,kEAAA,CACA,8DAAA,CAIJ,wBACE,aAAA,CACA,iDAAA,CACA,2CAAA,CACA,UAAA,CACA,QAAA,CACA,SAAA,CACA,WAAA,CACA,YAAA,CACA,sBAAA,CACA,eAAA,CACA,kBAAA,CACA,QAAA,CACA,YAAA,CACA,2BAAA,CAEA,0CACE,aC9CO,CD6CT,qCACE,aC9CO,CDkDX,gCACE,aAAA,CACA,iBAAA,CACA,YCkU4B,CDjU5B,KAAA,CACA,QAAA,CACA,YAAA,CACA,kBAAA,CACA,+BAAA,CAGF,sEAEE,iDAAA,CACA,kDAAA,CACA,SAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,+BAAA,CACA,sBAAA,CAEA,0EACE,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,iBAAA,CAEA,0FACE,mBAAA,CAMN,4BACE,YAAA,CACA,uDAAA,CACA,mDAAA,CAGF,sCACE,mBAAA,CAGF,0BACE,mDAAA,CACA,kIAAA,CAIA,oBAAA,CACA,2BAAA,CAGF,0BACE,QAAA,CACA,SAAA,CAEA,+EACE,gDAAA,CACA,yBAAA,CAKJ,+BACE,qGAAA,CACA,mDAAA,CACA,wDAAA,CACA,mDAAA,CACA,gDAAA,CElIA,eAAA,CACA,sBAAA,CACA,kBAAA,CFoIF,+BACE,gDAAA,CACA,aAAA,CACA,iBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,sBAAA,CAGF,yBACE,iBAAA,CACA,YAAA,CACA,sBAAA,CACA,6BAAA,CACA,sBAAA,CAAA,iBAAA,CACA,yFAAA,CACA,6CAAA,CACA,cAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,gBAAA,CACA,oBAAA,CACA,kDAAA,CACA,mBAAA,CAIA,uGAGE,2CCimBgC,CElwBhC,8DHkKqB,CAKvB,kCACE,mBAAA,CACA,kBAAA,CAKF,+CACE,aCzKO,CD4KT,iEACE,yDAAA,CAGF,6EACE,+BAAA,CAIJ,4EACE,kBAAA,CAGF,iCACE,WAAA,CACA,YAAA,CACA,qBAAA,CACA,WAAA,CACA,qBAAA,CAGF,8BACE,aAAA,CAGF,qCACE,sBAAA,CAIF,sBACE,YAAA,CACA,kBAAA,CACA,sBAAA,CAAA,iBAAA,CACA,oDAAA,CACA,WAAA,CACA,+CAAA,CACA,2CAAA,CACA,qBAAA,CACA,qDAAA,CACA,uDAAA,CACA,yDAAA,CACA,wBAAA,CAAA,qBAAA,CAAA,gBAAA,CAGF,2BACE,aAAA,CACA,gDAAA,CACA,+CAAA,CACA,oBAAA,CACA,WAAA,CEtOA,eAAA,CACA,sBAAA,CACA,kBAAA,CFwOF,oCACE,aAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,6DAAA,CAGF,kCACE,SAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,2CAAA,CACA,0CAAA,CACA,+BAAA,CACA,sBAAA,CAEA,wCACE,+DAAA,CACA,UC3PO,CD8PT,4CACE,8BAAA,CACA,aAAA,CAGF,oCACE,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,iBAAA,CAEA,4CACE,mBAAA,CAMN,6BACE,YAAA,CACA,iBAAA,CACA,iGAAA,CACA,8CAAA,CAIF,wBACE,YAAA,CACA,iBAAA,CACA,iGAAA,CACA,yCAAA,CAIF,0BACE,YAAA,CACA,kBAAA,CACA,sBAAA,CACA,iGAAA,CAMF,kDACE,aAAA,CAKA,8FACE,YAAA,CAIF,wDACE,mBAAA,CAMF,6GAEE,YAAA,CAGF,qDACE,YAAA,CAMF,wDACE,YAAA,CAGF,uFACE,aAAA,CAKJ,iDACE,aAAA,CAIF,sDACE,cAAA,CACA,mCAAA,CAOF,sBACE,wEAAA,CACA,qCAAA,CAEA,gDACE,wDAAA,CACA,qBAAA,CAGF,sDACE,WC6B0B,CD5B1B,8BAAA,CAMJ,sBACE,wEAAA,CACA,0EAAA,CACA,8DAAA,CAEA,gDACE,wDAAA,CACA,qBAAA,CAGF,sDACE,UCgB0B,CDf1B,4BAAA,CIpYJ,mBACE,kBAAA,CACA,yBAAA,CAEA,QAAA,CACA,+BAAA,CACA,cAAA,CACA,UAAA,CACA,aAAA,CACA,6BAAA,CACA,2BAAA,CACA,SAAA,CACA,2BAAA,CACA,0CAAA,CACA,eAAA,CACA,yDAAA,CAEA,yBACE,YAAA,CACA,qBAAA,CAGF,iCACE,YAAA,CAGF,6BACE,iCAAA,CACA,4DAAA,CCgCA,yBD5DJ,mBAgCI,eAAA,CACA,gDAAA,CACA,gCAAA,CACA,mCAAA,CAAA,CAIJ,6BACE,eAAA,CACA,kBAAA,CAGF,wBACE,WAAA,CACA,YAAA,CACA,qBAAA,CACA,iBAAA,CAGF,mBACE,aAAA,CACA,YAAA,CACA,sBAAA,CACA,kBAAA,CACA,mEAAA,CACA,mDAAA,CAGF,4BACE,WAAA,CACA,wBAAA,CAGF,kBACE,mBAAA,CACA,sBAAA,CACA,4BAAA,CACA,gBAAA,CAIF,sBACE,iBAAA,CACA,aAAA,CACA,SAAA,CACA,UAAA,CACA,WAAA,CACA,iBAAA,CACA,gBAAA,CACA,mBAAA,CACA,kBAAA,CACA,sBAAA,CAEA,kCACE,6BAAA,CACA,yBAAA,CAGF,4BACE,eAAA,CAGF,oCACE,0CAAA,CAGF,wBACE,mBAAA,CACA,kBAAA,CACA,sBAAA,CACA,iBAAA,CAEA,gCACE,mBAAA,CAKN,iBAEE,WAAA,CACA,eAAA,CACA,sBAAA,CACA,2BAAA,CAGF,mBACE,aAAA,CACA,YAAA,CACA,kBAAA,CACA,wBAAA,CACA,sBAAA,CACA,cAAA,CACA,kBAAA,CACA,gDAAA,CAGF,mCACE,eAAA,CAGF,mCACE,eAAA,CAmBF,2CAfE,eAAA,CACA,eAAA,CACA,eAAA,CACA,gBAAA,CACA,WAAA,CAEA,8BASF,2CARI,iBAAA,CAAA,CAGF,6BAKF,2CAJI,gBAAA,CAAA,CAcA,yBACE,mDA1BJ,eAAA,CACA,eAAA,CACA,eAAA,CACA,gBAAA,CACA,WAAA,CAEA,8BAoBI,mDAnBF,iBAAA,CAAA,CAGF,6BAgBI,mDAfF,gBAAA,CAAA,CAAA,CAcA,yBACE,mDA1BJ,eAAA,CACA,eAAA,CACA,eAAA,CACA,gBAAA,CACA,WAAA,CAEA,8BAoBI,mDAnBF,iBAAA,CAAA,CAGF,6BAgBI,mDAfF,gBAAA,CAAA,CAAA,CAcA,yBACE,mDA1BJ,eAAA,CACA,eAAA,CACA,eAAA,CACA,gBAAA,CACA,WAAA,CAEA,8BAoBI,mDAnBF,iBAAA,CAAA,CAGF,6BAgBI,mDAfF,gBAAA,CAAA,CAAA,CAcA,0BACE,mDA1BJ,eAAA,CACA,eAAA,CACA,eAAA,CACA,gBAAA,CACA,WAAA,CAEA,8BAoBI,mDAnBF,iBAAA,CAAA,CAGF,6BAgBI,mDAfF,gBAAA,CAAA,CAAA,CAsBJ,uBACE,KACE,SAAA,CACA,qBAAA,CAEF,GACE,SAAA,CACA,kBAAA,CAAA,CAIJ,0BACE,KACE,SAAA,CAEF,GACE,SAAA,CAAA,CE3LJ,aACE,aAAA,CAGF,uBACE,YAAA,CACA,2BAAA,CACA,6BAAA,CACA,oCAAA,CACA,2BAAA,CACA,eL22BkC,CK12BlC,QAAA,CACA,SAAA,CCXA,wMNoR4B,CMlR5B,iBAAA,CACA,eN4R4B,CM3R5B,eNgS4B,CM/R5B,eAAA,CACA,gBAAA,CACA,oBAAA,CACA,gBAAA,CACA,mBAAA,CACA,qBAAA,CACA,iBAAA,CACA,kBAAA,CACA,mBAAA,CACA,eAAA,CCqJE,2BAAA,CFpJF,gBAAA,CACA,4CAAA,CACA,wBAAA,CACA,uDAAA,CACA,oBAAA,CAEA,iCACE,YAAA,CAGF,8BACE,iBAAA,CACA,aAAA,CACA,ULw2BgC,CKv2BhC,YLw2BgC,CKv2BhC,cAAA,CAEA,2EAEE,iBAAA,CACA,aAAA,CACA,UAAA,CACA,0BAAA,CACA,kBAAA,CAKN,sCACE,+CACE,YAAA,CAGF,uBACE,YLgoBgC,CAAA,CK1nBlC,mCACE,eAAA,CACA,kCAAA,CAEA,0CACE,cAAA,CACA,aAAA,CACA,cAAA,CAIJ,qCACE,aAAA,CACA,kCAAA,CAEA,4CACE,YAAA,CACA,YAAA,CACA,eAAA,CAIJ,sCACE,YAAA,CACA,gCAAA,CAEA,6CACE,WAAA,CACA,aAAA,CACA,cAAA,CAIJ,oCACE,cAAA,CACA,mCAAA,CAEA,2CACE,aAAA,CACA,YAAA,CACA,eAAA,CAKN,6BACE,KACE,SAAA,CACA,yBAAA,CAEF,GACE,SAAA,CACA,uBAAA,CAAA,CAIJ,gCACE,KACE,SAAA,CACA,0BAAA,CAEF,GACE,SAAA,CACA,uBAAA,CAAA,CAIJ,+BACE,KACE,SAAA,CACA,0BAAA,CAEF,GACE,SAAA,CACA,uBAAA,CAAA,CAIJ,+BACE,KACE,SAAA,CACA,yBAAA,CAEF,GACE,SAAA,CACA,uBAAA,CAAA","file":"impulse_view_components.css"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("@floating-ui/dom")):"function"==typeof define&&define.amd?define(["@floating-ui/dom"],e):e(("undefined"!=typeof globalThis?globalThis:t||self).FloatingUIDOM)}(this,function(y){"use strict";function t(t,e,i,s){var o,n=arguments.length,r=n<3?e:null===s?s=Object.getOwnPropertyDescriptor(e,i):s;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,i,s);else for(var a=t.length-1;0<=a;a--)(o=t[a])&&(r=(n<3?o(r):3<n?o(e,i,r):o(e,i))||r);return 3<n&&r&&Object.defineProperty(e,i,r),r}const e=Symbol.for("impulse");class r{constructor(t,e){this.ctor=t,this.name=e,this.map=new Map,this.ctor=t,this.name=e,this.initialize()}add(t){var e;null!=(e=this.value)&&e.add(t)}get value(){return this.map.get(this.name)}initialize(){Object.prototype.hasOwnProperty.call(this.ctor,e)||(this.ctor[e]=new Map),this.map=this.ctor[e],this.map.has(this.name)||this.map.set(this.name,new Set)}}function i({type:i=String}={}){return(t,e)=>{new r(t,"property").add({key:e,type:i})}}function s(e){return t=>{try{window.customElements.define(e,t),window[t.name]=customElements.get(e)}catch(t){if(!(t instanceof DOMException&&"NotSupportedError"===t.name))throw t}}}function o(){return(t,e)=>{new r(t,"target").add({key:e,multiple:!1})}}function n(){return(t,e)=>{new r(t,"target").add({key:e,multiple:!0})}}function a(t,e){var i={};for(o in t)Object.prototype.hasOwnProperty.call(t,o)&&e.indexOf(o)<0&&(i[o]=t[o]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols)for(var s=0,o=Object.getOwnPropertySymbols(t);s<o.length;s++)e.indexOf(o[s])<0&&Object.prototype.propertyIsEnumerable.call(t,o[s])&&(i[o[s]]=t[o[s]]);return i}const l=/(?:(.+?)?(?:\.(.+?))?(?:@(window|document))?->)?(.+)#(.+)?$/,h=["stop","prevent","self"],B=["capture","once","passive"];function K(t){var[,t,e,i,s,o]=t.trim().match(l)||[],e=(null==e?void 0:e.split("."))||[];return{eventName:t,eventModifiers:e.filter(t=>h.includes(t)),eventListenerOptions:function(t){var e={};for(const i of t)B.includes(i)&&(e[i]=!0);return e}(e),eventTarget:"window"===(t=i)?window:"document"===t?document:void 0,methodName:o,identifier:s}}const I={prevent:t=>Boolean(t.preventDefault()),stop:t=>Boolean(t.stopPropagation()),self:t=>t.target!==t.currentTarget};class c{constructor(){this.map=new Map}add(t,e){d(this.map,t).add(e)}delete(t,e){d(this.map,t).delete(e),0===(null==(e=this.get(t))?void 0:e.size)&&this.deleteKey(t)}deleteKey(t){this.map.delete(t)}clear(){this.map.clear()}getValuesForKey(t){t=this.map.get(t);return t?Array.from(t):[]}get keys(){return Array.from(this.map.keys())}get values(){return Array.from(this.map.values()).reduce((t,e)=>t.concat(Array.from(e)),[])}get(t){return this.map.get(t)}has(t,e){return!(null==(t=this.get(t))||!t.has(e))}}function d(t,e){let i=t.get(e);return i||(i=new Set,t.set(e,i)),i}class z{constructor(t,e){this.instance=t,this.eventTarget=e.eventTarget,this.eventName=e.eventName,this.eventModifiers=e.eventModifiers,this.eventListenerOptions=e.eventListenerOptions,this.methodName=e.methodName}start(){this.eventTarget.addEventListener(this.eventName,this,this.eventListenerOptions)}stop(){this.eventTarget.removeEventListener(this.eventName,this,this.eventListenerOptions)}handleEvent(t){var e=this.instance[this.methodName];if("function"==typeof e){for(const s of this.eventModifiers){var i=I[s];if(null!=i&&i(t))return}e.call(this.instance,t)}}}class F{constructor(t,e,i){this.element=t,this.delegate=e,this.observerOptions=i,this.elements=new Set,this.started=!1,this.element=t,this.delegate=e,this.observer=new MutationObserver(t=>this.processMutations(t)),this.observerOptions=i}start(){this.started||(this.started=!0,this.observer.observe(this.element,Object.assign({childList:!0,subtree:!0},this.observerOptions)),this.initializeElements())}stop(){this.started&&(this.processMutations(this.observer.takeRecords()),this.observer.disconnect(),this.started=!1)}initializeElements(){for(const t of this.getMatchingElements())this.addElement(t)}processMutations(t){if(this.started)for(const e of t)"attributes"===e.type&&e.target instanceof Element?this.processAttributeChange(e.target,e.attributeName):"childList"===e.type&&(this.processRemovedNodes(e.removedNodes),this.processAddedNodes(e.addedNodes))}processAttributeChange(t,e){this.elements.has(t)?this.delegate.elementAttributeChanged&&this.matchesElement(t)?this.delegate.elementAttributeChanged(t,e||""):this.removeElement(t):this.matchesElement(t)&&this.addElement(t)}processRemovedNodes(t){for(const i of Array.from(t)){var e=this.elementFromNode(i);if(e)for(const s of this.getMatchingElements(e))this.removeElement(s)}}processAddedNodes(t){for(const i of Array.from(t)){var e=this.elementFromNode(i);if(e)for(const s of this.getMatchingElements(e))this.addElement(s)}}getMatchingElements(t=this.element){var e,i;return(null==(i=(e=this.delegate).getMatchingElements)?void 0:i.call(e,t))||[]}matchesElement(t){var e,i;return null==(i=null==(i=(e=this.delegate).matchesElement)?void 0:i.call(e,t))||i}addElement(t){var e,i;!this.elements.has(t)&&this.elementIsActive(t)&&(this.elements.add(t),null!=(i=(e=this.delegate).elementConnected))&&i.call(e,t)}removeElement(t){var e,i;this.elements.has(t)&&(this.elements.delete(t),null!=(i=(e=this.delegate).elementDisconnected))&&i.call(e,t)}elementFromNode(t){if(t.nodeType===Node.ELEMENT_NODE)return t}elementIsActive(t){return t.isConnected===this.element.isConnected&&this.element.contains(t)}}class R{constructor(t,e,i){this.instance=t,this.attributeName=e,this.delegate=i,this.instance=t,this.attributeName=e,this.elementObserver=new F(this.instance,this,{attributeFilter:[this.attributeName]}),this.delegate=i}start(){this.elementObserver.start()}stop(){this.elementObserver.stop()}elementConnected(t){var e,i;null!=(i=(e=this.delegate).elementConnected)&&i.call(e,t)}elementDisconnected(t){var e,i;null!=(i=(e=this.delegate).elementDisconnected)&&i.call(e,t)}elementAttributeChanged(t,e){var i,s;e===this.attributeName&&null!=(s=(i=this.delegate).elementAttributeChanged)&&s.call(i,t,e)}getMatchingElements(t){var e=Array.from(t.querySelectorAll(`[${this.attributeName}]`));return t.hasAttribute(this.attributeName)&&e.unshift(t),e}matchesElement(t){return t.hasAttribute(this.attributeName)}}class u{constructor(t,e,i){this.element=t,this.attributeName=e,this.delegate=i,this.element=t,this.attributeName=e,this.delegate=i,this.elementTokens=new c}start(){this.attributeObserver||(this.attributeObserver=new R(this.element,this.attributeName,this),this.attributeObserver.start())}stop(){this.attributeObserver&&(this.attributeObserver.stop(),this.attributeObserver=void 0)}elementConnected(t){this.readTokensForElement(t).forEach(t=>this.tokenMatched(t))}elementDisconnected(t){this.elementTokens.getValuesForKey(t).forEach(t=>this.tokenUnmatched(t))}elementAttributeChanged(t){var e=this.elementTokens.getValuesForKey(t),[t,e]=function(t,e){const i=new Set(t.map(({content:t})=>t)),s=new Set(e.map(({content:t})=>t)),o=t.filter(t=>!s.has(t.content)),n=e.filter(t=>!i.has(t.content));return[o,n]}(this.readTokensForElement(t),e);e.forEach(t=>this.tokenUnmatched(t)),t.forEach(t=>this.tokenMatched(t))}tokenMatched(t){var e,i;this.elementTokens.add(t.element,t),null!=(i=(e=this.delegate).tokenMatched)&&i.call(e,t)}tokenUnmatched(t){var e,i;this.elementTokens.delete(t.element,t),null!=(i=(e=this.delegate).tokenUnmatched)&&i.call(e,t)}readTokensForElement(t){var e,i,s=t.getAttribute(this.attributeName)||"";return e=t,i=this.attributeName,s.trim().split(/\s+/).filter(t=>t.length).map(t=>({element:e,attributeName:i,content:t}))}}class p{constructor(t){this.instance=t,this.scopedTarget=t=>t.closest(this.identifier)===this.instance,this.instance=t}findTarget(t){return this.instance.matches(t)?this.instance:this.getElements(t).find(this.scopedTarget)||null}findTargets(t){return[...this.instance.matches(t)?[this.instance]:[],...this.getElements(t).filter(this.scopedTarget)]}getElements(t){return Array.from(this.instance.querySelectorAll(t))}get identifier(){return this.instance.identifier}}class U{constructor(t){this.instance=t,this.eventListenerMap=new c,this.instance=t,this.scope=new p(this.instance)}start(){this.tokenListObserver||(this.tokenListObserver=new u(this.instance,"data-action",this),this.tokenListObserver.start())}stop(){this.tokenListObserver&&(this.destroyActions(),this.tokenListObserver.stop(),this.tokenListObserver=void 0)}tokenMatched({content:t,element:e}){var t=K(t),{identifier:i,eventTarget:s}=t,t=a(t,["identifier","eventTarget"]);t.eventName&&i===this.identifier&&t.methodName&&this.scope.scopedTarget(e)&&(i=new z(this.instance,Object.assign(Object.assign({},t),{eventTarget:s||e})),this.eventListenerMap.add(e,i),i.start())}tokenUnmatched({element:t}){var e=this.eventListenerMap.get(t);if(e)for(const i of e)i.stop(),this.eventListenerMap.delete(t,i)}destroyActions(){var t;for(const e of this.eventListenerMap.keys)null!=(t=this.tokenListObserver)&&t.elementDisconnected(e)}get identifier(){return this.instance.identifier}}const j=/(-|_|\.|\s)+(.)?/g,_=/(^|\/)([A-Z])/g,H=/[ _]/g,$=/([a-z\d])([A-Z])/g;function m(t){return t.replace($,"$1_$2").toLowerCase().replace(H,"-")}function v(t,e=""){if(!t)return e;try{return JSON.parse(t)}catch(t){return e}}class W{constructor(t){this.instance=t,this.instance=t,this.store=new r(Object.getPrototypeOf(this.instance),"property")}start(){for(var[{key:t,type:e}]of this.properties.entries())this.initializeProperty(t,e)}stop(){}initializeProperty(t,e){var i=m(t),s=this.instance[t],e=Object.assign({configurable:!0},function(e,i,t){switch(t){case Number:return{get:()=>{var t;return Number((null==(t=e.getAttribute(i))?void 0:t.replace(/_/g,""))||0)},set:t=>e.setAttribute(i,(t||0).toString())};case Boolean:return{get:()=>e.hasAttribute(i)&&"false"!==e.getAttribute(i),set:t=>{t?e.setAttribute(i,""):e.removeAttribute(i)}};case Array:return{get:()=>JSON.parse(e.getAttribute(i)||"[]"),set:t=>e.setAttribute(i,JSON.stringify(t)||"[]")};case Object:return{get:()=>JSON.parse(e.getAttribute(i)||"{}"),set:t=>e.setAttribute(i,JSON.stringify(t)||"{}")};default:return{get:()=>e.getAttribute(i)||"",set:t=>e.setAttribute(i,t||"")}}}(this.instance,i,e));Object.defineProperty(this.instance,t,e),this.instance.hasAttribute(i)||null!=(t=e.set)&&t.call(e,s)}get properties(){return this.store.value}}class J{constructor(t){this.instance=t,this.instance=t,this.store=new r(Object.getPrototypeOf(this.instance),"target"),this.scope=new p(this.instance),this.targetsByKey=new c}start(){for(const t of this.keys)this.defineProperty(t,this.isKeyMultiple(t)?[]:null);this.tokenListObserver||(this.tokenListObserver=new u(this.instance,"data-target",this),this.tokenListObserver.start())}stop(){this.tokenListObserver&&(this.destroyTargets(),this.tokenListObserver.stop(),this.tokenListObserver=void 0)}tokenMatched({content:t,element:e}){var[t,i]=t.split(".");if(this.isValidIdKeyPair(t,i)&&!this.targetsByKey.has(i,e)&&this.scope.scopedTarget(e)){this.targetsByKey.add(i,e);var s=this.targetsByKey.getValuesForKey(i);if(1<s.length&&!this.isKeyMultiple(i))throw new Error(`
|
|
2
|
-
Multiple "${
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(require("@floating-ui/dom")):"function"==typeof define&&define.amd?define(["@floating-ui/dom"],e):e(("undefined"!=typeof globalThis?globalThis:t||self).FloatingUIDOM)}(this,function(C){"use strict";function t(t,e,i,n){var s,o=arguments.length,r=o<3?e:null===n?n=Object.getOwnPropertyDescriptor(e,i):n;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(t,e,i,n);else for(var a=t.length-1;0<=a;a--)(s=t[a])&&(r=(o<3?s(r):3<o?s(e,i,r):s(e,i))||r);return 3<o&&r&&Object.defineProperty(e,i,r),r}function K(e,i,n){let s=0,o=null;for(let t=i;t<e.length;t+=1){var r=e[t];if(o)r===o&&(o=null);else if('"'===r||"'"===r)o=r;else{if("("===r||"["===r?s+=1:")"!==r&&"]"!==r||--s,s<0)return null;if(n(r,t,s))return t}}return 0===s&&null===o?-1:null}const F=/^[\t\n\f\r ]+|[\t\n\f\r ]+$/g;function V(n){const s=[];let o=0;return K(n,0,(t,e,i)=>{","===t&&0===i&&(s.push(n.slice(o,e)),o=e+1)}),s.push(n.slice(o)),s.map(t=>t.replace(F,"")).filter(t=>0<t.length)}function D(t,n){t=K(t,n,(t,e,i)=>n<e&&0===i);return null===t||-1===t?null:t}const R=/^[\w\u0080-\uFFFF-]+/,z=/^[a-z][\w\u0080-\uFFFF-]*/i,W=/^[\t\n\f\r ]*([\w\u0080-\uFFFF-]+)[\t\n\f\r ]*(?:[~|^$*]?=|$)/;function _(t){return!t.includes("\\")&&!t.includes("/*")}function j(t){document.createDocumentFragment().querySelector(t)}function U(i){var n=[];let s=0;var t=z.exec(i);for(t?(n.push({kind:"tag",source:t[0],name:t[0]}),s=t[0].length):"*"===i[0]&&(n.push({kind:"universal",source:"*"}),s=1);s<i.length;){var o=i[s];if("#"===o||"."===o){var e=R.exec(i.slice(s+1));if(!e)return null;var r=s+1+e[0].length;n.push({kind:"#"===o?"id":"class",source:i.slice(s,r),name:e[0]}),s=r}else if("["===o){e=D(i,s);if(null===e)return null;r=W.exec(i.slice(s+1,e));n.push({kind:"attribute",source:i.slice(s,e+1),name:r?r[1]:null}),s=e+1}else{if(":"!==o)return null;{var o=":"===i[s+1],a=s+(o?2:1),l=R.exec(i.slice(a));if(!l)return null;let t=a+l[0].length,e=null;if("("===i[t]){a=D(i,t);if(null===a)return null;e=i.slice(t+1,a),t=a+1}n.push({kind:"pseudo",source:i.slice(s,t),name:l[0].toLowerCase(),element:o,argument:e}),s=t}}}return n}const H=new Set(["is","where","not"]);function Q(t,n){t=V(t);return 0<t.length&&t.every(t=>{var e=n;if(null===(t=U(t)))return!1;for(const i of t)if("id"===i.kind)e.add("id");else if("class"===i.kind)e.add("class");else if("attribute"===i.kind){if(null===i.name)return!1;e.add(i.name),e.add(i.name.toLowerCase())}else if("pseudo"===i.kind){if(i.element||null===i.argument||!H.has(i.name))return!1;if(!Q(i.argument,e))return!1}return!0})}const $=/[\t\n\f\r ]/;function J(t){let n=0;return null===K(t,0,(t,e,i)=>{0!==i||">"!==t&&"+"!==t&&"~"!==t&&!$.test(t)||(n=e+1)})?null:t.slice(n)}function X(t){if(!_(t))return null;var e=[];for(const n of V(t)){var i=function(t){t=J(t);if(null===t)return null;t=U(t);if(null===t)return null;let e="";for(const i of t)"pseudo"!==i.kind&&"universal"!==i.kind&&(e+=i.source);return 0<e.length?e:null}(n);if(null===i)return null;e.push(i)}return 0<e.length?e:null}class h{constructor(){this.map=new Map}add(t,e){let i=this.map.get(t);return i||(i=new Set,this.map.set(t,i)),i.add(e),this}delete(t,e){var i=this.map.get(t);return!!i&&((e=i.delete(e))&&0===i.size&&this.map.delete(t),e)}deleteKey(t){return this.map.delete(t)}clear(){this.map.clear()}valuesForKey(t){t=this.map.get(t);return t?Array.from(t):[]}get keys(){return Array.from(this.map.keys())}get values(){var t=[];for(const e of this.map.values())for(const i of e)t.push(i);return t}get(t){return this.map.get(t)}has(t,e){return!!this.get(t)?.has(e)}}const Y=[];class G{constructor(){this.idIndex=new h,this.attributeIndex=new h,this.classIndex=new h,this.tagIndex=new h,this.fallback=new Set,this.count=0,this.generation=0,this.selectorCounts=new Map,this.matchQueryString=null,this.subjectQueryString=null,this.attributeNames=null}add(t,e){var i={selector:t,value:e,generation:0},e=this.bucketsFor(t);if(e)for(const n of e)n.map.add(n.key,i);else this.fallback.add(i);this.count+=1,this.countSelector(t,1)}delete(t,e){var i=this.bucketsFor(t),n=i?i[0].map.get(i[0].key):this.fallback;if(n)for(const s of n)if(s.selector===t&&s.value===e){if(i)for(const o of i)o.map.delete(o.key,s);else this.fallback.delete(s);return--this.count,void this.countSelector(t,-1)}}matches(e){var i=[],n=(this.generation+=1,this.generation),t=this.tagIndex.get(e.localName.toLowerCase());t&&l(t,i,n),e.id&&(t=this.idIndex.get(e.id))&&l(t,i,n);for(const a of e.classList){var s=this.classIndex.get(a);s&&l(s,i,n)}var o=this.attributeNames??(this.attributeNames=this.attributeIndex.keys);for(let t=0;t<o.length;t+=1){var r=o[t];e.hasAttribute(r)&&(r=this.attributeIndex.get(r))&&l(r,i,n)}return 0<this.fallback.size&&l(this.fallback,i,n),i}queryAll(t){return 0===this.count?Y:(this.matchQueryString??(this.matchQueryString=Array.from(this.selectorCounts.keys()).join(", ")),t.querySelectorAll(this.matchQueryString))}querySubjects(t){return 0===this.count?Y:(this.subjectQueryString??(this.subjectQueryString=function(t){var e=new Set;for(const n of t){var i=X(n);if(null===i)return"*";for(const s of i)e.add(s)}return 0<e.size?Array.from(e).join(", "):"*"}(this.selectorCounts.keys())),t.querySelectorAll(this.subjectQueryString))}get size(){return this.count}countSelector(t,e){var i=this.selectorCounts.get(t)??0,e=i+e;0===e?this.selectorCounts.delete(t):this.selectorCounts.set(t,e),0!==i&&0!==e||(this.matchQueryString=null,this.subjectQueryString=null,this.attributeNames=null)}bucketsFor(t){if(!_(t))return null;var e=[],i=new Set;for(const o of V(t)){var n=function(t){t=J(t);if(null===t)return null;t=U(t);if(null===t)return null;let e,i,n,s;for(const o of t)"id"===o.kind?e=e??o.name:"attribute"===o.kind?null!==o.name&&(i=i??o.name):"class"===o.kind?n=n??o.name:"tag"===o.kind&&(s=s??o.name.toLowerCase());return void 0!==e?{kind:"id",value:e}:void 0!==i?{kind:"attribute",value:i}:void 0!==n?{kind:"class",value:n}:void 0!==s?{kind:"tag",value:s}:null}(o);if(!n)return null;var s=n.kind+":"+n.value;i.has(s)||(i.add(s),"id"===n.kind?e.push({map:this.idIndex,key:n.value}):"attribute"===n.kind?(e.push({map:this.attributeIndex,key:n.value}),(s=n.value.toLowerCase())!==n.value&&e.push({map:this.attributeIndex,key:s})):"class"===n.kind?e.push({map:this.classIndex,key:n.value}):e.push({map:this.tagIndex,key:n.value}))}return 0<e.length?e:null}}function l(t,e,i){for(const n of t)n.generation!==i&&(n.generation=i,e.push(n))}const o=Symbol.for("impulse"),Z={name:"property"},tt={name:"target"};function et(t,e,i){let n=st(t),s=(n||(n=new Map,Object.defineProperty(t,o,{value:n,configurable:!0})),n.get(e.name));s||(s=new Map,n.set(e.name,s)),s.set(i.key,i)}function it(t,e){return st(t)?.get(e.name)??new Map}function nt(t,e){return it(Object.getPrototypeOf(t),e)}function st(t){if(Object.hasOwn(t,o))return t[o]}function e({type:i=String}={}){return(t,e)=>{et(t,Z,{key:e,type:i})}}function ot(e,i){var t,n;return!!Object.is(e,i)||"object"==typeof e&&"object"==typeof i&&null!==e&&null!==i&&(Array.isArray(e)||Array.isArray(i)?!(!Array.isArray(e)||!Array.isArray(i)||e.length!==i.length)&&e.every((t,e)=>ot(t,i[e])):(t=Object.keys(e),n=Object.keys(i),t.length===n.length&&t.every(t=>Object.hasOwn(i,t)&&ot(e[t],i[t]))))}const rt=/([\-_.\s])+(.)?/g,at=/(^|\/)([A-Z])/g,lt=/[ _]/g,ct=/([a-z\d])([A-Z])/g;function ht(t){return t.replace(ct,"$1_$2").toLowerCase().replace(lt,"-")}const ut=new WeakMap;class dt{constructor(t){this.instance=t,this.bound=new Map,this.declarations=nt(this.instance,Z),ut.set(this.instance,this)}start(){this.bind()}bind(){for(var{key:t,type:e}of this.declarations.values())if(!this.bound.has(t)){var i=this.instance[t];const n=new mt(this.instance,t,e,i);this.bound.set(t,n),Object.defineProperty(this.instance,t,{configurable:!0,get:()=>n.value,set:t=>n.write(t)})}}stop(){}change(t,e,i){var n=this.bound.get(t);if(n)return n.change(e,i);throw new Error(`Unregistered attribute changed: ${ht(t)}. Register the attribute using the @property() decorator.`)}}var i=t=>t;function pt(e,t){return{empty:t,fromAttribute:t=>{t=function(t,e){if(!t)return e;try{return JSON.parse(t)}catch{return e}}(t,null);return e(t)?t:void 0},toAttribute:t=>JSON.stringify(t),equals:ot,copy:t=>JSON.parse(JSON.stringify(t))}}const ft=new Map([[String,{empty:()=>"",fromAttribute:i,toAttribute:String,equals:Object.is,copy:i}],[Number,{empty:()=>0,fromAttribute:t=>{var t=t.replace(/_/g,"").trim(),e=Number(t);return""===t||Number.isNaN(e)?void 0:e},toAttribute:String,equals:Object.is,copy:i}],[Boolean,{empty:()=>!1,fromAttribute:t=>"false"!==t,toAttribute:(t,e)=>t?"":e?"false":null,equals:Object.is,copy:i}],[Array,pt(Array.isArray,()=>[])],[Object,pt(t=>"object"==typeof t&&null!==t&&!Array.isArray(t),()=>({}))]]);class mt{constructor(t,e,i,n){this.element=t,this.attributeName=ht(e),this.type=ft.get(i),this.defaultValue=n??this.type.empty()}get value(){return this.read(this.element.getAttribute(this.attributeName))}write(t){t=null==t?null:this.type.toAttribute(t,this.defaultValue);null===t?this.element.removeAttribute(this.attributeName):this.element.setAttribute(this.attributeName,t)}change(t,e){t=this.read(t),e=this.read(e);return this.type.equals(e,t)?null:{newValue:e,oldValue:t}}read(t){t=null===t?void 0:this.type.fromAttribute(t);return void 0===t?this.type.copy(this.defaultValue):t}}function n(s){return t=>{const e=class extends t{constructor(...t){super(...t),new.target===e&&(t=this,ut.get(t)?.bind())}};var i,n;Object.defineProperty(e,"name",{value:t.name}),i=t.prototype,n=e.prototype,(i=st(i))&&Object.defineProperty(n,o,{value:i,configurable:!0});try{window.customElements.define(s,e),window[t.name]=customElements.get(s)}catch(t){if(!(t instanceof DOMException&&"NotSupportedError"===t.name))throw t}return e}}function s(){return(t,e)=>{et(t,tt,{key:e,multiple:!1})}}function vt(){return(t,e)=>{et(t,tt,{key:e,multiple:!0})}}const yt=/(?:(.+?)?(?:\.(.+?))?(?:@(window|document))?->)?(.+)#(.+)?$/,gt=["stop","prevent","self"],bt=["capture","once","passive"],wt=new Map;function kt(t){var e,i,n,s,t=t.trim(),o=wt.get(t);return o||([,o,s,e,i,n]=t.match(yt)||[],o={eventName:o,eventModifiers:(o=s?.split(".")||[]).filter(t=>gt.includes(t)),eventListenerOptions:function(t){var e={};for(const i of t)bt.includes(i)&&(e[i]=!0);return e}(o),eventTarget:"window"===(s=e)?window:"document"===s?document:void 0,methodName:n,identifier:i},wt.set(t,o),o)}const St={prevent:t=>Boolean(t.preventDefault()),stop:t=>Boolean(t.stopPropagation()),self:t=>t.target!==t.currentTarget};class At{constructor(t,e){this.instance=t,this.eventTarget=e.eventTarget,this.eventName=e.eventName,this.eventModifiers=e.eventModifiers,this.eventListenerOptions=e.eventListenerOptions,this.methodName=e.methodName}start(){this.eventTarget.addEventListener(this.eventName,this,this.eventListenerOptions)}stop(){this.eventTarget.removeEventListener(this.eventName,this,this.eventListenerOptions)}handleEvent(t){var e=this.instance[this.methodName];if("function"==typeof e){for(const i of this.eventModifiers)if((0,St[i])?.(t))return;e.call(this.instance,t)}}}function Et(t){"function"==typeof reportError?reportError(t):setTimeout(()=>{throw t})}function p(t){try{t()}catch(t){Et(t)}}function u(t,e){let i=!1,n;for(const s of t)try{e(s)}catch(t){i||(i=!0,n=t)}if(i)throw n}function Ot(){return new Promise(t=>{"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>t(),{once:!0}):t()})}let xt;const c=new G,d=new WeakMap;let r=null,Ct=null;const a=new Map;let Pt=0,f=null,Nt=!1,m=null,Tt=0,v=!1,Mt=0,y=[],Bt=0,g=null;function Lt(n,t){j(n);const s={selector:n,elementConnected:t.elementConnected,elementDisconnected:t.elementDisconnected,elementAttributeChanged:t.elementAttributeChanged,elements:new Map,attributes:_(t=n)&&Q(t,t=new Set)?Array.from(t):null};"loading"===document.readyState?(t=s,m||(m=new Set,Ot().then(qt)),m.add(t)):(v||Kt(),It(s),S(()=>{for(const t of document.querySelectorAll(n))$t(t,s)}));let o=!1;return()=>{if(!o&&(o=!0,!m?.delete(s))){c.delete(n,s),Rt(s.attributes,-1)&&(Nt=!0);for(const i of s.elements.keys())Xt(i,s);var t,e;s.elements.clear(),0===c.size&&r&&(t=Ft(),e=r,r=null,Wt(t),e.disconnect())}}}function It(t){c.add(t.selector,t),Rt(t.attributes,1),t=t.attributes,r?function(t){const e=f;return!e||null!==t&&t.every(t=>e.has(t))}(t)||Dt():(r=new MutationObserver(zt),Ct=document.documentElement,r.observe(Ct,{childList:!0,subtree:!0}),g=g??document.createTextNode(""),r.observe(g,{characterData:!0}),Dt())}function qt(){var t=m;if(m=null,t&&0!==t.size){for(const e of t)It(e);S(()=>_t(document.documentElement))}}function Kt(){for(let t=Ft();t.length;t=Ft())Wt(t)}function Ft(){return Vt(r?.takeRecords()??[])}function Vt(t){return 0===y.length||(t=y.concat(t),y=[]),t}function b(){return v?Mt:0}function w(){var t=v;return t||(Mt+=1),v=!0,t}function k(t){v=t}function S(t){var e=w();try{t()}finally{k(e)}}function Dt(){var t={attributes:!(Nt=!1),subtree:!0};0<Pt?f=null:(f=new Set(a.keys()),t.attributeFilter=Array.from(f)),r?.observe(document,t)}function Rt(t,e){if(!t)return 0===(Pt+=e);let i=!1;for(const s of t){var n=(a.get(s)??0)+e;0===n?(a.delete(s),i=!0):a.set(s,n)}return i}function zt(t){Nt&&Dt(),Wt(Vt(t))}function Wt(t){var e,i=document.documentElement!==Ct,n=Tt+=1,s=w();try{for(const a of t)if("childList"===a.type){if(0<(e=a).removedNodes.length&&1===e.addedNodes.length&&function(){var t,e,i;return void 0===xt&&(e=(t=document.createElement("div")).appendChild(document.createElement("div")).appendChild(document.createElement("div")),(i=new MutationObserver(()=>{})).observe(t,{childList:!0,subtree:!0}),t.replaceChildren?.(e),xt=1===i.takeRecords().length,i.disconnect()),xt}()){r=o=void 0;var o=a.addedNodes[0],r=n;if(o.nodeType===Node.ELEMENT_NODE){Qt(o,r);for(const l of c.querySubjects(o))Qt(l,r)}}a.removedNodes.forEach(jt),a.addedNodes.forEach(_t)}else"attributes"===a.type&&!i&&a.target instanceof Element&&!function(t,e){if(t.isConnected){var i=d.get(t);if(i)for(const n of Array.from(i))t.matches(n.selector)?p(()=>n.elementAttributeChanged?.(t,e??"")):Jt(t,n);Ut(t)}else Ht(t)}(a.target,a.attributeName)}finally{k(s)}}function _t(t){if(t.nodeType===Node.ELEMENT_NODE){var e=c.queryAll(t);Ut(t);for(const i of e)Ut(i)}}function jt(t){if(t.nodeType===Node.ELEMENT_NODE){Ht(t);for(const e of c.querySubjects(t))Ht(e)}}function Ut(t){if(t.isConnected)for(var{value:e}of c.matches(t))!e.elements.has(t)&&t.matches(e.selector)&&$t(t,e)}function Ht(t){var e=d.get(t);if(e)for(const i of Array.from(e))Jt(t,i)}function Qt(t,e){var i=d.get(t);if(i)for(const n of Array.from(i))n.elements.get(t)<e&&Jt(t,n)}function $t(e,i){{var n=e,s=i;s.elements.set(n,Tt);let t=d.get(n);t||(t=new Set,d.set(n,t)),t.add(s)}p(()=>i.elementConnected?.(e))}function Jt(t,e){var i,n;i=t,(n=e).elements.delete(i),Xt(i,n),p(()=>e.elementDisconnected?.(t))}function Xt(t,e){var i=d.get(t);i&&(i.delete(e),0===i.size)&&d.delete(t)}function Yt(o,r,i){const a=new h,l=(t,e)=>{a.add(t,e),i.tokenMatched?.(e)},c=(t,e)=>{a.delete(t,e),i.tokenUnmatched?.(e)},e=Lt(`[${r}]`,{elementConnected(t){if(o.contains(t))for(const e of Gt(t,r))p(()=>l(t,e))},elementDisconnected(t){for(const e of a.valuesForKey(t))p(()=>c(t,e))},elementAttributeChanged(t,e){if(e===r&&o.contains(t)){var e=a.valuesForKey(t),[e,i]=function(t,e){const i=new h;for(const o of e)i.add(o.content,o);var n=[];for(const r of t){var[s]=i.valuesForKey(r.content);s?i.delete(r.content,s):n.push(r)}return[n,e.filter(t=>i.has(t.content,t))]}(Gt(t,r),e);for(const n of i)p(()=>c(t,n));for(const s of e)p(()=>l(t,s))}}});return()=>{var t=a.values;a.clear();try{u(t,t=>i.tokenUnmatched?.(t))}finally{e()}}}function Gt(e,i){return Zt(e,i).map(t=>({element:e,attributeName:i,content:t}))}function Zt(t,e){return(t.getAttribute(e)||"").trim().split(/\s+/).filter(t=>t.length)}class te{constructor(t,e){this.attributeName=t,this.identifierFor=e,this.delegates=new WeakMap,this.tokensByOwner=new WeakMap,this.ownerByToken=new WeakMap,this.subscriberCount=0}subscribe(t,e){if(this.delegates.has(t))throw new Error(`<${t.localName}> is already subscribed to the "${this.attributeName}" token router.`);const i=e;this.stopWatching?Kt():this.stopWatching=Yt(document.documentElement,this.attributeName,{tokenMatched:t=>this.tokenMatched(t),tokenUnmatched:t=>this.tokenUnmatched(t)}),this.delegates.set(t,i),this.subscriberCount+=1;e=w();try{for(const s of this.ownedTokens(t))p(()=>i.tokenMatched?.(s))}finally{k(e)}let n=!1;return()=>{n||(n=!0,this.unsubscribe(t,i))}}stillRoutesTo(t,e){return{attributeName:i,content:n,element:s}=[e][0],Gt(s,i).some(t=>t.content===n)&&this.ownerOf(e)===t;var i,n,s}routesTo(e,i,n){return Zt(i,this.attributeName).some(t=>n(t)&&this.ownerFor(i,t)===e)}unsubscribe(t,e){this.delegates.delete(t),--this.subscriberCount;var i,t=this.ownedTokens(t),n=w();try{u(t,t=>e.tokenUnmatched?.(t))}finally{try{0===this.subscriberCount&&(i=this.stopWatching,this.stopWatching=void 0,i?.())}finally{k(n)}}}tokenMatched(e){var i=this.ownerOf(e);if(i){let t=this.tokensByOwner.get(i);t||(t=new Set,this.tokensByOwner.set(i,t)),t.add(e),this.ownerByToken.set(e,i),this.delegates.get(i)?.tokenMatched?.(e)}}tokenUnmatched(t){var e,i=this.ownerByToken.get(t);i&&(this.ownerByToken.delete(t),(e=this.tokensByOwner.get(i))&&(e.delete(t),0===e.size)&&this.tokensByOwner.delete(i),this.delegates.get(i)?.tokenUnmatched?.(t))}ownedTokens(t){t=this.tokensByOwner.get(t);return t?Array.from(t):[]}ownerOf(t){return this.ownerFor(t.element,t.content)}ownerFor(t,e){e=this.identifierFor(e);if(!e)return null;try{return t.closest(e)}catch{return null}}}const ee=new te("data-action",t=>kt(t).identifier);class ie{constructor(t){this.instance=t,this.eventListenerMap=new Map}start(){this.stopWatching||(this.stopWatching=ee.subscribe(this.instance,this))}stop(){var t=this.stopWatching;t&&(this.stopWatching=void 0,t())}tokenMatched(t){var{content:e,element:i}=t;const{identifier:n,eventTarget:s,...o}=kt(e);o.eventName&&n===this.identifier&&o.methodName&&(e=new At(this.instance,{...o,eventTarget:s||i}),this.eventListenerMap.set(t,e),e.start())}tokenUnmatched(t){var e=this.eventListenerMap.get(t);e&&(e.stop(),this.eventListenerMap.delete(t))}get identifier(){return this.instance.identifier}}const ne="data-impulse-element",A=new Map,se=new WeakSet;function E(t,e,i,n){j(e);var n="boolean"==typeof n?{capture:n}:n??{},s=!!n.capture,o=!!n.once;const{passive:r,signal:a}=n;if(!a?.aborted){const c={selector:e,callback:i,once:o,removed:!1,detach:()=>a?.removeEventListener("abort",l)},h=function(t,e,i){var n=function(t,e,i){i=void 0===i?"":i?"p":"n";return(e?"c":"b")+i+":"+t}(t,e,i),s=A.get(n);if(s)return s;const o=new G,d={key:n,eventName:t,capture:e,selectorSet:o,listener:t=>{try{var n=t,s=d.selectorSet,e=d.capture;try{n.eventPhase}catch{return}if(se.has(n)){if(n.cancelBubble)return;se.delete(n)}if((i=n.target)instanceof Node){var i="function"==typeof n.composedPath?n.composedPath():function(t){var e=[];let i=t;for(;i;)e.push(i),i=i.parentNode;return e}(i),e=e?i.slice().reverse():i,o=[];for(const a of e)if(a instanceof Element)for(var{value:r}of s.matches(a))!r.removed&&a.matches(r.selector)&&o.push({node:a,handler:r});if(0!==o.length){let e=!1,i=!1;const l=n.stopPropagation,c=n.stopImmediatePropagation;n.stopPropagation=function(){e=!0,l.call(n)},n.stopImmediatePropagation=function(){e=!0,i=!0,c.call(n)};try{let t;for(const{node:h,handler:u}of o){if(i)break;if(e&&void 0!==t&&h!==t)break;u.removed||(t=h,Object.defineProperty(n,"currentTarget",{configurable:!0,get:()=>h}),u.once&&(u.removed=!0,u.detach(),s.delete(u.selector,u)),p(()=>u.callback.call(h,n)))}}finally{e&&se.add(n),delete n.currentTarget,delete n.stopPropagation,delete n.stopImmediatePropagation}}}}finally{oe(d)}}};return document.addEventListener(t,d.listener,void 0===i?e:{capture:e,passive:i}),A.set(n,d),d}(t,s,r);function l(){c.removed||(c.removed=!0,c.detach(),h.selectorSet.delete(e,c),oe(h))}h.selectorSet.add(e,c),a?.addEventListener("abort",l)}}function oe(t){0<t.selectorSet.size||A.get(t.key)!==t||(document.removeEventListener(t.eventName,t.listener,t.capture),A.delete(t.key))}const re=new WeakSet,ae=new WeakMap;function le(t){return re.has(t)}function O(t){var[t,e]=t.split(".");return{identifier:t,key:e}}const x=new te("data-target",t=>O(t).identifier);function ce(t,e){return t===e?0:t.compareDocumentPosition(e)&Node.DOCUMENT_POSITION_FOLLOWING?-1:1}class he{constructor(t){this.instance=t,this.orderedByKey=new Map,this.nowByKey=new Map,this.stableByKey=new Map,this.heldSinceByKey=new Map,this.departedByKey=new Map,this.declarations=nt(this.instance,tt),this.targetsByKey=new h,this.tokensByElement=new h,this.waitingByKey=new h}start(){for(const{key:e,multiple:t}of this.declarations.values()){const i=t?{delivered:()=>this.stableArray(e,this.orderedTargets(e)),now:()=>this.stableArray(e,this.claimants(e))}:{delivered:()=>this.targetsByKey.valuesForKey(e)[0]??null,now:()=>this.claimantNow(e)};Object.defineProperty(this.instance,e,{configurable:!0,get:()=>{var t;return this.stopWatching?(t=function(){if(v||!r)return 0;var t=r.takeRecords();if(0===t.length)return 0<y.length?Bt:0;let e=!1;for(const i of t)i.target!==g&&(y.push(i),e=!0);return e&&(Bt+=1),0===y.length?0:(g.data="",Bt)}())&&this.isInDocumentTree()?this.readNow(e,t,i.now):(0<this.nowByKey.size&&this.nowByKey.clear(),i.delivered()):0===b()&&this.isInDocumentTree()?i.now():i.delivered()}})}this.stopWatching||(this.stopWatching=x.subscribe(this.instance,this))}stop(){var t=this.stopWatching;if(t){this.stopWatching=void 0,this.nowByKey.clear();try{t()}finally{this.stableByKey.clear(),this.heldSinceByKey.clear(),this.departedByKey.clear()}}}tokenMatched(t){var{content:e,element:i}=t;const{identifier:n,key:s}=O(e);if(this.isValidIdKeyPair(n,s))if(this.targetsByKey.has(s,i))this.tokensByElement.add(i,t);else{if(!this.isKeyMultiple(s)){var[e]=this.targetsByKey.valuesForKey(s);if(e&&this.takesOver(s,e,i))return void this.handOver(s,e,t);if(e||this.keptForMovedTarget(s,i))return this.waitingByKey.add(s,t),this.reportIfLeftWaiting(s,t),void(e||Promise.resolve().then(()=>S(()=>this.adoptWaiting(s))))}this.tokensByElement.add(i,t),this.connect(s,i)}}tokenUnmatched(t){var{content:e,element:i}=t,{identifier:n,key:s}=O(e);if(this.isValidIdKeyPair(n,s)&&!this.waitingByKey.delete(s,t)&&this.targetsByKey.has(s,i)&&(this.tokensByElement.delete(i,t),!this.isStillReferenced(i,e)))try{this.invokeCallback(s,i,"disconnected")}finally{this.targetsByKey.delete(s,i),this.orderedByKey.delete(s),this.isKeyMultiple(s)||(n=this.heldSinceByKey.get(s)??b(),this.departedByKey.set(s,{element:i,since:n,delivery:b()})),this.adoptWaiting(s,t)}}reportIfLeftWaiting(t,e){Promise.resolve().then(()=>{this.waitingByKey.has(t,e)&&Et(new Error(`
|
|
2
|
+
Multiple "${t}" targets in the "${this.identifier}" element were defined using the @target() decorator.
|
|
3
3
|
Please use the @targets() decorator instead if you want to define multiple targets for the same key.
|
|
4
4
|
Learn more about the @targets() decorator: https://ambiki.github.io/impulse/reference/targets.html#multiple-targets
|
|
5
|
-
`);this.defineProperty(i,this.isKeyMultiple(i)?s:e),this.invokeCallback(i,e,"connected")}}tokenUnmatched({content:t,element:e}){var[t,i]=t.split(".");this.isValidIdKeyPair(t,i)&&this.targetsByKey.has(i,e)&&(this.targetsByKey.delete(i,e),this.invokeCallback(i,e,"disconnected"),this.defineProperty(i,this.isKeyMultiple(i)?this.targetsByKey.getValuesForKey(i):null))}destroyTargets(){for(const t of this.targetsByKey.keys)this.targetsByKey.getValuesForKey(t).forEach(t=>{var e;return null==(e=this.tokenListObserver)?void 0:e.elementDisconnected(t)})}defineProperty(t,e){Object.defineProperty(this.instance,t,{configurable:!0,get:()=>e})}isValidIdKeyPair(t,e){return!(!e||t!==this.identifier||!this.keys.includes(e))}invokeCallback(t,e,i){i=this.instance[""+t+((t=i).charAt(0).toUpperCase()+t.slice(1))];"function"==typeof i&&i.call(this.instance,e)}isKeyMultiple(e){var t;return null!=(t=null==(t=Array.from(this.targetKeys).find(t=>t.key===e))?void 0:t.multiple)&&t}get keys(){return Array.from(this.targetKeys).map(({key:t})=>t)}get targetKeys(){return this.store.value}get identifier(){return this.instance.identifier}}class f extends HTMLElement{constructor(){super(...arguments),this.property=new W(this),this.target=new J(this),this.action=new U(this),this._started=!1}connectedCallback(){this._started||this._asyncConnect()}static get observedAttributes(){var t=new r(this.prototype,"property");return Array.from(t.value).map(({key:t})=>m(t))}attributeChangedCallback(t,e,i){if(this._started&&e!==i){const n=t.replace(j,(t,e,i)=>i?i.toUpperCase():"").replace(_,t=>t.toLowerCase());var s=this[n+"Changed"];if("function"==typeof s){var o=new r(Object.getPrototypeOf(this),"property"),o=Array.from(o.value).map(({key:t,type:e})=>({key:t,type:e})).find(({key:t})=>t===n);if(!o)throw new Error(`Unregistered attribute changed: ${t}. Register the attribute using the @property() decorator.`);var{newValue:t,oldValue:i}=function(t,e,i){switch(i){case Boolean:var s=t=>null!==t&&"false"!==t;return{newValue:s(t),oldValue:s(e)};case Number:s=t=>null==t?void 0:t.replace(/_/g,"");return{newValue:Number(s(t)),oldValue:Number(s(e))};case Array:return{newValue:v(t,[]),oldValue:v(e,[])};case Object:return{newValue:v(t,{}),oldValue:v(e,{})};default:return{newValue:t,oldValue:e}}}(i,e,o.type);t!==i&&s.call(this,t,i)}}}disconnectedCallback(){this._started&&(this.disconnected(),this.action.stop(),this.target.stop(),this.property.stop(),this._started=!1)}connected(){}disconnected(){}emit(t,e={}){var{target:i=this,prefix:s=this.identifier}=e,[i,s,t={}]=[i,s?s+":"+t:t,a(e,["target","prefix"])],{detail:e={}}=t,t=a(t,["detail"]),s=new CustomEvent(s,Object.assign({bubbles:!0,composed:!0,detail:e},t));return i.dispatchEvent(s),s}get identifier(){return this.tagName.toLowerCase()}async _asyncConnect(){await new Promise(t=>{"loading"===document.readyState?document.addEventListener("DOMContentLoaded",()=>t()):t()}),customElements.upgrade(this),this.property.start(),await this._resolveUndefinedElements(),this.target.start(),this.action.start(),this._started=!0,this.setAttribute("data-impulse-element",""),this.connected()}_resolveUndefinedElements(){var t=Array.from(this.querySelectorAll(":not(:defined)")).map(t=>customElements.whenDefined(t.localName));return Promise.all(t)}}function g(t){return Number(t.replace(/[^-\d.]/g,""))}let b=class extends f{constructor(){super(...arguments),this.placement="bottom",this.active=!1,this.strategy="fixed",this.distance=0,this.skidding=0,this.flip=!0,this.flipPadding=0,this.fallbackPlacements=[],this.fallbackStrategy="bestFit",this.shift=!1,this.shiftPadding=0}connected(){this.start()}disconnected(){this.stop()}async anchorIdChanged(t){await this.stop(),t&&this.anchorElement&&this.start()}async activeChanged(t){t?this.start():await this.stop()}start(){this.anchorElement&&(this.style.position=this.strategy,this.style.top="0px",this.style.left="0px",this.cleanup=y.autoUpdate(this.anchorElement,this,this.reposition.bind(this)))}async stop(){return new Promise(t=>{this.cleanup?(this.cleanup(),this.cleanup=void 0,requestAnimationFrame(()=>t())):t()})}async reposition(){if(this.active&&this.anchorElement){var t=[y.offset({mainAxis:this.distance,crossAxis:this.skidding})];this.sync?t.push(y.size({apply:({rects:t})=>{var e="width"===this.sync||"both"===this.sync,i="height"===this.sync||"both"===this.sync;this.style.width=e?t.reference.width+"px":"",this.style.height=i?t.reference.height+"px":""}})):(this.style.width="",this.style.height=""),this.flip&&t.push(y.flip({fallbackPlacements:this.fallbackPlacements.length?this.fallbackPlacements:void 0,fallbackStrategy:this.fallbackStrategy,padding:this.flipPadding})),this.shift&&t.push(y.shift({padding:this.shiftPadding})),this.arrowElement&&t.push(y.arrow({element:this.arrowElement,padding:this._arrowPadding}));const{x:e,y:i,placement:s,strategy:o,middlewareData:n}=await y.computePosition(this.anchorElement,this,{placement:this.placement,middleware:t,strategy:this.strategy});if(Object.assign(this.style,{left:e+"px",top:i+"px",position:o}),n.arrow&&this.arrowElement){const{x:e,y:i}=n.arrow;Object.assign(this.arrowElement.style,{left:"number"==typeof e?e+"px":"",top:"number"==typeof i?i+"px":""})}this.setAttribute("x-placement",s)}}get anchorElement(){return document.getElementById(this.anchorId)}get arrowElement(){return this.querySelector("[data-arrow]")}get _arrowPadding(){return"number"==typeof this.arrowPadding?this.arrowPadding:g(getComputedStyle(this).borderRadius)||2}};t([i()],b.prototype,"anchorId",void 0),t([i()],b.prototype,"placement",void 0),t([i({type:Boolean})],b.prototype,"active",void 0),t([i()],b.prototype,"strategy",void 0),t([i({type:Number})],b.prototype,"distance",void 0),t([i({type:Number})],b.prototype,"skidding",void 0),t([i()],b.prototype,"sync",void 0),t([i({type:Boolean})],b.prototype,"flip",void 0),t([i({type:Number})],b.prototype,"flipPadding",void 0),t([i({type:Array})],b.prototype,"fallbackPlacements",void 0),t([i()],b.prototype,"fallbackStrategy",void 0),t([i({type:Boolean})],b.prototype,"shift",void 0),t([i({type:Number})],b.prototype,"shiftPadding",void 0),t([i({type:Number})],b.prototype,"arrowPadding",void 0),b=t([s("awc-anchor")],b);var w=0;function O(){return w+=1,`ambiki-${Math.random().toString().slice(2,6)}-`+w}function A(t){return!t.hasAttribute("disabled")&&"true"!==t.getAttribute("aria-disabled")}var X=!!navigator.userAgent.match(/Macintosh/),Y=class{input;list;multiple;isMouseMoving=!1;constructor(t,e,{multiple:i=!1}={}){this.input=t,this.list=e,this.multiple=i,this.list.id||(this.list.id=O()),this.input.getAttribute("aria-expanded")||this.input.setAttribute("aria-expanded","false"),this.multiple&&this.input.setAttribute("aria-multiselectable","true"),this.input.setAttribute("role","combobox"),this.input.setAttribute("aria-haspopup","listbox"),this.input.setAttribute("aria-autocomplete","list"),this.list.setAttribute("role","listbox"),this.onKeydown=this.onKeydown.bind(this),this.onClick=this.onClick.bind(this),this.onListMouseover=this.onListMouseover.bind(this),this.onListMousemove=this.onListMousemove.bind(this)}start(){this.isMouseMoving=!1,this.input.setAttribute("aria-expanded","true"),this.input.setAttribute("aria-controls",this.list.id),this.input.addEventListener("keydown",this.onKeydown),this.list.addEventListener("click",this.onClick),this.list.addEventListener("mouseover",this.onListMouseover),this.list.addEventListener("mousemove",this.onListMousemove),this.initializeOptions()}stop(){this.isMouseMoving=!1,this.input.setAttribute("aria-expanded","false"),this.input.removeAttribute("aria-controls"),this.input.removeEventListener("keydown",this.onKeydown),this.list.removeEventListener("click",this.onClick),this.list.removeEventListener("mouseover",this.onListMouseover),this.list.removeEventListener("mousemove",this.onListMousemove),this.deselectAll(),this.deactivate()}onKeydown(t){if(this.isMouseMoving=!1,!(t.shiftKey||t.metaKey||t.altKey||!X&&t.ctrlKey))switch(t.key){case"Enter":case"Tab":this.activeOption&&A(this.activeOption)&&(t.preventDefault(),t.stopPropagation(),this.activeOption.click());break;case"Escape":this.deactivate();break;case"ArrowDown":t.preventDefault(),t.stopPropagation(),this.activeOption?this.move(1):this.activate(this.visibleOptions[0],{scroll:!0});break;case"ArrowUp":t.preventDefault(),t.stopPropagation(),this.activeOption?this.move(-1):this.activate(this.visibleOptions[this.visibleOptions.length-1],{scroll:!0});break;case"Home":t.preventDefault(),t.stopPropagation(),this.activate(this.visibleOptions[0],{scroll:!0});break;case"End":t.preventDefault(),t.stopPropagation(),this.activate(this.visibleOptions[this.visibleOptions.length-1],{scroll:!0});break;default:t.ctrlKey||this.deactivate()}}onClick(t){t=E(t.target);t&&A(t)&&(this.multiple&&this.isSelected(t)?this.deselect(t):this.select(t),t.dispatchEvent(new CustomEvent("combobox:commit",{bubbles:!0})))}onListMouseover(t){var e;this.isMouseMoving?(e=E(t.target))&&this.activate(e):t.preventDefault()}onListMousemove(t){!this.isMouseMoving&&(this.isMouseMoving=!0,t=E(t.target))&&this.activate(t)}select(t){if(this.multiple)t.setAttribute("aria-selected","true");else for(var e of this.options)e.setAttribute("aria-selected",(e===t).toString())}deselect(t){t.setAttribute("aria-selected","false")}deselectAll(){for(var t of this.options)this.deselect(t)}activate(t,{scroll:e=!1}={}){for(var i of this.options)i.id===t.id?(i.setAttribute("data-active",""),this.input.setAttribute("aria-activedescendant",i.id),e&&i.scrollIntoView({block:"nearest"})):i.removeAttribute("data-active")}deactivate(){this.input.removeAttribute("aria-activedescendant");for(var t of Array.from(this.list.querySelectorAll('[role="option"][data-active]')))t.removeAttribute("data-active")}isSelected(t){return"true"===t.getAttribute("aria-selected")}get options(){return Array.from(this.list.querySelectorAll('[role="option"]'))}get visibleOptions(){return this.options.filter(Z)}get activeOption(){return this.list.querySelector("[data-active]")}move(t){this.activeOption&&(t=function(t,e,i){let s=t.indexOf(e),o=(s===t.length-1&&1===i&&(s=-1),1===i?0:t.length-1);return t[o=e&&0<=s&&0<=(e=s+i)&&e<t.length?e:o]}(this.visibleOptions,this.activeOption,t),this.activate(t,{scroll:!0}))}initializeOptions(){for(var t of this.options)t.setAttribute("tabindex","-1"),t.id||(t.id=O()),t.hasAttribute("aria-selected")||this.deselect(t)}};function E(t){return t&&t.closest('[role="option"]')||!1}function Z(t){return!t.hidden&&!(t instanceof HTMLInputElement&&"hidden"===t.type)&&(0<t.offsetWidth||0<t.offsetHeight)}function k(t){var e=(t=t.getBoundingClientRect()).width,t=t.height;return 0===e&&0===t}function G(t,e){var i=e.displayCheck,s=e.getShadowRoot;if("full-native"===i&&"checkVisibility"in t)return!t.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});if("hidden"===getComputedStyle(t).visibility)return 1;if(e=S.call(t,"details>summary:first-of-type")?t.parentElement:t,S.call(e,"details:not([open]) *"))return 1;if(i&&"full"!==i&&"full-native"!==i&&"legacy-full"!==i){if("non-zero-area"===i)return k(t)}else{if("function"==typeof s){for(e=t;t;){var o=t.parentElement,n=L(t);if(o&&!o.shadowRoot&&!0===s(o))return k(t);t=t.assignedSlot||(o||n===t.ownerDocument?o:n.host)}t=e}if(function(t){var e,i=t&&L(t),s=null==(e=i)?void 0:e.host,o=!1;if(i&&i!==t)for(o=!!(null!=(e=s)&&null!=(e=e.ownerDocument)&&e.contains(s)||null!=t&&null!=(e=t.ownerDocument)&&e.contains(t));!o&&s;)var n,o=!(null==(n=s=null==(n=i=L(s))?void 0:n.host)||null==(n=n.ownerDocument)||!n.contains(s));return o}(t))return!t.getClientRects().length;if("legacy-full"!==i)return 1}}var x="undefined"==typeof Element,S=x?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,L=!x&&Element.prototype.getRootNode?function(t){var e;return null==t||null==(e=t.getRootNode)?void 0:e.call(t)}:function(t){return null==t?void 0:t.ownerDocument},Q=function(t,e){var i;return!(e.disabled||"INPUT"===(i=e).tagName&&"hidden"===i.type||G(e,t)||"DETAILS"===(i=e).tagName&&Array.prototype.slice.apply(i.children).some(function(t){return"SUMMARY"===t.tagName})||function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if("FIELDSET"===e.tagName&&e.disabled){for(var i=0;i<e.children.length;i++){var s=e.children.item(i);if("LEGEND"===s.tagName)return!!S.call(e,"fieldset[disabled] *")||!s.contains(t)}return!0}e=e.parentElement}return!1}(e))},tt=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"].concat("iframe:not([inert]):not([inert] *)").join(",");function et(t){let e=t;for(;null!==e;){if(function(t,e){if(e=e||{},t)return!1!==S.call(t,tt)&&Q(e,t);throw new Error("No node provided")}(e)||e.hasAttribute("data-loosely-focusable"))return 1;e=e.parentElement}}function C(t,{referenceElement:r,popupElement:a,arrowElement:l,arrowPadding:h=0,middleware:c=[],offsetOptions:d=0,placement:u="bottom-start",flipOptions:p,shiftOptions:m,strategy:v="fixed",sync:f,autoSize:g,autoSizePadding:b=0}){let e;async function i(t=!1){if(t&&r&&a){t=[y.offset(d)];f?t.push(y.size({apply:({rects:t})=>{var e="height"===f||"both"===f;a.style.width="width"===f||"both"===f?t.reference.width+"px":"",a.style.height=e?t.reference.height+"px":""}})):(a.style.width="",a.style.height=""),t.push(y.flip(p)),t.push(y.shift(m)),g?t.push(y.size({padding:b,apply:({availableWidth:t,availableHeight:e})=>{"height"===g||"both"===g?a.style.setProperty("--awc-auto-size-height",e+"px"):a.style.removeProperty("--awc-auto-size-height"),"width"===g||"both"===g?a.style.setProperty("--awc-auto-size-width",t+"px"):a.style.removeProperty("--awc-auto-size-width")}})):(a.style.removeProperty("--awc-auto-size-height"),a.style.removeProperty("--awc-auto-size-width")),l&&t.push(y.arrow({element:l,padding:h})),t.concat(c);const{x:e,y:i,placement:s,strategy:o,middlewareData:n}=await y.computePosition(r,a,{placement:u,middleware:t,strategy:v});if(Object.assign(a.style,{left:e+"px",top:i+"px",position:o}),n.arrow&&l){const{x:e,y:i}=n.arrow;Object.assign(l.style,{left:"number"==typeof e?e+"px":"",top:"number"==typeof i?i+"px":""})}a.setAttribute("x-placement",s)}}async function s(){return new Promise(t=>{e?(e(),e=void 0,requestAnimationFrame(()=>t())):t()})}a&&(a.style.position=v,a.style.top="0px",a.style.left="0px",r)&&(e=y.autoUpdate(r,a,()=>i(!0)),s());const o=t.disconnected.bind(t);return Object.assign(t,{disconnected(){s(),o()}}),{start:function(){r&&a&&(e=y.autoUpdate(r,a,()=>i(t.open)))},update:async function(){await i(t.open)},stop:s}}function P(t,{boundaries:o,callback:n}){let r=null;function e(t){var e;r=(null==(e=null==(e=t.composedPath)?void 0:e.call(t))?void 0:e[0])||t.target}function i(t,e){if(r&&!t.defaultPrevented){var i=e(t);if(i&&i.getRootNode().contains(i)&&i.isConnected){for(const s of o)if(null!==s){if(s.contains(i))return;if(t.composed&&t.composedPath().includes(s))return}n(t,i),r=null}}}document.addEventListener("mousedown",e,!0),document.addEventListener("click",t=>i(t,()=>r),!0);const s=t.disconnected.bind(t);Object.assign(t,{disconnected(){r=null,document.removeEventListener("mousedown",e,!0),document.removeEventListener("click",t=>i(t,()=>r),!0),s()}})}class V{constructor(t){this.autocomplete=t}search(t){this.autocomplete.options.forEach((s=t,t=>{var e,i=t.closest('[role="group"]');s?(e=null==(e=t.getAttribute("data-text"))?void 0:e.toLowerCase().includes(s.toLowerCase()),t.hidden=!e,i&&(e=Array.from(i.querySelectorAll('[role="option"]')),i.hidden=e.every(t=>t.hidden))):(t.hidden=!1,i&&(i.hidden=!1))}));var s,t=this.autocomplete.visibleOptions[0];t&&this.autocomplete.combobox.activate(t),this.autocomplete.checkIfListIsEmpty()}start(){this.autocomplete.checkIfListIsEmpty()}stop(){this.resetOptions()}resetOptions(){for(const t of this.autocomplete.groups)t.hidden=!1;for(const e of this.autocomplete.options)e.hidden=!1}}class it{constructor(t){this.selectedValues=new Set,this.defaultSelectedValues=[],this.findByValue=e=>t=>t.getAttribute("value")===e,this.autocomplete=t}connected(){this.defaultSelectedValues=this.tags.reduce((t,e)=>{var e=e.querySelector('[data-behavior="hidden-field"]'),i=e.value;return this.selectedValues.add(i),t.push({value:i,text:e.getAttribute("data-text")||""}),t},[])}start(){this.selectOrDeselectOptions(),this.firstActivableOption&&this.autocomplete.combobox.activate(this.firstActivableOption,{scroll:!0})}stop(){this.autocomplete.input.value=""}reset(){this.clear(),this.defaultSelectedValues.forEach(({value:t,text:e})=>this.setValue(t,e))}select(t){var e=t.getAttribute("value"),t=t.dataset["text"];e&&(this.selectedValues.has(e)?this.removeValue(e):this.setValue(e,t||""))}setValue(t,e){this.selectedValues.has(t)||(this.selectedValues.add(t),this.insertTag(t,e.trim()),this.toggleSelectedClass(),this.required=this.autocomplete.required,this.autocomplete.open&&(e=this.autocomplete.options.find(this.findByValue(t)))&&this.autocomplete.combobox.select(e))}clear(){this.selectedValues.forEach(t=>this.removeValue(t))}removeValue(t){this.selectedValues.has(t)&&(this.selectedValues.delete(t),this.removeTag(t),this.toggleSelectedClass(),this.required=this.autocomplete.required,t=this.autocomplete.options.find(this.findByValue(t)))&&this.autocomplete.combobox.deselect(t)}set required(t){!t||0<this.selectedValues.size?this.autocomplete.input.required=!1:this.autocomplete.input.required=!0}selectOrDeselectOptions(){for(const e of this.autocomplete.options){var t=e.getAttribute("value");t&&this.selectedValues.has(t)?this.autocomplete.combobox.select(e):this.autocomplete.combobox.deselect(e)}}insertTag(t,e){var i=this.template.content.cloneNode(!0),s=i.querySelector('[data-behavior="tag"]'),o=i.querySelector('[data-behavior="text"]'),n=i.querySelector('[data-behavior="hidden-field"]');s.setAttribute("value",t),s.setAttribute("data-text",e),o.innerText=e,n.value=t,n.setAttribute("data-text",e),this.autocomplete.control.insertBefore(i,this.template)}removeTag(t){t=this.tags.find(this.findByValue(t));null!=t&&t.remove()}toggleSelectedClass(){this.autocomplete.toggleSelectedClass(!!this.selectedValues.size)}get firstActivableOption(){return this.autocomplete.options.find(t=>this.selectedValues.has(t.getAttribute("value")))||this.autocomplete.visibleOptions[0]}get tags(){return this.autocomplete.tags}get template(){return this.autocomplete.querySelector('[data-behavior="tag-template"]')}}class M{constructor(t){this.cachedOptions="",this.autocomplete=t,this.makeRequest=function(e,i){let s;function t(...t){clearTimeout(s),s=setTimeout(()=>{e.apply(this,t)},i)}return t.clear=()=>{clearTimeout(s)},t}(this.makeRequest.bind(this),300)}async search(t){this.autocomplete.setAttribute("loading",""),this.autocomplete.removeAttribute("error"),await this.makeRequest(t)}start(){this.cachedOptions?this.insertOptions(this.cachedOptions,{cached:!0}):this.search("")}stop(){}async makeRequest(t){var e=(this.emit("loadstart"),null!=(e=this.abortController)&&e.abort(),this.abortController=new AbortController)["signal"],i=new URL(this.autocomplete.src,window.location.href),s=new URLSearchParams(i.search.slice(1));s.append(this.autocomplete.param,t),i.search=s.toString();try{var o=await fetch(i.toString(),{signal:e,credentials:"same-origin",headers:{accept:"text/fragment+html"}});if(!o.ok)throw new Error(await o.text());var n=await o.text();""===t&&(this.cachedOptions=n),await this.insertOptions(n),this.abortController=void 0,this.emit("load"),this.autocomplete.removeAttribute("loading"),this.emit("loadend")}catch(t){t instanceof Error&&"AbortError"===t.name||(this.abortController=void 0,this.autocomplete.setAttribute("error",""),this.emit("error"),this.autocomplete.removeAttribute("loading"),this.emit("loadend"))}}async insertOptions(t,{cached:e=!1}={}){this.autocomplete.optionsContainer.innerHTML=t,this.autocomplete.checkIfListIsEmpty(),e||this.autocomplete.combobox.initializeOptions(),this.autocomplete.selectVariant.start(),await this.autocomplete.reposition()}emit(t){this.autocomplete.emit(t,{bubbles:!1,prefix:!1})}}class st{constructor(t){this.defaultValue="",this.defaultText="",this.autocomplete=t}connected(){var t;this.defaultValue=this.hiddenField.value,this.defaultText=null!=(t=this.hiddenField.getAttribute("data-text"))?t:""}start(){var t;this.selectedOption?(this.autocomplete.combobox.select(this.selectedOption),this.autocomplete.combobox.activate(this.selectedOption,{scroll:!0})):(t=this.autocomplete.visibleOptions[0])&&this.autocomplete.combobox.activate(t,{scroll:!0})}stop(){var t=this.hiddenField.dataset["text"];this.autocomplete.input.value=null!=t?t:""}reset(){this.setValue(this.defaultValue,this.defaultText)}select(t){var e=null!=(e=t.getAttribute("value"))?e:"",t=t.dataset["text"];this.setValue(e,t||""),this.autocomplete.hide()}setValue(t,e){this.hiddenField.value=t;e=e.trim();this.hiddenField.setAttribute("data-text",e),this.autocomplete.input.value=e,this.autocomplete.toggleSelectedClass(!!t)}clear(){this.setValue("","")}set required(t){this.autocomplete.input.required=t}get selectedOption(){return this.autocomplete.options.find(t=>t.getAttribute("value")===this.autocomplete.value)}get hiddenField(){return this.autocomplete.querySelector('input[data-behavior="hidden-field"]')}}let N=class extends f{constructor(){super(),this.open=!1,this.disabled=!1,this.required=!1,this.multiple=!1,this.param="q",this.autoSize=!1,this.autoSizePadding=4,this.firstFocus=!0,this.preventOutsideClickEvent=!1,this.handleFormReset=this.handleFormReset.bind(this)}connected(){var t;null!=(t=this.form)&&t.addEventListener("reset",this.handleFormReset),this.floatingUI=C(this,{referenceElement:this.control,popupElement:this.listbox,placement:"bottom",sync:"width",offsetOptions:4,autoSize:this.autoSize?"height":void 0,autoSizePadding:this.autoSizePadding}),P(this,{boundaries:[this.control,this.listbox],callback:(t,e)=>{this.preventOutsideClickEvent&&!et(e)?t.preventDefault():this.open&&this.hide(),this.preventOutsideClickEvent=!1}}),this.combobox=new Y(this.input,this.listbox,{multiple:this.multiple}),this.selectVariant=new(this.multiple?it:st)(this),this.selectVariant.connected(),this.searchVariant=new(this.src?M:V)(this),this.selectVariant.required=this.required}disconnected(){var t;this.hide(),null!=(t=this.form)&&t.removeEventListener("reset",this.handleFormReset),this.firstFocus=!0,this.preventOutsideClickEvent=!1}disabledChanged(t){this.input.disabled=t,this.clearButton&&(this.clearButton.disabled=t);for(const e of this.tagDismissButtons)e.disabled=t}requiredChanged(t){this.selectVariant.required=t}srcChanged(t){this.clear(),this.searchVariant=new(t?M:V)(this)}handleMousedown(t){t.target!==this.input&&t.preventDefault()}handleClick(t){this.disabled||(this.focus(),t.target.hasAttribute("data-trigger")&&this.show(),this.firstFocus&&this.input.value&&this.input.select(),this.firstFocus=!1)}handleInputMousedown(t){this.disabled||1===t.buttons&&this.show()}async handleInputBlur(){this.preventOutsideClickEvent=this.open,await this.hide(),this.firstFocus=!0}handleInputKeydown(t){var e,i,s;switch(t.key){case"Enter":this.open&&t.preventDefault();break;case"Escape":this.open&&(t.preventDefault(),t.stopPropagation(),this.hide());break;case"ArrowDown":t.altKey&&!this.open&&(t.preventDefault(),this.show());break;case"ArrowUp":t.altKey&&this.open&&(t.preventDefault(),this.hide());break;case"Backspace":this.multiple&&!this.input.value&&(e=this.removeLastTag())&&(t.preventDefault(),i=null!=(i=e.getAttribute("value"))?i:"",s=e.dataset["text"],this.emit("remove",{detail:{target:e,value:i,text:s||""}}))}}handleCommit(t){t.stopPropagation();var e,i,t=t.target;t instanceof HTMLElement&&(this.selectVariant.select(t),e=null!=(e=t.getAttribute("value"))?e:"",i=t.dataset["text"],this.emit("commit",{detail:{target:t,value:e,text:i||""}}))}handleFormReset(){this.reset(),this.hide(),this.emit("reset")}handleClear(){this.clear(),this.hide(),this.emit("clear")}handleTagRemove(t){var e,i,t=t.target.closest('[data-behavior="tag"]');t&&(this.removeTag(t),e=null!=(e=t.getAttribute("value"))?e:"",i=t.dataset["text"],this.emit("remove",{detail:{target:t,value:e,text:i||""}}))}handleInput(t){var t=t["target"];t instanceof HTMLInputElement&&(t=t.value.trim(),this.show(),this.searchVariant.search(t))}show(){this.open||(this.emit("show"),this.open=!0,this.floatingUI.start(),this.combobox.start(),this.selectVariant.start(),this.searchVariant.start(),this.emit("shown"))}async hide(){this.open&&(this.emit("hide"),this.open=!1,this.combobox.stop(),this.selectVariant.stop(),this.searchVariant.stop(),this.removeAttribute("no-options"),this.removeAttribute("error"),await this.floatingUI.stop(),this.emit("hidden"))}setValue(e,t){var i=this.options.find(t=>t.getAttribute("value")===e),t=t||(null==i?void 0:i.getAttribute("data-text"))||"";this.selectVariant.setValue(e,t)}removeValue(t){this.multiple&&t?this.selectVariant.removeValue(t):this.selectVariant.clear()}activate(t,{scroll:e=!0}={}){this.combobox.activate(t,{scroll:e})}deactivate(){this.combobox.deactivate()}focus(t){this.input.focus(t)}blur(){this.input.blur()}reset(){this.selectVariant.reset()}clear(){this.selectVariant.clear()}async reposition(){await this.floatingUI.update()}removeLastTag(){var t=this.tags[this.tags.length-1];if(t)return this.removeTag(t),t}removeTag(t){t=t.getAttribute("value");t&&this.removeValue(t)}checkIfListIsEmpty(){this.toggleAttribute("no-options",0===this.visibleOptions.length)}toggleSelectedClass(t){this.classList.toggle("awc-autocomplete--selected",t)}get value(){var t;return this.multiple?this.tags.map(t=>{return null!=(t=t.getAttribute("value"))?t:""}):null!=(t=null==(t=this.querySelector('input[data-behavior="hidden-field"]'))?void 0:t.value)?t:""}get options(){return this.combobox.options}get visibleOptions(){return this.options.filter(t=>!t.hidden)}get activeOption(){return this.combobox.activeOption}get form(){return this.closest("form")}get tags(){return[...this.querySelectorAll('[data-behavior="tag"]')]}};t([i({type:Boolean})],N.prototype,"open",void 0),t([i({type:Boolean})],N.prototype,"disabled",void 0),t([i({type:Boolean})],N.prototype,"required",void 0),t([i({type:Boolean})],N.prototype,"multiple",void 0),t([i()],N.prototype,"src",void 0),t([i()],N.prototype,"param",void 0),t([i({type:Boolean})],N.prototype,"autoSize",void 0),t([i({type:Number})],N.prototype,"autoSizePadding",void 0),t([o()],N.prototype,"control",void 0),t([o()],N.prototype,"input",void 0),t([o()],N.prototype,"listbox",void 0),t([o()],N.prototype,"optionsContainer",void 0),t([o()],N.prototype,"clearButton",void 0),t([n()],N.prototype,"tagDismissButtons",void 0),t([n()],N.prototype,"groups",void 0),N=t([s("awc-autocomplete")],N);const T=new Set;let D=class extends f{constructor(){super(...arguments),this.open=!1,this.hideOnOutsideClick=!0}connected(){this.open&&this.show()}disconnected(){this.hideWithoutEmitting()}show(){this.dialog.showModal(),this.hideOverflow(),this.open=!0}hide(){this.hideWithoutEmitting(),this.emit("hidden")}handleClick(t){var e;this.hideOnOutsideClick&&!t.defaultPrevented&&(e=t.target)instanceof HTMLElement&&e===this.dialog&&((e=e.getBoundingClientRect()).top<=t.clientY&&t.clientY<=e.top+e.height&&e.left<=t.clientX&&t.clientX<=e.left+e.width||this.hide())}handleKeydown(t){"Escape"===t.key&&(t.stopPropagation(),this.emit("hidden"))}hideWithoutEmitting(){var t;this.dialog.open&&(this.dialog.close(),null!=(t=this.nestedDialog))&&t.hide(),this.showOverflow(),this.open=!1}hideOverflow(){this._scrollLockController=function(t,{abortSignal:e}={}){T.add(t);var i,s=new AbortController,e=e||s.signal,o=window.innerWidth-document.documentElement.clientWidth;let n,r;return void 0===n&&0<o&&(i=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10),n=document.body.style.paddingRight,document.body.style.paddingRight=i+o+"px"),void 0===r&&(r=document.body.style.overflow,document.body.style.overflow="hidden"),e.addEventListener("abort",()=>{T.delete(t),0===T.size&&(void 0!==n&&(document.body.style.paddingRight=n,n=void 0),void 0!==r)&&(document.body.style.overflow=r,r=void 0)}),s}(this)}showOverflow(){var t;null!=(t=this._scrollLockController)&&t.abort()}get nestedDialog(){return this.querySelector(this.identifier)}},q=(t([i({type:Boolean})],D.prototype,"open",void 0),t([i({type:Boolean})],D.prototype,"hideOnOutsideClick",void 0),t([o()],D.prototype,"dialog",void 0),D=t([s("awc-dialog")],D),class extends f{constructor(){super(...arguments),this.open=!1,this.placement="bottom",this.strategy="fixed",this.clickBoundaries=[]}connected(){this.floatingUI=C(this,{referenceElement:this.button,popupElement:this.panel,arrowElement:this.arrow,arrowPadding:this.arrowPadding,placement:this.placement,strategy:this.strategy,offsetOptions:8,flipOptions:{fallbackAxisSideDirection:"end"}}),P(this,{boundaries:this.boundaries,callback:()=>{this.open&&!this.hasNestedOpenPopovers&&this.hide()}}),this.open&&this.show()}disconnected(){this.hide()}async toggle(){this.open?(this.emit("hide"),await this.hide(),this.emit("hidden")):(this.emit("show"),this.show(),this.emit("shown"))}show(){this.open||(this.closeOtherPopovers(),this.open=!0,this.panel.show(),this.button.setAttribute("aria-expanded","true"),this.floatingUI.start())}async hide(t){this.open&&(this.open=!1,this.panel.close(),await this.floatingUI.stop(),this.button.setAttribute("aria-expanded","false"),t)&&this.button.focus()}handleKeydown(t){var e;"Escape"!==t.key||(e=t.target.closest(this.identifier))!==this&&null!=e&&e.open||this.open&&(t.preventDefault(),t.stopPropagation(),this.hide(),this.button.focus())}async reposition(){await this.floatingUI.update()}closeOtherPopovers(){for(const t of Array.from(document.querySelectorAll(this.identifier)))t===this||t.contains(this)||t.hide()}get hasNestedOpenPopovers(){return Array.from(this.querySelectorAll(this.identifier)).some(t=>t.open)}get arrowPadding(){return g(getComputedStyle(this.panel).borderRadius)||2}get boundaries(){return this.clickBoundaries.map(t=>document.querySelector(t)).concat([this.button,this.panel])}});t([i({type:Boolean})],q.prototype,"open",void 0),t([i()],q.prototype,"placement",void 0),t([i()],q.prototype,"strategy",void 0),t([i({type:Array})],q.prototype,"clickBoundaries",void 0),t([o()],q.prototype,"button",void 0),t([o()],q.prototype,"panel",void 0),t([o()],q.prototype,"arrow",void 0),q=t([s("awc-popover")],q)});
|
|
5
|
+
`.trim()))})}connect(t,e){var i,n;this.targetsByKey.add(t,e),this.orderedByKey.delete(t),this.isKeyMultiple(t)||(n=(i=this.departedByKey.get(t))?.element===e&&i.delivery===b(),this.heldSinceByKey.set(t,n?i.since:b())),this.invokeCallback(t,e,"connected")}takesOver(t,e,i){return this.heldSinceByKey.get(t)===b()&&ce(i,e)<0&&this.claims(i,t)&&this.claims(e,t)}handOver(e,t,i){var n=this.tokensByElement.valuesForKey(t).filter(t=>O(t.content).key===e);for(const s of n)this.tokensByElement.delete(t,s),this.waitingByKey.add(e,s);try{this.invokeCallback(e,t,"disconnected")}finally{this.targetsByKey.delete(e,t),this.stopWatching&&(n[0]&&this.reportIfLeftWaiting(e,n[0]),this.tokensByElement.add(i.element,i),p(()=>this.connect(e,i.element)))}}keptForMovedTarget(t,e){var i=this.departedByKey.get(t);return void 0!==i&&i.element!==e&&i.delivery===b()&&i.since!==i.delivery&&this.claims(i.element,t)}adoptWaiting(t,e){if(this.stopWatching&&this.waitingByKey.get(t)&&!this.targetsByKey.get(t)&&(!e||!x.stillRoutesTo(this.instance,e))){var i=this.waitingByKey.valuesForKey(t).filter(t=>x.stillRoutesTo(this.instance,t));const[n]=i.sort((t,e)=>ce(t.element,e.element));if(n){for(const s of i)s.element===n.element&&(this.waitingByKey.delete(t,s),this.tokensByElement.add(s.element,s));p(()=>this.connect(t,n.element))}else e&&Promise.resolve().then(()=>S(()=>this.adoptWaiting(t)))}}orderedTargets(t){let e=this.orderedByKey.get(t);return e||(e=this.targetsByKey.valuesForKey(t).sort(ce),this.orderedByKey.set(t,e)),e}readNow(t,e,i){var n=this.nowByKey.get(t);return n?.version===e?n.value:(n=i(),this.nowByKey.set(t,{version:e,value:n}),n)}stableArray(t,e){var i,n,s=this.stableByKey.get(t);return s===e||s&&(n=e,(i=s).length===n.length)&&i.every((t,e)=>t===n[e])?s:(this.stableByKey.set(t,e),e)}isInDocumentTree(){return this.instance.getRootNode()===document}claimants(t){var e=this.instance,i=`[data-target*="${CSS.escape(this.identifier+"."+t)}"]`,n=[];e.matches(i)&&this.claims(e,t)&&n.push(e);for(const s of e.querySelectorAll(i))this.claims(s,t)&&n.push(s);return n}claimantNow(t){var[e]=this.targetsByKey.valuesForKey(t);return e&&this.claims(e,t)?e:this.claimants(t)[0]??null}claims(t,e){return x.routesTo(this.instance,t,t=>{t=O(t);return t.identifier===this.identifier&&t.key===e})}isStillReferenced(t,e){return this.tokensByElement.valuesForKey(t).some(t=>t.content===e)}isValidIdKeyPair(t,e){return!(!e||t!==this.identifier||!this.declarations.has(e))}invokeCallback(t,e,i){i=this.instance[""+t+((t=i).charAt(0).toUpperCase()+t.slice(1))];"function"==typeof i&&i.call(this.instance,e)}isKeyMultiple(t){return this.declarations.get(t)?.multiple??!1}get identifier(){return this.instance.identifier}}const ue={phase:"idle"},de={phase:"initialized"};class pe extends HTMLElement{constructor(){super(...arguments),this.property=new dt(this),this.target=new he(this),this.action=new ie(this),this._lifecycle=ue}connectedCallback(){var t=this._lifecycle;"tearingDown"===t.phase?t.reconnected=!0:"idle"===t.phase&&this._asyncConnect()}static get observedAttributes(){return Array.from(it(this.prototype,Z).keys(),ht)}attributeChangedCallback(t,e,i){var n=this._lifecycle["phase"];"initialized"!==n&&"tearingDown"!==n||e===i||"function"==typeof(t=this[(n=t.replace(rt,(t,e,i)=>i?i.toUpperCase():"").replace(at,t=>t.toLowerCase()))+"Changed"])&&(n=this.property.change(n,e,i))&&t.call(this,n.newValue,n.oldValue)}disconnectedCallback(){if("initialized"===this._lifecycle.phase){var t={phase:"tearingDown",reconnected:!1},e=(this._lifecycle=t,this.removeAttribute(ne),e=this,re.delete(e),[()=>this.disconnected(),()=>this.action.stop(),()=>this.target.stop(),()=>this.property.stop()]);try{u(e,t=>t())}finally{this._lifecycle=ue,t.reconnected&&this.isConnected&&this._asyncConnect()}}}connected(){}disconnected(){}emit(t,{target:e=this,prefix:i=this.identifier,...n}={}){return[e,i,{detail:t={},...n}={}]=[e,i?i+":"+t:t,n],i=new CustomEvent(i,{bubbles:!0,composed:!0,detail:t,...n}),e.dispatchEvent(i),i}get identifier(){return this.tagName.toLowerCase()}async _asyncConnect(){var t={phase:"initializing"};this._lifecycle=t;try{if(this.property.start(),await Ot(),this.isConnected&&(customElements.upgrade(this),await this._resolveUndefinedElements(),this.isConnected))if(this.target.start(),this.isConnected)if(this.action.start(),this.isConnected){this._lifecycle=de,this.setAttribute(ne,"");var e=this,i=(re.add(e),ae.get(e));if(i){ae.delete(e);for(const n of i)p(()=>n(e))}this.connected()}else this._abandonInit();else this._abandonInit()}finally{this._lifecycle===t&&(this._lifecycle=ue)}}_abandonInit(){this._lifecycle=ue,u([()=>this.action.stop(),()=>this.target.stop()],t=>t())}_resolveUndefinedElements(){var t=Array.from(this.querySelectorAll(":not(:defined)")),e=this.constructor.migratedToWhenInitialized,e=(0<t.length&&!e&&console.warn(`[impulse] <${this.identifier}> waits for descendant custom elements to be defined before invoking target `+"connected callbacks. This is deprecated and will be removed in the next major version. If a connected callback reads properties on a target element, await whenInitialized(target) inside the callback instead. Set ImpulseElement.migratedToWhenInitialized = true to silence this warning."),t.map(t=>customElements.whenDefined(t.localName)));return Promise.all(e)}}function P(t,e){return t===e||"both"===t}function fe(t){return t.split("-")[0]}const N={placement:"bottom",strategy:"fixed",flip:!(pe.migratedToWhenInitialized=!1),keepFlipped:!1,shift:!0};function me(S){let A,E=!1,O=0,x;return{prime:function(){var{floating:t,strategy:e=N.strategy}=S();t&&(t.style.position=e,t.style.top="0px",t.style.left="0px")},reposition:async function(){var t=S();const{anchor:e,floating:i,floatingUI:n={}}=t;if(e&&i){const p=++O,f=()=>p!==O;var s,o,r,a=t.placement??N.placement,l=t.flip??N.flip,c=!0!==l&&l?l:{},h=n.flip?.fallbackPlacements??c.fallbackPlacements,u=(x=l&&t.keepFlipped&&x?.requested===a?x:void 0)?(d=a,o=x.placement,r=h,(u=fe(o))===fe(d)?d:r?o:(r=u,(o=(o=d).split("-")[1])?r+"-"+o:r)):a,d=[C.offset(n.offset??{mainAxis:t.distance??0,crossAxis:t.skidding??0})];const m=t["sync"];m?d.push(C.size({apply:({rects:t})=>{f()||(i.style.width=P(m,"width")?t.reference.width+"px":"",i.style.height=P(m,"height")?t.reference.height+"px":"")}})):(i.style.width="",i.style.height=""),l&&d.push(C.flip({...c,padding:([o=0,{autoSize:r,autoSizePadding:l=0}]=[c.padding,t],r?(l=Math.max(o,l+1),{top:c=P(r,"height")?l:o,bottom:c,left:c=P(r,"width")?l:o,right:c}):o),...n.flip,fallbackPlacements:(l=a,s=u,(c=h)&&s!==l?[l,...c].filter(t=>t!==s):c)}));h=t.shift??N.shift;h&&d.push(C.shift({...!0===h?{}:h,...n.shift}));const v=t["autoSize"];v?(d.push(C.size({padding:t.autoSizePadding??0,apply:({availableWidth:t,availableHeight:e})=>{f()||(P(v,"height")?i.style.setProperty("--awc-auto-size-height",e+"px"):i.style.removeProperty("--awc-auto-size-height"),P(v,"width")?i.style.setProperty("--awc-auto-size-width",t+"px"):i.style.removeProperty("--awc-auto-size-width"))}})),E=!0):E&&(i.style.removeProperty("--awc-auto-size-height"),i.style.removeProperty("--awc-auto-size-width"),E=!1),d.push(...n.middleware??[]);l=t.arrow;l&&d.push(C.arrow({element:l,padding:t.arrowPadding??0}));const{x:y,y:g,placement:b,strategy:w,middlewareData:k}=await C.computePosition(e,i,{placement:u,middleware:d,strategy:t.strategy??N.strategy});if(!f()){if(Object.assign(i.style,{left:y+"px",top:g+"px",position:w}),k.arrow&&l){const{x:y,y:g}=k.arrow;Object.assign(l.style,{left:"number"==typeof y?y+"px":"",top:"number"==typeof g?g+"px":""})}i.setAttribute("x-placement",b),t.keepFlipped&&A&&(x={placement:b,requested:a})}}},start:function(t){var{anchor:e,floating:i}=S();e&&i&&(A?.(),A=C.autoUpdate(e,i,t))},stop:async function(){return x=void 0,new Promise(t=>{A?(A(),A=void 0,requestAnimationFrame(()=>t())):t()})}}}let T=class extends pe{constructor(){super(...arguments),this.placement=N.placement,this.active=!1,this.strategy=N.strategy,this.distance=0,this.skidding=0,this.flip=N.flip,this.flipPadding=0,this.fallbackPlacements=[],this.fallbackStrategy="bestFit",this.keepFlipped=N.keepFlipped,this.shift=N.shift,this.shiftPadding=0,this.autoSizePadding=0,this.positioner=me(()=>this.positioningOptions)}connected(){this.follow()}disconnected(){this.unfollow()}async anchorIdChanged(t){await this.unfollow(),t&&this.anchorElement&&this.follow()}async activeChanged(t){t?this.follow():await this.unfollow()}start(){this.active?this.follow():this.active=!0}async stop(){var t=this.unfollow();return this.active=!1,t}async reposition(){this.active&&this.anchorElement&&await this.positioner.reposition()}follow(){this.anchorElement&&(this.positioner.prime(),this.positioner.start(()=>this.reposition()))}unfollow(){return this.positioner.stop()}get anchorElement(){return document.getElementById(this.anchorId)}get arrowElement(){return this.querySelector("[data-arrow]")}get positioningOptions(){return{anchor:this.anchorElement,floating:this,placement:this.placement,strategy:this.strategy,distance:this.distance,skidding:this.skidding,flip:this.flip&&{padding:this.flipPadding,fallbackPlacements:this.fallbackPlacements.length?this.fallbackPlacements:void 0,fallbackStrategy:this.fallbackStrategy},keepFlipped:this.keepFlipped,shift:this.shift&&{padding:this.shiftPadding},sync:this.sync,autoSize:this.autoSize,autoSizePadding:this.autoSizePadding,arrow:this.arrowElement,arrowPadding:this.arrowPadding}}};t([e()],T.prototype,"anchorId",void 0),t([e()],T.prototype,"placement",void 0),t([e({type:Boolean})],T.prototype,"active",void 0),t([e()],T.prototype,"strategy",void 0),t([e({type:Number})],T.prototype,"distance",void 0),t([e({type:Number})],T.prototype,"skidding",void 0),t([e()],T.prototype,"sync",void 0),t([e({type:Boolean})],T.prototype,"flip",void 0),t([e({type:Number})],T.prototype,"flipPadding",void 0),t([e({type:Array})],T.prototype,"fallbackPlacements",void 0),t([e()],T.prototype,"fallbackStrategy",void 0),t([e({type:Boolean})],T.prototype,"keepFlipped",void 0),t([e({type:Boolean})],T.prototype,"shift",void 0),t([e({type:Number})],T.prototype,"shiftPadding",void 0),t([e()],T.prototype,"autoSize",void 0),t([e({type:Number})],T.prototype,"autoSizePadding",void 0),t([e({type:Number})],T.prototype,"arrowPadding",void 0),T=t([n("awc-anchor")],T);var ve=0;function ye(){return ve+=1,`ambiki-${Math.random().toString().slice(2,6)}-`+ve}function ge(t){return!t.hasAttribute("disabled")&&"true"!==t.getAttribute("aria-disabled")}var be=!!navigator.userAgent.match(/Macintosh/),we=class{input;list;multiple;isMouseMoving=!1;constructor(t,e,{multiple:i=!1}={}){this.input=t,this.list=e,this.multiple=i,this.list.id||(this.list.id=ye()),this.input.getAttribute("aria-expanded")||this.input.setAttribute("aria-expanded","false"),this.multiple&&this.input.setAttribute("aria-multiselectable","true"),this.input.setAttribute("role","combobox"),this.input.setAttribute("aria-haspopup","listbox"),this.input.setAttribute("aria-autocomplete","list"),this.list.setAttribute("role","listbox"),this.onKeydown=this.onKeydown.bind(this),this.onClick=this.onClick.bind(this),this.onListMouseover=this.onListMouseover.bind(this),this.onListMousemove=this.onListMousemove.bind(this)}start(){this.isMouseMoving=!1,this.input.setAttribute("aria-expanded","true"),this.input.setAttribute("aria-controls",this.list.id),this.input.addEventListener("keydown",this.onKeydown),this.list.addEventListener("click",this.onClick),this.list.addEventListener("mouseover",this.onListMouseover),this.list.addEventListener("mousemove",this.onListMousemove),this.initializeOptions()}stop(){this.isMouseMoving=!1,this.input.setAttribute("aria-expanded","false"),this.input.removeAttribute("aria-controls"),this.input.removeEventListener("keydown",this.onKeydown),this.list.removeEventListener("click",this.onClick),this.list.removeEventListener("mouseover",this.onListMouseover),this.list.removeEventListener("mousemove",this.onListMousemove),this.deselectAll(),this.deactivate()}onKeydown(t){if(this.isMouseMoving=!1,!(t.shiftKey||t.metaKey||t.altKey||!be&&t.ctrlKey))switch(t.key){case"Enter":case"Tab":this.activeOption&&ge(this.activeOption)&&(t.preventDefault(),t.stopPropagation(),this.activeOption.click());break;case"Escape":this.deactivate();break;case"ArrowDown":t.preventDefault(),t.stopPropagation(),this.activeOption?this.move(1):this.activate(this.visibleOptions[0],{scroll:!0});break;case"ArrowUp":t.preventDefault(),t.stopPropagation(),this.activeOption?this.move(-1):this.activate(this.visibleOptions[this.visibleOptions.length-1],{scroll:!0});break;case"Home":t.preventDefault(),t.stopPropagation(),this.activate(this.visibleOptions[0],{scroll:!0});break;case"End":t.preventDefault(),t.stopPropagation(),this.activate(this.visibleOptions[this.visibleOptions.length-1],{scroll:!0});break;default:t.ctrlKey||this.deactivate()}}onClick(t){t=ke(t.target);t&&ge(t)&&(this.multiple&&this.isSelected(t)?this.deselect(t):this.select(t),t.dispatchEvent(new CustomEvent("combobox:commit",{bubbles:!0})))}onListMouseover(t){var e;this.isMouseMoving?(e=ke(t.target))&&this.activate(e):t.preventDefault()}onListMousemove(t){!this.isMouseMoving&&(this.isMouseMoving=!0,t=ke(t.target))&&this.activate(t)}select(t){if(this.multiple)t.setAttribute("aria-selected","true");else for(var e of this.options)e.setAttribute("aria-selected",(e===t).toString())}deselect(t){t.setAttribute("aria-selected","false")}deselectAll(){for(var t of this.options)this.deselect(t)}activate(t,{scroll:e=!1}={}){for(var i of this.options)i.id===t.id?(i.setAttribute("data-active",""),this.input.setAttribute("aria-activedescendant",i.id),e&&i.scrollIntoView({block:"nearest"})):i.removeAttribute("data-active")}deactivate(){this.input.removeAttribute("aria-activedescendant");for(var t of Array.from(this.list.querySelectorAll('[role="option"][data-active]')))t.removeAttribute("data-active")}isSelected(t){return"true"===t.getAttribute("aria-selected")}get options(){return Array.from(this.list.querySelectorAll('[role="option"]'))}get visibleOptions(){return this.options.filter(Se)}get activeOption(){return this.list.querySelector("[data-active]")}move(t){this.activeOption&&(t=function(t,e,i){let n=t.indexOf(e),s=(n===t.length-1&&1===i&&(n=-1),1===i?0:t.length-1);return t[s=e&&0<=n&&0<=(e=n+i)&&e<t.length?e:s]}(this.visibleOptions,this.activeOption,t),this.activate(t,{scroll:!0}))}initializeOptions(){for(var t of this.options)t.setAttribute("tabindex","-1"),t.id||(t.id=ye()),t.hasAttribute("aria-selected")||this.deselect(t)}};function ke(t){return t&&t.closest('[role="option"]')||!1}function Se(t){return!t.hidden&&!(t instanceof HTMLInputElement&&"hidden"===t.type)&&(0<t.offsetWidth||0<t.offsetHeight)}function Ae(t,e){void 0===e&&(e=!0);var i=null==t||null==(i=t.getAttribute)?void 0:i.call(t,"inert");return""===i||"true"===i||e&&t&&("function"==typeof t.closest?t.closest("[inert]"):Ae(t.parentNode))}function Ee(t){return!isNaN(parseInt(t.getAttribute("tabindex"),10))}function Oe(t){var e,i;if(t)return t.tabIndex<0&&(/^(AUDIO|VIDEO|DETAILS)$/.test(t.tagName)||""===(i=null==(e=t)||null==(i=e.getAttribute)?void 0:i.call(e,"contenteditable"))||"true"===i)&&!Ee(t)?0:t.tabIndex;throw new Error("No node provided")}function xe(t,e){return t.tabIndex===e.tabIndex?t.documentOrder-e.documentOrder:t.tabIndex-e.tabIndex}function Ce(t){return"INPUT"===t.tagName}function Pe(t){if(!t.name)return 1;function e(t){return i.querySelectorAll('input[type="radio"][name="'+t+'"]')}var i=t.form||Ie(t);if("undefined"!=typeof window&&void 0!==window.CSS&&"function"==typeof window.CSS.escape)n=e(window.CSS.escape(t.name));else try{n=e(t.name)}catch(t){return console.error("Looks like you have a radio button with a name attribute containing invalid CSS selector characters and need the CSS.escape polyfill: %s",t.message),0}var n=function(t,e){for(var i=0;i<t.length;i++)if(t[i].checked&&t[i].form===e)return t[i]}(n,t.form);return!n||n===t}function Ne(t){return Ce(e=t)&&"radio"===e.type&&!Pe(t);var e}function Te(t){var e=(t=t.getBoundingClientRect()).width,t=t.height;return 0===e&&0===t}function Me(t,e){var i=e.displayCheck,n=e.getShadowRoot;if("full-native"===i&&"checkVisibility"in t)return!t.checkVisibility({checkOpacity:!1,opacityProperty:!1,contentVisibilityAuto:!0,visibilityProperty:!0,checkVisibilityCSS:!0});if("hidden"===(e=getComputedStyle(t).visibility)||"collapse"===e)return 1;if(e=M.call(t,"details>summary:first-of-type")?t.parentElement:t,M.call(e,"details:not([open]) *"))return 1;if(i&&"full"!==i&&"full-native"!==i&&"legacy-full"!==i){if("non-zero-area"===i)return Te(t)}else{if("function"==typeof n){for(e=t;t;){var s=t.parentElement,o=Ie(t);if(s&&!s.shadowRoot&&!0===n(s))return Te(t);t=t.assignedSlot||(s||o===t.ownerDocument?s:o.host)}t=e}if(function(t){var e,i=t&&Ie(t),n=null==(e=i)?void 0:e.host,s=!1;if(i&&i!==t)for(s=!!(null!=(e=n)&&null!=(e=e.ownerDocument)&&e.contains(n)||null!=t&&null!=(e=t.ownerDocument)&&e.contains(t));!s&&n;)var o,s=!(null==(o=n=null==(o=i=Ie(n))?void 0:o.host)||null==(o=o.ownerDocument)||!o.contains(n));return s}(t))return!t.getClientRects().length;if("legacy-full"!==i)return 1}}var i=["input:not([inert]):not([inert] *)","select:not([inert]):not([inert] *)","textarea:not([inert]):not([inert] *)","a[href]:not([inert]):not([inert] *)","area[href]:not([inert]):not([inert] *)","button:not([inert]):not([inert] *)","[tabindex]:not(slot):not([inert]):not([inert] *)","audio[controls]:not([inert]):not([inert] *)","video[controls]:not([inert]):not([inert] *)",'[contenteditable]:not([contenteditable="false"]):not([inert]):not([inert] *)',"details>summary:first-of-type:not([inert]):not([inert] *)","details:not([inert]):not([inert] *)"],Be=i.join(","),Le="undefined"==typeof Element,M=Le?function(){}:Element.prototype.matches||Element.prototype.msMatchesSelector||Element.prototype.webkitMatchesSelector,Ie=!Le&&Element.prototype.getRootNode?function(t){var e;return null==t||null==(e=t.getRootNode)?void 0:e.call(t)}:function(t){return null==t?void 0:t.ownerDocument},qe=function(t,e,i){var n;return Ae(t)?[]:(n=Array.prototype.slice.apply(t.querySelectorAll(Be)),e&&M.call(t,Be)&&n.unshift(t),n.filter(i))},Ke=function(t,e,i){for(var n=[],s=Array.from(t);s.length;){var o,r,a=s.shift();Ae(a,!1)||("SLOT"===a.tagName?(o=(o=a.assignedElements()).length?o:a.children,o=Ke(o,!0,i),i.flatten?n.push.apply(n,o):n.push({scopeParent:a,candidates:o})):(M.call(a,Be)&&i.filter(a)&&(e||!t.includes(a))&&n.push(a),o=a.shadowRoot||"function"==typeof i.getShadowRoot&&i.getShadowRoot(a),r=!Ae(o,!1)&&(!i.shadowRootFilter||i.shadowRootFilter(a)),o&&r?(r=Ke((!0===o?a:o).children,!0,i),i.flatten?n.push.apply(n,r):n.push({scopeParent:a,candidates:r})):s.unshift.apply(s,a.children)))}return n},Fe=function(t,e){var i;return!(e.disabled||Ce(i=e)&&"hidden"===i.type||Me(e,t)||"DETAILS"===(i=e).tagName&&Array.prototype.slice.apply(i.children).some(function(t){return"SUMMARY"===t.tagName})||function(t){if(/^(INPUT|BUTTON|SELECT|TEXTAREA)$/.test(t.tagName))for(var e=t.parentElement;e;){if("FIELDSET"===e.tagName&&e.disabled){for(var i=0;i<e.children.length;i++){var n=e.children.item(i);if("LEGEND"===n.tagName)return!!M.call(e,"fieldset[disabled] *")||!n.contains(t)}return!0}e=e.parentElement}return!1}(e))},Ve=function(t,e){return!(Ne(e)||Oe(e)<0||!Fe(t,e))},De=function(t){t=parseInt(t.getAttribute("tabindex"),10);return!!(isNaN(t)||0<=t)},Re=function(t){var a=[],l=[];return t.forEach(function(t,e){var i,n=!!t.scopeParent,s=n?t.scopeParent:t,o=(o=n,(i=Oe(r=s))<0&&o&&!Ee(r)?0:i),r=n?Re(t.candidates):s;0===o?n?a.push.apply(a,r):a.push(s):l.push({documentOrder:e,tabIndex:o,item:t,isScope:n,content:r})}),l.sort(xe).reduce(function(t,e){return e.isScope?t.push.apply(t,e.content):t.push(e.content),t},[]).concat(a)},ze=i.concat("iframe:not([inert]):not([inert] *)").join(",");function We(t){let e=t;for(;null!==e;){if(function(t,e){if(e=e||{},t)return!1!==M.call(t,ze)&&Fe(e,t);throw new Error("No node provided")}(e)||e.hasAttribute("data-loosely-focusable"))return 1;e=e.parentElement}}const _e=new WeakMap;function je(t,e){let i=_e.get(t);if(!i){i=[],_e.set(t,i);{var n=i;const s=t.disconnected.bind(t);Object.assign(t,{disconnected(){for(const t of n.splice(0).reverse())t();s()}})}}i.push(e)}function Ue(t,e){const f=function(t){if("function"==typeof t)return t;const e={...t};return()=>e}(e),i=me(()=>{return[{anchorElement:t,floatingElement:e,arrowElement:i,arrowPadding:n=0,middleware:s=[],offsetOptions:o=0,placement:r,flipOptions:a,shiftOptions:l,keepFlipped:c,strategy:h,sync:u,autoSize:d,autoSizePadding:p=0}]=[f()],{anchor:t,floating:e,placement:r,keepFlipped:c,strategy:h,sync:u,autoSize:d,autoSizePadding:p,arrow:i,arrowPadding:n,floatingUI:{offset:o,flip:a,shift:l,middleware:s}};var t,e,i,n,s,o,r,a,l,c,h,u,d,p});async function n(){t.open&&await i.reposition()}function s(){return i.stop()}return i.prime(),i.reposition(),je(t,()=>{s()}),{start:function(){i.start(n)},update:n,stop:s}}function He(t,{boundaries:n,callback:s}){const e=new AbortController;var i=e["signal"];let o=null;function r(){o=null}document.addEventListener("mousedown",function(t){o=0<t.button?null:t.composedPath?.()?.[0]||t.target},{capture:!0,signal:i}),document.addEventListener("click",function(t){var e=o;if(o=null,e&&!t.defaultPrevented&&e.getRootNode().contains(e)&&e.isConnected){for(const i of n)if(null!==i){if(i.contains(e))return;if(t.composed&&t.composedPath().includes(i))return}s(t,e)}},{capture:!0,signal:i}),document.addEventListener("contextmenu",r,{capture:!0,signal:i}),document.addEventListener("dragstart",r,{capture:!0,signal:i}),je(t,()=>{r(),e.abort()})}class Qe extends pe{constructor(){super(...arguments),this._opened=!1}connected(){this.open&&this.openQuietly({initial:!0})}disconnected(){this.closeQuietly()}openChanged(t){t?this.show():this.hide()}requestShow(){le(this)&&!this._opened&&this.emitRequest("show")&&this.othersAllowShow()&&this.show()}async requestHide(t){this._opened&&this.emitRequest("hide")&&await this.hide(t)}show(){this._opened||(le(this)?(this.openQuietly({initial:!1}),this.emit("shown")):this.open=!0)}async hide(t){this._opened?(t=this.closeQuietly(t),this.open=!1,t&&await t,this._opened||this.emit("hidden")):this.open=!1}get opened(){return this._opened}othersAllowShow(){return!0}emitRequest(t){return!this.emit(t,{cancelable:!0}).defaultPrevented}closeQuietly(t){if(this._opened)return this._opened=!1,this.closeParts(t)}openQuietly(t){this._opened=!0,this.open=!0;try{this.openParts(t)}catch(t){throw this._opened=!1,this.open=!1,t}}}function $e(t){return{target:t,value:t.getAttribute("value")??"",text:t.dataset.text||""}}const Je={bubbles:!1,prefix:!1};class Xe{constructor(t){this.cachedOptions="",this.autocomplete=t,this.debouncedRequest=function(e,i){let n;function t(...t){clearTimeout(n),n=setTimeout(()=>{e.apply(this,t)},i)}return t.clear=()=>{clearTimeout(n)},t}(t=>this.makeRequest(t),300)}search(t){this.autocomplete.setAttribute("loading",""),this.autocomplete.removeAttribute("error"),this.autocomplete.combobox.deactivate(),this.abortController?.abort(),this.debouncedRequest(t)}start(){this.cachedOptions?this.insertOptions(this.cachedOptions,{cached:!0}):this.search("")}stop(){}disconnected(){var t=Boolean(this.abortController);this.debouncedRequest.clear(),this.abortController?.abort(),this.abortController=void 0,this.autocomplete.removeAttribute("loading"),t&&this.emit("loadend")}async makeRequest(t){this.emit("loadstart"),this.abortController?.abort();var e=(this.abortController=new AbortController)["signal"],i=new URL(this.autocomplete.src,window.location.href),n=new URLSearchParams(i.search.slice(1));n.append(this.autocomplete.param,t),i.search=n.toString();try{var s=await fetch(i.toString(),{signal:e,credentials:"same-origin",headers:{accept:"text/fragment+html"}});if(!s.ok)throw new Error(await s.text());var o=await s.text();""===t&&(this.cachedOptions=o),await this.insertOptions(o),this.abortController=void 0,this.emit("load"),this.autocomplete.removeAttribute("loading"),this.emit("loadend")}catch(t){t instanceof Error&&"AbortError"===t.name||(this.abortController=void 0,this.autocomplete.open&&this.autocomplete.setAttribute("error",""),this.emit("error"),this.autocomplete.removeAttribute("loading"),this.emit("loadend"))}}async insertOptions(t,{cached:e=!1}={}){this.autocomplete.optionsContainer.innerHTML=t,e||this.autocomplete.combobox.initializeOptions(),this.autocomplete.open&&(this.autocomplete.checkIfListIsEmpty(),this.autocomplete.selectVariant.start(),await this.autocomplete.reposition())}emit(t){this.autocomplete.emit(t,Je)}}class Ye{constructor(t){this.autocomplete=t}search(t){var e,i,n=this.autocomplete.options,s=t.toLowerCase(),o=new Map;for(const l of n){var r=l.closest('[role="group"]'),a=!s||!!l.getAttribute("data-text")?.toLowerCase().includes(s);l.hidden=!a,r&&o.set(r,o.get(r)||a)}for([e,i]of o)e.hidden=!i;t=this.autocomplete.visibleOptions[0];t?this.autocomplete.combobox.activate(t):this.autocomplete.combobox.deactivate(),this.autocomplete.checkIfListIsEmpty()}start(){this.autocomplete.checkIfListIsEmpty()}stop(){this.resetOptions()}disconnected(){}resetOptions(){for(const t of this.autocomplete.groups)t.hidden=!1;for(const e of this.autocomplete.options)e.hidden=!1}}class Ge{constructor(t){this.selectedValues=new Set,this.defaultSelectedValues=[],this.findByValue=e=>t=>t.getAttribute("value")===e,this.autocomplete=t}connected(){this.defaultSelectedValues=this.tags.reduce((t,e)=>{var e=e.querySelector('[data-behavior="hidden-field"]'),i=e.value;return this.selectedValues.add(i),t.push({value:i,text:e.getAttribute("data-text")||""}),t},[])}start(){this.selectOrDeselectOptions(),this.firstActivableOption&&this.autocomplete.combobox.activate(this.firstActivableOption,{scroll:!0})}stop(){this.autocomplete.input.value=""}reset(){this.clear(),this.defaultSelectedValues.forEach(({value:t,text:e})=>this.setValue(t,e))}select(t){var e=t.getAttribute("value"),t=t.dataset["text"];e&&(this.selectedValues.has(e)?this.removeValue(e):this.setValue(e,t||""))}setValue(t,e){this.selectedValues.has(t)||(this.selectedValues.add(t),this.insertTag(t,e.trim()),this.toggleSelectedClass(),this.required=this.autocomplete.required,this.autocomplete.open&&(e=this.autocomplete.options.find(this.findByValue(t)))&&this.autocomplete.combobox.select(e))}clear(){this.selectedValues.forEach(t=>this.removeValue(t))}removeValue(t){this.selectedValues.has(t)&&(this.selectedValues.delete(t),this.removeTag(t),this.toggleSelectedClass(),this.required=this.autocomplete.required,t=this.autocomplete.options.find(this.findByValue(t)))&&this.autocomplete.combobox.deselect(t)}isSelected(t){return this.selectedValues.has(t)}set required(t){!t||0<this.selectedValues.size?this.autocomplete.input.required=!1:this.autocomplete.input.required=!0}selectOrDeselectOptions(){for(const e of this.autocomplete.options){var t=e.getAttribute("value");t&&this.selectedValues.has(t)?this.autocomplete.combobox.select(e):this.autocomplete.combobox.deselect(e)}}insertTag(t,e){var i=this.template.content.cloneNode(!0),n=i.querySelector('[data-behavior="tag"]'),s=i.querySelector('[data-behavior="text"]'),o=i.querySelector('[data-behavior="hidden-field"]');n.setAttribute("value",t),n.setAttribute("data-text",e),s.innerText=e,o.value=t,o.setAttribute("data-text",e),this.autocomplete.control.insertBefore(i,this.template);for(const r of this.autocomplete.tagDismissButtons)r.disabled=this.autocomplete.disabled}removeTag(t){this.tags.find(this.findByValue(t))?.remove()}toggleSelectedClass(){this.autocomplete.toggleSelectedClass(!!this.selectedValues.size)}get firstActivableOption(){return this.autocomplete.options.find(t=>this.selectedValues.has(t.getAttribute("value")))||this.autocomplete.visibleOptions[0]}get tags(){return this.autocomplete.tags}get template(){return this.autocomplete.querySelector('[data-behavior="tag-template"]')}}class Ze{constructor(t){this.defaultValue="",this.defaultText="",this.autocomplete=t}connected(){this.defaultValue=this.hiddenField.value,this.defaultText=this.hiddenField.getAttribute("data-text")??""}start(){var t;this.selectedOption?(this.autocomplete.combobox.select(this.selectedOption),this.autocomplete.combobox.activate(this.selectedOption,{scroll:!0})):(t=this.autocomplete.visibleOptions[0])&&this.autocomplete.combobox.activate(t,{scroll:!0})}stop(){var t=this.hiddenField.dataset["text"];this.autocomplete.input.value=t??""}reset(){this.setValue(this.defaultValue,this.defaultText)}select(t){var e=t.getAttribute("value")??"",t=t.dataset["text"];this.setValue(e,t||""),this.autocomplete.requestHide()}setValue(t,e){this.hiddenField.value=t;var e=e.trim();this.hiddenField.setAttribute("data-text",e),this.autocomplete.input.value=e,this.autocomplete.toggleSelectedClass(!!t),this.autocomplete.open&&((e=this.selectedOption)?this.autocomplete.combobox.select(e):this.autocomplete.combobox.deselectAll())}clear(){this.setValue("","")}removeValue(t){this.clear()}isSelected(t){return this.hiddenField.value===t}set required(t){this.autocomplete.input.required=t}get selectedOption(){return this.autocomplete.options.find(t=>t.getAttribute("value")===this.hiddenField.value)}get hiddenField(){return this.autocomplete.querySelector('input[data-behavior="hidden-field"]')}}let B=class extends Qe{constructor(){super(),this.open=!1,this.disabled=!1,this.required=!1,this.multiple=!1,this.param="q",this.autoSize=!0,this.autoSizePadding=4,this.firstFocus=!0,this.preventOutsideClickEvent=!1,this.handleFormReset=this.handleFormReset.bind(this)}connected(){this.form?.addEventListener("reset",this.handleFormReset),this.floatingUI=Ue(this,()=>({anchorElement:this.control,floatingElement:this.listbox,placement:"bottom",sync:"width",keepFlipped:!0,offsetOptions:4,autoSize:this.autoSize?"height":void 0,autoSizePadding:this.autoSizePadding})),He(this,{boundaries:[this.control,this.listbox],callback:(t,e)=>{this.preventOutsideClickEvent&&!We(e)?t.preventDefault():this.open&&this.requestHide(),this.preventOutsideClickEvent=!1}}),this.combobox=new we(this.input,this.listbox,{multiple:this.multiple}),this.selectVariant=new(this.multiple?Ge:Ze)(this),this.selectVariant.connected(),this.searchVariant=new(this.src?Xe:Ye)(this),this.selectVariant.required=this.required,super.connected()}disconnected(){super.disconnected(),this.searchVariant?.disconnected(),this.form?.removeEventListener("reset",this.handleFormReset),this.firstFocus=!0,this.preventOutsideClickEvent=!1}disabledChanged(t){this.input.disabled=t,this.clearButton&&(this.clearButton.disabled=t);for(const e of this.tagDismissButtons)e.disabled=t}requiredChanged(t){this.selectVariant.required=t}srcChanged(t){this.clear(),this.searchVariant?.disconnected(),this.searchVariant=new(t?Xe:Ye)(this)}autoSizeChanged(){this.reposition()}autoSizePaddingChanged(){this.reposition()}handleMousedown(t){t.target!==this.input&&t.preventDefault()}handleClick(t){this.disabled||(this.focus(),t.target.hasAttribute("data-trigger")&&this.requestShow(),this.firstFocus&&this.input.value&&this.input.select(),this.firstFocus=!1)}handleInputMousedown(t){this.disabled||1===t.buttons&&this.requestShow()}async handleInputBlur(){this.preventOutsideClickEvent=this.open,await this.requestHide(),this.firstFocus=!0}handleInputKeydown(t){switch(t.key){case"Enter":this.open&&t.preventDefault();break;case"Escape":this.open&&(t.preventDefault(),t.stopPropagation(),this.requestHide());break;case"ArrowDown":t.altKey&&!this.open&&(t.preventDefault(),this.requestShow());break;case"ArrowUp":t.altKey&&this.open&&(t.preventDefault(),this.requestHide());break;case"Backspace":var e;this.multiple&&!this.input.value&&(e=this.removeLastTag())&&(t.preventDefault(),this.emitEvent("remove",$e(e)))}}handleCommit(t){t.stopPropagation();var t=t.target;t instanceof HTMLElement&&(this.selectVariant.select(t),t=$e(t),this.emitEvent("commit",{...t,selected:this.selectVariant.isSelected(t.value)}))}handleFormReset(){this.reset(),this.hide(),this.emitEvent("reset")}handleClear(){this.clear(),this.requestHide(),this.emitEvent("clear")}handleTagRemove(t){this.disabled||(t=t.target.closest('[data-behavior="tag"]'))&&(this.removeTag(t),this.emitEvent("remove",$e(t)))}handleInput(t){var t=t["target"];t instanceof HTMLInputElement&&(t=t.value.trim(),this.requestShow(),this.searchVariant.search(t))}setValue(e,...t){var[t]=t,i=this.options.find(t=>t.getAttribute("value")===e),t=t||i?.getAttribute("data-text")||"";this.selectVariant.setValue(e,t)}removeValue(...t){var[t]=t;t?this.selectVariant.removeValue(t):this.selectVariant.clear()}activate(t,{scroll:e=!0}={}){this.combobox.activate(t,{scroll:e})}deactivate(){this.combobox.deactivate()}focus(t){this.input.focus(t)}blur(){this.input.blur()}reset(){this.selectVariant.reset()}clear(){this.selectVariant.clear()}async reposition(){await this.floatingUI.update()}emitEvent(t,...e){var[e]=e;return this.emit(t,{detail:e})}openParts(){this.floatingUI.start(),this.combobox.start(),this.selectVariant.start(),this.searchVariant.start()}async closeParts(){this.combobox.stop(),this.selectVariant.stop(),this.searchVariant.stop(),this.removeAttribute("no-options"),this.removeAttribute("error"),await this.floatingUI.stop()}removeLastTag(){var t=this.tags[this.tags.length-1];if(t)return this.removeTag(t),t}removeTag(t){t=t.getAttribute("value");t&&this.removeValue(t)}checkIfListIsEmpty(){this.toggleAttribute("no-options",0===this.visibleOptions.length)}toggleSelectedClass(t){this.classList.toggle("awc-autocomplete--selected",t)}get ajax(){return Boolean(this.src)}get value(){return this.multiple?this.tags.map(t=>t.getAttribute("value")??""):this.querySelector('input[data-behavior="hidden-field"]')?.value??""}get options(){return this.combobox.options}get visibleOptions(){return this.options.filter(t=>!t.hidden)}get activeOption(){return this.combobox.activeOption}get form(){return this.closest("form")}get tags(){return[...this.querySelectorAll('[data-behavior="tag"]')]}},L=(t([e({type:Boolean})],B.prototype,"open",void 0),t([e({type:Boolean})],B.prototype,"disabled",void 0),t([e({type:Boolean})],B.prototype,"required",void 0),t([e({type:Boolean})],B.prototype,"multiple",void 0),t([e()],B.prototype,"src",void 0),t([e()],B.prototype,"param",void 0),t([e({type:Boolean})],B.prototype,"autoSize",void 0),t([e({type:Number})],B.prototype,"autoSizePadding",void 0),t([s()],B.prototype,"control",void 0),t([s()],B.prototype,"input",void 0),t([s()],B.prototype,"listbox",void 0),t([s()],B.prototype,"optionsContainer",void 0),t([s()],B.prototype,"clearButton",void 0),t([vt()],B.prototype,"tagDismissButtons",void 0),t([vt()],B.prototype,"groups",void 0),B=t([n("awc-autocomplete")],B),class extends pe{constructor(){super(),this.disabled=!1,this.value="",this.for="",this.feedbackDuration=2e3,this.internals=this.attachInternals(),this.spacePressed=!1,this.handleClick=t=>{t.currentTarget===this&&(this.disabled?(t.preventDefault(),t.stopImmediatePropagation()):this.copy())},this.handleKeydown=t=>{this.isTargetOf(t)&&!this.disabled&&("Enter"===t.key?this.click():" "===t.key&&(t.preventDefault(),this.spacePressed=!0))},this.handleKeyup=t=>{this.isTargetOf(t)&&" "===t.key&&this.spacePressed&&(this.spacePressed=!1,this.click())},this.handleBlur=t=>{this.isTargetOf(t)&&(this.spacePressed=!1)},this.internals.role="button"}connected(){this.disabled===this.hasAttribute("tabindex")&&this.syncTabIndex(),this.internals.ariaDisabled=this.disabled?"true":null,this.listeners=new AbortController;var t={capture:!0,signal:this.listeners.signal};E("click",this.localName,this.handleClick,t),E("keydown",this.localName,this.handleKeydown,t),E("keyup",this.localName,this.handleKeyup,t),E("blur",this.localName,this.handleBlur,t)}disconnected(){this.listeners?.abort(),this.spacePressed=!1,this.showFeedback(null)}disabledChanged(t){this.internals.ariaDisabled=t?"true":null,this.syncTabIndex(),t&&(this.spacePressed=!1)}syncTabIndex(){this.disabled?this.removeAttribute("tabindex"):this.tabIndex=0}isTargetOf(t){return t.composedPath()[0]===this}async copy(){let t;try{if(t=this.copiedText(),!navigator.clipboard)throw new DOMException("The Clipboard API is unavailable.","NotSupportedError");await navigator.clipboard.writeText(t)}catch(t){return this.isConnected&&this.showFeedback("error"),void this.emit("error",{detail:{error:t}})}this.isConnected&&this.showFeedback("copied"),this.emit("copied",{detail:{text:t}})}showFeedback(t){clearTimeout(this.feedbackTimeout);try{this.internals.states.delete("copied"),this.internals.states.delete("error"),t&&(this.internals.states.add(t),this.feedbackTimeout=setTimeout(()=>this.showFeedback(null),this.feedbackDuration))}catch{}}copiedText(){if(this.value)return this.value;var t=this.for,e=this.getRootNode(),e=t&&(e instanceof Document||e instanceof ShadowRoot)?e.getElementById(t):null;if(e)return e instanceof HTMLInputElement||e instanceof HTMLTextAreaElement||e instanceof HTMLSelectElement?e.value:e.innerText;throw new DOMException(`No copy source has the id "${t}".`,"NotFoundError")}});t([e({type:Boolean})],L.prototype,"disabled",void 0),t([e()],L.prototype,"value",void 0),t([e()],L.prototype,"for",void 0),t([e({type:Number})],L.prototype,"feedbackDuration",void 0),L=t([n("awc-clipboard-copy")],L);const ti=new Set;let I=class extends Qe{constructor(){super(...arguments),this.open=!1,this.hideOnOutsideClick=!0}hide(t){return this.opened&&this.nestedDialog?.hide(),super.hide(t)}handleClick(t){var e;this.hideOnOutsideClick&&!t.defaultPrevented&&(e=t.target)instanceof HTMLElement&&e===this.dialog&&((e=e.getBoundingClientRect()).top<=t.clientY&&t.clientY<=e.top+e.height&&e.left<=t.clientX&&t.clientX<=e.left+e.width||this.requestHide())}handleKeydown(t){"Escape"===t.key&&t.stopPropagation()}handleCancel(t){t.cancelable&&(t.preventDefault(),this.requestHide())}handleClose(){this.dialog.open||this.hide()}hideWithoutEmitting(){this.dialog.open&&this.nestedDialog?.hideWithoutEmitting(),this.closeQuietly(),this.open=!1}openParts(){this.dialog.showModal(),this.hideOverflow()}closeParts(){this.dialog.open&&(this.nestedDialog?.closeQuietly(),this.dialog.close()),this.showOverflow()}hideOverflow(){this._scrollLockController=function(t,{abortSignal:e}={}){ti.add(t);var i,n=new AbortController,e=e||n.signal,s=window.innerWidth-document.documentElement.clientWidth;let o,r;return void 0===o&&0<s&&(i=Number.parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right"),10),o=document.body.style.paddingRight,document.body.style.paddingRight=i+s+"px"),void 0===r&&(r=document.body.style.overflow,document.body.style.overflow="hidden"),e.addEventListener("abort",()=>{ti.delete(t),0===ti.size&&(void 0!==o&&(document.body.style.paddingRight=o,o=void 0),void 0!==r)&&(document.body.style.overflow=r,r=void 0)}),n}(this)}showOverflow(){this._scrollLockController?.abort()}get nestedDialog(){return this.querySelector(this.identifier)}};function ei(t){var e,i;e=t,(((i=i||{}).getShadowRoot?Ke([e],i.includeContainer,{filter:Fe.bind(null,i),flatten:!0,getShadowRoot:i.getShadowRoot}):qe(e,i.includeContainer,Fe.bind(null,i))).find(t=>t.hasAttribute("autofocus"))??function(t,e){t=(e=e||{}).getShadowRoot?Ke([t],e.includeContainer,{filter:Ve.bind(null,e),flatten:!1,getShadowRoot:e.getShadowRoot,shadowRootFilter:De}):qe(t,e.includeContainer,Ve.bind(null,e));return Re(t)}(t)[0]??t).focus({preventScroll:!0})}function ii(){return"function"==typeof HTMLElement.prototype.showPopover}t([e({type:Boolean})],I.prototype,"open",void 0),t([e({type:Boolean})],I.prototype,"hideOnOutsideClick",void 0),t([s()],I.prototype,"dialog",void 0),I=t([n("awc-dialog")],I);let q=class extends Qe{constructor(){super(...arguments),this.open=!1,this.placement="bottom",this.strategy="fixed",this.opening=!1}connected(){const t=this.arrowPadding;this.floatingUI=Ue(this,()=>({anchorElement:this.button,floatingElement:this.panel,arrowElement:this.arrow,arrowPadding:t,placement:this.placement,strategy:this.strategy,offsetOptions:8,flipOptions:{fallbackAxisSideDirection:"end"}})),He(this,{boundaries:this.boundaries,callback:(t,e)=>{this.isClosedPopoverTrigger(e)||this.open&&!this.isAlsoOutsideParent(t,e)&&this.requestHide(t)}});{var[e,{boundaries:n,callback:s}]=[this,{boundaries:this.boundaries,callback:(t,e)=>{!this.open||this.opening||this.isAlsoOutsideParent(t,e)||this.requestHide(t)}}];const r=new AbortController;var o=r["signal"];const a=e=>n.some(t=>t?.contains(e));let i=null;document.addEventListener("pointerdown",t=>{t=t.target;i=a(t)?null:t},{capture:!0,signal:o}),document.addEventListener("click",()=>setTimeout(()=>i=null),{capture:!0,signal:o}),document.addEventListener("keydown",()=>i=null,{capture:!0,signal:o}),document.addEventListener("focusin",t=>{var e=t.target;a(e)||i&&e.contains(i)||s(t,e)},{capture:!0,signal:o}),je(e,()=>r.abort())}super.connected()}placementChanged(){this.reposition()}async toggle(t){this.opened?await this.requestHide(t):this.requestShow()}handleKeydown(t){var e;"Escape"!==t.key||(e=t.target.closest(this.identifier))!==this&&e?.open||this.open&&(t.preventDefault(),t.stopPropagation(),this.requestHide(t))}requestHide(t){var e;return t&&this.hideRequest?.event===t?this.hideRequest.done:(e=this.requestHideInnermostFirst(t),t&&(this.hideRequest={event:t,done:e}),e)}hide(t){if(this.opened)for(const e of this.nestedOpenPopovers)e.hide();return super.hide(t)}async reposition(){await this.floatingUI.update()}async requestHideInnermostFirst(t){if(this.opened){for(const e of this.nestedPopovers.reverse())if(await e.requestHide(t),e.opened)return;await super.requestHide(t)}}openParts({initial:t}){this.opening=!0;try{this.closeOtherPopovers();var e=document.activeElement;ii()&&this.panel.showPopover(),t?this.panel.contains(document.activeElement)&&((i=e)instanceof HTMLElement&&i!==document.body?i.focus({preventScroll:!0}):document.activeElement?.blur()):ei(this.panel)}finally{this.opening=!1}var i;this.button.setAttribute("aria-expanded","true"),this.floatingUI.start()}async closeParts(){var t,e,i=this.button,n=this.panel;n.isConnected&&(t=n,t=!(e=document.activeElement)||e===document.body||t.contains(e),ii()&&n.hidePopover(),t)&&i.focus(),await this.floatingUI.stop(),this.opened||i.setAttribute("aria-expanded","false")}othersAllowShow(){return this.otherOpenPopovers.every(t=>t.emitRequest("hide"))}closeOtherPopovers(){for(const t of this.otherOpenPopovers)t.hide()}isClosedPopoverTrigger(t){var e=t.closest(this.identifier);return!!e&&e!==this&&!e.open&&e.button.contains(t)}get otherOpenPopovers(){return Array.from(document.querySelectorAll(this.identifier)).filter(t=>t!==this&&!t.contains(this)&&t.open)}get nestedPopovers(){return Array.from(this.querySelectorAll(this.identifier))}get nestedOpenPopovers(){return this.nestedPopovers.filter(t=>t.open)}isAlsoOutsideParent(t,e){var i=this.parentElement?.closest(this.identifier);if(!i?.open)return!1;const n=t.composedPath();return!i.boundaries.some(t=>t.contains(e)||n.includes(t))}get arrowPadding(){var t=getComputedStyle(this.panel).borderRadius;return Number(t.replace(/[^-\d.]/g,""))||2}get boundaries(){return[this.button,this.panel]}};t([e({type:Boolean})],q.prototype,"open",void 0),t([e()],q.prototype,"placement",void 0),t([e()],q.prototype,"strategy",void 0),t([s()],q.prototype,"button",void 0),t([s()],q.prototype,"panel",void 0),t([s()],q.prototype,"arrow",void 0),q=t([n("awc-popover")],q)});
|
|
@@ -3,6 +3,9 @@ module Impulse
|
|
|
3
3
|
renders_one :blankslate
|
|
4
4
|
renders_one :error
|
|
5
5
|
|
|
6
|
+
Option = Struct.new(:value, :text)
|
|
7
|
+
private_constant :Option
|
|
8
|
+
|
|
6
9
|
def initialize(object_name, method_name, value_method, text_method, selected: nil, **system_args)
|
|
7
10
|
@object_name = object_name
|
|
8
11
|
@method_name = method_name
|
|
@@ -23,8 +26,7 @@ module Impulse
|
|
|
23
26
|
end
|
|
24
27
|
|
|
25
28
|
def build_option(element)
|
|
26
|
-
|
|
27
|
-
OpenStruct.new(value: tuple.last, text: tuple.first)
|
|
29
|
+
Option.new(value: value_for_collection(element, @value_method), text: value_for_collection(element, @text_method))
|
|
28
30
|
end
|
|
29
31
|
|
|
30
32
|
def multiple?
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
<%= render(Impulse::BaseRenderer.new(
|
|
1
|
+
<%= render(Impulse::BaseRenderer.new(**root_args)) do %>
|
|
2
2
|
<%= content_tag :div, class: class_names("awc-autocomplete-control form-control", "form-control-sm": @size == "sm", "form-control-lg": @size == "lg"), data: { target: "awc-autocomplete.control", trigger: "" } do %>
|
|
3
3
|
<% if multiple? %>
|
|
4
4
|
<%= hidden_field @object_name, @method_name, id: nil, multiple: true, value: nil, data: { behavior: "hidden-field" }, **hidden_field_args if @include_hidden %>
|
|
5
|
-
<%
|
|
5
|
+
<% selection&.each do |selected| %>
|
|
6
6
|
<div class="awc-autocomplete-tag" value="<%= selected.value %>" data-text="<%= selected.text %>" data-behavior="tag" data-persisted>
|
|
7
7
|
<span class="awc-autocomplete-tag-text" data-behavior="text"><%= selected.text %></span>
|
|
8
8
|
<span class="awc-autocomplete-tag-end-adornment">
|
|
@@ -26,13 +26,13 @@
|
|
|
26
26
|
</div>
|
|
27
27
|
</template>
|
|
28
28
|
<% else %>
|
|
29
|
-
<%= hidden_field @object_name, @method_name, id: nil, value:
|
|
29
|
+
<%= hidden_field @object_name, @method_name, id: nil, value: selection&.value, data: { behavior: "hidden-field", text: selection&.text }, **hidden_field_args %>
|
|
30
30
|
<% end %>
|
|
31
31
|
|
|
32
32
|
<%= text_field @object_name,
|
|
33
33
|
@method_name,
|
|
34
34
|
class: "awc-autocomplete-input",
|
|
35
|
-
value: multiple? ? nil :
|
|
35
|
+
value: multiple? ? nil : selection&.text,
|
|
36
36
|
name: nil,
|
|
37
37
|
autocomplete: "off",
|
|
38
38
|
spellcheck: false,
|
|
@@ -72,7 +72,7 @@
|
|
|
72
72
|
<% end %>
|
|
73
73
|
|
|
74
74
|
<div role="presentation" class="awc-autocomplete-blankslate">
|
|
75
|
-
<%= blankslate.presence ||
|
|
75
|
+
<%= blankslate.presence || default_blankslate %>
|
|
76
76
|
</div>
|
|
77
77
|
|
|
78
78
|
<% if ajax? %>
|
|
@@ -46,15 +46,9 @@ module Impulse
|
|
|
46
46
|
@system_args = system_args
|
|
47
47
|
@system_args[:tag] = :"awc-autocomplete"
|
|
48
48
|
@system_args[:disabled] = disabled
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
SIZE_MAPPINGS[fetch_or_fallback(SIZE_MAPPINGS.keys, size, DEFAULT_SIZE)],
|
|
53
|
-
"awc-autocomplete",
|
|
54
|
-
"awc-autocomplete--selected": @selected.present?,
|
|
55
|
-
"awc-autocomplete--clearable": @clearable
|
|
56
|
-
)
|
|
57
|
-
|
|
49
|
+
# Holds `class` in its place among the attributes even when none is given. `root_args` fills it in when
|
|
50
|
+
# rendering, once the selection is known.
|
|
51
|
+
@system_args[:class] = system_args[:class]
|
|
58
52
|
@system_args[:"data-loosely-focusable"] = "true"
|
|
59
53
|
@system_args[:data] = merge_attributes(
|
|
60
54
|
system_args[:data],
|
|
@@ -64,6 +58,29 @@ module Impulse
|
|
|
64
58
|
|
|
65
59
|
private
|
|
66
60
|
|
|
61
|
+
def root_args
|
|
62
|
+
@system_args.merge(
|
|
63
|
+
class: class_names(
|
|
64
|
+
@system_args[:class],
|
|
65
|
+
SIZE_MAPPINGS[fetch_or_fallback(SIZE_MAPPINGS.keys, @size, DEFAULT_SIZE)],
|
|
66
|
+
"awc-autocomplete",
|
|
67
|
+
"awc-autocomplete--selected": selection.present?,
|
|
68
|
+
"awc-autocomplete--clearable": @clearable
|
|
69
|
+
)
|
|
70
|
+
)
|
|
71
|
+
end
|
|
72
|
+
|
|
73
|
+
# The selected option, or options when `multiple`, each responding to `value` and `text`. Subclasses that hold
|
|
74
|
+
# their own options look the selection up among them instead.
|
|
75
|
+
def selection
|
|
76
|
+
@selected
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
# Shown when no option matches and no `blankslate` is given.
|
|
80
|
+
def default_blankslate
|
|
81
|
+
"We couldn't find that!"
|
|
82
|
+
end
|
|
83
|
+
|
|
67
84
|
def search_field_args
|
|
68
85
|
{}.tap do |args|
|
|
69
86
|
args[:id] = @input_id if @input_id
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
module Impulse
|
|
2
|
+
# A button that copies text to the clipboard: its `value`, or the text of the copy source its `for` names. It emits
|
|
3
|
+
# `awc-clipboard-copy:copied` or `awc-clipboard-copy:error`, and is in `:state(copied)` or `:state(error)` for
|
|
4
|
+
# `feedback_duration:` milliseconds after, for the app to style. It shows and announces nothing of its own.
|
|
5
|
+
class ClipboardCopyComponent < ApplicationComponent
|
|
6
|
+
def initialize(value: nil, disabled: false, **system_args)
|
|
7
|
+
@system_args = system_args
|
|
8
|
+
@system_args[:tag] = :"awc-clipboard-copy"
|
|
9
|
+
@system_args[:value] = value unless value.nil?
|
|
10
|
+
@system_args[:disabled] = disabled
|
|
11
|
+
# The element is the button, so it needs `tabindex` to be focusable, and none when disabled, as a native disabled
|
|
12
|
+
# button takes no focus. It keeps it in step with `disabled` changed after rendering; this is the one it starts with.
|
|
13
|
+
@system_args[:tabindex] = disabled ? nil : 0
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def call
|
|
17
|
+
render(Impulse::BaseRenderer.new(**@system_args)) { content }
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
end
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<%= tag.h2 @title, id: @title_id, class: "awc-dialog-title" %>
|
|
4
4
|
</div>
|
|
5
5
|
|
|
6
|
-
<button type="button" class="btn btn-light awc-dialog-close-btn" data-action="click->awc-dialog#
|
|
6
|
+
<button type="button" class="btn btn-light awc-dialog-close-btn" data-action="click->awc-dialog#requestHide" aria-label="Close dialog">
|
|
7
7
|
<i class="bi bi-x" aria-hidden="true"></i>
|
|
8
8
|
</button>
|
|
9
9
|
<% end %>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<%= render(Impulse::BaseRenderer.new(**@system_args)) do %>
|
|
2
|
-
<dialog class="<%= class_names("awc-dialog-dialog", "awc-dialog-dialog--centered": @center) %>" data-action="click->awc-dialog#handleClick keydown->awc-dialog#handleKeydown close->awc-dialog#
|
|
2
|
+
<dialog class="<%= class_names("awc-dialog-dialog", "awc-dialog-dialog--centered": @center) %>" data-action="click->awc-dialog#handleClick keydown->awc-dialog#handleKeydown cancel->awc-dialog#handleCancel close->awc-dialog#handleClose" data-target="awc-dialog.dialog" aria-labelledby="<%= title_id %>">
|
|
3
3
|
<%= header %>
|
|
4
4
|
<% if content.present? %>
|
|
5
5
|
<%= content %>
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
<% if content.present? %>
|
|
3
3
|
<%= content %>
|
|
4
4
|
<% else %>
|
|
5
|
-
<%= @title %>
|
|
6
|
-
<button type="button" class="close" aria-label="Close" data-action="click->awc-popover#
|
|
5
|
+
<%= content_tag(:span, @title, id: @title_id) %>
|
|
6
|
+
<button type="button" class="close" aria-label="Close" data-action="click->awc-popover#requestHide">
|
|
7
7
|
×
|
|
8
8
|
</button>
|
|
9
9
|
<% end %>
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
module Impulse
|
|
2
2
|
module Popover
|
|
3
3
|
class HeaderComponent < ApplicationComponent
|
|
4
|
-
def initialize(title: nil, **system_args)
|
|
4
|
+
def initialize(title: nil, title_id: nil, **system_args)
|
|
5
5
|
@title = title
|
|
6
|
+
@title_id = title_id
|
|
6
7
|
@system_args = system_args
|
|
7
8
|
@system_args[:tag] = :div
|
|
8
9
|
@system_args[:class] = class_names(
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
<%= render(Impulse::BaseRenderer.new(**@system_args)) do %>
|
|
2
2
|
<%= trigger %>
|
|
3
3
|
|
|
4
|
-
<
|
|
4
|
+
<div id="<%= @panel_id %>" class="awc-popover-container bs-popover-auto" role="dialog" popover="manual" tabindex="-1" aria-labelledby="<%= label_id %>" data-target="awc-popover.panel">
|
|
5
5
|
<div class="arrow" data-target="awc-popover.arrow"></div>
|
|
6
6
|
<%= header %>
|
|
7
7
|
<%= body %>
|
|
8
|
-
</
|
|
8
|
+
</div>
|
|
9
9
|
<% end %>
|
|
@@ -3,7 +3,9 @@ module Impulse
|
|
|
3
3
|
renders_one :trigger, lambda { |**system_args|
|
|
4
4
|
system_args[:tag] = :button
|
|
5
5
|
system_args[:type] = system_args.fetch(:type, "button")
|
|
6
|
-
|
|
6
|
+
# Labels the panel when the popover has no title, so it needs an id even when the caller didn't give one.
|
|
7
|
+
@trigger_id = system_args[:id] ||= "#{@panel_id}-trigger"
|
|
8
|
+
system_args[:"aria-haspopup"] = :dialog
|
|
7
9
|
system_args[:"aria-expanded"] = false
|
|
8
10
|
system_args[:"aria-controls"] = @panel_id
|
|
9
11
|
system_args[:"aria-disabled"] = (!!system_args[:disabled]).to_s
|
|
@@ -18,7 +20,7 @@ module Impulse
|
|
|
18
20
|
}
|
|
19
21
|
|
|
20
22
|
renders_one :header, lambda { |**system_args|
|
|
21
|
-
Impulse::Popover::HeaderComponent.new(title: @title, **system_args)
|
|
23
|
+
Impulse::Popover::HeaderComponent.new(title: @title, title_id: @title_id, **system_args)
|
|
22
24
|
}
|
|
23
25
|
|
|
24
26
|
renders_one :body, lambda { |**system_args|
|
|
@@ -28,12 +30,12 @@ module Impulse
|
|
|
28
30
|
Impulse::BaseRenderer.new(**system_args)
|
|
29
31
|
}
|
|
30
32
|
|
|
31
|
-
def initialize(title: nil,
|
|
33
|
+
def initialize(title: nil, **system_args)
|
|
32
34
|
@title = title
|
|
33
35
|
@system_args = system_args
|
|
34
36
|
@system_args[:tag] = :"awc-popover"
|
|
35
|
-
@system_args[:"click-boundaries"] = click_boundaries.to_json
|
|
36
37
|
@panel_id = self.class.generate_id
|
|
38
|
+
@title_id = "#{@panel_id}-title"
|
|
37
39
|
|
|
38
40
|
@system_args[:class] = class_names(
|
|
39
41
|
system_args[:class],
|
|
@@ -53,5 +55,13 @@ module Impulse
|
|
|
53
55
|
def before_render
|
|
54
56
|
with_header unless header?
|
|
55
57
|
end
|
|
58
|
+
|
|
59
|
+
private
|
|
60
|
+
|
|
61
|
+
# The id of what names the popover, which is a dialog and needs an accessible name: its title, or its trigger when a
|
|
62
|
+
# custom header replaces the title or there is none.
|
|
63
|
+
def label_id
|
|
64
|
+
(header.content? || @title.blank?) ? @trigger_id : @title_id
|
|
65
|
+
end
|
|
56
66
|
end
|
|
57
67
|
end
|
|
@@ -1,57 +1,73 @@
|
|
|
1
1
|
module Impulse
|
|
2
|
-
class SelectComponent <
|
|
3
|
-
|
|
4
|
-
renders_many :options, Impulse::Autocomplete::OptionComponent
|
|
5
|
-
|
|
2
|
+
class SelectComponent < AutocompleteComponent
|
|
3
|
+
# No longer used here. Kept for apps that build one to pass to `AutocompleteComponent` as `selected:`.
|
|
6
4
|
OptionStruct = Struct.new(:value, :text, :html_attributes)
|
|
7
5
|
|
|
8
6
|
def initialize(object_name, method_name, choices = [], selected: nil, **system_args)
|
|
9
|
-
|
|
10
|
-
@method_name = method_name
|
|
7
|
+
super(object_name, method_name, **system_args)
|
|
11
8
|
@choices = choices
|
|
12
|
-
@
|
|
13
|
-
|
|
9
|
+
@selected_value = selected
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def before_render
|
|
13
|
+
add_options_from_choices unless options?
|
|
14
|
+
super
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
# The flat `options` slot this component used to declare came with `with_options`.
|
|
18
|
+
def with_options(collection, &block)
|
|
19
|
+
collection.map { |arguments| with_option(**arguments, &block) }
|
|
14
20
|
end
|
|
15
21
|
|
|
16
22
|
private
|
|
17
23
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
24
|
+
# The choices the options are built from when the block adds none. Subclasses override it to supply their own.
|
|
25
|
+
attr_reader :choices
|
|
26
|
+
|
|
27
|
+
def selection
|
|
28
|
+
return @selection if defined?(@selection)
|
|
29
|
+
|
|
30
|
+
# A group runs its `with_option` block only when it renders, so the options render before the selection is looked
|
|
31
|
+
# up among them. Each slot keeps what it rendered, so the template doesn't render them again.
|
|
32
|
+
options.each(&:to_s)
|
|
33
|
+
@selection =
|
|
34
|
+
if @selected_value.blank?
|
|
35
|
+
nil
|
|
36
|
+
elsif multiple?
|
|
37
|
+
@selected_value.map { |value| find_option(value) }.compact
|
|
38
|
+
else
|
|
39
|
+
find_option(@selected_value)
|
|
40
|
+
end
|
|
22
41
|
end
|
|
23
42
|
|
|
24
|
-
def
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
43
|
+
def find_option(value)
|
|
44
|
+
options
|
|
45
|
+
.flat_map { |option| option.respond_to?(:options) ? option.options.to_a : [option] }
|
|
46
|
+
.find { |option| option.value.to_s == value.to_s }
|
|
28
47
|
end
|
|
29
48
|
|
|
30
|
-
def
|
|
31
|
-
choices.
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
end
|
|
49
|
+
def add_options_from_choices
|
|
50
|
+
return if choices.blank?
|
|
51
|
+
return choices.each { |title, group_choices| add_group(title, group_choices) } if grouped_choices?
|
|
52
|
+
|
|
53
|
+
option_arguments(choices).each { |arguments| with_option(**arguments) }
|
|
36
54
|
end
|
|
37
55
|
|
|
38
|
-
def
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
[title, options_for_select(container)]
|
|
56
|
+
def add_group(title, group_choices)
|
|
57
|
+
with_group(title:) do |group|
|
|
58
|
+
option_arguments(group_choices).each { |arguments| group.with_option(**arguments) }
|
|
42
59
|
end
|
|
43
60
|
end
|
|
44
61
|
|
|
45
|
-
def
|
|
46
|
-
|
|
62
|
+
def option_arguments(list)
|
|
63
|
+
list.map do |choice|
|
|
64
|
+
text, value = option_text_and_value(choice)
|
|
65
|
+
{ value:, text:, **option_html_attributes(choice) }
|
|
66
|
+
end
|
|
47
67
|
end
|
|
48
68
|
|
|
49
69
|
def grouped_choices?
|
|
50
|
-
|
|
51
|
-
end
|
|
52
|
-
|
|
53
|
-
def multiple?
|
|
54
|
-
!!@system_args[:multiple]
|
|
70
|
+
choices.first.respond_to?(:last) && Array === choices.first.last
|
|
55
71
|
end
|
|
56
72
|
end
|
|
57
73
|
end
|
|
@@ -1,66 +1,67 @@
|
|
|
1
1
|
module Impulse
|
|
2
|
-
class TimeZoneSelectComponent <
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
class TimeZoneSelectComponent < SelectComponent
|
|
3
|
+
# No longer used here. Kept for apps that refer to it.
|
|
5
4
|
OptionStruct = Struct.new(:value, :text)
|
|
6
5
|
|
|
7
6
|
def initialize(object_name, method_name, priority_zones = nil, selected: nil, default: nil, model: ::ActiveSupport::TimeZone, priority_zones_title: "Prioritized time zones", **system_args)
|
|
8
|
-
|
|
9
|
-
@method_name = method_name
|
|
7
|
+
super(object_name, method_name, selected: selected || default, **system_args)
|
|
10
8
|
@priority_zones = priority_zones
|
|
11
|
-
@selected = selected
|
|
12
|
-
@default = default
|
|
13
9
|
@model = model
|
|
14
10
|
@priority_zones_title = priority_zones_title
|
|
15
|
-
@system_args = system_args
|
|
16
11
|
end
|
|
17
12
|
|
|
18
13
|
private
|
|
19
14
|
|
|
20
|
-
def
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
15
|
+
def choices
|
|
16
|
+
@choices_from_zones ||=
|
|
17
|
+
if prioritized?
|
|
18
|
+
[
|
|
19
|
+
[@priority_zones_title, zone_choices(zones[:priority_zones], test_id: "priority-zones")],
|
|
20
|
+
["Other", zone_choices(zones[:other], test_id: "unprioritized-zones")]
|
|
21
|
+
]
|
|
22
|
+
else
|
|
23
|
+
zone_choices(zones[:other])
|
|
24
|
+
end
|
|
25
|
+
end
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
end
|
|
27
|
+
def zone_choices(time_zones, test_id: nil)
|
|
28
|
+
time_zones.map { |zone| [zone.to_s, zone.name, test_id ? { data: { test_id: } } : {}] }
|
|
29
|
+
end
|
|
30
30
|
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
31
|
+
def default_blankslate
|
|
32
|
+
"We couldn't find that time zone!"
|
|
33
|
+
end
|
|
34
34
|
|
|
35
|
-
|
|
36
|
-
|
|
35
|
+
def zones
|
|
36
|
+
@zones ||= begin
|
|
37
|
+
priority_zones = @priority_zones
|
|
37
38
|
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
zones[:priority_zones] = []
|
|
41
|
-
end
|
|
39
|
+
zones = Hash.new { |h, k| h[k] = [] }.tap do |hash|
|
|
40
|
+
model = @model.all
|
|
42
41
|
|
|
43
|
-
|
|
44
|
-
|
|
42
|
+
if priority_zones
|
|
43
|
+
if priority_zones.is_a?(Regexp)
|
|
44
|
+
priority_zones = model.select { |z| z.match?(priority_zones) }
|
|
45
|
+
end
|
|
45
46
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
47
|
+
hash[:priority_zones] = priority_zones
|
|
48
|
+
model -= priority_zones
|
|
49
|
+
end
|
|
49
50
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
end
|
|
51
|
+
hash[:other] = model
|
|
52
|
+
end
|
|
53
53
|
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
54
|
+
if zones[:other].blank?
|
|
55
|
+
zones[:other] = zones[:priority_zones]
|
|
56
|
+
zones[:priority_zones] = []
|
|
57
|
+
end
|
|
57
58
|
|
|
58
|
-
|
|
59
|
-
|
|
59
|
+
zones
|
|
60
|
+
end
|
|
60
61
|
end
|
|
61
62
|
|
|
62
63
|
def prioritized?
|
|
63
|
-
|
|
64
|
+
zones[:priority_zones].present?
|
|
64
65
|
end
|
|
65
66
|
end
|
|
66
67
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: impulse_view_components
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.9.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- abeidahmed
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: bin
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: view_component
|
|
@@ -16,28 +15,28 @@ dependencies:
|
|
|
16
15
|
requirements:
|
|
17
16
|
- - "~>"
|
|
18
17
|
- !ruby/object:Gem::Version
|
|
19
|
-
version:
|
|
18
|
+
version: 4.17.0
|
|
20
19
|
type: :runtime
|
|
21
20
|
prerelease: false
|
|
22
21
|
version_requirements: !ruby/object:Gem::Requirement
|
|
23
22
|
requirements:
|
|
24
23
|
- - "~>"
|
|
25
24
|
- !ruby/object:Gem::Version
|
|
26
|
-
version:
|
|
25
|
+
version: 4.17.0
|
|
27
26
|
- !ruby/object:Gem::Dependency
|
|
28
27
|
name: actionview
|
|
29
28
|
requirement: !ruby/object:Gem::Requirement
|
|
30
29
|
requirements:
|
|
31
30
|
- - ">="
|
|
32
31
|
- !ruby/object:Gem::Version
|
|
33
|
-
version:
|
|
32
|
+
version: 7.1.0
|
|
34
33
|
type: :runtime
|
|
35
34
|
prerelease: false
|
|
36
35
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
36
|
requirements:
|
|
38
37
|
- - ">="
|
|
39
38
|
- !ruby/object:Gem::Version
|
|
40
|
-
version:
|
|
39
|
+
version: 7.1.0
|
|
41
40
|
- !ruby/object:Gem::Dependency
|
|
42
41
|
name: capybara
|
|
43
42
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -53,25 +52,33 @@ dependencies:
|
|
|
53
52
|
- !ruby/object:Gem::Version
|
|
54
53
|
version: '3.40'
|
|
55
54
|
- !ruby/object:Gem::Dependency
|
|
56
|
-
name:
|
|
55
|
+
name: ostruct
|
|
57
56
|
requirement: !ruby/object:Gem::Requirement
|
|
58
57
|
requirements:
|
|
59
58
|
- - "~>"
|
|
60
59
|
- !ruby/object:Gem::Version
|
|
61
|
-
version: '
|
|
62
|
-
- - ">="
|
|
63
|
-
- !ruby/object:Gem::Version
|
|
64
|
-
version: 11.1.3
|
|
60
|
+
version: '0.6'
|
|
65
61
|
type: :development
|
|
66
62
|
prerelease: false
|
|
67
63
|
version_requirements: !ruby/object:Gem::Requirement
|
|
68
64
|
requirements:
|
|
69
65
|
- - "~>"
|
|
70
66
|
- !ruby/object:Gem::Version
|
|
71
|
-
version: '
|
|
72
|
-
|
|
67
|
+
version: '0.6'
|
|
68
|
+
- !ruby/object:Gem::Dependency
|
|
69
|
+
name: byebug
|
|
70
|
+
requirement: !ruby/object:Gem::Requirement
|
|
71
|
+
requirements:
|
|
72
|
+
- - "~>"
|
|
73
|
+
- !ruby/object:Gem::Version
|
|
74
|
+
version: '13.0'
|
|
75
|
+
type: :development
|
|
76
|
+
prerelease: false
|
|
77
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
78
|
+
requirements:
|
|
79
|
+
- - "~>"
|
|
73
80
|
- !ruby/object:Gem::Version
|
|
74
|
-
version:
|
|
81
|
+
version: '13.0'
|
|
75
82
|
- !ruby/object:Gem::Dependency
|
|
76
83
|
name: webmock
|
|
77
84
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -92,7 +99,6 @@ dependencies:
|
|
|
92
99
|
- - ">="
|
|
93
100
|
- !ruby/object:Gem::Version
|
|
94
101
|
version: 3.18.1
|
|
95
|
-
description:
|
|
96
102
|
email:
|
|
97
103
|
- info@ambiki.com
|
|
98
104
|
executables: []
|
|
@@ -116,6 +122,7 @@ files:
|
|
|
116
122
|
- app/components/impulse/autocomplete_component.html.erb
|
|
117
123
|
- app/components/impulse/autocomplete_component.rb
|
|
118
124
|
- app/components/impulse/base_renderer.rb
|
|
125
|
+
- app/components/impulse/clipboard_copy_component.rb
|
|
119
126
|
- app/components/impulse/dialog/body_component.rb
|
|
120
127
|
- app/components/impulse/dialog/footer_component.rb
|
|
121
128
|
- app/components/impulse/dialog/header_component.html.erb
|
|
@@ -126,10 +133,8 @@ files:
|
|
|
126
133
|
- app/components/impulse/popover/header_component.rb
|
|
127
134
|
- app/components/impulse/popover_component.html.erb
|
|
128
135
|
- app/components/impulse/popover_component.rb
|
|
129
|
-
- app/components/impulse/select_component.html.erb
|
|
130
136
|
- app/components/impulse/select_component.rb
|
|
131
137
|
- app/components/impulse/spinner_component.rb
|
|
132
|
-
- app/components/impulse/time_zone_select_component.html.erb
|
|
133
138
|
- app/components/impulse/time_zone_select_component.rb
|
|
134
139
|
- lib/impulse/forms/builder.rb
|
|
135
140
|
- lib/impulse/forms/tags/ajax_select.rb
|
|
@@ -147,7 +152,6 @@ licenses:
|
|
|
147
152
|
metadata:
|
|
148
153
|
source_code_uri: https://github.com/Ambiki/impulse_view_components
|
|
149
154
|
changelog_uri: https://github.com/Ambiki/impulse_view_components/blob/main/CHANGELOG.md
|
|
150
|
-
post_install_message:
|
|
151
155
|
rdoc_options: []
|
|
152
156
|
require_paths:
|
|
153
157
|
- lib
|
|
@@ -155,15 +159,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
155
159
|
requirements:
|
|
156
160
|
- - ">="
|
|
157
161
|
- !ruby/object:Gem::Version
|
|
158
|
-
version: 3.
|
|
162
|
+
version: '3.4'
|
|
159
163
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
160
164
|
requirements:
|
|
161
165
|
- - ">="
|
|
162
166
|
- !ruby/object:Gem::Version
|
|
163
167
|
version: '0'
|
|
164
168
|
requirements: []
|
|
165
|
-
rubygems_version: 3.
|
|
166
|
-
signing_key:
|
|
169
|
+
rubygems_version: 3.6.9
|
|
167
170
|
specification_version: 4
|
|
168
171
|
summary: View components for Ruby on Rails
|
|
169
172
|
test_files: []
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
<%= render(Impulse::AutocompleteComponent.new(@object_name, @method_name, selected: value, **@system_args)) do |c| %>
|
|
2
|
-
<% if options? %>
|
|
3
|
-
<% options.each do |option| %>
|
|
4
|
-
<%= c.with_option(value: option.value, text: option.text, description: option.description, **option.system_args) %>
|
|
5
|
-
<% end %>
|
|
6
|
-
<% else %>
|
|
7
|
-
<% options_from_choices.each do |option| %>
|
|
8
|
-
<% if option.is_a?(Array) %>
|
|
9
|
-
<% c.with_group(title: option.first) do |group| %>
|
|
10
|
-
<% option.second.each do |grouped_option| %>
|
|
11
|
-
<% group.with_option(value: grouped_option.value, text: grouped_option.text, **grouped_option.html_attributes) %>
|
|
12
|
-
<% end %>
|
|
13
|
-
<% end %>
|
|
14
|
-
<% else %>
|
|
15
|
-
<%= c.with_option(value: option.value, text: option.text, **option.html_attributes) %>
|
|
16
|
-
<% end %>
|
|
17
|
-
<% end %>
|
|
18
|
-
<% end %>
|
|
19
|
-
|
|
20
|
-
<%= c.with_blankslate_content(blankslate.presence || "We couldn't find that!") %>
|
|
21
|
-
<% end %>
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<%= render(Impulse::AutocompleteComponent.new(@object_name, @method_name, selected: value, **@system_args)) do |c| %>
|
|
2
|
-
<% if prioritized? %>
|
|
3
|
-
<% c.with_group(title: @priority_zones_title) do |group| %>
|
|
4
|
-
<% options[:priority_zones].each do |option| %>
|
|
5
|
-
<% group.with_option(value: option.name, text: option.to_s, data: {test_id: "priority-zones"}) %>
|
|
6
|
-
<% end %>
|
|
7
|
-
<% end %>
|
|
8
|
-
<% c.with_group(title: "Other") do |group| %>
|
|
9
|
-
<% options[:other].each do |option| %>
|
|
10
|
-
<% group.with_option(value: option.name, text: option.to_s, data: {test_id: "unprioritized-zones"}) %>
|
|
11
|
-
<% end %>
|
|
12
|
-
<% end %>
|
|
13
|
-
<% else %>
|
|
14
|
-
<% options[:other].each do |option| %>
|
|
15
|
-
<% c.with_option(value: option.name, text: option.to_s) %>
|
|
16
|
-
<% end %>
|
|
17
|
-
<% end %>
|
|
18
|
-
|
|
19
|
-
<% c.with_blankslate_content(blankslate.presence || "We couldn't find that time zone!") %>
|
|
20
|
-
<% end %>
|