@golemui/gui-lit 1.0.2 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +15 -0
- package/calendar-BuJgwvZx.js +254 -0
- package/{calendar.element-MubSE1bx.js → calendar.element-M5MPJmap.js} +1 -1
- package/{currency.element-BHXWcOEu.js → currency.element-CfFrAtrr.js} +20 -14
- package/{date-DTYg8sog.js → date-Bj9mI3GU.js} +106 -50
- package/date-input-cJDkNnVw.js +184 -0
- package/date-picker.element-va_-LGZD.js +312 -0
- package/date-time-calendar-BzRfkLKU.js +361 -0
- package/date-time-calendar.element-DC4NK0y1.js +93 -0
- package/date-time-input-BXxsfuyZ.js +214 -0
- package/date-time-picker.element-Dy-8cb-_.js +380 -0
- package/date-time.element-Bv4XdzMi.js +87 -0
- package/{date.element-BtVJSIRk.js → date.element-Consgsbb.js} +32 -27
- package/day-status-0-hJHrI7.js +530 -0
- package/{dropdown.element-DqzC6aXR.js → dropdown.element-WsD61Qel.js} +57 -48
- package/focus-leave.controller-2gV0pQd5.js +73 -0
- package/index.js +1209 -981
- package/index.umd.cjs +1574 -519
- package/lib/components/date-picker.element.d.ts +0 -11
- package/lib/components/date-time-calendar.element.d.ts +18 -0
- package/lib/components/date-time-picker.element.d.ts +18 -0
- package/lib/components/date-time.element.d.ts +18 -0
- package/lib/components/dropdown.element.d.ts +2 -0
- package/lib/components/range-calendar.element.d.ts +2 -1
- package/lib/components/range-date-picker.element.d.ts +0 -15
- package/lib/components/range-date-time-calendar.element.d.ts +18 -0
- package/lib/components/range-date-time-input.element.d.ts +18 -0
- package/lib/components/range-date-time-picker.element.d.ts +18 -0
- package/lib/components/range-time-input.element.d.ts +18 -0
- package/lib/components/range-time-picker.element.d.ts +18 -0
- package/lib/components/time-picker.element.d.ts +18 -0
- package/lib/components/time.element.d.ts +18 -0
- package/{list-D1oKnH89.js → list-CrLIL4by.js} +76 -61
- package/{list.element-Co3V3Cn5.js → list.element-DV82YxnJ.js} +22 -22
- package/{number.element-BhEyoOtc.js → number.element-CBr47IiY.js} +18 -16
- package/numeric-jmOOKz30.js +12 -0
- package/package.json +6 -6
- package/part-templates-Db871PS3.js +677 -0
- package/pill-ranges-DCqDmpkk.js +48 -0
- package/{pills-B66qz_KX.js → pills-Be1UrLgq.js} +4 -1
- package/popup.controller-eUDxE6jD.js +71 -0
- package/range-calendar-CKPYeSGt.js +452 -0
- package/{range-calendar.element-QTE6vGNP.js → range-calendar.element-D6KYq18B.js} +24 -20
- package/range-commit-8-MmYUyo.js +14 -0
- package/range-date-input-D--AqBMv.js +292 -0
- package/{range-date-input.element-Dj29D_OQ.js → range-date-input.element-D4nIXJbw.js} +8 -7
- package/range-date-picker.element-dhxPAAE6.js +386 -0
- package/range-date-time-calendar-yksWrR7b.js +720 -0
- package/range-date-time-calendar.element-C00aDefZ.js +95 -0
- package/range-date-time-input-B37TUoM3.js +322 -0
- package/range-date-time-input.element-DUnbv4ed.js +81 -0
- package/range-date-time-picker.element-Cbps6s_G.js +412 -0
- package/range-selection-CU3hxLJE.js +25 -0
- package/range-time-input-3lhqR1Ku.js +329 -0
- package/range-time-input.element-dU2iBdmJ.js +81 -0
- package/range-time-picker.element-v6nQsIPw.js +429 -0
- package/{select.element-jcDF1h-g.js → select.element-C0V-Bv3L.js} +94 -90
- package/{tags.element-CX3vQL8L.js → tags.element-DvwEpxpK.js} +1 -1
- package/time-input-BOhlBGJZ.js +181 -0
- package/time-list-Czo48bZm.js +217 -0
- package/time-picker-bFJ63ky8.js +261 -0
- package/time-picker.element-CYZVXgRS.js +85 -0
- package/time.element-fK3oLi49.js +82 -0
- package/abstract-calendar-BoqKPRmS.js +0 -545
- package/calendar-DTYKVYc3.js +0 -96
- package/date-input-BeQvyfln.js +0 -268
- package/date-picker.element-DabW_-0-.js +0 -166
- package/range-calendar-9skwbwlB.js +0 -255
- package/range-date-input-Uy8134vi.js +0 -395
- package/range-date-picker.element-CuKIBkIO.js +0 -182
|
@@ -7,23 +7,12 @@ export declare class DatePickerElement extends LitElement implements WithWidget
|
|
|
7
7
|
widget: InputWidget<string>;
|
|
8
8
|
formContext: LitFormContext<any>;
|
|
9
9
|
adapter: InputWidgetAdapter<string, DatePickerProps>;
|
|
10
|
-
dateInput?: HTMLElement;
|
|
11
|
-
calendarInput?: HTMLElement;
|
|
12
|
-
isCalendarOpen: boolean;
|
|
13
10
|
subscriptions: Subscription[];
|
|
14
|
-
onFocusOut: (event: FocusEvent) => void;
|
|
15
|
-
onDocumentClick: (event: MouseEvent) => void;
|
|
16
11
|
createRenderRoot(): this;
|
|
17
12
|
updated(changedProperties: any): void;
|
|
18
13
|
connectedCallback(): void;
|
|
19
14
|
render(): import('lit-html').TemplateResult<1>;
|
|
20
15
|
valueChanged(event: CustomEvent): void;
|
|
21
|
-
onCalendarChange(event: CustomEvent): void;
|
|
22
|
-
onBlurCalendar(): void;
|
|
23
16
|
onInputError(event: CustomEvent): void;
|
|
24
|
-
onKeyUp(event: Event): void;
|
|
25
|
-
toggleCalendar(event: Event): void;
|
|
26
|
-
openCalendar(): void;
|
|
27
|
-
closeCalendar(): void;
|
|
28
17
|
disconnectedCallback(): void;
|
|
29
18
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputWidget, WithWidget } from '@golemui/core';
|
|
2
|
+
import { InputWidgetAdapter, LitFormContext } from '@golemui/lit';
|
|
3
|
+
import { DateTimeCalendarProps } from '@golemui/gui-shared/internals';
|
|
4
|
+
import { LitElement } from 'lit';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
export declare class DateTimeCalendarElement extends LitElement implements WithWidget {
|
|
7
|
+
widget: InputWidget<string>;
|
|
8
|
+
formContext: LitFormContext<any>;
|
|
9
|
+
adapter: InputWidgetAdapter<string, DateTimeCalendarProps>;
|
|
10
|
+
subscriptions: Subscription[];
|
|
11
|
+
createRenderRoot(): this;
|
|
12
|
+
updated(changedProperties: any): void;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
+
valueChanged(event: CustomEvent): void;
|
|
16
|
+
onInputError(event: CustomEvent): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputWidget, WithWidget } from '@golemui/core';
|
|
2
|
+
import { InputWidgetAdapter, LitFormContext } from '@golemui/lit';
|
|
3
|
+
import { DateTimePickerProps } from '@golemui/gui-shared/internals';
|
|
4
|
+
import { LitElement } from 'lit';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
export declare class DateTimePickerElement extends LitElement implements WithWidget {
|
|
7
|
+
widget: InputWidget<string>;
|
|
8
|
+
formContext: LitFormContext<any>;
|
|
9
|
+
adapter: InputWidgetAdapter<string, DateTimePickerProps>;
|
|
10
|
+
subscriptions: Subscription[];
|
|
11
|
+
createRenderRoot(): this;
|
|
12
|
+
updated(changedProperties: any): void;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
+
valueChanged(event: CustomEvent): void;
|
|
16
|
+
onInputError(event: CustomEvent): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputWidget, WithWidget } from '@golemui/core';
|
|
2
|
+
import { InputWidgetAdapter, LitFormContext } from '@golemui/lit';
|
|
3
|
+
import { DateTimeInputProps } from '@golemui/gui-shared/internals';
|
|
4
|
+
import { LitElement } from 'lit';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
export declare class DateTimeElement extends LitElement implements WithWidget {
|
|
7
|
+
widget: InputWidget<string>;
|
|
8
|
+
formContext: LitFormContext<any>;
|
|
9
|
+
adapter: InputWidgetAdapter<string, DateTimeInputProps>;
|
|
10
|
+
subscriptions: Subscription[];
|
|
11
|
+
createRenderRoot(): this;
|
|
12
|
+
updated(changedProperties: any): void;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
+
valueChanged(event: CustomEvent): void;
|
|
16
|
+
onInputError(event: CustomEvent): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
}
|
|
@@ -18,6 +18,7 @@ export declare class DropdownElement extends LitElement implements WithWidget {
|
|
|
18
18
|
private _selectedItem;
|
|
19
19
|
private _inputRef;
|
|
20
20
|
private _listRef;
|
|
21
|
+
private _ignoreNextFocus;
|
|
21
22
|
onDocumentClick: (event: MouseEvent) => void;
|
|
22
23
|
createRenderRoot(): this;
|
|
23
24
|
updated(changedProperties: any): void;
|
|
@@ -31,6 +32,7 @@ export declare class DropdownElement extends LitElement implements WithWidget {
|
|
|
31
32
|
private _onKeyDown;
|
|
32
33
|
private _onInput;
|
|
33
34
|
private _filterItems;
|
|
35
|
+
private _onWidgetKeyDown;
|
|
34
36
|
private _onFocus;
|
|
35
37
|
private _onFocusOutInput;
|
|
36
38
|
private _onBlur;
|
|
@@ -12,6 +12,7 @@ export declare class RangeCalendarElement extends LitElement implements WithWidg
|
|
|
12
12
|
updated(changedProperties: any): void;
|
|
13
13
|
connectedCallback(): void;
|
|
14
14
|
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
-
valueChanged(event:
|
|
15
|
+
valueChanged(event: CustomEvent): void;
|
|
16
|
+
onInputError(event: CustomEvent): void;
|
|
16
17
|
disconnectedCallback(): void;
|
|
17
18
|
}
|
|
@@ -7,27 +7,12 @@ export declare class RangeDatePickerElement extends LitElement implements WithWi
|
|
|
7
7
|
widget: InputWidget<DateRange[]>;
|
|
8
8
|
formContext: LitFormContext<any>;
|
|
9
9
|
adapter: InputWidgetAdapter<DateRange[], RangeDatePickerProps>;
|
|
10
|
-
dateInput?: HTMLElement;
|
|
11
|
-
calendarInput?: HTMLElement;
|
|
12
|
-
isCalendarOpen: boolean;
|
|
13
|
-
focusDate: string | undefined;
|
|
14
10
|
subscriptions: Subscription[];
|
|
15
|
-
private _ignoreNextFocusOut;
|
|
16
|
-
onFocusOut: (event: FocusEvent) => void;
|
|
17
|
-
onDocumentClick: (event: MouseEvent) => void;
|
|
18
|
-
onDropdownToggle: (event: Event) => void;
|
|
19
11
|
createRenderRoot(): this;
|
|
20
12
|
updated(changedProperties: any): void;
|
|
21
13
|
connectedCallback(): void;
|
|
22
14
|
render(): import('lit-html').TemplateResult<1>;
|
|
23
15
|
valueChanged(event: CustomEvent): void;
|
|
24
|
-
onBlurCalendar(): void;
|
|
25
16
|
onInputError(event: CustomEvent): void;
|
|
26
|
-
onPillClick(event: CustomEvent): void;
|
|
27
|
-
onKeyUp(event: Event): void;
|
|
28
|
-
toggleCalendar(event: Event): void;
|
|
29
|
-
openCalendar(): void;
|
|
30
|
-
closeCalendar(): void;
|
|
31
|
-
private closePillsDropdown;
|
|
32
17
|
disconnectedCallback(): void;
|
|
33
18
|
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputWidget, WithWidget } from '@golemui/core';
|
|
2
|
+
import { InputWidgetAdapter, LitFormContext } from '@golemui/lit';
|
|
3
|
+
import { DateTimeRange, RangeDateTimeCalendarProps } from '@golemui/gui-shared/internals';
|
|
4
|
+
import { LitElement } from 'lit';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
export declare class RangeDateTimeCalendarElement extends LitElement implements WithWidget {
|
|
7
|
+
widget: InputWidget<DateTimeRange[]>;
|
|
8
|
+
formContext: LitFormContext<any>;
|
|
9
|
+
adapter: InputWidgetAdapter<DateTimeRange[], RangeDateTimeCalendarProps>;
|
|
10
|
+
subscriptions: Subscription[];
|
|
11
|
+
createRenderRoot(): this;
|
|
12
|
+
updated(changedProperties: any): void;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
+
valueChanged(event: CustomEvent): void;
|
|
16
|
+
onInputError(event: CustomEvent): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputWidget, WithWidget } from '@golemui/core';
|
|
2
|
+
import { InputWidgetAdapter, LitFormContext } from '@golemui/lit';
|
|
3
|
+
import { DateTimeRange, RangeDateTimeInputProps } from '@golemui/gui-shared/internals';
|
|
4
|
+
import { LitElement } from 'lit';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
export declare class RangeDateTimeInputElement extends LitElement implements WithWidget {
|
|
7
|
+
widget: InputWidget<DateTimeRange[]>;
|
|
8
|
+
formContext: LitFormContext<any>;
|
|
9
|
+
adapter: InputWidgetAdapter<DateTimeRange[], RangeDateTimeInputProps>;
|
|
10
|
+
subscriptions: Subscription[];
|
|
11
|
+
createRenderRoot(): this;
|
|
12
|
+
updated(changedProperties: any): void;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
+
valueChanged(event: CustomEvent): void;
|
|
16
|
+
onInputError(event: CustomEvent): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputWidget, WithWidget } from '@golemui/core';
|
|
2
|
+
import { InputWidgetAdapter, LitFormContext } from '@golemui/lit';
|
|
3
|
+
import { DateTimeRange, RangeDateTimePickerProps } from '@golemui/gui-shared/internals';
|
|
4
|
+
import { LitElement } from 'lit';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
export declare class RangeDateTimePickerElement extends LitElement implements WithWidget {
|
|
7
|
+
widget: InputWidget<DateTimeRange[]>;
|
|
8
|
+
formContext: LitFormContext<any>;
|
|
9
|
+
adapter: InputWidgetAdapter<DateTimeRange[], RangeDateTimePickerProps>;
|
|
10
|
+
subscriptions: Subscription[];
|
|
11
|
+
createRenderRoot(): this;
|
|
12
|
+
updated(changedProperties: any): void;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
+
valueChanged(event: CustomEvent): void;
|
|
16
|
+
onInputError(event: CustomEvent): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputWidget, WithWidget } from '@golemui/core';
|
|
2
|
+
import { InputWidgetAdapter, LitFormContext } from '@golemui/lit';
|
|
3
|
+
import { TimeRange, RangeTimeInputProps } from '@golemui/gui-shared/internals';
|
|
4
|
+
import { LitElement } from 'lit';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
export declare class RangeTimeInputElement extends LitElement implements WithWidget {
|
|
7
|
+
widget: InputWidget<TimeRange[]>;
|
|
8
|
+
formContext: LitFormContext<any>;
|
|
9
|
+
adapter: InputWidgetAdapter<TimeRange[], RangeTimeInputProps>;
|
|
10
|
+
subscriptions: Subscription[];
|
|
11
|
+
createRenderRoot(): this;
|
|
12
|
+
updated(changedProperties: any): void;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
+
valueChanged(event: CustomEvent): void;
|
|
16
|
+
onInputError(event: CustomEvent): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputWidget, WithWidget } from '@golemui/core';
|
|
2
|
+
import { InputWidgetAdapter, LitFormContext } from '@golemui/lit';
|
|
3
|
+
import { TimeRange, RangeTimePickerProps } from '@golemui/gui-shared/internals';
|
|
4
|
+
import { LitElement } from 'lit';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
export declare class RangeTimePickerElement extends LitElement implements WithWidget {
|
|
7
|
+
widget: InputWidget<TimeRange[]>;
|
|
8
|
+
formContext: LitFormContext<any>;
|
|
9
|
+
adapter: InputWidgetAdapter<TimeRange[], RangeTimePickerProps>;
|
|
10
|
+
subscriptions: Subscription[];
|
|
11
|
+
createRenderRoot(): this;
|
|
12
|
+
updated(changedProperties: any): void;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
+
valueChanged(event: CustomEvent): void;
|
|
16
|
+
onInputError(event: CustomEvent): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputWidget, WithWidget } from '@golemui/core';
|
|
2
|
+
import { InputWidgetAdapter, LitFormContext } from '@golemui/lit';
|
|
3
|
+
import { TimePickerProps } from '@golemui/gui-shared/internals';
|
|
4
|
+
import { LitElement } from 'lit';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
export declare class TimePickerElement extends LitElement implements WithWidget {
|
|
7
|
+
widget: InputWidget<string>;
|
|
8
|
+
formContext: LitFormContext<any>;
|
|
9
|
+
adapter: InputWidgetAdapter<string, TimePickerProps>;
|
|
10
|
+
subscriptions: Subscription[];
|
|
11
|
+
createRenderRoot(): this;
|
|
12
|
+
updated(changedProperties: any): void;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
+
valueChanged(event: CustomEvent): void;
|
|
16
|
+
onInputError(event: CustomEvent): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { InputWidget, WithWidget } from '@golemui/core';
|
|
2
|
+
import { InputWidgetAdapter, LitFormContext } from '@golemui/lit';
|
|
3
|
+
import { TimeInputProps } from '@golemui/gui-shared/internals';
|
|
4
|
+
import { LitElement } from 'lit';
|
|
5
|
+
import { Subscription } from 'rxjs';
|
|
6
|
+
export declare class TimeElement extends LitElement implements WithWidget {
|
|
7
|
+
widget: InputWidget<string>;
|
|
8
|
+
formContext: LitFormContext<any>;
|
|
9
|
+
adapter: InputWidgetAdapter<string, TimeInputProps>;
|
|
10
|
+
subscriptions: Subscription[];
|
|
11
|
+
createRenderRoot(): this;
|
|
12
|
+
updated(changedProperties: any): void;
|
|
13
|
+
connectedCallback(): void;
|
|
14
|
+
render(): import('lit-html').TemplateResult<1>;
|
|
15
|
+
valueChanged(event: CustomEvent): void;
|
|
16
|
+
onInputError(event: CustomEvent): void;
|
|
17
|
+
disconnectedCallback(): void;
|
|
18
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { html as c, LitElement as p, nothing as
|
|
1
|
+
import { html as c, LitElement as p, nothing as h } from "lit";
|
|
2
2
|
import { classMap as m } from "lit/directives/class-map.js";
|
|
3
3
|
import "@golemui/core";
|
|
4
|
-
import { property as a, state as
|
|
4
|
+
import { property as a, state as u, query as f, customElement as v } from "lit/decorators.js";
|
|
5
5
|
const T = (e) => {
|
|
6
6
|
const t = {
|
|
7
7
|
"gui-list__item": !0,
|
|
@@ -19,8 +19,8 @@ const T = (e) => {
|
|
|
19
19
|
${e.template}
|
|
20
20
|
</div>
|
|
21
21
|
`;
|
|
22
|
-
},
|
|
23
|
-
function
|
|
22
|
+
}, b = (e) => e !== null && typeof e == "object" && Object.prototype.hasOwnProperty.call(e, "template") && Object.prototype.hasOwnProperty.call(e, "value");
|
|
23
|
+
function g(e) {
|
|
24
24
|
const t = typeof e;
|
|
25
25
|
return t === "string" || t === "number";
|
|
26
26
|
}
|
|
@@ -30,42 +30,44 @@ const y = (e, { valueField: t }) => {
|
|
|
30
30
|
const i = e, o = t ?? "value";
|
|
31
31
|
return !!Object.prototype.hasOwnProperty.call(i, o);
|
|
32
32
|
};
|
|
33
|
-
function
|
|
33
|
+
function I(e, { valueField: t }) {
|
|
34
34
|
if (e === null || typeof e != "object")
|
|
35
35
|
throw new Error("Provided value is not an object");
|
|
36
36
|
const i = e, o = t ?? "value", s = Object.prototype.hasOwnProperty.call(i, o) ? o : void 0;
|
|
37
37
|
if (!s)
|
|
38
38
|
throw new Error("No valueField exists on the object");
|
|
39
|
-
return (
|
|
40
|
-
if (
|
|
39
|
+
return (r) => {
|
|
40
|
+
if (r === null || typeof r != "object")
|
|
41
41
|
throw new Error("Item is not an object");
|
|
42
|
+
const d = r;
|
|
42
43
|
return {
|
|
43
|
-
template:
|
|
44
|
-
value: s ?
|
|
44
|
+
template: r,
|
|
45
|
+
value: s ? d[s] : "",
|
|
46
|
+
...typeof d.disabled == "boolean" ? { disabled: d.disabled } : {}
|
|
45
47
|
};
|
|
46
48
|
};
|
|
47
49
|
}
|
|
48
|
-
const
|
|
49
|
-
if (Array.isArray(e) && e.length > 0 && !
|
|
50
|
-
if (
|
|
50
|
+
const w = (e, t) => {
|
|
51
|
+
if (Array.isArray(e) && e.length > 0 && !b(e[0])) {
|
|
52
|
+
if (g(e[0]))
|
|
51
53
|
return e.map((i) => ({
|
|
52
54
|
template: i,
|
|
53
55
|
value: i
|
|
54
56
|
}));
|
|
55
57
|
if (y(e[0], t)) {
|
|
56
|
-
const i =
|
|
58
|
+
const i = I(e[0], t);
|
|
57
59
|
return e.map(i);
|
|
58
60
|
} else
|
|
59
61
|
throw new Error("Invalid list item shape");
|
|
60
62
|
}
|
|
61
63
|
return e;
|
|
62
64
|
};
|
|
63
|
-
var
|
|
64
|
-
for (var s = o > 1 ? void 0 : o ? x(t, i) : t,
|
|
65
|
-
(
|
|
66
|
-
return o && s &&
|
|
65
|
+
var _ = Object.defineProperty, x = Object.getOwnPropertyDescriptor, l = (e, t, i, o) => {
|
|
66
|
+
for (var s = o > 1 ? void 0 : o ? x(t, i) : t, r = e.length - 1, d; r >= 0; r--)
|
|
67
|
+
(d = e[r]) && (s = (o ? d(t, i, s) : d(s)) || s);
|
|
68
|
+
return o && s && _(t, i, s), s;
|
|
67
69
|
};
|
|
68
|
-
let
|
|
70
|
+
let n = class extends p {
|
|
69
71
|
constructor() {
|
|
70
72
|
super(...arguments), this.uid = void 0, this.touched = !1, this.required = !1, this.disabled = !1, this.readOnly = !1, this.value = void 0, this.valueField = void 0, this.label = void 0, this.hint = void 0, this.items = [], this.itemHeight = void 0, this.height = void 0, this._items = [], this._scrollTop = 0, this._viewportHeight = 0, this._focusedIndex = -1, this.buffer = 5;
|
|
71
73
|
}
|
|
@@ -83,16 +85,16 @@ let r = class extends p {
|
|
|
83
85
|
id=${this.uid}
|
|
84
86
|
tabindex=${this.disabled ? -1 : 0}
|
|
85
87
|
class="gui-list__scroll-viewport"
|
|
86
|
-
style="max-height: ${e}px; overflow-y: auto; position: relative; display: block;"
|
|
88
|
+
style="max-height: ${e}px; min-height: 40px; overflow-y: auto; position: relative; display: block;"
|
|
87
89
|
@scroll="${this.onScroll}"
|
|
88
90
|
@keydown="${this.onKeyDown}"
|
|
89
91
|
@focus="${this.onFocus}"
|
|
90
92
|
@focusout="${this.onFocusOut}"
|
|
91
|
-
aria-required=${this.required ? "true" :
|
|
92
|
-
aria-disabled=${this.disabled || this.readOnly ? "true" :
|
|
93
|
-
aria-activedescendant="${s ??
|
|
94
|
-
aria-label=${this.label ??
|
|
95
|
-
aria-description=${this.hint ??
|
|
93
|
+
aria-required=${this.required ? "true" : h}
|
|
94
|
+
aria-disabled=${this.disabled || this.readOnly ? "true" : h}
|
|
95
|
+
aria-activedescendant="${s ?? h}"
|
|
96
|
+
aria-label=${this.label ?? h}
|
|
97
|
+
aria-description=${this.hint ?? h}
|
|
96
98
|
>
|
|
97
99
|
<div
|
|
98
100
|
class="gui-list__spacer"
|
|
@@ -124,27 +126,31 @@ let r = class extends p {
|
|
|
124
126
|
let s = !1;
|
|
125
127
|
switch (e.key) {
|
|
126
128
|
case "ArrowDown":
|
|
127
|
-
this.setFocusedIndex(Math.min(this._focusedIndex + 1, o)), s = !0;
|
|
129
|
+
this.setFocusedIndex(this.findEnabledIndex(Math.min(this._focusedIndex + 1, o), 1)), s = !0;
|
|
128
130
|
break;
|
|
129
131
|
case "ArrowUp":
|
|
130
|
-
this.setFocusedIndex(Math.max(this._focusedIndex - 1, 0)), s = !0;
|
|
132
|
+
this.setFocusedIndex(this.findEnabledIndex(Math.max(this._focusedIndex - 1, 0), -1)), s = !0;
|
|
131
133
|
break;
|
|
132
134
|
case "PageDown":
|
|
133
|
-
this.setFocusedIndex(
|
|
135
|
+
this.setFocusedIndex(
|
|
136
|
+
this.findEnabledIndex(Math.min(this._focusedIndex + i, o), 1)
|
|
137
|
+
), s = !0;
|
|
134
138
|
break;
|
|
135
139
|
case "PageUp":
|
|
136
|
-
this.setFocusedIndex(
|
|
140
|
+
this.setFocusedIndex(
|
|
141
|
+
this.findEnabledIndex(Math.max(this._focusedIndex - i, 0), -1)
|
|
142
|
+
), s = !0;
|
|
137
143
|
break;
|
|
138
144
|
case "Home":
|
|
139
|
-
this.setFocusedIndex(0), s = !0;
|
|
145
|
+
this.setFocusedIndex(this.findEnabledIndex(0, 1)), s = !0;
|
|
140
146
|
break;
|
|
141
147
|
case "End":
|
|
142
|
-
this.setFocusedIndex(o), s = !0;
|
|
148
|
+
this.setFocusedIndex(this.findEnabledIndex(o, -1)), s = !0;
|
|
143
149
|
break;
|
|
144
150
|
case "Enter":
|
|
145
151
|
case " ": {
|
|
146
|
-
const
|
|
147
|
-
this._focusedIndex >= 0 &&
|
|
152
|
+
const r = this._items[this._focusedIndex];
|
|
153
|
+
this._focusedIndex >= 0 && r != null && !r.disabled && this.selectItem(r), s = !0;
|
|
148
154
|
break;
|
|
149
155
|
}
|
|
150
156
|
}
|
|
@@ -171,8 +177,8 @@ let r = class extends p {
|
|
|
171
177
|
), this.dispatchEvent(new CustomEvent("blur", { bubbles: !0, composed: !0 })));
|
|
172
178
|
}
|
|
173
179
|
scrollToIndex(e) {
|
|
174
|
-
const t = this.itemHeight ?? 40, i = this.height ?? 300, o = e * t, s = o + t,
|
|
175
|
-
o <
|
|
180
|
+
const t = this.itemHeight ?? 40, i = this.height ?? 300, o = e * t, s = o + t, r = this.viewportElement.scrollTop, d = r + i;
|
|
181
|
+
o < r ? this.viewportElement.scrollTop = o : s > d && (this.viewportElement.scrollTop = s - i);
|
|
176
182
|
}
|
|
177
183
|
selectItem(e) {
|
|
178
184
|
this.dispatchEvent(
|
|
@@ -183,6 +189,15 @@ let r = class extends p {
|
|
|
183
189
|
})
|
|
184
190
|
);
|
|
185
191
|
}
|
|
192
|
+
/**
|
|
193
|
+
* First enabled item index walking from `from` in `direction`, or -1 when
|
|
194
|
+
* every item that way is disabled — keyboard navigation skips disabled rows.
|
|
195
|
+
*/
|
|
196
|
+
findEnabledIndex(e, t) {
|
|
197
|
+
for (let i = e; i >= 0 && i < this._items.length; i += t)
|
|
198
|
+
if (!this._items[i]?.disabled) return i;
|
|
199
|
+
return -1;
|
|
200
|
+
}
|
|
186
201
|
setFocusedIndex(e) {
|
|
187
202
|
e < 0 || e >= this.items.length || (this._focusedIndex = e, this.scrollToIndex(e), this.dispatchEvent(
|
|
188
203
|
new CustomEvent("gui-focus-change", {
|
|
@@ -193,7 +208,7 @@ let r = class extends p {
|
|
|
193
208
|
));
|
|
194
209
|
}
|
|
195
210
|
updateItems() {
|
|
196
|
-
this._items =
|
|
211
|
+
this._items = w(this.items, { valueField: this.valueField }), this.dispatchEvent(
|
|
197
212
|
new CustomEvent("gui-update-items", {
|
|
198
213
|
detail: this._items,
|
|
199
214
|
bubbles: !0,
|
|
@@ -219,65 +234,65 @@ let r = class extends p {
|
|
|
219
234
|
this._scrollTop = t.scrollTop;
|
|
220
235
|
}
|
|
221
236
|
calculateRange() {
|
|
222
|
-
const e = this.itemHeight ?? 40, t = this.items?.length ?? 0, i = Math.ceil(this._viewportHeight / e), o = Math.floor(this._scrollTop / e), s = Math.max(0, o - this.buffer),
|
|
223
|
-
return { startIndex: s, endIndex:
|
|
237
|
+
const e = this.itemHeight ?? 40, t = this.items?.length ?? 0, i = Math.ceil(this._viewportHeight / e), o = Math.floor(this._scrollTop / e), s = Math.max(0, o - this.buffer), r = Math.min(t, o + i + this.buffer), d = s * e;
|
|
238
|
+
return { startIndex: s, endIndex: r, offsetY: d };
|
|
224
239
|
}
|
|
225
240
|
};
|
|
226
241
|
l([
|
|
227
242
|
a({ type: String })
|
|
228
|
-
],
|
|
243
|
+
], n.prototype, "uid", 2);
|
|
229
244
|
l([
|
|
230
245
|
a({ type: Boolean })
|
|
231
|
-
],
|
|
246
|
+
], n.prototype, "touched", 2);
|
|
232
247
|
l([
|
|
233
248
|
a({ type: Boolean })
|
|
234
|
-
],
|
|
249
|
+
], n.prototype, "required", 2);
|
|
235
250
|
l([
|
|
236
251
|
a({ type: Boolean })
|
|
237
|
-
],
|
|
252
|
+
], n.prototype, "disabled", 2);
|
|
238
253
|
l([
|
|
239
254
|
a({ type: Boolean, attribute: "readonly" })
|
|
240
|
-
],
|
|
255
|
+
], n.prototype, "readOnly", 2);
|
|
241
256
|
l([
|
|
242
257
|
a({ type: String })
|
|
243
|
-
],
|
|
258
|
+
], n.prototype, "value", 2);
|
|
244
259
|
l([
|
|
245
260
|
a({ type: String })
|
|
246
|
-
],
|
|
261
|
+
], n.prototype, "valueField", 2);
|
|
247
262
|
l([
|
|
248
263
|
a({ type: String })
|
|
249
|
-
],
|
|
264
|
+
], n.prototype, "label", 2);
|
|
250
265
|
l([
|
|
251
266
|
a({ type: String })
|
|
252
|
-
],
|
|
267
|
+
], n.prototype, "hint", 2);
|
|
253
268
|
l([
|
|
254
269
|
a({ type: Array })
|
|
255
|
-
],
|
|
270
|
+
], n.prototype, "items", 2);
|
|
256
271
|
l([
|
|
257
272
|
a({ type: Number })
|
|
258
|
-
],
|
|
273
|
+
], n.prototype, "itemHeight", 2);
|
|
259
274
|
l([
|
|
260
275
|
a({ type: Number })
|
|
261
|
-
],
|
|
276
|
+
], n.prototype, "height", 2);
|
|
262
277
|
l([
|
|
263
|
-
|
|
264
|
-
],
|
|
278
|
+
u()
|
|
279
|
+
], n.prototype, "_items", 2);
|
|
265
280
|
l([
|
|
266
|
-
|
|
267
|
-
],
|
|
281
|
+
u()
|
|
282
|
+
], n.prototype, "_scrollTop", 2);
|
|
268
283
|
l([
|
|
269
|
-
|
|
270
|
-
],
|
|
284
|
+
u()
|
|
285
|
+
], n.prototype, "_viewportHeight", 2);
|
|
271
286
|
l([
|
|
272
|
-
|
|
273
|
-
],
|
|
287
|
+
u()
|
|
288
|
+
], n.prototype, "_focusedIndex", 2);
|
|
274
289
|
l([
|
|
275
290
|
f(".gui-list__scroll-viewport")
|
|
276
|
-
],
|
|
277
|
-
|
|
291
|
+
], n.prototype, "viewportElement", 2);
|
|
292
|
+
n = l([
|
|
278
293
|
v("gui-list")
|
|
279
|
-
],
|
|
280
|
-
typeof customElements < "u" && !customElements.get("gui-list") && customElements.define("gui-list",
|
|
294
|
+
], n);
|
|
295
|
+
typeof customElements < "u" && !customElements.get("gui-list") && customElements.define("gui-list", n);
|
|
281
296
|
export {
|
|
282
297
|
T as d
|
|
283
298
|
};
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import { InputWidgetAdapter as
|
|
2
|
-
import { consume as
|
|
3
|
-
import { LitElement as
|
|
4
|
-
import { property as
|
|
1
|
+
import { InputWidgetAdapter as b, formContext as _, inputContext as $ } from "@golemui/lit";
|
|
2
|
+
import { consume as v, provide as I } from "@lit/context";
|
|
3
|
+
import { LitElement as x, nothing as o, html as u } from "lit";
|
|
4
|
+
import { property as y, state as h, query as C, customElement as R } from "lit/decorators.js";
|
|
5
5
|
import "rxjs";
|
|
6
|
-
import { d as
|
|
6
|
+
import { d as w } from "./list-CrLIL4by.js";
|
|
7
7
|
import "./errors-QjKhr6mA.js";
|
|
8
|
-
var
|
|
9
|
-
for (var t = d > 1 ? void 0 : d ?
|
|
8
|
+
var D = Object.defineProperty, L = Object.getOwnPropertyDescriptor, r = (e, i, l, d) => {
|
|
9
|
+
for (var t = d > 1 ? void 0 : d ? L(i, l) : i, n = e.length - 1, s; n >= 0; n--)
|
|
10
10
|
(s = e[n]) && (t = (d ? s(i, l, t) : s(t)) || t);
|
|
11
|
-
return d && t &&
|
|
11
|
+
return d && t && D(i, l, t), t;
|
|
12
12
|
};
|
|
13
|
-
let a = class extends
|
|
13
|
+
let a = class extends x {
|
|
14
14
|
constructor() {
|
|
15
|
-
super(...arguments), this.adapter = new
|
|
15
|
+
super(...arguments), this.adapter = new b(), this.subscriptions = [], this._range = { start: 0, end: 10 }, this._listItems = [], this._focusedIndex = -1;
|
|
16
16
|
}
|
|
17
17
|
createRenderRoot() {
|
|
18
18
|
return this;
|
|
@@ -36,7 +36,7 @@ let a = class extends I {
|
|
|
36
36
|
render() {
|
|
37
37
|
const e = this.adapter.templateData, i = e.touched && e.errors && e.errors.length > 0, l = this._listItems.slice(this._range.start, this._range.end), d = this.adapter.getItemRenderer(
|
|
38
38
|
e.itemRenderer,
|
|
39
|
-
|
|
39
|
+
w
|
|
40
40
|
);
|
|
41
41
|
return u`
|
|
42
42
|
<gui-label
|
|
@@ -71,7 +71,7 @@ let a = class extends I {
|
|
|
71
71
|
@change=${this._valueChanged}
|
|
72
72
|
>
|
|
73
73
|
${l.map((t, n) => {
|
|
74
|
-
const s = this._range.start + n, p = e.value === t.value,
|
|
74
|
+
const s = this._range.start + n, p = e.value === t.value, m = this._focusedIndex === s, c = !!e.disabled || !!t.disabled, g = e.labelField ?? "label", f = t.template !== null && typeof t.template == "object" && g && !e.itemRenderer ? t.template[g] : t.template;
|
|
75
75
|
return u`
|
|
76
76
|
<div
|
|
77
77
|
role="option"
|
|
@@ -80,16 +80,16 @@ let a = class extends I {
|
|
|
80
80
|
id="${this.widget.uid}-item-${s}"
|
|
81
81
|
style="height: ${e.itemHeight || 40}px"
|
|
82
82
|
aria-selected=${p ? "true" : "false"}
|
|
83
|
-
aria-disabled=${
|
|
83
|
+
aria-disabled=${c ? "true" : "false"}
|
|
84
84
|
@click=${() => this._onClickItem(t, s)}
|
|
85
85
|
>
|
|
86
86
|
${d({
|
|
87
|
-
template:
|
|
87
|
+
template: f,
|
|
88
88
|
value: t.value,
|
|
89
89
|
index: s,
|
|
90
90
|
selected: p,
|
|
91
|
-
disabled:
|
|
92
|
-
focused:
|
|
91
|
+
disabled: c,
|
|
92
|
+
focused: m
|
|
93
93
|
})}
|
|
94
94
|
</div>
|
|
95
95
|
`;
|
|
@@ -114,18 +114,18 @@ let a = class extends I {
|
|
|
114
114
|
this._focusedIndex = e.detail.index;
|
|
115
115
|
}
|
|
116
116
|
_onClickItem(e, i) {
|
|
117
|
-
this.adapter.templateData.disabled || (this.adapter.valueChanged(e.value), this._focusedIndex = i, this._guiListRef && typeof this._guiListRef.focusItemAtIndex == "function" && this._guiListRef.focusItemAtIndex(i));
|
|
117
|
+
this.adapter.templateData.disabled || e.disabled || (this.adapter.valueChanged(e.value), this._focusedIndex = i, this._guiListRef && typeof this._guiListRef.focusItemAtIndex == "function" && this._guiListRef.focusItemAtIndex(i));
|
|
118
118
|
}
|
|
119
119
|
_valueChanged(e) {
|
|
120
120
|
this.adapter.templateData.readonly || this.adapter.valueChanged(e.detail.value);
|
|
121
121
|
}
|
|
122
122
|
};
|
|
123
123
|
r([
|
|
124
|
-
|
|
125
|
-
|
|
124
|
+
v({ context: _ }),
|
|
125
|
+
y({ attribute: !1 })
|
|
126
126
|
], a.prototype, "formContext", 2);
|
|
127
127
|
r([
|
|
128
|
-
|
|
128
|
+
I({ context: $ })
|
|
129
129
|
], a.prototype, "adapter", 2);
|
|
130
130
|
r([
|
|
131
131
|
h()
|
|
@@ -137,10 +137,10 @@ r([
|
|
|
137
137
|
h()
|
|
138
138
|
], a.prototype, "_focusedIndex", 2);
|
|
139
139
|
r([
|
|
140
|
-
|
|
140
|
+
C("gui-list")
|
|
141
141
|
], a.prototype, "_guiListRef", 2);
|
|
142
142
|
a = r([
|
|
143
|
-
|
|
143
|
+
R("gui-list-input")
|
|
144
144
|
], a);
|
|
145
145
|
export {
|
|
146
146
|
a as ListElement
|