@universal-material/web 3.0.69 → 3.0.70
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app-bar/top-app-bar.js +3 -2
- package/app-bar/top-app-bar.js.map +1 -1
- package/button/button-base.d.ts +1 -0
- package/button/button-base.d.ts.map +1 -1
- package/button/button-base.js +7 -18
- package/button/button-base.js.map +1 -1
- package/button/button-base.styles.d.ts +2 -0
- package/button/button-base.styles.d.ts.map +1 -0
- package/button/button-base.styles.js +16 -0
- package/button/button-base.styles.js.map +1 -0
- package/button/button-set.d.ts +1 -1
- package/button/button-set.d.ts.map +1 -1
- package/button/button-set.js +1 -1
- package/button/button-set.js.map +1 -1
- package/button/button-set.styles.d.ts.map +1 -1
- package/button/button-set.styles.js +0 -19
- package/button/button-set.styles.js.map +1 -1
- package/button/button.d.ts +2 -2
- package/button/button.d.ts.map +1 -1
- package/button/button.js +1 -1
- package/button/button.js.map +1 -1
- package/button/button.styles.d.ts.map +1 -1
- package/button/button.styles.js +0 -100
- package/button/button.styles.js.map +1 -1
- package/button/fab.d.ts +2 -2
- package/button/fab.d.ts.map +1 -1
- package/button/fab.js +1 -1
- package/button/fab.js.map +1 -1
- package/button/fab.styles.d.ts.map +1 -1
- package/button/fab.styles.js +0 -100
- package/button/fab.styles.js.map +1 -1
- package/button/icon-button.d.ts +2 -2
- package/button/icon-button.d.ts.map +1 -1
- package/button/icon-button.js +1 -1
- package/button/icon-button.js.map +1 -1
- package/button/icon-button.styles.d.ts.map +1 -1
- package/button/icon-button.styles.js +0 -100
- package/button/icon-button.styles.js.map +1 -1
- package/card/card-content.js +1 -1
- package/card/card-content.js.map +1 -1
- package/card/card-media.js +1 -1
- package/card/card-media.js.map +1 -1
- package/card/card.js +1 -1
- package/card/card.js.map +1 -1
- package/checkbox/checkbox.js +8 -20
- package/checkbox/checkbox.js.map +1 -1
- package/chip/chip-set.d.ts +1 -1
- package/chip/chip-set.d.ts.map +1 -1
- package/chip/chip-set.js +1 -1
- package/chip/chip-set.js.map +1 -1
- package/chip/chip-set.styles.d.ts.map +1 -1
- package/chip/chip-set.styles.js +0 -19
- package/chip/chip-set.styles.js.map +1 -1
- package/chip/chip.d.ts +1 -1
- package/chip/chip.d.ts.map +1 -1
- package/chip/chip.js +39 -54
- package/chip/chip.js.map +1 -1
- package/chip/chip.styles.d.ts.map +1 -1
- package/chip/chip.styles.js +0 -87
- package/chip/chip.styles.js.map +1 -1
- package/chip-field/chip-field.js +72 -86
- package/chip-field/chip-field.js.map +1 -1
- package/custom-elements.json +2854 -2185
- package/dialog/confirm-dialog-builder.js +6 -22
- package/dialog/confirm-dialog-builder.js.map +1 -1
- package/dialog/dialog-builder.js +4 -17
- package/dialog/dialog-builder.js.map +1 -1
- package/dialog/dialog.js +65 -80
- package/dialog/dialog.js.map +1 -1
- package/dialog/message-dialog-builder.js +3 -19
- package/dialog/message-dialog-builder.js.map +1 -1
- package/elevation/elevation.js +1 -1
- package/elevation/elevation.js.map +1 -1
- package/field/field-base.d.ts +2 -2
- package/field/field-base.d.ts.map +1 -1
- package/field/field-base.js +13 -16
- package/field/field-base.js.map +1 -1
- package/field/field-base.styles.js +1 -1
- package/field/field-base.styles.js.map +1 -1
- package/list/list-item.js +1 -1
- package/list/list-item.js.map +1 -1
- package/list/list.js +1 -1
- package/list/list.js.map +1 -1
- package/menu/menu-item.d.ts +12 -6
- package/menu/menu-item.d.ts.map +1 -1
- package/menu/menu-item.js +49 -31
- package/menu/menu-item.js.map +1 -1
- package/menu/menu-item.styles.d.ts.map +1 -1
- package/menu/menu-item.styles.js +15 -90
- package/menu/menu-item.styles.js.map +1 -1
- package/menu/menu.d.ts.map +1 -1
- package/menu/menu.js +129 -134
- package/menu/menu.js.map +1 -1
- package/navigation/drawer-item.d.ts +1 -1
- package/navigation/drawer-item.d.ts.map +1 -1
- package/navigation/drawer-item.js +4 -5
- package/navigation/drawer-item.js.map +1 -1
- package/navigation/drawer-item.styles.d.ts.map +1 -1
- package/navigation/drawer-item.styles.js +0 -87
- package/navigation/drawer-item.styles.js.map +1 -1
- package/navigation/drawer.js +4 -4
- package/navigation/drawer.js.map +1 -1
- package/navigation/side-navigation.js +8 -20
- package/navigation/side-navigation.js.map +1 -1
- package/package.json +18 -18
- package/progress/circular-progress.d.ts +1 -2
- package/progress/circular-progress.d.ts.map +1 -1
- package/progress/circular-progress.js +19 -27
- package/progress/circular-progress.js.map +1 -1
- package/progress/progress-bar.d.ts +1 -2
- package/progress/progress-bar.d.ts.map +1 -1
- package/progress/progress-bar.js +12 -20
- package/progress/progress-bar.js.map +1 -1
- package/radio/radio.js +53 -61
- package/radio/radio.js.map +1 -1
- package/ripple/ripple.js +3 -2
- package/ripple/ripple.js.map +1 -1
- package/select/extended-option.d.ts +5 -0
- package/select/extended-option.d.ts.map +1 -0
- package/select/extended-option.js +2 -0
- package/select/extended-option.js.map +1 -0
- package/select/extended-select.d.ts +6 -0
- package/select/extended-select.d.ts.map +1 -0
- package/select/extended-select.js +2 -0
- package/select/extended-select.js.map +1 -0
- package/select/option.d.ts +10 -0
- package/select/option.d.ts.map +1 -1
- package/select/option.js +84 -74
- package/select/option.js.map +1 -1
- package/select/option.styles.d.ts.map +1 -1
- package/select/option.styles.js +10 -0
- package/select/option.styles.js.map +1 -1
- package/select/select-navigation-controller.d.ts +10 -2
- package/select/select-navigation-controller.d.ts.map +1 -1
- package/select/select-navigation-controller.js +66 -3
- package/select/select-navigation-controller.js.map +1 -1
- package/select/select.d.ts +10 -4
- package/select/select.d.ts.map +1 -1
- package/select/select.js +179 -68
- package/select/select.js.map +1 -1
- package/select/select.styles.d.ts.map +1 -1
- package/select/select.styles.js +15 -6
- package/select/select.styles.js.map +1 -1
- package/shared/button-wrapper.d.ts +2 -0
- package/shared/button-wrapper.d.ts.map +1 -1
- package/shared/button-wrapper.js +18 -22
- package/shared/button-wrapper.js.map +1 -1
- package/shared/button-wrapper.styles.d.ts +2 -0
- package/shared/button-wrapper.styles.d.ts.map +1 -0
- package/shared/button-wrapper.styles.js +63 -0
- package/shared/button-wrapper.styles.js.map +1 -0
- package/shared/compare-text.d.ts +2 -0
- package/shared/compare-text.d.ts.map +1 -0
- package/shared/compare-text.js +5 -0
- package/shared/compare-text.js.map +1 -0
- package/shared/menu-field/menu-field-navigation-controller.d.ts +11 -4
- package/shared/menu-field/menu-field-navigation-controller.d.ts.map +1 -1
- package/shared/menu-field/menu-field-navigation-controller.js +56 -31
- package/shared/menu-field/menu-field-navigation-controller.js.map +1 -1
- package/shared/mixin-attribute-properties.d.ts.map +1 -1
- package/shared/normalize-text.d.ts +1 -1
- package/shared/normalize-text.d.ts.map +1 -1
- package/shared/normalize-text.js +1 -1
- package/shared/normalize-text.js.map +1 -1
- package/shared/selection-control/selection-control-list-item.d.ts.map +1 -1
- package/shared/selection-control/selection-control-list-item.js +7 -7
- package/shared/selection-control/selection-control-list-item.js.map +1 -1
- package/shared/selection-control/selection-control.js +16 -28
- package/shared/selection-control/selection-control.js.map +1 -1
- package/shared/sets/set-base.d.ts +2 -0
- package/shared/sets/set-base.d.ts.map +1 -1
- package/shared/sets/set-base.js +2 -0
- package/shared/sets/set-base.js.map +1 -1
- package/shared/sets/set-base.styles.d.ts +2 -0
- package/shared/sets/set-base.styles.d.ts.map +1 -0
- package/shared/sets/set-base.styles.js +22 -0
- package/shared/sets/set-base.styles.js.map +1 -0
- package/shared/text-field-base/text-field-base.js +6 -6
- package/shared/text-field-base/text-field-base.js.map +1 -1
- package/snackbar/snackbar.d.ts.map +1 -1
- package/snackbar/snackbar.js +13 -7
- package/snackbar/snackbar.js.map +1 -1
- package/switch/switch.js +4 -4
- package/switch/switch.js.map +1 -1
- package/text-field/text-field.d.ts +2 -0
- package/text-field/text-field.d.ts.map +1 -1
- package/text-field/text-field.js +22 -30
- package/text-field/text-field.js.map +1 -1
- package/typeahead/highlight.js +7 -24
- package/typeahead/highlight.js.map +1 -1
- package/typeahead/typeahead.d.ts +3 -0
- package/typeahead/typeahead.d.ts.map +1 -1
- package/typeahead/typeahead.js +184 -180
- package/typeahead/typeahead.js.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compare-text.js","sourceRoot":"","sources":["../../src/shared/compare-text.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,MAAM,UAAU,oBAAoB,CAAC,IAAmB,EAAE,IAAmB;IAC3E,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;AACzF,CAAC","sourcesContent":["import { normalizeText } from './normalize-text.js';\n\nexport function normalizedStartsWith(text: string | null, term: string | null): boolean {\n return normalizeText(text).toLowerCase().startsWith(normalizeText(term).toLowerCase());\n}\n"]}
|
|
@@ -1,13 +1,20 @@
|
|
|
1
|
+
import { UmMenuItem } from '../../menu/menu-item.js';
|
|
1
2
|
import { UmMenuField } from './menu-field.js';
|
|
2
|
-
export declare class MenuFieldNavigationController<
|
|
3
|
+
export declare class MenuFieldNavigationController<TField extends UmMenuField, TMenuItem extends UmMenuItem> {
|
|
3
4
|
#private;
|
|
4
|
-
protected
|
|
5
|
+
protected focusedMenu: TMenuItem | null;
|
|
6
|
+
protected readonly host: TField;
|
|
5
7
|
private readonly bindHandleKeyDown;
|
|
6
|
-
constructor(host:
|
|
8
|
+
constructor(host: TField);
|
|
7
9
|
attach(element: HTMLElement): void;
|
|
8
10
|
detach(): void;
|
|
9
|
-
protected handleKeyDown(event: KeyboardEvent):
|
|
11
|
+
protected handleKeyDown(event: KeyboardEvent): boolean;
|
|
10
12
|
private navigate;
|
|
13
|
+
protected navigateTo(event: KeyboardEvent, menu: TMenuItem | undefined): void;
|
|
14
|
+
focusMenu(menu: TMenuItem, active?: boolean, scroll?: boolean): void;
|
|
15
|
+
blurMenu(): void;
|
|
11
16
|
private selectActiveItem;
|
|
17
|
+
protected afterFocus(_: TMenuItem): void;
|
|
18
|
+
protected afterBlur(): void;
|
|
12
19
|
}
|
|
13
20
|
//# sourceMappingURL=menu-field-navigation-controller.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-field-navigation-controller.d.ts","sourceRoot":"","sources":["../../../src/shared/menu-field/menu-field-navigation-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"menu-field-navigation-controller.d.ts","sourceRoot":"","sources":["../../../src/shared/menu-field/menu-field-navigation-controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C,qBAAa,6BAA6B,CAAC,MAAM,SAAS,WAAW,EAAE,SAAS,SAAS,UAAU;;IAEjG,SAAS,CAAC,WAAW,EAAE,SAAS,GAAG,IAAI,CAAQ;IAC/C,SAAS,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAiC;gBAEvD,IAAI,EAAE,MAAM;IAKxB,MAAM,CAAC,OAAO,EAAE,WAAW;IAQ3B,MAAM;IAQN,SAAS,CAAC,aAAa,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAwCtD,OAAO,CAAC,QAAQ;IAsBhB,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,GAAG,SAAS;IAYtE,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,UAAO,EAAE,MAAM,UAAO;IAWvD,QAAQ;IAUR,OAAO,CAAC,gBAAgB;IASxB,SAAS,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS;IAIjC,SAAS,CAAC,SAAS;CAGpB"}
|
|
@@ -1,78 +1,103 @@
|
|
|
1
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
2
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
3
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
4
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
5
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
6
|
-
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var _MenuFieldNavigationController_element;
|
|
13
1
|
export class MenuFieldNavigationController {
|
|
2
|
+
#element;
|
|
14
3
|
constructor(host) {
|
|
15
|
-
|
|
4
|
+
this.#element = null;
|
|
5
|
+
this.focusedMenu = null;
|
|
6
|
+
this.#handleMenuClose = () => this.blurMenu();
|
|
16
7
|
this.host = host;
|
|
17
8
|
this.bindHandleKeyDown = this.handleKeyDown.bind(this);
|
|
18
9
|
}
|
|
19
10
|
attach(element) {
|
|
20
11
|
this.detach();
|
|
21
|
-
element?.addEventListener('keydown', this.bindHandleKeyDown);
|
|
22
|
-
|
|
12
|
+
element?.addEventListener('keydown', this.bindHandleKeyDown, { capture: true });
|
|
13
|
+
this.host.menu.addEventListener('close', this.#handleMenuClose);
|
|
14
|
+
this.#element = element;
|
|
23
15
|
}
|
|
24
16
|
detach() {
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
this.#element?.removeEventListener('keydown', this.bindHandleKeyDown);
|
|
18
|
+
this.host.menu.removeEventListener('close', this.#handleMenuClose);
|
|
19
|
+
this.#element = null;
|
|
27
20
|
}
|
|
21
|
+
#handleMenuClose;
|
|
28
22
|
handleKeyDown(event) {
|
|
29
23
|
if (!this.host.menu.open) {
|
|
30
|
-
return;
|
|
24
|
+
return false;
|
|
31
25
|
}
|
|
32
26
|
const isEscape = event.key === 'Escape';
|
|
33
27
|
if (isEscape) {
|
|
34
28
|
this.host.menu.close();
|
|
35
29
|
}
|
|
30
|
+
if (event.key === 'Home') {
|
|
31
|
+
this.navigateTo(event, this.host.menuItems[0]);
|
|
32
|
+
return true;
|
|
33
|
+
}
|
|
34
|
+
if (event.key === 'End') {
|
|
35
|
+
this.navigateTo(event, this.host.menuItems[this.host.menuItems.length - 1]);
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
36
38
|
const isDown = event.key === 'ArrowDown';
|
|
37
39
|
const isUp = event.key === 'ArrowUp';
|
|
38
40
|
if (isDown || isUp) {
|
|
39
41
|
this.navigate(event, isDown);
|
|
40
|
-
return;
|
|
42
|
+
return true;
|
|
41
43
|
}
|
|
42
44
|
const isEnter = event.key === 'Enter';
|
|
43
45
|
const isTab = event.key === 'Tab';
|
|
44
46
|
if (isEnter || isTab) {
|
|
45
47
|
this.selectActiveItem(event);
|
|
48
|
+
return true;
|
|
46
49
|
}
|
|
50
|
+
return false;
|
|
47
51
|
}
|
|
48
52
|
navigate(event, forwards) {
|
|
49
|
-
const menuItems =
|
|
53
|
+
const menuItems = this.host.menuItems;
|
|
50
54
|
if (!menuItems.length) {
|
|
51
55
|
return;
|
|
52
56
|
}
|
|
53
57
|
event.preventDefault();
|
|
54
|
-
const activeMenu =
|
|
55
|
-
if (activeMenu) {
|
|
56
|
-
activeMenu.active = false;
|
|
57
|
-
}
|
|
58
|
+
const activeMenu = this.focusedMenu;
|
|
58
59
|
const nextMenu = forwards
|
|
59
60
|
? activeMenu?.nextElementSibling ?? menuItems[0]
|
|
60
61
|
: activeMenu?.previousElementSibling ?? menuItems[menuItems.length - 1];
|
|
61
62
|
if (!nextMenu) {
|
|
62
63
|
return;
|
|
63
64
|
}
|
|
64
|
-
|
|
65
|
-
|
|
65
|
+
this.navigateTo(event, nextMenu);
|
|
66
|
+
}
|
|
67
|
+
navigateTo(event, menu) {
|
|
68
|
+
event.preventDefault();
|
|
69
|
+
this.blurMenu();
|
|
70
|
+
if (!menu) {
|
|
71
|
+
return;
|
|
72
|
+
}
|
|
73
|
+
this.focusMenu(menu);
|
|
74
|
+
}
|
|
75
|
+
focusMenu(menu, active = true, scroll = true) {
|
|
76
|
+
this.focusedMenu = menu;
|
|
77
|
+
menu.active = active;
|
|
78
|
+
if (scroll) {
|
|
79
|
+
menu.scrollIntoView({ block: 'nearest' });
|
|
80
|
+
}
|
|
81
|
+
this.afterFocus(menu);
|
|
82
|
+
}
|
|
83
|
+
blurMenu() {
|
|
84
|
+
if (!this.focusedMenu) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.focusedMenu.active = false;
|
|
88
|
+
this.focusedMenu = null;
|
|
89
|
+
this.afterBlur();
|
|
66
90
|
}
|
|
67
91
|
selectActiveItem(event) {
|
|
68
|
-
|
|
69
|
-
const activeMenu = menuItems.find(m => m.active);
|
|
70
|
-
if (!activeMenu) {
|
|
92
|
+
if (!this.focusedMenu) {
|
|
71
93
|
return;
|
|
72
94
|
}
|
|
73
95
|
event.preventDefault();
|
|
74
|
-
|
|
96
|
+
this.focusedMenu.click();
|
|
97
|
+
}
|
|
98
|
+
afterFocus(_) {
|
|
99
|
+
}
|
|
100
|
+
afterBlur() {
|
|
75
101
|
}
|
|
76
102
|
}
|
|
77
|
-
_MenuFieldNavigationController_element = new WeakMap();
|
|
78
103
|
//# sourceMappingURL=menu-field-navigation-controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"menu-field-navigation-controller.js","sourceRoot":"","sources":["../../../src/shared/menu-field/menu-field-navigation-controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"menu-field-navigation-controller.js","sourceRoot":"","sources":["../../../src/shared/menu-field/menu-field-navigation-controller.ts"],"names":[],"mappings":"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","sourcesContent":["import { UmMenuItem } from '../../menu/menu-item.js';\nimport { UmMenuField } from './menu-field.js';\n\nexport class MenuFieldNavigationController<TField extends UmMenuField, TMenuItem extends UmMenuItem> {\n #element: HTMLElement | null = null;\n protected focusedMenu: TMenuItem | null = null;\n protected readonly host: TField;\n\n private readonly bindHandleKeyDown: (event: KeyboardEvent) => void;\n\n constructor(host: TField) {\n this.host = host;\n this.bindHandleKeyDown = this.handleKeyDown.bind(this);\n }\n\n attach(element: HTMLElement) {\n this.detach();\n\n element?.addEventListener('keydown', this.bindHandleKeyDown, {capture: true});\n this.host.menu.addEventListener('close', this.#handleMenuClose);\n this.#element = element;\n }\n\n detach() {\n this.#element?.removeEventListener('keydown', this.bindHandleKeyDown);\n this.host.menu.removeEventListener('close', this.#handleMenuClose);\n this.#element = null;\n }\n\n #handleMenuClose = () => this.blurMenu();\n\n protected handleKeyDown(event: KeyboardEvent): boolean {\n if (!this.host.menu.open) {\n return false;\n }\n\n const isEscape = event.key === 'Escape';\n\n if (isEscape) {\n this.host.menu.close();\n }\n\n if (event.key === 'Home') {\n this.navigateTo(event, <TMenuItem>this.host.menuItems[0]);\n return true;\n }\n\n if (event.key === 'End') {\n this.navigateTo(event, <TMenuItem>this.host.menuItems[this.host.menuItems.length - 1]);\n return true;\n }\n\n const isDown = event.key === 'ArrowDown';\n const isUp = event.key === 'ArrowUp';\n\n if (isDown || isUp) {\n this.navigate(event, isDown);\n return true;\n }\n\n const isEnter = event.key === 'Enter';\n const isTab = event.key === 'Tab';\n\n if (isEnter || isTab) {\n this.selectActiveItem(event);\n return true;\n }\n\n return false;\n }\n\n private navigate(event: KeyboardEvent, forwards: boolean) {\n const menuItems = this.host.menuItems;\n\n if (!menuItems.length) {\n return;\n }\n\n event.preventDefault();\n\n const activeMenu = this.focusedMenu;\n\n const nextMenu = forwards\n ? (<TMenuItem>activeMenu?.nextElementSibling) ?? menuItems[0]\n : (<TMenuItem>activeMenu?.previousElementSibling) ?? menuItems[menuItems.length - 1];\n\n if (!nextMenu) {\n return;\n }\n\n this.navigateTo(event, nextMenu);\n }\n\n protected navigateTo(event: KeyboardEvent, menu: TMenuItem | undefined) {\n event.preventDefault();\n\n this.blurMenu();\n\n if (!menu) {\n return;\n }\n\n this.focusMenu(menu);\n }\n\n focusMenu(menu: TMenuItem, active = true, scroll = true) {\n this.focusedMenu = menu;\n menu.active = active;\n\n if (scroll) {\n menu.scrollIntoView({block: 'nearest'});\n }\n\n this.afterFocus(menu);\n }\n\n blurMenu() {\n if (!this.focusedMenu) {\n return;\n }\n\n this.focusedMenu.active = false;\n this.focusedMenu = null;\n this.afterBlur();\n }\n\n private selectActiveItem(event: KeyboardEvent) {\n if (!this.focusedMenu) {\n return;\n }\n\n event.preventDefault();\n this.focusedMenu.click();\n }\n\n protected afterFocus(_: TMenuItem) {\n\n }\n\n protected afterBlur() {\n\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mixin-attribute-properties.d.ts","sourceRoot":"","sources":["../../src/shared/mixin-attribute-properties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGpD,eAAO,MAAM,wBAAwB,
|
|
1
|
+
{"version":3,"file":"mixin-attribute-properties.d.ts","sourceRoot":"","sources":["../../src/shared/mixin-attribute-properties.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAEjC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGpD,eAAO,MAAM,wBAAwB,0CAA2C,CAAC,iBAAiB,MAAM,EAAE,KAAG,YAAY,CAAC,CA2BzH,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function normalizeText(text: string): string;
|
|
1
|
+
export declare function normalizeText(text: string | null): string;
|
|
2
2
|
//# sourceMappingURL=normalize-text.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-text.d.ts","sourceRoot":"","sources":["../../src/shared/normalize-text.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"normalize-text.d.ts","sourceRoot":"","sources":["../../src/shared/normalize-text.ts"],"names":[],"mappings":"AAAA,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAQzD"}
|
package/shared/normalize-text.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"normalize-text.js","sourceRoot":"","sources":["../../src/shared/normalize-text.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"normalize-text.js","sourceRoot":"","sources":["../../src/shared/normalize-text.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,aAAa,CAAC,IAAmB;IAC/C,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,IAAI,IAAI,EAAE,CAAC;IACpB,CAAC;IAED,OAAO,IAAI;SACR,SAAS,CAAC,KAAK,CAAC;SAChB,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AACrC,CAAC","sourcesContent":["export function normalizeText(text: string | null): string {\n if (!text) {\n return text ?? '';\n }\n\n return text\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '');\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-control-list-item.d.ts","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control-list-item.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,eAAO,MAAM,6BAA6B,
|
|
1
|
+
{"version":3,"file":"selection-control-list-item.d.ts","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control-list-item.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAG5D,eAAO,MAAM,6BAA6B,kDAAmD,CAAC,KAAG,YAAY,CAAC,CAuB7G,CAAA"}
|
|
@@ -3,6 +3,13 @@ import { css, html } from 'lit';
|
|
|
3
3
|
export const mixinSelectionControlListItem = (base) => {
|
|
4
4
|
// @ts-ignore
|
|
5
5
|
class SelectionControlListItem extends base {
|
|
6
|
+
static { this.styles = [
|
|
7
|
+
base.styles ?? [],
|
|
8
|
+
css `:host {
|
|
9
|
+
--u-list-item-block-padding: 0;
|
|
10
|
+
display: block;
|
|
11
|
+
}`
|
|
12
|
+
]; }
|
|
6
13
|
render() {
|
|
7
14
|
return html `
|
|
8
15
|
<u-list-item ?selectable=${!this.disabled}>
|
|
@@ -13,13 +20,6 @@ export const mixinSelectionControlListItem = (base) => {
|
|
|
13
20
|
</u-list-item>`;
|
|
14
21
|
}
|
|
15
22
|
}
|
|
16
|
-
SelectionControlListItem.styles = [
|
|
17
|
-
base.styles ?? [],
|
|
18
|
-
css `:host {
|
|
19
|
-
--u-list-item-block-padding: 0;
|
|
20
|
-
display: block;
|
|
21
|
-
}`
|
|
22
|
-
];
|
|
23
23
|
return SelectionControlListItem;
|
|
24
24
|
};
|
|
25
25
|
//# sourceMappingURL=selection-control-list-item.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-control-list-item.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control-list-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAKhE,aAAa;AACb,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAA0C,IAAO,EAAkB,EAAE;IAChH,aAAa;IACb,MAAe,wBAAyB,SAAQ,IAAI;
|
|
1
|
+
{"version":3,"file":"selection-control-list-item.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control-list-item.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkC,MAAM,KAAK,CAAC;AAKhE,aAAa;AACb,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAA0C,IAAO,EAAkB,EAAE;IAChH,aAAa;IACb,MAAe,wBAAyB,SAAQ,IAAI;iBAC3C,WAAM,GAAG;YACb,IAAqC,CAAC,MAAM,IAAI,EAAE;YACnD,GAAG,CAAA;;;QAGD;SACH,CAAC;QAEO,MAAM;YACb,OAAO,IAAI,CAAA;qCACoB,CAAC,IAAI,CAAC,QAAQ;;;gBAGnC,KAAK,CAAC,MAAM,EAAE;;yBAEL,CAAC;QACtB,CAAC;;IAGH,OAAO,wBAAwB,CAAC;AAClC,CAAC,CAAA","sourcesContent":["import { css, html, HTMLTemplateResult, LitElement } from 'lit';\n\nimport { MixinBase, MixinReturn } from '../mixin.js';\nimport { UmSelectionControl } from './selection-control.js';\n\n// @ts-ignore\nexport const mixinSelectionControlListItem = <T extends MixinBase<UmSelectionControl>>(base: T): MixinReturn<T> => {\n // @ts-ignore\n abstract class SelectionControlListItem extends base {\n static styles = [\n (base as unknown as typeof LitElement).styles ?? [],\n css`:host {\n --u-list-item-block-padding: 0;\n display: block;\n }`\n ];\n\n override render(): HTMLTemplateResult {\n return html`\n <u-list-item ?selectable=${!this.disabled}>\n <label for=\"input\"><slot></slot></label>\n <div slot=\"trailing\">\n ${super.render()}\n </div>\n </u-list-item>`;\n }\n }\n\n return SelectionControlListItem;\n}\n"]}
|
|
@@ -4,40 +4,29 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
10
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
11
|
-
};
|
|
12
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
13
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
14
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
15
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
16
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
17
|
-
};
|
|
18
|
-
var _UmSelectionControl_instances, _UmSelectionControl_checked, _UmSelectionControl_handleClick;
|
|
19
7
|
import { html, LitElement, nothing } from 'lit';
|
|
20
8
|
import { property, query } from 'lit/decorators.js';
|
|
21
9
|
import '../../ripple/ripple.js';
|
|
22
10
|
export class UmSelectionControl extends LitElement {
|
|
11
|
+
static { this.formAssociated = true; }
|
|
23
12
|
// eslint-disable-next-line
|
|
24
13
|
// #value: any = '';
|
|
25
14
|
get form() {
|
|
26
15
|
return this.elementInternals.form;
|
|
27
16
|
}
|
|
17
|
+
#checked;
|
|
28
18
|
get checked() {
|
|
29
|
-
return
|
|
19
|
+
return this.#checked;
|
|
30
20
|
}
|
|
31
21
|
set checked(value) {
|
|
32
|
-
|
|
22
|
+
this.#checked = value;
|
|
33
23
|
this.elementInternals.setFormValue(value ? this.value : null);
|
|
34
24
|
}
|
|
35
25
|
constructor() {
|
|
36
26
|
super();
|
|
37
|
-
_UmSelectionControl_instances.add(this);
|
|
38
27
|
this.name = '';
|
|
39
28
|
this.disabled = false;
|
|
40
|
-
|
|
29
|
+
this.#checked = false;
|
|
41
30
|
this.inputType = 'checkbox';
|
|
42
31
|
this.renderRipple = true;
|
|
43
32
|
/**
|
|
@@ -48,11 +37,11 @@ export class UmSelectionControl extends LitElement {
|
|
|
48
37
|
}
|
|
49
38
|
connectedCallback() {
|
|
50
39
|
super.connectedCallback();
|
|
51
|
-
this.addEventListener('click',
|
|
40
|
+
this.addEventListener('click', this.#handleClick);
|
|
52
41
|
}
|
|
53
42
|
disconnectedCallback() {
|
|
54
43
|
super.disconnectedCallback();
|
|
55
|
-
this.removeEventListener('click',
|
|
44
|
+
this.removeEventListener('click', this.#handleClick);
|
|
56
45
|
}
|
|
57
46
|
render() {
|
|
58
47
|
const ripple = html `<u-ripple ?disabled=${this.disabled}></u-ripple>`;
|
|
@@ -64,21 +53,20 @@ export class UmSelectionControl extends LitElement {
|
|
|
64
53
|
type=${this.inputType}
|
|
65
54
|
class="focus-ring"
|
|
66
55
|
.name=${this.name}
|
|
67
|
-
.checked=${
|
|
56
|
+
.checked=${this.#checked}
|
|
68
57
|
.disabled=${this.disabled} />
|
|
69
58
|
<div class="indicator-container">${this.renderIndicator()}</div>
|
|
70
59
|
</div>`;
|
|
71
60
|
}
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
61
|
+
#handleClick(e) {
|
|
62
|
+
if (e.defaultPrevented) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
this.checked = this.inputType === 'radio' || !this.checked;
|
|
66
|
+
this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));
|
|
67
|
+
this.dispatchEvent(new Event('change', { bubbles: true }));
|
|
76
68
|
}
|
|
77
|
-
|
|
78
|
-
this.dispatchEvent(new InputEvent('input', { bubbles: true, composed: true }));
|
|
79
|
-
this.dispatchEvent(new Event('change', { bubbles: true }));
|
|
80
|
-
};
|
|
81
|
-
UmSelectionControl.formAssociated = true;
|
|
69
|
+
}
|
|
82
70
|
__decorate([
|
|
83
71
|
property()
|
|
84
72
|
], UmSelectionControl.prototype, "name", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selection-control.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"selection-control.js","sourceRoot":"","sources":["../../../src/shared/selection-control/selection-control.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEpD,OAAO,wBAAwB,CAAC;AAEhC,MAAM,OAAgB,kBAAmB,SAAQ,UAAU;aACzC,mBAAc,GAAG,IAAI,AAAP,CAAQ;IAQtC,2BAA2B;IAC3B,oBAAoB;IAEpB,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACpC,CAAC;IAED,QAAQ,CAAS;IAYjB,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IACD,IAAI,OAAO,CAAC,KAAc;QACxB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAChE,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAhCE,SAAI,GAAuB,EAAE,CAAC;QACA,aAAQ,GAAG,KAAK,CAAC;QAU3D,aAAQ,GAAG,KAAK,CAAC;QACP,cAAS,GAAyB,UAAU,CAAC;QAC7C,iBAAY,GAAG,IAAI,CAAC;QAI9B;;WAEG;QACS,UAAK,GAAG,IAAI,CAAC;QAavB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC;IAEQ,iBAAiB;QACxB,KAAK,CAAC,iBAAiB,EAAE,CAAC;QAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IACpD,CAAC;IAEQ,oBAAoB;QAC3B,KAAK,CAAC,oBAAoB,EAAE,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAA;IACtD,CAAC;IAEkB,MAAM;QACvB,MAAM,MAAM,GAAG,IAAI,CAAA,uBAAuB,IAAI,CAAC,QAAQ,cAAc,CAAC;QAEtE,OAAO,IAAI,CAAA;;UAEL,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO;;;iBAG7B,IAAI,CAAC,SAAS;;kBAEb,IAAI,CAAC,IAAI;qBACN,IAAI,CAAC,QAAQ;sBACZ,IAAI,CAAC,QAAQ;2CACQ,IAAI,CAAC,eAAe,EAAE;aACpD,CAAC;IACZ,CAAC;IAED,YAAY,CAAC,CAAQ;QACnB,IAAI,CAAC,CAAC,gBAAgB,EAAE,CAAC;YACvB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC;QAC3D,IAAI,CAAC,aAAa,CAAC,IAAI,UAAU,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;QAC7E,IAAI,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC,CAAC;IAC3D,CAAC;;AAvEW;IAAX,QAAQ,EAAE;gDAA+B;AACA;IAAzC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAC,CAAC;oDAAkB;AAC3C;IAAf,KAAK,CAAC,OAAO,CAAC;iDAA0B;AAkB7B;IAAX,QAAQ,EAAE;iDAAc;AAGzB;IADC,QAAQ,CAAC,EAAC,IAAI,EAAE,OAAO,EAAC,CAAC;iDAGzB","sourcesContent":["import { html, HTMLTemplateResult, LitElement, nothing } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nimport '../../ripple/ripple.js';\n\nexport abstract class UmSelectionControl extends LitElement {\n static readonly formAssociated = true;\n\n protected readonly elementInternals: ElementInternals;\n\n @property() name: string | undefined = '';\n @property({type: Boolean, reflect: true}) disabled = false;\n @query('input') input!: HTMLInputElement;\n\n // eslint-disable-next-line\n // #value: any = '';\n\n get form(): HTMLFormElement | null {\n return this.elementInternals.form;\n }\n\n #checked = false;\n protected inputType: 'checkbox' | 'radio' = 'checkbox';\n protected renderRipple = true;\n\n protected abstract renderIndicator(): HTMLTemplateResult;\n\n /**\n * The element value to use in form submission when checked.\n */\n @property() value = 'on';\n\n @property({type: Boolean})\n get checked() {\n return this.#checked;\n }\n set checked(value: boolean) {\n this.#checked = value;\n this.elementInternals.setFormValue(value ? this.value : null);\n }\n\n protected constructor() {\n super();\n this.elementInternals = this.attachInternals();\n }\n\n override connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this.#handleClick);\n }\n\n override disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this.#handleClick)\n }\n\n protected override render(): HTMLTemplateResult {\n const ripple = html`<u-ripple ?disabled=${this.disabled}></u-ripple>`;\n\n return html`\n <div class=\"container\">\n ${this.renderRipple ? ripple : nothing}\n <input\n id=\"input\"\n type=${this.inputType}\n class=\"focus-ring\"\n .name=${this.name}\n .checked=${this.#checked}\n .disabled=${this.disabled} />\n <div class=\"indicator-container\">${this.renderIndicator()}</div>\n </div>`;\n }\n\n #handleClick(e: Event) {\n if (e.defaultPrevented) {\n return;\n }\n\n this.checked = this.inputType === 'radio' || !this.checked;\n this.dispatchEvent(new InputEvent('input', {bubbles: true, composed: true}));\n this.dispatchEvent(new Event('change', {bubbles: true}));\n }\n}\n"]}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { CSSResultGroup } from '@lit/reactive-element/css-tag';
|
|
1
2
|
import { HTMLTemplateResult, LitElement } from 'lit';
|
|
2
3
|
export declare abstract class UmSetBase extends LitElement {
|
|
4
|
+
static styles: CSSResultGroup;
|
|
3
5
|
/**
|
|
4
6
|
* Set the alignment of the set at the `start`, `center` or at the `end`.
|
|
5
7
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-base.d.ts","sourceRoot":"","sources":["../../../src/shared/sets/set-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"set-base.d.ts","sourceRoot":"","sources":["../../../src/shared/sets/set-base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AAK3D,8BAAsB,SAAU,SAAQ,UAAU;IAEhD,OAAgB,MAAM,EAAE,cAAc,CAAY;IAElD;;OAEG;IACwB,SAAS,EAAE,OAAO,GAAG,QAAQ,GAAG,KAAK,CAAW;IAElE,MAAM,IAAI,kBAAkB;CAItC"}
|
package/shared/sets/set-base.js
CHANGED
|
@@ -6,6 +6,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
6
6
|
};
|
|
7
7
|
import { html, LitElement } from 'lit';
|
|
8
8
|
import { property } from 'lit/decorators.js';
|
|
9
|
+
import { styles } from './set-base.styles.js';
|
|
9
10
|
export class UmSetBase extends LitElement {
|
|
10
11
|
constructor() {
|
|
11
12
|
super(...arguments);
|
|
@@ -14,6 +15,7 @@ export class UmSetBase extends LitElement {
|
|
|
14
15
|
*/
|
|
15
16
|
this.alignment = 'start';
|
|
16
17
|
}
|
|
18
|
+
static { this.styles = [styles]; }
|
|
17
19
|
render() {
|
|
18
20
|
return html `
|
|
19
21
|
<slot></slot>`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"set-base.js","sourceRoot":"","sources":["../../../src/shared/sets/set-base.ts"],"names":[],"mappings":";;;;;;
|
|
1
|
+
{"version":3,"file":"set-base.js","sourceRoot":"","sources":["../../../src/shared/sets/set-base.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,MAAM,KAAK,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,MAAM,OAAgB,SAAU,SAAQ,UAAU;IAAlD;;QAIE;;WAEG;QACwB,cAAS,GAA+B,OAAO,CAAC;IAM7E,CAAC;aAXiB,WAAM,GAAmB,CAAC,MAAM,CAAC,AAA3B,CAA4B;IAOzC,MAAM;QACb,OAAO,IAAI,CAAA;oBACK,CAAC;IACnB,CAAC;;AAL0B;IAA1B,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;4CAAiD","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\nimport { html, HTMLTemplateResult, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { styles } from './set-base.styles.js';\n\nexport abstract class UmSetBase extends LitElement {\n\n static override styles: CSSResultGroup = [styles];\n\n /**\n * Set the alignment of the set at the `start`, `center` or at the `end`.\n */\n @property({reflect: true}) alignment: 'start' | 'center' | 'end' = 'start';\n\n override render(): HTMLTemplateResult {\n return html`\n <slot></slot>`;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-base.styles.d.ts","sourceRoot":"","sources":["../../../src/shared/sets/set-base.styles.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,yBAmBlB,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { css } from 'lit';
|
|
2
|
+
export const styles = css `
|
|
3
|
+
:host {
|
|
4
|
+
display: flex;
|
|
5
|
+
gap: 8px;
|
|
6
|
+
align-items: center;
|
|
7
|
+
flex-wrap: nowrap;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
:host([alignment=start]) {
|
|
11
|
+
justify-content: flex-start;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
:host([alignment=center]) {
|
|
15
|
+
justify-content: center;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
:host([alignment=end]) {
|
|
19
|
+
justify-content: flex-end;
|
|
20
|
+
}
|
|
21
|
+
`;
|
|
22
|
+
//# sourceMappingURL=set-base.styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"set-base.styles.js","sourceRoot":"","sources":["../../../src/shared/sets/set-base.styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B,MAAM,CAAC,MAAM,MAAM,GAAG,GAAG,CAAC;;;;;;;;;;;;;;;;;;;CAmBzB,CAAC","sourcesContent":["import { css } from 'lit';\n\nexport const styles = css `\n :host {\n display: flex;\n gap: 8px;\n align-items: center;\n flex-wrap: nowrap;\n }\n\n :host([alignment=start]) {\n justify-content: flex-start;\n }\n\n :host([alignment=center]) {\n justify-content: center;\n }\n\n :host([alignment=end]) {\n justify-content: flex-end;\n }\n`;\n"]}
|
|
@@ -9,6 +9,12 @@ import { property } from 'lit/decorators.js';
|
|
|
9
9
|
import { styles } from './text-field-base.styles.js';
|
|
10
10
|
import { UmFieldBase } from '../../field/field-base.js';
|
|
11
11
|
export class UmTextFieldBase extends UmFieldBase {
|
|
12
|
+
static { this.formAssociated = true; }
|
|
13
|
+
static { this.styles = [UmFieldBase.styles, styles]; }
|
|
14
|
+
static { this.shadowRootOptions = {
|
|
15
|
+
...LitElement.shadowRootOptions,
|
|
16
|
+
delegatesFocus: true,
|
|
17
|
+
}; }
|
|
12
18
|
get form() {
|
|
13
19
|
return this.elementInternals.form;
|
|
14
20
|
}
|
|
@@ -18,12 +24,6 @@ export class UmTextFieldBase extends UmFieldBase {
|
|
|
18
24
|
this.elementInternals = this.attachInternals();
|
|
19
25
|
}
|
|
20
26
|
}
|
|
21
|
-
UmTextFieldBase.formAssociated = true;
|
|
22
|
-
UmTextFieldBase.styles = [UmFieldBase.styles, styles];
|
|
23
|
-
UmTextFieldBase.shadowRootOptions = {
|
|
24
|
-
...LitElement.shadowRootOptions,
|
|
25
|
-
delegatesFocus: true,
|
|
26
|
-
};
|
|
27
27
|
__decorate([
|
|
28
28
|
property({ reflect: true })
|
|
29
29
|
], UmTextFieldBase.prototype, "placeholder", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-field-base.js","sourceRoot":"","sources":["../../../src/shared/text-field-base/text-field-base.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,OAAgB,eAAgB,SAAQ,WAAW;
|
|
1
|
+
{"version":3,"file":"text-field-base.js","sourceRoot":"","sources":["../../../src/shared/text-field-base/text-field-base.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C,OAAO,EAAE,MAAM,EAAE,MAAM,6BAA6B,CAAC;AAErD,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,OAAgB,eAAgB,SAAQ,WAAW;aACvC,mBAAc,GAAG,IAAI,AAAP,CAAQ;aAEtB,WAAM,GAAmB,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,AAA/C,CAAgD;aAEtD,sBAAiB,GAAmB;QAClD,GAAG,UAAU,CAAC,iBAAiB;QAC/B,cAAc,EAAE,IAAI;KACrB,AAHgC,CAG/B;IAMF,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;IACpC,CAAC;IAID;QACE,KAAK,EAAE,CAAC;QAXD,UAAK,GAAG,IAAI,CAAC;QAYpB,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;IACjD,CAAC;;AAX0B;IAA1B,QAAQ,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC;oDAAiC","sourcesContent":["import { CSSResultGroup } from '@lit/reactive-element/css-tag';\nimport { LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\n\nimport { styles } from './text-field-base.styles.js';\n\nimport { UmFieldBase } from '../../field/field-base.js';\n\nexport abstract class UmTextFieldBase extends UmFieldBase {\n static readonly formAssociated = true;\n\n static override styles: CSSResultGroup = [UmFieldBase.styles, styles];\n\n static override shadowRootOptions: ShadowRootInit = {\n ...LitElement.shadowRootOptions,\n delegatesFocus: true,\n };\n\n override empty = true;\n\n @property({reflect: true}) placeholder: string | undefined;\n\n get form(): HTMLFormElement | null {\n return this.elementInternals.form;\n }\n\n protected readonly elementInternals: ElementInternals;\n\n constructor() {\n super();\n this.elementInternals = this.attachInternals();\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snackbar.d.ts","sourceRoot":"","sources":["../../src/snackbar/snackbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAW,MAAM,KAAK,CAAC;AAMpE,OAAO,qBAAqB,CAAC;AAC7B,OAAO,0BAA0B,CAAC;AAElC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,oBAAY,gBAAgB;IAC1B,KAAK,OAAO;IACZ,IAAI,OAAO;IACX,QAAQ,KAAK;CACd;AAED,qBACa,UAAW,SAAQ,UAAU;IAExC,OAAgB,MAAM,4BAGpB;IAEyB,KAAK,EAAE,MAAM,CAAM;IACnB,WAAW,EAAE,MAAM,CAAM;IACe,SAAS,UAAS;IAC3C,SAAS,UAAS;IAE5D,OAAO,CAAC,QAAQ,CAAoB;IAChB,OAAO,CAAC,QAAQ,CAAe;IAE1C,MAAM,IAAI,kBAAkB;IASrC,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,iBAAiB;
|
|
1
|
+
{"version":3,"file":"snackbar.d.ts","sourceRoot":"","sources":["../../src/snackbar/snackbar.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,kBAAkB,EAAE,UAAU,EAAW,MAAM,KAAK,CAAC;AAMpE,OAAO,qBAAqB,CAAC;AAC7B,OAAO,0BAA0B,CAAC;AAElC,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,gBAAgB,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,oBAAY,gBAAgB;IAC1B,KAAK,OAAO;IACZ,IAAI,OAAO;IACX,QAAQ,KAAK;CACd;AAED,qBACa,UAAW,SAAQ,UAAU;IAExC,OAAgB,MAAM,4BAGpB;IAEyB,KAAK,EAAE,MAAM,CAAM;IACnB,WAAW,EAAE,MAAM,CAAM;IACe,SAAS,UAAS;IAC3C,SAAS,UAAS;IAE5D,OAAO,CAAC,QAAQ,CAAoB;IAChB,OAAO,CAAC,QAAQ,CAAe;IAE1C,MAAM,IAAI,kBAAkB;IASrC,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,IAAI,IAAI;IAiBf,OAAO,CAAC,MAAM,CAAC,MAAM,CAAoB;IACzC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAU;IAEnC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU;IACtC,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU;IAqB/C,OAAO,CAAC,MAAM,CAAC,YAAY;IAQ3B,OAAO,CAAC,MAAM,CAAC,QAAQ;IAmBvB,OAAO,CAAC,MAAM,CAAC,cAAc;CAS9B;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,YAAY,EAAE,UAAU,CAAC;KAC1B;CACF"}
|
package/snackbar/snackbar.js
CHANGED
|
@@ -17,7 +17,7 @@ export var SnackbarDuration;
|
|
|
17
17
|
SnackbarDuration[SnackbarDuration["long"] = 5000] = "long";
|
|
18
18
|
SnackbarDuration[SnackbarDuration["infinite"] = -1] = "infinite";
|
|
19
19
|
})(SnackbarDuration || (SnackbarDuration = {}));
|
|
20
|
-
let UmSnackbar =
|
|
20
|
+
let UmSnackbar = class UmSnackbar extends LitElement {
|
|
21
21
|
constructor() {
|
|
22
22
|
super(...arguments);
|
|
23
23
|
this.label = '';
|
|
@@ -25,6 +25,11 @@ let UmSnackbar = UmSnackbar_1 = class UmSnackbar extends LitElement {
|
|
|
25
25
|
this.showClose = false;
|
|
26
26
|
this.dismissed = false;
|
|
27
27
|
}
|
|
28
|
+
static { UmSnackbar_1 = this; }
|
|
29
|
+
static { this.styles = [
|
|
30
|
+
baseStyles,
|
|
31
|
+
styles
|
|
32
|
+
]; }
|
|
28
33
|
render() {
|
|
29
34
|
return html `
|
|
30
35
|
<div class="snackbar ${this.dismissed ? 'dismiss' : ''}">
|
|
@@ -40,7 +45,12 @@ let UmSnackbar = UmSnackbar_1 = class UmSnackbar extends LitElement {
|
|
|
40
45
|
}
|
|
41
46
|
renderCloseButton() {
|
|
42
47
|
return this.showClose
|
|
43
|
-
? html
|
|
48
|
+
? html `
|
|
49
|
+
<u-icon-button @click=${this.dismiss.bind(this)}>
|
|
50
|
+
<svg xmlns="http://www.w3.org/2000/svg" height="1em" viewBox="0 -960 960 960" width="1em" fill="currentColor">
|
|
51
|
+
<path d="m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z"/>
|
|
52
|
+
</svg>
|
|
53
|
+
</u-icon-button>`
|
|
44
54
|
: nothing;
|
|
45
55
|
}
|
|
46
56
|
dismiss() {
|
|
@@ -55,6 +65,7 @@ let UmSnackbar = UmSnackbar_1 = class UmSnackbar extends LitElement {
|
|
|
55
65
|
};
|
|
56
66
|
this.snackbar.addEventListener('animationend', onAnimationEnd);
|
|
57
67
|
}
|
|
68
|
+
static { this._queue = []; }
|
|
58
69
|
static show(configOrLabel) {
|
|
59
70
|
if (typeof configOrLabel === 'string') {
|
|
60
71
|
configOrLabel = {
|
|
@@ -97,11 +108,6 @@ let UmSnackbar = UmSnackbar_1 = class UmSnackbar extends LitElement {
|
|
|
97
108
|
return snackbar;
|
|
98
109
|
}
|
|
99
110
|
};
|
|
100
|
-
UmSnackbar.styles = [
|
|
101
|
-
baseStyles,
|
|
102
|
-
styles
|
|
103
|
-
];
|
|
104
|
-
UmSnackbar._queue = [];
|
|
105
111
|
__decorate([
|
|
106
112
|
property({ reflect: true })
|
|
107
113
|
], UmSnackbar.prototype, "label", void 0);
|
package/snackbar/snackbar.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"snackbar.js","sourceRoot":"","sources":["../../src/snackbar/snackbar.ts"],"names":[],"mappings":";;;;;;;AAAA,OAAO,EAAE,IAAI,EAAsB,UAAU,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAE9C,OAAO,qBAAqB,CAAC;AAC7B,OAAO,0BAA0B,CAAC;AASlC,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,4DAAY,CAAA;IACZ,0DAAW,CAAA;IACX,gEAAa,CAAA;AACf,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAGM,IAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"snackbar.js","sourceRoot":"","sources":["../../src/snackbar/snackbar.ts"],"names":[],"mappings":"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","sourcesContent":["import { html, HTMLTemplateResult, LitElement, nothing } from 'lit';\nimport { customElement, property, query } from 'lit/decorators.js';\n\nimport { styles as baseStyles } from '../shared/base.styles.js';\nimport { styles } from './snackbar.styles.js';\n\nimport '../button/button.js';\nimport '../button/icon-button.js';\n\nexport interface SnackbarConfig {\n label: string;\n duration?: SnackbarDuration;\n buttonLabel?: string;\n showClose?: boolean;\n}\n\nexport enum SnackbarDuration {\n short = 2500,\n long = 5000,\n infinite = -1\n}\n\n@customElement('u-snackbar')\nexport class UmSnackbar extends LitElement {\n\n static override styles = [\n baseStyles,\n styles\n ];\n\n @property({reflect: true}) label: string = '';\n @property({reflect: true}) buttonLabel: string = '';\n @property({type: Boolean, attribute: 'show-close', reflect: true}) showClose = false;\n @property({type: Boolean, reflect: true}) dismissed = false;\n\n private duration!: SnackbarDuration;\n @query('.snackbar') private snackbar!: HTMLElement;\n\n override render(): HTMLTemplateResult {\n return html`\n <div class=\"snackbar ${this.dismissed ? 'dismiss' : ''}\">\n <div class=\"label\">${this.label}</div>\n ${this.renderButton()}\n ${this.renderCloseButton()}\n </div>`;\n }\n\n private renderButton() {\n return this.buttonLabel\n ? html`<u-button variant=\"text\">${this.buttonLabel}</u-button>`\n : nothing;\n }\n\n private renderCloseButton() {\n return this.showClose\n ? html`\n <u-icon-button @click=${this.dismiss.bind(this)}>\n <svg xmlns=\"http://www.w3.org/2000/svg\" height=\"1em\" viewBox=\"0 -960 960 960\" width=\"1em\" fill=\"currentColor\">\n <path d=\"m256-200-56-56 224-224-224-224 56-56 224 224 224-224 56 56-224 224 224 224-56 56-224-224-224 224Z\"/>\n </svg>\n </u-icon-button>`\n : nothing;\n }\n\n dismiss(): void {\n if (this.dismissed) {\n return;\n }\n\n this.dismissed = true;\n\n const onAnimationEnd = () => {\n this.snackbar.removeEventListener('animationend', onAnimationEnd);\n this.remove();\n\n UmSnackbar.showNext();\n };\n\n this.snackbar.addEventListener('animationend', onAnimationEnd);\n }\n\n private static _queue: UmSnackbar[] = [];\n private static _consuming: boolean;\n\n static show(label: string): UmSnackbar;\n static show(config: SnackbarConfig): UmSnackbar;\n static show(configOrLabel: SnackbarConfig | string): UmSnackbar {\n\n if (typeof configOrLabel === 'string') {\n configOrLabel = {\n label: configOrLabel\n }\n }\n\n configOrLabel.duration ??= SnackbarDuration.short;\n\n const snackbar = this.createSnackbar(<SnackbarConfig>configOrLabel);\n UmSnackbar._queue.push(snackbar);\n\n if (!UmSnackbar._consuming) {\n UmSnackbar.consumeQueue();\n }\n\n return snackbar;\n }\n\n private static consumeQueue() {\n\n if (UmSnackbar._queue.length) {\n UmSnackbar._consuming = true;\n UmSnackbar.showNext();\n }\n }\n\n private static showNext() {\n if (!UmSnackbar._queue.length) {\n UmSnackbar._consuming = false;\n return;\n }\n \n const snackbar = UmSnackbar._queue[0];\n\n UmSnackbar._queue = UmSnackbar._queue.slice(1);\n\n document.body.appendChild(snackbar);\n\n if (snackbar.duration === -1) {\n return;\n }\n\n setTimeout(() => snackbar.dismiss(), snackbar.duration);\n }\n\n private static createSnackbar(config: SnackbarConfig): UmSnackbar {\n const snackbar = document.createElement(\"u-snackbar\");\n snackbar.label = config.label;\n snackbar.buttonLabel = config.buttonLabel!;\n snackbar.showClose = config.showClose!;\n snackbar.duration = config.duration!;\n\n return snackbar;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n 'u-snackbar': UmSnackbar;\n }\n}\n"]}
|