@luzmo/ngx-lucero 2.0.1 → 2.2.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/README.md +14 -0
- package/esm/components/accordion-item.d.ts +2 -2
- package/esm/components/accordion-item.js +5 -5
- package/esm/components/action-bar.d.ts +1 -1
- package/esm/components/action-bar.js +3 -3
- package/esm/components/action-button.d.ts +2 -2
- package/esm/components/action-button.js +11 -12
- package/esm/components/action-group.d.ts +1 -1
- package/esm/components/action-group.js +3 -3
- package/esm/components/action-menu.d.ts +1 -1
- package/esm/components/action-menu.js +10 -11
- package/esm/components/avatar.d.ts +1 -1
- package/esm/components/avatar.js +3 -3
- package/esm/components/button.d.ts +1 -1
- package/esm/components/button.js +3 -3
- package/esm/components/calendar.d.ts +4 -4
- package/esm/components/calendar.js +14 -15
- package/esm/components/checkbox.d.ts +1 -1
- package/esm/components/checkbox.js +8 -9
- package/esm/components/clear-button.d.ts +1 -1
- package/esm/components/clear-button.js +3 -3
- package/esm/components/close-button.d.ts +1 -1
- package/esm/components/close-button.js +3 -3
- package/esm/components/color-area.d.ts +1 -1
- package/esm/components/color-area.js +4 -4
- package/esm/components/color-field.d.ts +1 -1
- package/esm/components/color-field.js +11 -12
- package/esm/components/color-menu.d.ts +1 -1
- package/esm/components/color-menu.js +4 -4
- package/esm/components/color-palette-group.d.ts +1 -1
- package/esm/components/color-palette-group.js +3 -3
- package/esm/components/color-palette.d.ts +1 -1
- package/esm/components/color-palette.js +3 -3
- package/esm/components/color-picker.d.ts +1 -1
- package/esm/components/color-picker.js +4 -4
- package/esm/components/color-slider.d.ts +1 -1
- package/esm/components/color-slider.js +10 -11
- package/esm/components/date-range-picker.d.ts +1 -1
- package/esm/components/date-range-picker.js +5 -5
- package/esm/components/date-time-picker.d.ts +1 -1
- package/esm/components/date-time-picker.js +10 -11
- package/esm/components/infield-button.d.ts +1 -1
- package/esm/components/infield-button.js +3 -3
- package/esm/components/menu-group.d.ts +1 -1
- package/esm/components/menu-group.js +9 -10
- package/esm/components/menu-item.d.ts +2 -2
- package/esm/components/menu-item.js +5 -5
- package/esm/components/menu.d.ts +1 -1
- package/esm/components/menu.js +9 -10
- package/esm/components/multi-language-field.d.ts +1 -1
- package/esm/components/multi-language-field.js +8 -9
- package/esm/components/notice.d.ts +2 -2
- package/esm/components/notice.js +4 -4
- package/esm/components/number-field.d.ts +1 -1
- package/esm/components/number-field.js +11 -12
- package/esm/components/option.d.ts +1 -1
- package/esm/components/option.js +3 -3
- package/esm/components/options.d.ts +5 -5
- package/esm/components/options.js +15 -16
- package/esm/components/overlay-trigger.d.ts +3 -3
- package/esm/components/overlay-trigger.js +6 -6
- package/esm/components/overlay.d.ts +4 -4
- package/esm/components/overlay.js +8 -8
- package/esm/components/picker-button.d.ts +1 -1
- package/esm/components/picker-button.js +3 -3
- package/esm/components/picker.d.ts +3 -3
- package/esm/components/picker.js +14 -15
- package/esm/components/progress-steps.d.ts +3 -3
- package/esm/components/progress-steps.js +6 -6
- package/esm/components/prompt-box.d.ts +11 -11
- package/esm/components/prompt-box.js +22 -22
- package/esm/components/question-box.d.ts +4 -4
- package/esm/components/question-box.js +15 -16
- package/esm/components/radio-group.d.ts +1 -1
- package/esm/components/radio-group.js +3 -3
- package/esm/components/radio.d.ts +1 -1
- package/esm/components/radio.js +9 -10
- package/esm/components/search.d.ts +1 -1
- package/esm/components/search.js +12 -13
- package/esm/components/select.d.ts +5 -5
- package/esm/components/select.js +17 -18
- package/esm/components/slider-handle.d.ts +1 -1
- package/esm/components/slider-handle.js +9 -10
- package/esm/components/slider.d.ts +1 -1
- package/esm/components/slider.js +10 -11
- package/esm/components/split-view.d.ts +59 -0
- package/esm/components/split-view.js +181 -0
- package/esm/components/swatch-group.d.ts +1 -1
- package/esm/components/swatch-group.js +3 -3
- package/esm/components/swatch.d.ts +1 -1
- package/esm/components/swatch.js +9 -10
- package/esm/components/switch.d.ts +1 -1
- package/esm/components/switch.js +9 -10
- package/esm/components/tabs.d.ts +1 -1
- package/esm/components/tabs.js +4 -4
- package/esm/components/tag.d.ts +2 -2
- package/esm/components/tag.js +4 -4
- package/esm/components/text-field.d.ts +1 -1
- package/esm/components/text-field.js +11 -12
- package/esm/components/toast.d.ts +1 -1
- package/esm/components/toast.js +3 -3
- package/esm/components/top-nav.d.ts +1 -1
- package/esm/components/top-nav.js +4 -4
- package/esm/index.d.ts +4 -2
- package/esm/index.js +4 -0
- package/package.json +2 -2
|
@@ -40,9 +40,9 @@ export class LuzmoSliderHandle {
|
|
|
40
40
|
/** Per-handle value formatter. */
|
|
41
41
|
getAriaHandleText;
|
|
42
42
|
/** The handle value changed during user interaction. */
|
|
43
|
-
inputEvent = output(
|
|
43
|
+
inputEvent = output();
|
|
44
44
|
/** The handle value change was committed. */
|
|
45
|
-
changeEvent = output(
|
|
45
|
+
changeEvent = output();
|
|
46
46
|
constructor() {
|
|
47
47
|
this.bindEvents();
|
|
48
48
|
this.destroyRef.onDestroy(() => {
|
|
@@ -103,7 +103,6 @@ export class LuzmoSliderHandle {
|
|
|
103
103
|
}
|
|
104
104
|
bindEvents() {
|
|
105
105
|
this.listenerCleanup.push(this.renderer.listen(this.host, 'input', (event) => {
|
|
106
|
-
this.inputEvent.emit(event);
|
|
107
106
|
if (!this.isWritingValue) {
|
|
108
107
|
const eventWithDetail = event;
|
|
109
108
|
const eventTarget = event.target;
|
|
@@ -115,13 +114,13 @@ export class LuzmoSliderHandle {
|
|
|
115
114
|
: (detailRecord === undefined ? detail : undefined)
|
|
116
115
|
?? eventTarget?.['value']
|
|
117
116
|
?? hostRecord['value']);
|
|
118
|
-
if (Object.is(this.lastCvaValue, nextValue)) {
|
|
119
|
-
|
|
117
|
+
if (!Object.is(this.lastCvaValue, nextValue)) {
|
|
118
|
+
this.lastCvaValue = nextValue;
|
|
119
|
+
this.setHostProperty('value', nextValue);
|
|
120
|
+
this.onChange(nextValue);
|
|
120
121
|
}
|
|
121
|
-
this.lastCvaValue = nextValue;
|
|
122
|
-
this.setHostProperty('value', nextValue);
|
|
123
|
-
this.onChange(nextValue);
|
|
124
122
|
}
|
|
123
|
+
this.inputEvent.emit(event);
|
|
125
124
|
}));
|
|
126
125
|
this.listenerCleanup.push(this.renderer.listen(this.host, 'change', (event) => {
|
|
127
126
|
this.changeEvent.emit(event);
|
|
@@ -154,7 +153,7 @@ export class LuzmoSliderHandle {
|
|
|
154
153
|
return this.host.focus(options);
|
|
155
154
|
}
|
|
156
155
|
static ɵfac = function LuzmoSliderHandle_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoSliderHandle)(); };
|
|
157
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoSliderHandle, selectors: [["luzmo-slider-handle"]], inputs: { name: "name", label: "label", value: "value", defaultValue: "defaultValue", min: "min", max: "max", step: "step", color: "color", formatOptions: "formatOptions", normalization: "normalization", getAriaHandleText: "getAriaHandleText" }, outputs: { inputEvent: "
|
|
156
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoSliderHandle, selectors: [["luzmo-slider-handle"]], inputs: { name: "name", label: "label", value: "value", defaultValue: "defaultValue", min: "min", max: "max", step: "step", color: "color", formatOptions: "formatOptions", normalization: "normalization", getAriaHandleText: "getAriaHandleText" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent" }, exportAs: ["luzmoSliderHandle"], features: [i0.ɵɵProvidersFeature([
|
|
158
157
|
{
|
|
159
158
|
provide: NG_VALUE_ACCESSOR,
|
|
160
159
|
useExisting: forwardRef(() => LuzmoSliderHandle),
|
|
@@ -214,5 +213,5 @@ export class LuzmoSliderHandle {
|
|
|
214
213
|
}], getAriaHandleText: [{
|
|
215
214
|
type: Input,
|
|
216
215
|
args: [{ alias: 'getAriaHandleText' }]
|
|
217
|
-
}], inputEvent: [{ type: i0.Output, args: ["
|
|
216
|
+
}], inputEvent: [{ type: i0.Output, args: ["inputEvent"] }], changeEvent: [{ type: i0.Output, args: ["changeEvent"] }] }); })();
|
|
218
217
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoSliderHandle, { className: "LuzmoSliderHandle", filePath: "components/slider-handle.ts", lineNumber: 24 }); })();
|
|
@@ -93,7 +93,7 @@ export declare class LuzmoSlider implements OnChanges, ControlValueAccessor {
|
|
|
93
93
|
setDisabledState(isDisabled: boolean): void;
|
|
94
94
|
focus(options?: FocusOptions): void;
|
|
95
95
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoSlider, never>;
|
|
96
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoSlider, "luzmo-slider", ["luzmoSlider"], { "label": { "alias": "label"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "applyFocusElementLabel": { "alias": "applyFocusElementLabel"; "required": false; }; "value": { "alias": "value"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "ramp": { "alias": "ramp"; "required": false; }; "ticks": { "alias": "ticks"; "required": false; }; "labelVisibility": { "alias": "labelVisibility"; "required": false; }; "fillStart": { "alias": "fillStart"; "required": false; }; "tickStep": { "alias": "tickStep"; "required": false; }; "tickLabels": { "alias": "tickLabels"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "hideStepper": { "alias": "hideStepper"; "required": false; }; "quiet": { "alias": "quiet"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "formatOptions": { "alias": "formatOptions"; "required": false; }; "normalization": { "alias": "normalization"; "required": false; }; "getAriaHandleText": { "alias": "getAriaHandleText"; "required": false; }; "getAriaValueText": { "alias": "getAriaValueText"; "required": false; }; "helpTextManager": { "alias": "helpTextManager"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "inputEvent": "
|
|
96
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoSlider, "luzmo-slider", ["luzmoSlider"], { "label": { "alias": "label"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; "applyFocusElementLabel": { "alias": "applyFocusElementLabel"; "required": false; }; "value": { "alias": "value"; "required": false; }; "min": { "alias": "min"; "required": false; }; "max": { "alias": "max"; "required": false; }; "step": { "alias": "step"; "required": false; }; "defaultValue": { "alias": "defaultValue"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "ramp": { "alias": "ramp"; "required": false; }; "ticks": { "alias": "ticks"; "required": false; }; "labelVisibility": { "alias": "labelVisibility"; "required": false; }; "fillStart": { "alias": "fillStart"; "required": false; }; "tickStep": { "alias": "tickStep"; "required": false; }; "tickLabels": { "alias": "tickLabels"; "required": false; }; "editable": { "alias": "editable"; "required": false; }; "hideStepper": { "alias": "hideStepper"; "required": false; }; "quiet": { "alias": "quiet"; "required": false; }; "indeterminate": { "alias": "indeterminate"; "required": false; }; "invalid": { "alias": "invalid"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "formatOptions": { "alias": "formatOptions"; "required": false; }; "normalization": { "alias": "normalization"; "required": false; }; "getAriaHandleText": { "alias": "getAriaHandleText"; "required": false; }; "getAriaValueText": { "alias": "getAriaValueText"; "required": false; }; "helpTextManager": { "alias": "helpTextManager"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "inputEvent": "inputEvent"; "changeEvent": "changeEvent"; "keydownEvent": "keydownEvent"; }, never, ["*"], true, never>;
|
|
97
97
|
}
|
|
98
98
|
/** The underlying custom element type for LuzmoSlider */
|
|
99
99
|
export type LuzmoSliderElement = LuzmoSliderHostElement;
|
package/esm/components/slider.js
CHANGED
|
@@ -77,11 +77,11 @@ export class LuzmoSlider {
|
|
|
77
77
|
/** The tab index to apply to this control. See general documentation about the tabindex HTML property */
|
|
78
78
|
tabIndex;
|
|
79
79
|
/** The value changes during user interaction. */
|
|
80
|
-
inputEvent = output(
|
|
80
|
+
inputEvent = output();
|
|
81
81
|
/** A user value change is committed. */
|
|
82
|
-
changeEvent = output(
|
|
82
|
+
changeEvent = output();
|
|
83
83
|
/** Trick :focus-visible polyfill into thinking keyboard based focus */
|
|
84
|
-
keydownEvent = output(
|
|
84
|
+
keydownEvent = output();
|
|
85
85
|
constructor() {
|
|
86
86
|
this.bindEvents();
|
|
87
87
|
this.destroyRef.onDestroy(() => {
|
|
@@ -196,7 +196,6 @@ export class LuzmoSlider {
|
|
|
196
196
|
}
|
|
197
197
|
bindEvents() {
|
|
198
198
|
this.listenerCleanup.push(this.renderer.listen(this.host, 'input', (event) => {
|
|
199
|
-
this.inputEvent.emit(event);
|
|
200
199
|
if (!this.isWritingValue) {
|
|
201
200
|
const eventWithDetail = event;
|
|
202
201
|
const eventTarget = event.target;
|
|
@@ -208,13 +207,13 @@ export class LuzmoSlider {
|
|
|
208
207
|
: (detailRecord === undefined ? detail : undefined)
|
|
209
208
|
?? eventTarget?.['value']
|
|
210
209
|
?? hostRecord['value']);
|
|
211
|
-
if (Object.is(this.lastCvaValue, nextValue)) {
|
|
212
|
-
|
|
210
|
+
if (!Object.is(this.lastCvaValue, nextValue)) {
|
|
211
|
+
this.lastCvaValue = nextValue;
|
|
212
|
+
this.setHostProperty('value', nextValue);
|
|
213
|
+
this.onChange(nextValue);
|
|
213
214
|
}
|
|
214
|
-
this.lastCvaValue = nextValue;
|
|
215
|
-
this.setHostProperty('value', nextValue);
|
|
216
|
-
this.onChange(nextValue);
|
|
217
215
|
}
|
|
216
|
+
this.inputEvent.emit(event);
|
|
218
217
|
}));
|
|
219
218
|
this.listenerCleanup.push(this.renderer.listen(this.host, 'change', (event) => {
|
|
220
219
|
this.changeEvent.emit(event);
|
|
@@ -255,7 +254,7 @@ export class LuzmoSlider {
|
|
|
255
254
|
return this.host.focus(options);
|
|
256
255
|
}
|
|
257
256
|
static ɵfac = function LuzmoSlider_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoSlider)(); };
|
|
258
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoSlider, selectors: [["luzmo-slider"]], inputs: { label: "label", labels: "labels", applyFocusElementLabel: "applyFocusElementLabel", value: "value", min: "min", max: "max", step: "step", defaultValue: "defaultValue", variant: "variant", ramp: "ramp", ticks: "ticks", labelVisibility: "labelVisibility", fillStart: "fillStart", tickStep: "tickStep", tickLabels: "tickLabels", editable: "editable", hideStepper: "hideStepper", quiet: "quiet", indeterminate: "indeterminate", invalid: "invalid", readonly: "readonly", formatOptions: "formatOptions", normalization: "normalization", getAriaHandleText: "getAriaHandleText", getAriaValueText: "getAriaValueText", helpTextManager: "helpTextManager", size: "size", disabled: "disabled", tabIndex: "tabIndex" }, outputs: { inputEvent: "
|
|
257
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoSlider, selectors: [["luzmo-slider"]], inputs: { label: "label", labels: "labels", applyFocusElementLabel: "applyFocusElementLabel", value: "value", min: "min", max: "max", step: "step", defaultValue: "defaultValue", variant: "variant", ramp: "ramp", ticks: "ticks", labelVisibility: "labelVisibility", fillStart: "fillStart", tickStep: "tickStep", tickLabels: "tickLabels", editable: "editable", hideStepper: "hideStepper", quiet: "quiet", indeterminate: "indeterminate", invalid: "invalid", readonly: "readonly", formatOptions: "formatOptions", normalization: "normalization", getAriaHandleText: "getAriaHandleText", getAriaValueText: "getAriaValueText", helpTextManager: "helpTextManager", size: "size", disabled: "disabled", tabIndex: "tabIndex" }, outputs: { inputEvent: "inputEvent", changeEvent: "changeEvent", keydownEvent: "keydownEvent" }, exportAs: ["luzmoSlider"], features: [i0.ɵɵProvidersFeature([
|
|
259
258
|
{
|
|
260
259
|
provide: NG_VALUE_ACCESSOR,
|
|
261
260
|
useExisting: forwardRef(() => LuzmoSlider),
|
|
@@ -369,5 +368,5 @@ export class LuzmoSlider {
|
|
|
369
368
|
}], tabIndex: [{
|
|
370
369
|
type: Input,
|
|
371
370
|
args: [{ alias: 'tabIndex' }]
|
|
372
|
-
}], inputEvent: [{ type: i0.Output, args: ["
|
|
371
|
+
}], inputEvent: [{ type: i0.Output, args: ["inputEvent"] }], changeEvent: [{ type: i0.Output, args: ["changeEvent"] }], keydownEvent: [{ type: i0.Output, args: ["keydownEvent"] }] }); })();
|
|
373
372
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoSlider, { className: "LuzmoSlider", filePath: "components/slider.ts", lineNumber: 27 }); })();
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import '@luzmo/lucero/split-view';
|
|
3
|
+
import type { LuzmoSplitView as LuzmoSplitViewHostElement } from '@luzmo/lucero/split-view';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class LuzmoSplitView implements OnChanges {
|
|
6
|
+
private readonly elementRef;
|
|
7
|
+
private readonly renderer;
|
|
8
|
+
private readonly destroyRef;
|
|
9
|
+
private readonly host;
|
|
10
|
+
private readonly listenerCleanup;
|
|
11
|
+
/** The underlying custom element instance. Use to call imperative methods. */
|
|
12
|
+
get nativeElement(): LuzmoSplitViewHostElement;
|
|
13
|
+
/** Stacks panes vertically instead of side by side. */
|
|
14
|
+
vertical?: boolean;
|
|
15
|
+
/** Enables pointer and keyboard resizing. */
|
|
16
|
+
resizable?: boolean;
|
|
17
|
+
/** Allows either pane to collapse at its edge. */
|
|
18
|
+
collapsible?: boolean;
|
|
19
|
+
/** Accessible name for the separator. */
|
|
20
|
+
label?: string;
|
|
21
|
+
/** Minimum primary pane size in pixels. */
|
|
22
|
+
primaryMin?: number;
|
|
23
|
+
/** Maximum primary pane size in pixels. */
|
|
24
|
+
primaryMax?: number;
|
|
25
|
+
/** Minimum secondary pane size in pixels. */
|
|
26
|
+
secondaryMin?: number;
|
|
27
|
+
/** Maximum secondary pane size in pixels. */
|
|
28
|
+
secondaryMax?: number;
|
|
29
|
+
/** Initial primary pane size in pixels, percentage, or `auto`. */
|
|
30
|
+
primarySize?: string;
|
|
31
|
+
/** Current primary pane size in pixels. */
|
|
32
|
+
splitterPos?: number;
|
|
33
|
+
/** Disable this control. It will not receive focus or events */
|
|
34
|
+
disabled?: boolean;
|
|
35
|
+
/** The tab index to apply to this control. See general documentation about the tabindex HTML property */
|
|
36
|
+
tabIndex?: number;
|
|
37
|
+
readonly type: import("@angular/core").OutputEmitterRef<Event>;
|
|
38
|
+
/** The splitter position changes during interaction. */
|
|
39
|
+
readonly inputEvent: import("@angular/core").OutputEmitterRef<CustomEvent<unknown>>;
|
|
40
|
+
/** A splitter position change is committed. */
|
|
41
|
+
readonly changeEvent: import("@angular/core").OutputEmitterRef<CustomEvent<unknown>>;
|
|
42
|
+
/** Trick :focus-visible polyfill into thinking keyboard based focus */
|
|
43
|
+
readonly keydownEvent: import("@angular/core").OutputEmitterRef<unknown>;
|
|
44
|
+
constructor();
|
|
45
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
46
|
+
/**
|
|
47
|
+
* Forward a wrapper @Input to the underlying host element via Renderer2 so
|
|
48
|
+
* the wrapper stays compatible with non-DOM Angular platforms (SSR, tests).
|
|
49
|
+
* Unlike a "skip undefined" guard, this lets consumers reset values back to
|
|
50
|
+
* undefined / null by clearing their bindings.
|
|
51
|
+
*/
|
|
52
|
+
private setHostProperty;
|
|
53
|
+
private bindEvents;
|
|
54
|
+
focus(options?: FocusOptions): void;
|
|
55
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoSplitView, never>;
|
|
56
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoSplitView, "luzmo-split-view", ["luzmoSplitView"], { "vertical": { "alias": "vertical"; "required": false; }; "resizable": { "alias": "resizable"; "required": false; }; "collapsible": { "alias": "collapsible"; "required": false; }; "label": { "alias": "label"; "required": false; }; "primaryMin": { "alias": "primaryMin"; "required": false; }; "primaryMax": { "alias": "primaryMax"; "required": false; }; "secondaryMin": { "alias": "secondaryMin"; "required": false; }; "secondaryMax": { "alias": "secondaryMax"; "required": false; }; "primarySize": { "alias": "primarySize"; "required": false; }; "splitterPos": { "alias": "splitterPos"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "type": "type"; "inputEvent": "inputEvent"; "changeEvent": "changeEvent"; "keydownEvent": "keydownEvent"; }, never, ["*"], true, never>;
|
|
57
|
+
}
|
|
58
|
+
/** The underlying custom element type for LuzmoSplitView */
|
|
59
|
+
export type LuzmoSplitViewElement = LuzmoSplitViewHostElement;
|
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, ElementRef, inject, Input, output, Renderer2 } from '@angular/core';
|
|
2
|
+
import '@luzmo/lucero/split-view';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
const _c0 = ["*"];
|
|
5
|
+
/**
|
|
6
|
+
* Divides two panes with an optionally interactive separator.
|
|
7
|
+
*
|
|
8
|
+
* @slot (default) - The first two elements are rendered as panes.
|
|
9
|
+
*/
|
|
10
|
+
export class LuzmoSplitView {
|
|
11
|
+
elementRef = inject(ElementRef);
|
|
12
|
+
renderer = inject(Renderer2);
|
|
13
|
+
destroyRef = inject(DestroyRef);
|
|
14
|
+
host = this.elementRef.nativeElement;
|
|
15
|
+
listenerCleanup = [];
|
|
16
|
+
/** The underlying custom element instance. Use to call imperative methods. */
|
|
17
|
+
get nativeElement() {
|
|
18
|
+
return this.host;
|
|
19
|
+
}
|
|
20
|
+
/** Stacks panes vertically instead of side by side. */
|
|
21
|
+
vertical;
|
|
22
|
+
/** Enables pointer and keyboard resizing. */
|
|
23
|
+
resizable;
|
|
24
|
+
/** Allows either pane to collapse at its edge. */
|
|
25
|
+
collapsible;
|
|
26
|
+
/** Accessible name for the separator. */
|
|
27
|
+
label;
|
|
28
|
+
/** Minimum primary pane size in pixels. */
|
|
29
|
+
primaryMin;
|
|
30
|
+
/** Maximum primary pane size in pixels. */
|
|
31
|
+
primaryMax;
|
|
32
|
+
/** Minimum secondary pane size in pixels. */
|
|
33
|
+
secondaryMin;
|
|
34
|
+
/** Maximum secondary pane size in pixels. */
|
|
35
|
+
secondaryMax;
|
|
36
|
+
/** Initial primary pane size in pixels, percentage, or `auto`. */
|
|
37
|
+
primarySize;
|
|
38
|
+
/** Current primary pane size in pixels. */
|
|
39
|
+
splitterPos;
|
|
40
|
+
/** Disable this control. It will not receive focus or events */
|
|
41
|
+
disabled;
|
|
42
|
+
/** The tab index to apply to this control. See general documentation about the tabindex HTML property */
|
|
43
|
+
tabIndex;
|
|
44
|
+
type = output({ alias: 'type' });
|
|
45
|
+
/** The splitter position changes during interaction. */
|
|
46
|
+
inputEvent = output();
|
|
47
|
+
/** A splitter position change is committed. */
|
|
48
|
+
changeEvent = output();
|
|
49
|
+
/** Trick :focus-visible polyfill into thinking keyboard based focus */
|
|
50
|
+
keydownEvent = output();
|
|
51
|
+
constructor() {
|
|
52
|
+
this.bindEvents();
|
|
53
|
+
this.destroyRef.onDestroy(() => {
|
|
54
|
+
for (const cleanup of this.listenerCleanup) {
|
|
55
|
+
cleanup();
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
ngOnChanges(changes) {
|
|
60
|
+
for (const key of Object.keys(changes)) {
|
|
61
|
+
switch (key) {
|
|
62
|
+
case 'vertical':
|
|
63
|
+
this.setHostProperty('vertical', changes['vertical'].currentValue);
|
|
64
|
+
break;
|
|
65
|
+
case 'resizable':
|
|
66
|
+
this.setHostProperty('resizable', changes['resizable'].currentValue);
|
|
67
|
+
break;
|
|
68
|
+
case 'collapsible':
|
|
69
|
+
this.setHostProperty('collapsible', changes['collapsible'].currentValue);
|
|
70
|
+
break;
|
|
71
|
+
case 'label':
|
|
72
|
+
this.setHostProperty('label', changes['label'].currentValue);
|
|
73
|
+
break;
|
|
74
|
+
case 'primaryMin':
|
|
75
|
+
this.setHostProperty('primaryMin', changes['primaryMin'].currentValue);
|
|
76
|
+
break;
|
|
77
|
+
case 'primaryMax':
|
|
78
|
+
this.setHostProperty('primaryMax', changes['primaryMax'].currentValue);
|
|
79
|
+
break;
|
|
80
|
+
case 'secondaryMin':
|
|
81
|
+
this.setHostProperty('secondaryMin', changes['secondaryMin'].currentValue);
|
|
82
|
+
break;
|
|
83
|
+
case 'secondaryMax':
|
|
84
|
+
this.setHostProperty('secondaryMax', changes['secondaryMax'].currentValue);
|
|
85
|
+
break;
|
|
86
|
+
case 'primarySize':
|
|
87
|
+
this.setHostProperty('primarySize', changes['primarySize'].currentValue);
|
|
88
|
+
break;
|
|
89
|
+
case 'splitterPos':
|
|
90
|
+
this.setHostProperty('splitterPos', changes['splitterPos'].currentValue);
|
|
91
|
+
break;
|
|
92
|
+
case 'disabled':
|
|
93
|
+
this.setHostProperty('disabled', changes['disabled'].currentValue);
|
|
94
|
+
break;
|
|
95
|
+
case 'tabIndex':
|
|
96
|
+
this.setHostProperty('tabIndex', changes['tabIndex'].currentValue);
|
|
97
|
+
break;
|
|
98
|
+
default:
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Forward a wrapper @Input to the underlying host element via Renderer2 so
|
|
105
|
+
* the wrapper stays compatible with non-DOM Angular platforms (SSR, tests).
|
|
106
|
+
* Unlike a "skip undefined" guard, this lets consumers reset values back to
|
|
107
|
+
* undefined / null by clearing their bindings.
|
|
108
|
+
*/
|
|
109
|
+
setHostProperty(key, value) {
|
|
110
|
+
this.renderer.setProperty(this.host, key, value);
|
|
111
|
+
}
|
|
112
|
+
bindEvents() {
|
|
113
|
+
this.listenerCleanup.push(this.renderer.listen(this.host, 'type', (event) => {
|
|
114
|
+
this.type.emit(event);
|
|
115
|
+
}));
|
|
116
|
+
this.listenerCleanup.push(this.renderer.listen(this.host, 'input', (event) => {
|
|
117
|
+
this.inputEvent.emit(event);
|
|
118
|
+
}));
|
|
119
|
+
this.listenerCleanup.push(this.renderer.listen(this.host, 'change', (event) => {
|
|
120
|
+
this.changeEvent.emit(event);
|
|
121
|
+
}));
|
|
122
|
+
this.listenerCleanup.push(this.renderer.listen(this.host, 'keydown', (event) => {
|
|
123
|
+
this.keydownEvent.emit(event);
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
focus(options) {
|
|
127
|
+
return this.host.focus(options);
|
|
128
|
+
}
|
|
129
|
+
static ɵfac = function LuzmoSplitView_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoSplitView)(); };
|
|
130
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoSplitView, selectors: [["luzmo-split-view"]], inputs: { vertical: "vertical", resizable: "resizable", collapsible: "collapsible", label: "label", primaryMin: "primaryMin", primaryMax: "primaryMax", secondaryMin: "secondaryMin", secondaryMax: "secondaryMax", primarySize: "primarySize", splitterPos: "splitterPos", disabled: "disabled", tabIndex: "tabIndex" }, outputs: { type: "type", inputEvent: "inputEvent", changeEvent: "changeEvent", keydownEvent: "keydownEvent" }, exportAs: ["luzmoSplitView"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoSplitView_Template(rf, ctx) { if (rf & 1) {
|
|
131
|
+
i0.ɵɵprojectionDef();
|
|
132
|
+
i0.ɵɵprojection(0);
|
|
133
|
+
} }, encapsulation: 2 });
|
|
134
|
+
}
|
|
135
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(LuzmoSplitView, [{
|
|
136
|
+
type: Component,
|
|
137
|
+
args: [{
|
|
138
|
+
selector: 'luzmo-split-view',
|
|
139
|
+
exportAs: 'luzmoSplitView',
|
|
140
|
+
standalone: true,
|
|
141
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
142
|
+
template: '<ng-content />'
|
|
143
|
+
}]
|
|
144
|
+
}], () => [], { vertical: [{
|
|
145
|
+
type: Input,
|
|
146
|
+
args: [{ alias: 'vertical' }]
|
|
147
|
+
}], resizable: [{
|
|
148
|
+
type: Input,
|
|
149
|
+
args: [{ alias: 'resizable' }]
|
|
150
|
+
}], collapsible: [{
|
|
151
|
+
type: Input,
|
|
152
|
+
args: [{ alias: 'collapsible' }]
|
|
153
|
+
}], label: [{
|
|
154
|
+
type: Input,
|
|
155
|
+
args: [{ alias: 'label' }]
|
|
156
|
+
}], primaryMin: [{
|
|
157
|
+
type: Input,
|
|
158
|
+
args: [{ alias: 'primaryMin' }]
|
|
159
|
+
}], primaryMax: [{
|
|
160
|
+
type: Input,
|
|
161
|
+
args: [{ alias: 'primaryMax' }]
|
|
162
|
+
}], secondaryMin: [{
|
|
163
|
+
type: Input,
|
|
164
|
+
args: [{ alias: 'secondaryMin' }]
|
|
165
|
+
}], secondaryMax: [{
|
|
166
|
+
type: Input,
|
|
167
|
+
args: [{ alias: 'secondaryMax' }]
|
|
168
|
+
}], primarySize: [{
|
|
169
|
+
type: Input,
|
|
170
|
+
args: [{ alias: 'primarySize' }]
|
|
171
|
+
}], splitterPos: [{
|
|
172
|
+
type: Input,
|
|
173
|
+
args: [{ alias: 'splitterPos' }]
|
|
174
|
+
}], disabled: [{
|
|
175
|
+
type: Input,
|
|
176
|
+
args: [{ alias: 'disabled' }]
|
|
177
|
+
}], tabIndex: [{
|
|
178
|
+
type: Input,
|
|
179
|
+
args: [{ alias: 'tabIndex' }]
|
|
180
|
+
}], type: [{ type: i0.Output, args: ["type"] }], inputEvent: [{ type: i0.Output, args: ["inputEvent"] }], changeEvent: [{ type: i0.Output, args: ["changeEvent"] }], keydownEvent: [{ type: i0.Output, args: ["keydownEvent"] }] }); })();
|
|
181
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoSplitView, { className: "LuzmoSplitView", filePath: "components/split-view.ts", lineNumber: 17 }); })();
|
|
@@ -32,7 +32,7 @@ export declare class LuzmoSwatchGroup implements OnChanges {
|
|
|
32
32
|
private bindEvents;
|
|
33
33
|
focus(options?: FocusOptions): void;
|
|
34
34
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoSwatchGroup, never>;
|
|
35
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoSwatchGroup, "luzmo-swatch-group", ["luzmoSwatchGroup"], { "border": { "alias": "border"; "required": false; }; "density": { "alias": "density"; "required": false; }; "rounding": { "alias": "rounding"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "selects": { "alias": "selects"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "swatches": { "alias": "swatches"; "required": false; }; "rovingTabindexController": { "alias": "rovingTabindexController"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "changeEvent": "
|
|
35
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoSwatchGroup, "luzmo-swatch-group", ["luzmoSwatchGroup"], { "border": { "alias": "border"; "required": false; }; "density": { "alias": "density"; "required": false; }; "rounding": { "alias": "rounding"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "selects": { "alias": "selects"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "swatches": { "alias": "swatches"; "required": false; }; "rovingTabindexController": { "alias": "rovingTabindexController"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "changeEvent": "changeEvent"; }, never, ["*"], true, never>;
|
|
36
36
|
}
|
|
37
37
|
/** The underlying custom element type for LuzmoSwatchGroup */
|
|
38
38
|
export type LuzmoSwatchGroupElement = LuzmoSwatchGroupHostElement;
|
|
@@ -26,7 +26,7 @@ export class LuzmoSwatchGroup {
|
|
|
26
26
|
swatches;
|
|
27
27
|
rovingTabindexController;
|
|
28
28
|
size;
|
|
29
|
-
changeEvent = output(
|
|
29
|
+
changeEvent = output();
|
|
30
30
|
constructor() {
|
|
31
31
|
this.bindEvents();
|
|
32
32
|
this.destroyRef.onDestroy(() => {
|
|
@@ -88,7 +88,7 @@ export class LuzmoSwatchGroup {
|
|
|
88
88
|
return this.host.focus(options);
|
|
89
89
|
}
|
|
90
90
|
static ɵfac = function LuzmoSwatchGroup_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoSwatchGroup)(); };
|
|
91
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoSwatchGroup, selectors: [["luzmo-swatch-group"]], inputs: { border: "border", density: "density", rounding: "rounding", selected: "selected", selects: "selects", shape: "shape", swatches: "swatches", rovingTabindexController: "rovingTabindexController", size: "size" }, outputs: { changeEvent: "
|
|
91
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoSwatchGroup, selectors: [["luzmo-swatch-group"]], inputs: { border: "border", density: "density", rounding: "rounding", selected: "selected", selects: "selects", shape: "shape", swatches: "swatches", rovingTabindexController: "rovingTabindexController", size: "size" }, outputs: { changeEvent: "changeEvent" }, exportAs: ["luzmoSwatchGroup"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoSwatchGroup_Template(rf, ctx) { if (rf & 1) {
|
|
92
92
|
i0.ɵɵprojectionDef();
|
|
93
93
|
i0.ɵɵprojection(0);
|
|
94
94
|
} }, encapsulation: 2 });
|
|
@@ -129,5 +129,5 @@ export class LuzmoSwatchGroup {
|
|
|
129
129
|
}], size: [{
|
|
130
130
|
type: Input,
|
|
131
131
|
args: [{ alias: 'size' }]
|
|
132
|
-
}], changeEvent: [{ type: i0.Output, args: ["
|
|
132
|
+
}], changeEvent: [{ type: i0.Output, args: ["changeEvent"] }] }); })();
|
|
133
133
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoSwatchGroup, { className: "LuzmoSwatchGroup", filePath: "components/swatch-group.ts", lineNumber: 17 }); })();
|
|
@@ -51,7 +51,7 @@ export declare class LuzmoSwatch implements OnChanges, ControlValueAccessor {
|
|
|
51
51
|
toggle(force?: boolean): void;
|
|
52
52
|
focus(options?: FocusOptions): void;
|
|
53
53
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoSwatch, never>;
|
|
54
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoSwatch, "luzmo-swatch", ["luzmoSwatch"], { "border": { "alias": "border"; "required": false; }; "color": { "alias": "color"; "required": false; }; "label": { "alias": "label"; "required": false; }; "mixedValue": { "alias": "mixedValue"; "required": false; }; "nothing": { "alias": "nothing"; "required": false; }; "role": { "alias": "role"; "required": false; }; "rounding": { "alias": "rounding"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "value": { "alias": "value"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "changeEvent": "
|
|
54
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoSwatch, "luzmo-swatch", ["luzmoSwatch"], { "border": { "alias": "border"; "required": false; }; "color": { "alias": "color"; "required": false; }; "label": { "alias": "label"; "required": false; }; "mixedValue": { "alias": "mixedValue"; "required": false; }; "nothing": { "alias": "nothing"; "required": false; }; "role": { "alias": "role"; "required": false; }; "rounding": { "alias": "rounding"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "shape": { "alias": "shape"; "required": false; }; "value": { "alias": "value"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "changeEvent": "changeEvent"; "keydownEvent": "keydownEvent"; }, never, ["*"], true, never>;
|
|
55
55
|
}
|
|
56
56
|
/** The underlying custom element type for LuzmoSwatch */
|
|
57
57
|
export type LuzmoSwatchElement = LuzmoSwatchHostElement;
|
package/esm/components/swatch.js
CHANGED
|
@@ -32,9 +32,9 @@ export class LuzmoSwatch {
|
|
|
32
32
|
disabled;
|
|
33
33
|
/** The tab index to apply to this control. See general documentation about the tabindex HTML property */
|
|
34
34
|
tabIndex;
|
|
35
|
-
changeEvent = output(
|
|
35
|
+
changeEvent = output();
|
|
36
36
|
/** Trick :focus-visible polyfill into thinking keyboard based focus */
|
|
37
|
-
keydownEvent = output(
|
|
37
|
+
keydownEvent = output();
|
|
38
38
|
constructor() {
|
|
39
39
|
this.bindEvents();
|
|
40
40
|
this.destroyRef.onDestroy(() => {
|
|
@@ -104,7 +104,6 @@ export class LuzmoSwatch {
|
|
|
104
104
|
}
|
|
105
105
|
bindEvents() {
|
|
106
106
|
this.listenerCleanup.push(this.renderer.listen(this.host, 'change', (event) => {
|
|
107
|
-
this.changeEvent.emit(event);
|
|
108
107
|
if (!this.isWritingValue) {
|
|
109
108
|
const eventWithDetail = event;
|
|
110
109
|
const eventTarget = event.target;
|
|
@@ -116,13 +115,13 @@ export class LuzmoSwatch {
|
|
|
116
115
|
: (detailRecord === undefined ? detail : undefined)
|
|
117
116
|
?? eventTarget?.['value']
|
|
118
117
|
?? hostRecord['value']);
|
|
119
|
-
if (Object.is(this.lastCvaValue, nextValue)) {
|
|
120
|
-
|
|
118
|
+
if (!Object.is(this.lastCvaValue, nextValue)) {
|
|
119
|
+
this.lastCvaValue = nextValue;
|
|
120
|
+
this.setHostProperty('value', nextValue);
|
|
121
|
+
this.onChange(nextValue);
|
|
121
122
|
}
|
|
122
|
-
this.lastCvaValue = nextValue;
|
|
123
|
-
this.setHostProperty('value', nextValue);
|
|
124
|
-
this.onChange(nextValue);
|
|
125
123
|
}
|
|
124
|
+
this.changeEvent.emit(event);
|
|
126
125
|
}));
|
|
127
126
|
this.listenerCleanup.push(this.renderer.listen(this.host, 'keydown', (event) => {
|
|
128
127
|
this.keydownEvent.emit(event);
|
|
@@ -163,7 +162,7 @@ export class LuzmoSwatch {
|
|
|
163
162
|
return this.host.focus(options);
|
|
164
163
|
}
|
|
165
164
|
static ɵfac = function LuzmoSwatch_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoSwatch)(); };
|
|
166
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoSwatch, selectors: [["luzmo-swatch"]], inputs: { border: "border", color: "color", label: "label", mixedValue: "mixedValue", nothing: "nothing", role: "role", rounding: "rounding", selected: "selected", readonly: "readonly", shape: "shape", value: "value", size: "size", disabled: "disabled", tabIndex: "tabIndex" }, outputs: { changeEvent: "
|
|
165
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoSwatch, selectors: [["luzmo-swatch"]], inputs: { border: "border", color: "color", label: "label", mixedValue: "mixedValue", nothing: "nothing", role: "role", rounding: "rounding", selected: "selected", readonly: "readonly", shape: "shape", value: "value", size: "size", disabled: "disabled", tabIndex: "tabIndex" }, outputs: { changeEvent: "changeEvent", keydownEvent: "keydownEvent" }, exportAs: ["luzmoSwatch"], features: [i0.ɵɵProvidersFeature([
|
|
167
166
|
{
|
|
168
167
|
provide: NG_VALUE_ACCESSOR,
|
|
169
168
|
useExisting: forwardRef(() => LuzmoSwatch),
|
|
@@ -232,5 +231,5 @@ export class LuzmoSwatch {
|
|
|
232
231
|
}], tabIndex: [{
|
|
233
232
|
type: Input,
|
|
234
233
|
args: [{ alias: 'tabIndex' }]
|
|
235
|
-
}], changeEvent: [{ type: i0.Output, args: ["
|
|
234
|
+
}], changeEvent: [{ type: i0.Output, args: ["changeEvent"] }], keydownEvent: [{ type: i0.Output, args: ["keydownEvent"] }] }); })();
|
|
236
235
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoSwatch, { className: "LuzmoSwatch", filePath: "components/swatch.ts", lineNumber: 23 }); })();
|
|
@@ -50,7 +50,7 @@ export declare class LuzmoSwitch implements OnChanges, ControlValueAccessor {
|
|
|
50
50
|
setDisabledState(isDisabled: boolean): void;
|
|
51
51
|
focus(options?: FocusOptions): void;
|
|
52
52
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoSwitch, never>;
|
|
53
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoSwitch, "luzmo-switch", ["luzmoSwitch"], { "emphasized": { "alias": "emphasized"; "required": false; }; "thumb": { "alias": "thumb"; "required": false; }; "size": { "alias": "size"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "name": { "alias": "name"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "changeEvent": "
|
|
53
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoSwitch, "luzmo-switch", ["luzmoSwitch"], { "emphasized": { "alias": "emphasized"; "required": false; }; "thumb": { "alias": "thumb"; "required": false; }; "size": { "alias": "size"; "required": false; }; "checked": { "alias": "checked"; "required": false; }; "name": { "alias": "name"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "changeEvent": "changeEvent"; "keydownEvent": "keydownEvent"; }, never, ["*"], true, never>;
|
|
54
54
|
}
|
|
55
55
|
/** The underlying custom element type for LuzmoSwitch */
|
|
56
56
|
export type LuzmoSwitchElement = LuzmoSwitchHostElement;
|
package/esm/components/switch.js
CHANGED
|
@@ -34,9 +34,9 @@ export class LuzmoSwitch {
|
|
|
34
34
|
/** The tab index to apply to this control. See general documentation about the tabindex HTML property */
|
|
35
35
|
tabIndex;
|
|
36
36
|
/** Announces a change in the `checked` property of a Switch */
|
|
37
|
-
changeEvent = output(
|
|
37
|
+
changeEvent = output();
|
|
38
38
|
/** Trick :focus-visible polyfill into thinking keyboard based focus */
|
|
39
|
-
keydownEvent = output(
|
|
39
|
+
keydownEvent = output();
|
|
40
40
|
constructor() {
|
|
41
41
|
this.bindEvents();
|
|
42
42
|
this.destroyRef.onDestroy(() => {
|
|
@@ -88,7 +88,6 @@ export class LuzmoSwitch {
|
|
|
88
88
|
}
|
|
89
89
|
bindEvents() {
|
|
90
90
|
this.listenerCleanup.push(this.renderer.listen(this.host, 'change', (event) => {
|
|
91
|
-
this.changeEvent.emit(event);
|
|
92
91
|
if (!this.isWritingValue) {
|
|
93
92
|
const eventWithDetail = event;
|
|
94
93
|
const eventTarget = event.target;
|
|
@@ -100,13 +99,13 @@ export class LuzmoSwitch {
|
|
|
100
99
|
: (detailRecord === undefined ? detail : undefined)
|
|
101
100
|
?? eventTarget?.['checked']
|
|
102
101
|
?? hostRecord['checked']);
|
|
103
|
-
if (Object.is(this.lastCvaValue, nextValue)) {
|
|
104
|
-
|
|
102
|
+
if (!Object.is(this.lastCvaValue, nextValue)) {
|
|
103
|
+
this.lastCvaValue = nextValue;
|
|
104
|
+
this.setHostProperty('checked', nextValue);
|
|
105
|
+
this.onChange(nextValue);
|
|
105
106
|
}
|
|
106
|
-
this.lastCvaValue = nextValue;
|
|
107
|
-
this.setHostProperty('checked', nextValue);
|
|
108
|
-
this.onChange(nextValue);
|
|
109
107
|
}
|
|
108
|
+
this.changeEvent.emit(event);
|
|
110
109
|
}));
|
|
111
110
|
this.listenerCleanup.push(this.renderer.listen(this.host, 'keydown', (event) => {
|
|
112
111
|
this.keydownEvent.emit(event);
|
|
@@ -144,7 +143,7 @@ export class LuzmoSwitch {
|
|
|
144
143
|
return this.host.focus(options);
|
|
145
144
|
}
|
|
146
145
|
static ɵfac = function LuzmoSwitch_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoSwitch)(); };
|
|
147
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoSwitch, selectors: [["luzmo-switch"]], inputs: { emphasized: "emphasized", thumb: "thumb", size: "size", checked: "checked", name: "name", readonly: "readonly", disabled: "disabled", tabIndex: "tabIndex" }, outputs: { changeEvent: "
|
|
146
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoSwitch, selectors: [["luzmo-switch"]], inputs: { emphasized: "emphasized", thumb: "thumb", size: "size", checked: "checked", name: "name", readonly: "readonly", disabled: "disabled", tabIndex: "tabIndex" }, outputs: { changeEvent: "changeEvent", keydownEvent: "keydownEvent" }, exportAs: ["luzmoSwitch"], features: [i0.ɵɵProvidersFeature([
|
|
148
147
|
{
|
|
149
148
|
provide: NG_VALUE_ACCESSOR,
|
|
150
149
|
useExisting: forwardRef(() => LuzmoSwitch),
|
|
@@ -195,5 +194,5 @@ export class LuzmoSwitch {
|
|
|
195
194
|
}], tabIndex: [{
|
|
196
195
|
type: Input,
|
|
197
196
|
args: [{ alias: 'tabIndex' }]
|
|
198
|
-
}], changeEvent: [{ type: i0.Output, args: ["
|
|
197
|
+
}], changeEvent: [{ type: i0.Output, args: ["changeEvent"] }], keydownEvent: [{ type: i0.Output, args: ["keydownEvent"] }] }); })();
|
|
199
198
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoSwitch, { className: "LuzmoSwitch", filePath: "components/switch.ts", lineNumber: 25 }); })();
|
package/esm/components/tabs.d.ts
CHANGED
|
@@ -44,7 +44,7 @@ export declare class LuzmoTabs implements OnChanges {
|
|
|
44
44
|
private bindEvents;
|
|
45
45
|
focus(options?: FocusOptions): void;
|
|
46
46
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoTabs, never>;
|
|
47
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoTabs, "luzmo-tabs", ["luzmoTabs"], { "auto": { "alias": "auto"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "emphasized": { "alias": "emphasized"; "required": false; }; "label": { "alias": "label"; "required": false; }; "enableTabsScroll": { "alias": "enableTabsScroll"; "required": false; }; "quiet": { "alias": "quiet"; "required": false; }; "selectionIndicatorStyle": { "alias": "selectionIndicatorStyle"; "required": false; }; "shouldAnimate": { "alias": "shouldAnimate"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "changeEvent": "
|
|
47
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoTabs, "luzmo-tabs", ["luzmoTabs"], { "auto": { "alias": "auto"; "required": false; }; "compact": { "alias": "compact"; "required": false; }; "direction": { "alias": "direction"; "required": false; }; "emphasized": { "alias": "emphasized"; "required": false; }; "label": { "alias": "label"; "required": false; }; "enableTabsScroll": { "alias": "enableTabsScroll"; "required": false; }; "quiet": { "alias": "quiet"; "required": false; }; "selectionIndicatorStyle": { "alias": "selectionIndicatorStyle"; "required": false; }; "shouldAnimate": { "alias": "shouldAnimate"; "required": false; }; "selected": { "alias": "selected"; "required": false; }; "size": { "alias": "size"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; }, { "changeEvent": "changeEvent"; "keydownEvent": "keydownEvent"; }, never, ["*"], true, never>;
|
|
48
48
|
}
|
|
49
49
|
/** The underlying custom element type for LuzmoTabs */
|
|
50
50
|
export type LuzmoTabsElement = LuzmoTabsHostElement;
|
package/esm/components/tabs.js
CHANGED
|
@@ -38,9 +38,9 @@ export class LuzmoTabs {
|
|
|
38
38
|
/** The tab index to apply to this control. See general documentation about the tabindex HTML property */
|
|
39
39
|
tabIndex;
|
|
40
40
|
/** The selected Tab child has changed. */
|
|
41
|
-
changeEvent = output(
|
|
41
|
+
changeEvent = output();
|
|
42
42
|
/** Trick :focus-visible polyfill into thinking keyboard based focus */
|
|
43
|
-
keydownEvent = output(
|
|
43
|
+
keydownEvent = output();
|
|
44
44
|
constructor() {
|
|
45
45
|
this.bindEvents();
|
|
46
46
|
this.destroyRef.onDestroy(() => {
|
|
@@ -117,7 +117,7 @@ export class LuzmoTabs {
|
|
|
117
117
|
return this.host.focus(options);
|
|
118
118
|
}
|
|
119
119
|
static ɵfac = function LuzmoTabs_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || LuzmoTabs)(); };
|
|
120
|
-
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoTabs, selectors: [["luzmo-tabs"]], inputs: { auto: "auto", compact: "compact", direction: "direction", emphasized: "emphasized", label: "label", enableTabsScroll: "enableTabsScroll", quiet: "quiet", selectionIndicatorStyle: "selectionIndicatorStyle", shouldAnimate: "shouldAnimate", selected: "selected", size: "size", disabled: "disabled", tabIndex: "tabIndex" }, outputs: { changeEvent: "
|
|
120
|
+
static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: LuzmoTabs, selectors: [["luzmo-tabs"]], inputs: { auto: "auto", compact: "compact", direction: "direction", emphasized: "emphasized", label: "label", enableTabsScroll: "enableTabsScroll", quiet: "quiet", selectionIndicatorStyle: "selectionIndicatorStyle", shouldAnimate: "shouldAnimate", selected: "selected", size: "size", disabled: "disabled", tabIndex: "tabIndex" }, outputs: { changeEvent: "changeEvent", keydownEvent: "keydownEvent" }, exportAs: ["luzmoTabs"], features: [i0.ɵɵNgOnChangesFeature], ngContentSelectors: _c0, decls: 1, vars: 0, template: function LuzmoTabs_Template(rf, ctx) { if (rf & 1) {
|
|
121
121
|
i0.ɵɵprojectionDef();
|
|
122
122
|
i0.ɵɵprojection(0);
|
|
123
123
|
} }, encapsulation: 2 });
|
|
@@ -170,5 +170,5 @@ export class LuzmoTabs {
|
|
|
170
170
|
}], tabIndex: [{
|
|
171
171
|
type: Input,
|
|
172
172
|
args: [{ alias: 'tabIndex' }]
|
|
173
|
-
}], changeEvent: [{ type: i0.Output, args: ["
|
|
173
|
+
}], changeEvent: [{ type: i0.Output, args: ["changeEvent"] }], keydownEvent: [{ type: i0.Output, args: ["keydownEvent"] }] }); })();
|
|
174
174
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(LuzmoTabs, { className: "LuzmoTabs", filePath: "components/tabs.ts", lineNumber: 19 }); })();
|
package/esm/components/tag.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export declare class LuzmoTag implements OnChanges {
|
|
|
19
19
|
disabled?: boolean;
|
|
20
20
|
readonly?: boolean;
|
|
21
21
|
size?: ('xxs' | 'xs' | 's' | 'm' | 'l' | 'xl' | 'xxl');
|
|
22
|
-
readonly
|
|
22
|
+
readonly delete: import("@angular/core").OutputEmitterRef<Event>;
|
|
23
23
|
constructor();
|
|
24
24
|
ngOnChanges(changes: SimpleChanges): void;
|
|
25
25
|
/**
|
|
@@ -31,7 +31,7 @@ export declare class LuzmoTag implements OnChanges {
|
|
|
31
31
|
private setHostProperty;
|
|
32
32
|
private bindEvents;
|
|
33
33
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuzmoTag, never>;
|
|
34
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoTag, "luzmo-tag", ["luzmoTag"], { "variant": { "alias": "variant"; "required": false; }; "treatment": { "alias": "treatment"; "required": false; }; "deletable": { "alias": "deletable"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "
|
|
34
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<LuzmoTag, "luzmo-tag", ["luzmoTag"], { "variant": { "alias": "variant"; "required": false; }; "treatment": { "alias": "treatment"; "required": false; }; "deletable": { "alias": "deletable"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "readonly": { "alias": "readonly"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, { "delete": "delete"; }, never, ["*"], true, never>;
|
|
35
35
|
}
|
|
36
36
|
/** The underlying custom element type for LuzmoTag */
|
|
37
37
|
export type LuzmoTagElement = LuzmoTagHostElement;
|