@ethlete/components 0.1.0-next.12 → 0.1.0-next.13
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 +12 -0
- package/fesm2022/ethlete-components.mjs +468 -167
- package/fesm2022/ethlete-components.mjs.map +1 -1
- package/package.json +1 -1
- package/types/ethlete-components.d.ts +123 -85
|
@@ -46,8 +46,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
46
46
|
|
|
47
47
|
class FocusRingDirective {
|
|
48
48
|
constructor() {
|
|
49
|
-
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
50
49
|
this.styleManager = injectStyleManager();
|
|
50
|
+
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
51
51
|
this.active = signal(false, /* @ts-ignore */
|
|
52
52
|
...(ngDevMode ? [{ debugName: "active" }] : /* istanbul ignore next */ []));
|
|
53
53
|
effect(() => {
|
|
@@ -1411,6 +1411,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
1411
1411
|
|
|
1412
1412
|
class ChoiceFieldComponent {
|
|
1413
1413
|
constructor() {
|
|
1414
|
+
this.support = injectFormSupport();
|
|
1414
1415
|
this.errorContentRef = viewChild('errorContent', /* @ts-ignore */
|
|
1415
1416
|
...(ngDevMode ? [{ debugName: "errorContentRef" }] : /* istanbul ignore next */ []));
|
|
1416
1417
|
this.hintContentRef = viewChild('hintContent', /* @ts-ignore */
|
|
@@ -1419,7 +1420,6 @@ class ChoiceFieldComponent {
|
|
|
1419
1420
|
...(ngDevMode ? [{ debugName: "errorAnimatableRef" }] : /* istanbul ignore next */ []));
|
|
1420
1421
|
this.hintAnimatableRef = viewChild('hintAnimatable', /* @ts-ignore */
|
|
1421
1422
|
...(ngDevMode ? [{ debugName: "hintAnimatableRef" }] : /* istanbul ignore next */ []));
|
|
1422
|
-
this.support = injectFormSupport();
|
|
1423
1423
|
this.canAnimate = createCanAnimateSignal();
|
|
1424
1424
|
effect(() => {
|
|
1425
1425
|
this.support.errorContent.set(this.errorContentRef());
|
|
@@ -1583,6 +1583,8 @@ class FormFieldComponent {
|
|
|
1583
1583
|
this.provideSurface = inject(ProvideSurfaceDirective);
|
|
1584
1584
|
this.parentSurfaceProvider = inject(SURFACE_PROVIDER, { optional: true, skipSelf: true });
|
|
1585
1585
|
this.formFieldDir = inject(FormFieldDirective);
|
|
1586
|
+
this.errorColorTheme = injectErrorTheme();
|
|
1587
|
+
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
1586
1588
|
this.appearance = input(FORM_FIELD_APPEARANCES.BOX, /* @ts-ignore */
|
|
1587
1589
|
...(ngDevMode ? [{ debugName: "appearance" }] : /* istanbul ignore next */ []));
|
|
1588
1590
|
this.fill = input(FORM_FIELD_FILLS.TRANSPARENT, /* @ts-ignore */
|
|
@@ -1601,8 +1603,6 @@ class FormFieldComponent {
|
|
|
1601
1603
|
...(ngDevMode ? [{ debugName: "errorAnimatable" }] : /* istanbul ignore next */ []));
|
|
1602
1604
|
this.hintAnimatable = viewChild('hintAnimatable', /* @ts-ignore */
|
|
1603
1605
|
...(ngDevMode ? [{ debugName: "hintAnimatable" }] : /* istanbul ignore next */ []));
|
|
1604
|
-
this.errorColorTheme = injectErrorTheme();
|
|
1605
|
-
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
1606
1606
|
this.errorDimensions = signalElementDimensions(this.errorContent);
|
|
1607
1607
|
this.hintDimensions = signalElementDimensions(this.hintContent);
|
|
1608
1608
|
this.prefixDimensions = signalElementDimensions(this.prefixEl);
|
|
@@ -2642,6 +2642,8 @@ class RichTextEditorDirective {
|
|
|
2642
2642
|
this.formField = inject(FORM_FIELD_TOKEN, { optional: true });
|
|
2643
2643
|
this.destroyRef = inject(DestroyRef);
|
|
2644
2644
|
this.document = inject(DOCUMENT);
|
|
2645
|
+
/** @internal */
|
|
2646
|
+
this.editorDom = injectRichTextEditorDom();
|
|
2645
2647
|
this.value = model('', /* @ts-ignore */
|
|
2646
2648
|
...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
|
|
2647
2649
|
this.touched = model(false, /* @ts-ignore */
|
|
@@ -2690,8 +2692,6 @@ class RichTextEditorDirective {
|
|
|
2690
2692
|
...(ngDevMode ? [{ debugName: "linkActive" }] : /* istanbul ignore next */ []));
|
|
2691
2693
|
/** @internal */
|
|
2692
2694
|
this.lastEmittedMarkdown = null;
|
|
2693
|
-
/** @internal */
|
|
2694
|
-
this.editorDom = injectRichTextEditorDom();
|
|
2695
2695
|
this.formField?.registerControl(this);
|
|
2696
2696
|
this.destroyRef.onDestroy(() => this.formField?.unregisterControl(this));
|
|
2697
2697
|
}
|
|
@@ -3230,7 +3230,7 @@ class RichTextEditorFloatingToolbarComponent {
|
|
|
3230
3230
|
this.renderer.listen(root, 'pointerdown', () => (this.pointerSelectingInContent = true)),
|
|
3231
3231
|
this.renderer.listen(root, 'keyup', () => this.evaluate()),
|
|
3232
3232
|
this.renderer.listen(root, 'blur', () => this.hide()),
|
|
3233
|
-
this.renderer.listen(this.document, 'pointerup', () => this.
|
|
3233
|
+
this.renderer.listen(this.document, 'pointerup', () => this.finishContentPointerSelection()),
|
|
3234
3234
|
this.renderer.listen(this.document, 'selectionchange', () => this.reposition()),
|
|
3235
3235
|
];
|
|
3236
3236
|
onCleanup(() => listeners.forEach((off) => off()));
|
|
@@ -3242,7 +3242,7 @@ class RichTextEditorFloatingToolbarComponent {
|
|
|
3242
3242
|
const usable = !!range && !range.collapsed && this.dir.focused() && !this.dir.disabled() && !this.dir.readonly();
|
|
3243
3243
|
return usable ? range : null;
|
|
3244
3244
|
}
|
|
3245
|
-
|
|
3245
|
+
finishContentPointerSelection() {
|
|
3246
3246
|
if (!this.pointerSelectingInContent)
|
|
3247
3247
|
return;
|
|
3248
3248
|
this.pointerSelectingInContent = false;
|
|
@@ -3341,17 +3341,17 @@ class RichTextEditorComponent {
|
|
|
3341
3341
|
this.renderExternalValue(markdown);
|
|
3342
3342
|
});
|
|
3343
3343
|
}
|
|
3344
|
-
|
|
3344
|
+
syncValueFromDom() {
|
|
3345
3345
|
this.dir.syncFromDom();
|
|
3346
3346
|
}
|
|
3347
|
-
|
|
3347
|
+
interceptBackspaceKey(event) {
|
|
3348
3348
|
if (event.key !== 'Backspace')
|
|
3349
3349
|
return;
|
|
3350
3350
|
if (this.dir.handleBackspace()) {
|
|
3351
3351
|
event.preventDefault();
|
|
3352
3352
|
}
|
|
3353
3353
|
}
|
|
3354
|
-
|
|
3354
|
+
interceptFormattingCommand(event) {
|
|
3355
3355
|
// Keep keyboard shortcuts (Ctrl/Cmd+B, …) running through our Selection/Range commands
|
|
3356
3356
|
// instead of the browser's deprecated execCommand-backed formatting.
|
|
3357
3357
|
switch (event.inputType) {
|
|
@@ -3379,7 +3379,7 @@ class RichTextEditorComponent {
|
|
|
3379
3379
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RichTextEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
3380
3380
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.5", type: RichTextEditorComponent, isStandalone: true, selector: "et-rich-text-editor", host: { listeners: { "click": "dir.activate()" }, classAttribute: "et-rich-text-editor" }, providers: [
|
|
3381
3381
|
provideIcons(BOLD_ICON, ITALIC_ICON, STRIKETHROUGH_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LINK_ICON),
|
|
3382
|
-
], viewQueries: [{ propertyName: "editable", first: true, predicate: ["editable"], descendants: true, isSignal: true }], hostDirectives: [{ directive: RichTextEditorDirective, inputs: ["value", "value", "disabled", "disabled", "readonly", "readonly", "hidden", "hidden", "invalid", "invalid", "errors", "errors", "required", "required", "name", "name", "placeholder", "placeholder"], outputs: ["valueChange", "valueChange", "touchedChange", "touchedChange"] }], ngImport: i0, template: "<div class=\"et-rte-toolbar\" role=\"toolbar\" aria-label=\"Text formatting\">\n <button\n [pressed]=\"dir.boldActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleBold()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Bold\"\n >\n <i etIcon=\"et-bold\"></i>\n </button>\n\n <button\n [pressed]=\"dir.italicActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleItalic()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Italic\"\n >\n <i etIcon=\"et-italic\"></i>\n </button>\n\n <button\n [pressed]=\"dir.strikeActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleStrikethrough()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Strikethrough\"\n >\n <i etIcon=\"et-strikethrough\"></i>\n </button>\n\n <span class=\"et-rte-toolbar-divider\" aria-hidden=\"true\"></span>\n\n <button\n [pressed]=\"dir.unorderedListActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleUnorderedList()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Bulleted list\"\n >\n <i etIcon=\"et-list-bulleted\"></i>\n </button>\n\n <button\n [pressed]=\"dir.orderedListActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleOrderedList()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Numbered list\"\n >\n <i etIcon=\"et-list-numbered\"></i>\n </button>\n\n <span class=\"et-rte-toolbar-divider\" aria-hidden=\"true\"></span>\n\n <button\n [pressed]=\"dir.linkActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.promptForLink()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Link\"\n >\n <i [allowHardcodedColor]=\"true\" etIcon=\"et-link\"></i>\n </button>\n</div>\n\n<div\n #editable\n [attr.contenteditable]=\"dir.disabled() || dir.readonly() ? 'false' : 'true'\"\n [attr.tabindex]=\"dir.disabled() ? -1 : 0\"\n [attr.data-placeholder]=\"dir.placeholder() || null\"\n [attr.aria-invalid]=\"dir.shouldDisplayError() || null\"\n [attr.aria-describedby]=\"dir.describedById() || null\"\n [attr.aria-labelledby]=\"dir.labelId() || null\"\n [attr.aria-disabled]=\"dir.disabled() || null\"\n [attr.aria-readonly]=\"dir.readonly() || null\"\n (input)=\"
|
|
3382
|
+
], viewQueries: [{ propertyName: "editable", first: true, predicate: ["editable"], descendants: true, isSignal: true }], hostDirectives: [{ directive: RichTextEditorDirective, inputs: ["value", "value", "disabled", "disabled", "readonly", "readonly", "hidden", "hidden", "invalid", "invalid", "errors", "errors", "required", "required", "name", "name", "placeholder", "placeholder"], outputs: ["valueChange", "valueChange", "touchedChange", "touchedChange"] }], ngImport: i0, template: "<div class=\"et-rte-toolbar\" role=\"toolbar\" aria-label=\"Text formatting\">\n <button\n [pressed]=\"dir.boldActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleBold()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Bold\"\n >\n <i etIcon=\"et-bold\"></i>\n </button>\n\n <button\n [pressed]=\"dir.italicActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleItalic()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Italic\"\n >\n <i etIcon=\"et-italic\"></i>\n </button>\n\n <button\n [pressed]=\"dir.strikeActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleStrikethrough()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Strikethrough\"\n >\n <i etIcon=\"et-strikethrough\"></i>\n </button>\n\n <span class=\"et-rte-toolbar-divider\" aria-hidden=\"true\"></span>\n\n <button\n [pressed]=\"dir.unorderedListActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleUnorderedList()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Bulleted list\"\n >\n <i etIcon=\"et-list-bulleted\"></i>\n </button>\n\n <button\n [pressed]=\"dir.orderedListActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleOrderedList()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Numbered list\"\n >\n <i etIcon=\"et-list-numbered\"></i>\n </button>\n\n <span class=\"et-rte-toolbar-divider\" aria-hidden=\"true\"></span>\n\n <button\n [pressed]=\"dir.linkActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.promptForLink()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Link\"\n >\n <i [allowHardcodedColor]=\"true\" etIcon=\"et-link\"></i>\n </button>\n</div>\n\n<div\n #editable\n [attr.contenteditable]=\"dir.disabled() || dir.readonly() ? 'false' : 'true'\"\n [attr.tabindex]=\"dir.disabled() ? -1 : 0\"\n [attr.data-placeholder]=\"dir.placeholder() || null\"\n [attr.aria-invalid]=\"dir.shouldDisplayError() || null\"\n [attr.aria-describedby]=\"dir.describedById() || null\"\n [attr.aria-labelledby]=\"dir.labelId() || null\"\n [attr.aria-disabled]=\"dir.disabled() || null\"\n [attr.aria-readonly]=\"dir.readonly() || null\"\n (input)=\"syncValueFromDom()\"\n (beforeinput)=\"interceptFormattingCommand($event)\"\n (keydown)=\"interceptBackspaceKey($event)\"\n (focus)=\"dir.focused.set(true)\"\n (blur)=\"dir.focused.set(false); dir.touched.set(true)\"\n class=\"et-rte-content\"\n role=\"textbox\"\n aria-multiline=\"true\"\n></div>\n\n<et-rich-text-editor-floating-toolbar />\n", styles: ["@property --et-rich-text-editor-toolbar-gap{syntax: \"<length>\"; inherits: true; initial-value: 2px;}@property --et-rich-text-editor-toolbar-padding{syntax: \"<length>\"; inherits: true; initial-value: 4px;}@property --et-rich-text-editor-button-radius{syntax: \"<length>\"; inherits: true; initial-value: 4px;}@property --et-rich-text-editor-min-height{syntax: \"<length>\"; inherits: true; initial-value: 96px;}@property --et-rich-text-editor-content-gap{syntax: \"<length>\"; inherits: true; initial-value: 8px;}et-rich-text-editor{display:flex;flex:1;flex-direction:column;min-inline-size:0;color:inherit}et-rich-text-editor .et-rte-toolbar{display:flex;align-items:center;gap:var(--et-rich-text-editor-toolbar-gap);padding:var(--et-rich-text-editor-toolbar-padding);padding-inline:calc(var(--et-form-field-control-padding-inline) - var(--et-rich-text-editor-toolbar-padding));border-block-end:var(--et-form-field-control-border-width, 1px) solid color-mix(in srgb,currentColor 12%,transparent)}et-rich-text-editor .et-rte-toolbar .et-icon-button{border-radius:var(--et-rich-text-editor-button-radius)}et-rich-text-editor .et-rte-toolbar-divider{inline-size:1px;align-self:stretch;margin-block:4px;margin-inline:2px;background:color-mix(in srgb,currentColor 12%,transparent)}et-rich-text-editor .et-rte-content{display:block;flex:1;min-inline-size:0;padding-block:var(--et-form-field-control-padding-block);padding-inline:var(--et-form-field-control-padding-inline);min-block-size:var(--et-rich-text-editor-min-height);outline:none;color:inherit;caret-color:var(--et-theme-color-primary-solid, currentColor);overflow-wrap:anywhere}et-rich-text-editor .et-rte-content:empty:before{content:attr(data-placeholder);color:color-mix(in srgb,currentColor 46%,transparent);pointer-events:none}et-rich-text-editor .et-rte-content>:first-child{margin-block-start:0}et-rich-text-editor .et-rte-content>:last-child{margin-block-end:0}et-rich-text-editor .et-rte-content p{margin-block:0}et-rich-text-editor .et-rte-content p+p,et-rich-text-editor .et-rte-content ul,et-rich-text-editor .et-rte-content ol{margin-block-start:var(--et-rich-text-editor-content-gap)}et-rich-text-editor .et-rte-content ul,et-rich-text-editor .et-rte-content ol{margin-block-end:0;padding-inline-start:1.5em;list-style-position:outside}et-rich-text-editor .et-rte-content ul{list-style-type:disc}et-rich-text-editor .et-rte-content ol{list-style-type:decimal}et-rich-text-editor .et-rte-content li{margin-block:0}et-rich-text-editor .et-rte-content li::marker{color:color-mix(in srgb,currentColor 60%,transparent)}et-rich-text-editor .et-rte-content a{color:var(--et-theme-color-primary-solid, currentColor);text-decoration:underline}\n"], dependencies: [{ kind: "component", type: IconButtonComponent, selector: "[et-icon-button]", inputs: ["variant", "size"] }, { kind: "directive", type: IconDirective, selector: "[etIcon]", inputs: ["etIcon", "allowHardcodedColor"] }, { kind: "component", type: RichTextEditorFloatingToolbarComponent, selector: "et-rich-text-editor-floating-toolbar" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
3383
3383
|
}
|
|
3384
3384
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: RichTextEditorComponent, decorators: [{
|
|
3385
3385
|
type: Component,
|
|
@@ -3394,7 +3394,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
3394
3394
|
], host: {
|
|
3395
3395
|
class: 'et-rich-text-editor',
|
|
3396
3396
|
'(click)': 'dir.activate()',
|
|
3397
|
-
}, template: "<div class=\"et-rte-toolbar\" role=\"toolbar\" aria-label=\"Text formatting\">\n <button\n [pressed]=\"dir.boldActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleBold()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Bold\"\n >\n <i etIcon=\"et-bold\"></i>\n </button>\n\n <button\n [pressed]=\"dir.italicActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleItalic()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Italic\"\n >\n <i etIcon=\"et-italic\"></i>\n </button>\n\n <button\n [pressed]=\"dir.strikeActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleStrikethrough()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Strikethrough\"\n >\n <i etIcon=\"et-strikethrough\"></i>\n </button>\n\n <span class=\"et-rte-toolbar-divider\" aria-hidden=\"true\"></span>\n\n <button\n [pressed]=\"dir.unorderedListActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleUnorderedList()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Bulleted list\"\n >\n <i etIcon=\"et-list-bulleted\"></i>\n </button>\n\n <button\n [pressed]=\"dir.orderedListActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleOrderedList()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Numbered list\"\n >\n <i etIcon=\"et-list-numbered\"></i>\n </button>\n\n <span class=\"et-rte-toolbar-divider\" aria-hidden=\"true\"></span>\n\n <button\n [pressed]=\"dir.linkActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.promptForLink()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Link\"\n >\n <i [allowHardcodedColor]=\"true\" etIcon=\"et-link\"></i>\n </button>\n</div>\n\n<div\n #editable\n [attr.contenteditable]=\"dir.disabled() || dir.readonly() ? 'false' : 'true'\"\n [attr.tabindex]=\"dir.disabled() ? -1 : 0\"\n [attr.data-placeholder]=\"dir.placeholder() || null\"\n [attr.aria-invalid]=\"dir.shouldDisplayError() || null\"\n [attr.aria-describedby]=\"dir.describedById() || null\"\n [attr.aria-labelledby]=\"dir.labelId() || null\"\n [attr.aria-disabled]=\"dir.disabled() || null\"\n [attr.aria-readonly]=\"dir.readonly() || null\"\n (input)=\"
|
|
3397
|
+
}, template: "<div class=\"et-rte-toolbar\" role=\"toolbar\" aria-label=\"Text formatting\">\n <button\n [pressed]=\"dir.boldActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleBold()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Bold\"\n >\n <i etIcon=\"et-bold\"></i>\n </button>\n\n <button\n [pressed]=\"dir.italicActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleItalic()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Italic\"\n >\n <i etIcon=\"et-italic\"></i>\n </button>\n\n <button\n [pressed]=\"dir.strikeActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleStrikethrough()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Strikethrough\"\n >\n <i etIcon=\"et-strikethrough\"></i>\n </button>\n\n <span class=\"et-rte-toolbar-divider\" aria-hidden=\"true\"></span>\n\n <button\n [pressed]=\"dir.unorderedListActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleUnorderedList()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Bulleted list\"\n >\n <i etIcon=\"et-list-bulleted\"></i>\n </button>\n\n <button\n [pressed]=\"dir.orderedListActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.toggleOrderedList()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Numbered list\"\n >\n <i etIcon=\"et-list-numbered\"></i>\n </button>\n\n <span class=\"et-rte-toolbar-divider\" aria-hidden=\"true\"></span>\n\n <button\n [pressed]=\"dir.linkActive()\"\n [disabled]=\"dir.disabled() || dir.readonly()\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"dir.promptForLink()\"\n mutedUntilPressed\n et-icon-button\n size=\"xs\"\n type=\"button\"\n aria-label=\"Link\"\n >\n <i [allowHardcodedColor]=\"true\" etIcon=\"et-link\"></i>\n </button>\n</div>\n\n<div\n #editable\n [attr.contenteditable]=\"dir.disabled() || dir.readonly() ? 'false' : 'true'\"\n [attr.tabindex]=\"dir.disabled() ? -1 : 0\"\n [attr.data-placeholder]=\"dir.placeholder() || null\"\n [attr.aria-invalid]=\"dir.shouldDisplayError() || null\"\n [attr.aria-describedby]=\"dir.describedById() || null\"\n [attr.aria-labelledby]=\"dir.labelId() || null\"\n [attr.aria-disabled]=\"dir.disabled() || null\"\n [attr.aria-readonly]=\"dir.readonly() || null\"\n (input)=\"syncValueFromDom()\"\n (beforeinput)=\"interceptFormattingCommand($event)\"\n (keydown)=\"interceptBackspaceKey($event)\"\n (focus)=\"dir.focused.set(true)\"\n (blur)=\"dir.focused.set(false); dir.touched.set(true)\"\n class=\"et-rte-content\"\n role=\"textbox\"\n aria-multiline=\"true\"\n></div>\n\n<et-rich-text-editor-floating-toolbar />\n", styles: ["@property --et-rich-text-editor-toolbar-gap{syntax: \"<length>\"; inherits: true; initial-value: 2px;}@property --et-rich-text-editor-toolbar-padding{syntax: \"<length>\"; inherits: true; initial-value: 4px;}@property --et-rich-text-editor-button-radius{syntax: \"<length>\"; inherits: true; initial-value: 4px;}@property --et-rich-text-editor-min-height{syntax: \"<length>\"; inherits: true; initial-value: 96px;}@property --et-rich-text-editor-content-gap{syntax: \"<length>\"; inherits: true; initial-value: 8px;}et-rich-text-editor{display:flex;flex:1;flex-direction:column;min-inline-size:0;color:inherit}et-rich-text-editor .et-rte-toolbar{display:flex;align-items:center;gap:var(--et-rich-text-editor-toolbar-gap);padding:var(--et-rich-text-editor-toolbar-padding);padding-inline:calc(var(--et-form-field-control-padding-inline) - var(--et-rich-text-editor-toolbar-padding));border-block-end:var(--et-form-field-control-border-width, 1px) solid color-mix(in srgb,currentColor 12%,transparent)}et-rich-text-editor .et-rte-toolbar .et-icon-button{border-radius:var(--et-rich-text-editor-button-radius)}et-rich-text-editor .et-rte-toolbar-divider{inline-size:1px;align-self:stretch;margin-block:4px;margin-inline:2px;background:color-mix(in srgb,currentColor 12%,transparent)}et-rich-text-editor .et-rte-content{display:block;flex:1;min-inline-size:0;padding-block:var(--et-form-field-control-padding-block);padding-inline:var(--et-form-field-control-padding-inline);min-block-size:var(--et-rich-text-editor-min-height);outline:none;color:inherit;caret-color:var(--et-theme-color-primary-solid, currentColor);overflow-wrap:anywhere}et-rich-text-editor .et-rte-content:empty:before{content:attr(data-placeholder);color:color-mix(in srgb,currentColor 46%,transparent);pointer-events:none}et-rich-text-editor .et-rte-content>:first-child{margin-block-start:0}et-rich-text-editor .et-rte-content>:last-child{margin-block-end:0}et-rich-text-editor .et-rte-content p{margin-block:0}et-rich-text-editor .et-rte-content p+p,et-rich-text-editor .et-rte-content ul,et-rich-text-editor .et-rte-content ol{margin-block-start:var(--et-rich-text-editor-content-gap)}et-rich-text-editor .et-rte-content ul,et-rich-text-editor .et-rte-content ol{margin-block-end:0;padding-inline-start:1.5em;list-style-position:outside}et-rich-text-editor .et-rte-content ul{list-style-type:disc}et-rich-text-editor .et-rte-content ol{list-style-type:decimal}et-rich-text-editor .et-rte-content li{margin-block:0}et-rich-text-editor .et-rte-content li::marker{color:color-mix(in srgb,currentColor 60%,transparent)}et-rich-text-editor .et-rte-content a{color:var(--et-theme-color-primary-solid, currentColor);text-decoration:underline}\n"] }]
|
|
3398
3398
|
}], ctorParameters: () => [], propDecorators: { editable: [{ type: i0.ViewChild, args: ['editable', { isSignal: true }] }] } });
|
|
3399
3399
|
|
|
3400
3400
|
const RICH_TEXT_EDITOR_IMPORTS = [RichTextEditorComponent, RichTextEditorDirective];
|
|
@@ -3716,6 +3716,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
3716
3716
|
|
|
3717
3717
|
class CheckboxGroupComponent {
|
|
3718
3718
|
constructor() {
|
|
3719
|
+
this.support = injectFormSupport();
|
|
3719
3720
|
this.errorContentRef = viewChild('errorContent', /* @ts-ignore */
|
|
3720
3721
|
...(ngDevMode ? [{ debugName: "errorContentRef" }] : /* istanbul ignore next */ []));
|
|
3721
3722
|
this.hintContentRef = viewChild('hintContent', /* @ts-ignore */
|
|
@@ -3724,7 +3725,6 @@ class CheckboxGroupComponent {
|
|
|
3724
3725
|
...(ngDevMode ? [{ debugName: "errorAnimatableRef" }] : /* istanbul ignore next */ []));
|
|
3725
3726
|
this.hintAnimatableRef = viewChild('hintAnimatable', /* @ts-ignore */
|
|
3726
3727
|
...(ngDevMode ? [{ debugName: "hintAnimatableRef" }] : /* istanbul ignore next */ []));
|
|
3727
|
-
this.support = injectFormSupport();
|
|
3728
3728
|
this.canAnimate = createCanAnimateSignal();
|
|
3729
3729
|
effect(() => {
|
|
3730
3730
|
this.support.errorContent.set(this.errorContentRef());
|
|
@@ -3778,6 +3778,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
3778
3778
|
|
|
3779
3779
|
class RadioGroupComponent {
|
|
3780
3780
|
constructor() {
|
|
3781
|
+
this.support = injectFormSupport();
|
|
3781
3782
|
this.errorContentRef = viewChild('errorContent', /* @ts-ignore */
|
|
3782
3783
|
...(ngDevMode ? [{ debugName: "errorContentRef" }] : /* istanbul ignore next */ []));
|
|
3783
3784
|
this.hintContentRef = viewChild('hintContent', /* @ts-ignore */
|
|
@@ -3786,7 +3787,6 @@ class RadioGroupComponent {
|
|
|
3786
3787
|
...(ngDevMode ? [{ debugName: "errorAnimatableRef" }] : /* istanbul ignore next */ []));
|
|
3787
3788
|
this.hintAnimatableRef = viewChild('hintAnimatable', /* @ts-ignore */
|
|
3788
3789
|
...(ngDevMode ? [{ debugName: "hintAnimatableRef" }] : /* istanbul ignore next */ []));
|
|
3789
|
-
this.support = injectFormSupport();
|
|
3790
3790
|
this.canAnimate = createCanAnimateSignal();
|
|
3791
3791
|
effect(() => {
|
|
3792
3792
|
this.support.errorContent.set(this.errorContentRef());
|
|
@@ -3840,6 +3840,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
3840
3840
|
|
|
3841
3841
|
class SegmentedButtonGroupComponent {
|
|
3842
3842
|
constructor() {
|
|
3843
|
+
this.support = injectFormSupport();
|
|
3843
3844
|
this.errorContentRef = viewChild('errorContent', /* @ts-ignore */
|
|
3844
3845
|
...(ngDevMode ? [{ debugName: "errorContentRef" }] : /* istanbul ignore next */ []));
|
|
3845
3846
|
this.hintContentRef = viewChild('hintContent', /* @ts-ignore */
|
|
@@ -3848,7 +3849,6 @@ class SegmentedButtonGroupComponent {
|
|
|
3848
3849
|
...(ngDevMode ? [{ debugName: "errorAnimatableRef" }] : /* istanbul ignore next */ []));
|
|
3849
3850
|
this.hintAnimatableRef = viewChild('hintAnimatable', /* @ts-ignore */
|
|
3850
3851
|
...(ngDevMode ? [{ debugName: "hintAnimatableRef" }] : /* istanbul ignore next */ []));
|
|
3851
|
-
this.support = injectFormSupport();
|
|
3852
3852
|
this.canAnimate = createCanAnimateSignal();
|
|
3853
3853
|
effect(() => {
|
|
3854
3854
|
this.support.errorContent.set(this.errorContentRef());
|
|
@@ -3995,7 +3995,7 @@ const DEFAULT_GRID_CONFIG = {
|
|
|
3995
3995
|
registrations: [],
|
|
3996
3996
|
interactiveAriaLabel: 'Interactive grid layout',
|
|
3997
3997
|
readonlyAriaLabel: 'Grid layout',
|
|
3998
|
-
|
|
3998
|
+
removeActionAriaLabel: 'Remove item',
|
|
3999
3999
|
transformer: (text) => text,
|
|
4000
4000
|
};
|
|
4001
4001
|
const [provideGridConfig, injectGridConfig] = createStaticRootProvider(DEFAULT_GRID_CONFIG, {
|
|
@@ -4282,6 +4282,25 @@ const deserializeGridLayout = (state, breakpointMinWidths) => {
|
|
|
4282
4282
|
return { breakpoints, items, rowHeight: state.rowHeight };
|
|
4283
4283
|
};
|
|
4284
4284
|
|
|
4285
|
+
const GRID_DEBUG_STORAGE_KEY = 'et-grid-debug';
|
|
4286
|
+
let cachedGridDebug = null;
|
|
4287
|
+
const isGridDebugEnabled = () => {
|
|
4288
|
+
if (cachedGridDebug === null) {
|
|
4289
|
+
try {
|
|
4290
|
+
cachedGridDebug = globalThis.localStorage?.getItem(GRID_DEBUG_STORAGE_KEY) === 'true';
|
|
4291
|
+
}
|
|
4292
|
+
catch {
|
|
4293
|
+
cachedGridDebug = false;
|
|
4294
|
+
}
|
|
4295
|
+
}
|
|
4296
|
+
return cachedGridDebug;
|
|
4297
|
+
};
|
|
4298
|
+
const gridDebug = (...args) => {
|
|
4299
|
+
if (!isGridDebugEnabled())
|
|
4300
|
+
return;
|
|
4301
|
+
const timestamp = (globalThis.performance?.now() ?? 0).toFixed(1);
|
|
4302
|
+
console.log(`\x1B[36m[et-grid ${timestamp}ms]\x1B[m`, ...args);
|
|
4303
|
+
};
|
|
4285
4304
|
const positionsEqual = (a, b) => a.col === b.col && a.row === b.row && a.colSpan === b.colSpan && a.rowSpan === b.rowSpan;
|
|
4286
4305
|
const layoutsEqual = (a, b) => {
|
|
4287
4306
|
const aKeys = Object.keys(a);
|
|
@@ -4312,6 +4331,8 @@ const resolveItemConstraints = (id, context) => {
|
|
|
4312
4331
|
class GridDirective {
|
|
4313
4332
|
constructor() {
|
|
4314
4333
|
this.injector = inject(Injector);
|
|
4334
|
+
this.renderer = injectRenderer();
|
|
4335
|
+
this.gridConfig = injectGridConfig();
|
|
4315
4336
|
this.breakpoints = input(DEFAULT_BREAKPOINTS, /* @ts-ignore */
|
|
4316
4337
|
...(ngDevMode ? [{ debugName: "breakpoints" }] : /* istanbul ignore next */ []));
|
|
4317
4338
|
this.rowHeight = input(100, /* @ts-ignore */
|
|
@@ -4322,7 +4343,6 @@ class GridDirective {
|
|
|
4322
4343
|
...(ngDevMode ? [{ debugName: "initialItems" }] : /* istanbul ignore next */ []));
|
|
4323
4344
|
this.readOnly = input(false, { ...(ngDevMode ? { debugName: "readOnly" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
4324
4345
|
this.layoutChange = output();
|
|
4325
|
-
this.gridConfig = injectGridConfig();
|
|
4326
4346
|
this.registrations = computed(() => this.gridConfig.registrations, /* @ts-ignore */
|
|
4327
4347
|
...(ngDevMode ? [{ debugName: "registrations" }] : /* istanbul ignore next */ []));
|
|
4328
4348
|
this.dimensions = signalHostElementDimensions();
|
|
@@ -4336,7 +4356,9 @@ class GridDirective {
|
|
|
4336
4356
|
this.resizeBaseLayout = signal(null, /* @ts-ignore */
|
|
4337
4357
|
...(ngDevMode ? [{ debugName: "resizeBaseLayout" }] : /* istanbul ignore next */ []));
|
|
4338
4358
|
this.itemElements = new Map();
|
|
4359
|
+
this.contentElements = new Map();
|
|
4339
4360
|
this.ghostElement = null;
|
|
4361
|
+
this.lastFlipAt = 0;
|
|
4340
4362
|
this.rectSnapshot = new Map();
|
|
4341
4363
|
this.containerWidth = computed(() => this.dimensions().client?.width ?? 0, /* @ts-ignore */
|
|
4342
4364
|
...(ngDevMode ? [{ debugName: "containerWidth" }] : /* istanbul ignore next */ []));
|
|
@@ -4549,8 +4571,18 @@ class GridDirective {
|
|
|
4549
4571
|
}
|
|
4550
4572
|
unregisterItem(id) {
|
|
4551
4573
|
this.itemElements.delete(id);
|
|
4574
|
+
this.contentElements.delete(id);
|
|
4552
4575
|
this.constraintsRegistry.delete(id);
|
|
4553
4576
|
}
|
|
4577
|
+
/**
|
|
4578
|
+
* The item's inner content wrapper. Used by the counter-scaled resize FLIP so the
|
|
4579
|
+
* box can scale while the content takes the inverse scale and stays undistorted.
|
|
4580
|
+
*/
|
|
4581
|
+
registerContentElement(id, el) {
|
|
4582
|
+
if (this.contentElements.get(id) !== el) {
|
|
4583
|
+
this.contentElements.set(id, el);
|
|
4584
|
+
}
|
|
4585
|
+
}
|
|
4554
4586
|
setGhostElement(el) {
|
|
4555
4587
|
if (this.ghostElement !== el) {
|
|
4556
4588
|
this.ghostElement = el;
|
|
@@ -4575,51 +4607,116 @@ class GridDirective {
|
|
|
4575
4607
|
}
|
|
4576
4608
|
animateLayoutTransition(options) {
|
|
4577
4609
|
const excludeIds = options?.excludeIds ?? new Set();
|
|
4610
|
+
const durationMs = options?.durationMs ?? 250;
|
|
4578
4611
|
const snapshot = new Map(this.rectSnapshot);
|
|
4579
4612
|
const ghostEl = this.ghostElement;
|
|
4613
|
+
const debug = isGridDebugEnabled();
|
|
4614
|
+
const scheduledAt = debug ? performance.now() : 0;
|
|
4580
4615
|
afterNextRender(() => {
|
|
4616
|
+
const t0 = debug ? performance.now() : 0;
|
|
4617
|
+
// Phase 1 — read every "from" rect together (no writes in between, so the
|
|
4618
|
+
// browser can serve them from a single layout pass).
|
|
4619
|
+
// - Mid-animation elements: their snapshot (taken a frame earlier) is stale, so
|
|
4620
|
+
// read the actual current on-screen rect and continue from exactly there.
|
|
4621
|
+
// - Otherwise: use the snapshot, which holds the pre-layout-change position.
|
|
4622
|
+
const flips = [];
|
|
4581
4623
|
for (const [id, el] of this.itemElements) {
|
|
4582
4624
|
if (excludeIds.has(id))
|
|
4583
4625
|
continue;
|
|
4584
|
-
const
|
|
4585
|
-
|
|
4586
|
-
|
|
4587
|
-
const newRect = el.getBoundingClientRect();
|
|
4588
|
-
const dx = oldRect.left - newRect.left;
|
|
4589
|
-
const dy = oldRect.top - newRect.top;
|
|
4590
|
-
const scaleX = oldRect.width / newRect.width;
|
|
4591
|
-
const scaleY = oldRect.height / newRect.height;
|
|
4592
|
-
const hasMoved = Math.abs(dx) > 1 || Math.abs(dy) > 1;
|
|
4593
|
-
const hasResized = Math.abs(scaleX - 1) > 0.01 || Math.abs(scaleY - 1) > 0.01;
|
|
4594
|
-
if (!hasMoved && !hasResized)
|
|
4626
|
+
const running = el.getAnimations();
|
|
4627
|
+
const fromRect = running.length > 0 ? el.getBoundingClientRect() : snapshot.get(id);
|
|
4628
|
+
if (!fromRect)
|
|
4595
4629
|
continue;
|
|
4596
|
-
|
|
4597
|
-
|
|
4598
|
-
|
|
4599
|
-
|
|
4600
|
-
|
|
4601
|
-
|
|
4630
|
+
flips.push({ el, content: this.contentElements.get(id) ?? null, running, fromRect });
|
|
4631
|
+
}
|
|
4632
|
+
const ghostRunning = ghostEl ? ghostEl.getAnimations() : [];
|
|
4633
|
+
let ghostFrom;
|
|
4634
|
+
if (ghostEl) {
|
|
4635
|
+
ghostFrom = ghostRunning.length > 0 ? ghostEl.getBoundingClientRect() : snapshot.get('__ghost__');
|
|
4636
|
+
}
|
|
4637
|
+
const interrupted = debug ? flips.filter((f) => f.running.length > 0).length : 0;
|
|
4638
|
+
const t1 = debug ? performance.now() : 0;
|
|
4639
|
+
// Phase 2 — cancel all in-flight animations (writes only).
|
|
4640
|
+
for (const flip of flips) {
|
|
4641
|
+
flip.running.forEach((a) => a.cancel());
|
|
4642
|
+
flip.content?.getAnimations().forEach((a) => a.cancel());
|
|
4643
|
+
}
|
|
4644
|
+
ghostRunning.forEach((a) => a.cancel());
|
|
4645
|
+
const t2 = debug ? performance.now() : 0;
|
|
4646
|
+
// Phase 3 — read every target rect together (single layout pass).
|
|
4647
|
+
const targets = flips.map((flip) => flip.el.getBoundingClientRect());
|
|
4648
|
+
const ghostTarget = ghostEl ? ghostEl.getBoundingClientRect() : null;
|
|
4649
|
+
const t3 = debug ? performance.now() : 0;
|
|
4650
|
+
let animated = 0;
|
|
4651
|
+
let maxDx = 0;
|
|
4652
|
+
let maxDy = 0;
|
|
4653
|
+
// Phase 4 — start the animations (writes only).
|
|
4654
|
+
flips.forEach((flip, i) => {
|
|
4655
|
+
const { el, content, fromRect } = flip;
|
|
4656
|
+
const newRect = targets[i];
|
|
4657
|
+
if (!newRect)
|
|
4658
|
+
return;
|
|
4659
|
+
const dx = fromRect.left - newRect.left;
|
|
4660
|
+
const dy = fromRect.top - newRect.top;
|
|
4661
|
+
const scaleX = newRect.width > 0 ? fromRect.width / newRect.width : 1;
|
|
4662
|
+
const scaleY = newRect.height > 0 ? fromRect.height / newRect.height : 1;
|
|
4663
|
+
const moved = Math.abs(dx) > 1 || Math.abs(dy) > 1;
|
|
4664
|
+
const resized = Math.abs(scaleX - 1) > 0.01 || Math.abs(scaleY - 1) > 0.01;
|
|
4665
|
+
if (!moved && !resized)
|
|
4666
|
+
return;
|
|
4667
|
+
if (debug) {
|
|
4668
|
+
animated++;
|
|
4669
|
+
maxDx = Math.max(maxDx, Math.abs(dx));
|
|
4670
|
+
maxDy = Math.max(maxDy, Math.abs(dy));
|
|
4671
|
+
}
|
|
4672
|
+
if (resized) {
|
|
4673
|
+
// Counter-scaled FLIP: the box scales from its old to new size while the
|
|
4674
|
+
// content wrapper takes the inverse scale, so text/children never distort.
|
|
4675
|
+
// Easing is baked into sampled keyframes (played linearly) so the outer and
|
|
4676
|
+
// inner scales multiply to ~1 on every frame, not just at the endpoints.
|
|
4677
|
+
this.animateCounterScaled({ el, content, dx, dy, scaleX, scaleY, durationMs });
|
|
4602
4678
|
}
|
|
4603
4679
|
else {
|
|
4604
4680
|
el.animate([{ transform: `translate(${dx}px, ${dy}px)` }, { transform: 'translate(0px, 0px)' }], {
|
|
4605
|
-
duration:
|
|
4681
|
+
duration: durationMs,
|
|
4682
|
+
easing: 'cubic-bezier(0.2, 0, 0, 1)',
|
|
4683
|
+
});
|
|
4684
|
+
}
|
|
4685
|
+
});
|
|
4686
|
+
if (ghostEl && ghostFrom && ghostTarget) {
|
|
4687
|
+
const dx = ghostFrom.left - ghostTarget.left;
|
|
4688
|
+
const dy = ghostFrom.top - ghostTarget.top;
|
|
4689
|
+
if (Math.abs(dx) > 1 || Math.abs(dy) > 1) {
|
|
4690
|
+
ghostEl.animate([{ transform: `translate(${dx}px, ${dy}px)` }, { transform: 'translate(0px, 0px)' }], {
|
|
4691
|
+
duration: 200,
|
|
4606
4692
|
easing: 'cubic-bezier(0.2, 0, 0, 1)',
|
|
4607
4693
|
});
|
|
4608
4694
|
}
|
|
4609
4695
|
}
|
|
4610
|
-
if (
|
|
4611
|
-
const
|
|
4612
|
-
|
|
4613
|
-
|
|
4614
|
-
|
|
4615
|
-
|
|
4616
|
-
|
|
4617
|
-
|
|
4618
|
-
|
|
4619
|
-
|
|
4620
|
-
|
|
4621
|
-
|
|
4622
|
-
|
|
4696
|
+
if (debug) {
|
|
4697
|
+
const t4 = performance.now();
|
|
4698
|
+
const gapSinceLast = this.lastFlipAt ? t0 - this.lastFlipAt : -1;
|
|
4699
|
+
this.lastFlipAt = t0;
|
|
4700
|
+
const round = (n) => Math.round(n * 100) / 100;
|
|
4701
|
+
const info = {
|
|
4702
|
+
items: flips.length,
|
|
4703
|
+
interrupted, // items already mid-animation when this FLIP started
|
|
4704
|
+
animated, // items that actually started a new animation
|
|
4705
|
+
maxDx: round(maxDx),
|
|
4706
|
+
maxDy: round(maxDy),
|
|
4707
|
+
renderDelay: round(t0 - scheduledAt), // schedule → afterNextRender gap
|
|
4708
|
+
readFrom: round(t1 - t0),
|
|
4709
|
+
cancel: round(t2 - t1),
|
|
4710
|
+
readTarget: round(t3 - t2),
|
|
4711
|
+
startAnim: round(t4 - t3),
|
|
4712
|
+
total: round(t4 - t0),
|
|
4713
|
+
gapSinceLast: round(gapSinceLast), // time between consecutive FLIPs
|
|
4714
|
+
};
|
|
4715
|
+
if (info.total > 6 || (gapSinceLast >= 0 && gapSinceLast < 12)) {
|
|
4716
|
+
gridDebug('flip ⚠', info);
|
|
4717
|
+
}
|
|
4718
|
+
else {
|
|
4719
|
+
gridDebug('flip', info);
|
|
4623
4720
|
}
|
|
4624
4721
|
}
|
|
4625
4722
|
}, { injector: this.injector });
|
|
@@ -4936,6 +5033,38 @@ class GridDirective {
|
|
|
4936
5033
|
emitLayoutChange() {
|
|
4937
5034
|
this.layoutChange.emit(this.getSerializedState());
|
|
4938
5035
|
}
|
|
5036
|
+
animateCounterScaled(options) {
|
|
5037
|
+
const { el, content, dx, dy, scaleX, scaleY, durationMs } = options;
|
|
5038
|
+
const steps = 14;
|
|
5039
|
+
const outer = [];
|
|
5040
|
+
const inner = [];
|
|
5041
|
+
for (let i = 0; i <= steps; i++) {
|
|
5042
|
+
const t = i / steps;
|
|
5043
|
+
const eased = 1 - Math.pow(1 - t, 3); // easeOutCubic — matches the translate easing feel
|
|
5044
|
+
const sx = scaleX + (1 - scaleX) * eased;
|
|
5045
|
+
const sy = scaleY + (1 - scaleY) * eased;
|
|
5046
|
+
const tx = dx * (1 - eased);
|
|
5047
|
+
const ty = dy * (1 - eased);
|
|
5048
|
+
outer.push({
|
|
5049
|
+
offset: t,
|
|
5050
|
+
transform: `translate(${tx}px, ${ty}px) scale(${sx}, ${sy})`,
|
|
5051
|
+
transformOrigin: 'top left',
|
|
5052
|
+
});
|
|
5053
|
+
inner.push({ offset: t, transform: `scale(${1 / sx}, ${1 / sy})`, transformOrigin: 'top left' });
|
|
5054
|
+
}
|
|
5055
|
+
// Clip the box for the duration. When the item grows back (scaleX/scaleY < 1) the
|
|
5056
|
+
// content wrapper is counter-scaled UP past the box, and browsers count transformed
|
|
5057
|
+
// descendants in an ancestor's scrollable overflow — so without clipping the content
|
|
5058
|
+
// spills out and flashes scrollbars. overflow:hidden turns it into a clean reveal.
|
|
5059
|
+
// Only counter-scale sets this, and nothing else touches inline overflow, so
|
|
5060
|
+
// restoring to '' (back to the CSS value) on finish/cancel is safe.
|
|
5061
|
+
this.renderer.setStyle(el, { overflow: 'hidden' });
|
|
5062
|
+
const restore = () => this.renderer.removeStyles(el, 'overflow');
|
|
5063
|
+
const outerAnim = el.animate(outer, { duration: durationMs, easing: 'linear' });
|
|
5064
|
+
outerAnim.onfinish = restore;
|
|
5065
|
+
outerAnim.oncancel = restore;
|
|
5066
|
+
content?.animate(inner, { duration: durationMs, easing: 'linear' });
|
|
5067
|
+
}
|
|
4939
5068
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: GridDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
4940
5069
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.5", type: GridDirective, isStandalone: true, selector: "[etGrid]", inputs: { breakpoints: { classPropertyName: "breakpoints", publicName: "breakpoints", isSignal: true, isRequired: false, transformFunction: null }, rowHeight: { classPropertyName: "rowHeight", publicName: "rowHeight", isSignal: true, isRequired: false, transformFunction: null }, gap: { classPropertyName: "gap", publicName: "gap", isSignal: true, isRequired: false, transformFunction: null }, initialItems: { classPropertyName: "initialItems", publicName: "initialItems", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { layoutChange: "layoutChange" }, host: { properties: { "class.et-grid--readonly": "readOnly()" }, classAttribute: "et-grid" }, providers: [{ provide: GRID_TOKEN, useExisting: GridDirective }], exportAs: ["etGrid"], ngImport: i0 }); }
|
|
4941
5070
|
}
|
|
@@ -5049,6 +5178,8 @@ class GridDragDirective {
|
|
|
5049
5178
|
...(ngDevMode ? [{ debugName: "dragStartClient" }] : /* istanbul ignore next */ []));
|
|
5050
5179
|
this.dragPixelOffset = signal({ x: 0, y: 0 }, /* @ts-ignore */
|
|
5051
5180
|
...(ngDevMode ? [{ debugName: "dragPixelOffset" }] : /* istanbul ignore next */ []));
|
|
5181
|
+
this.dragMoveCount = 0;
|
|
5182
|
+
this.lastGhostMoveAt = 0;
|
|
5052
5183
|
this.dragTransform = computed(() => {
|
|
5053
5184
|
const offset = this.dragPixelOffset();
|
|
5054
5185
|
return `translate(${offset.x}px, ${offset.y}px)`;
|
|
@@ -5087,20 +5218,37 @@ class GridDragDirective {
|
|
|
5087
5218
|
return;
|
|
5088
5219
|
const newCol = Math.max(0, Math.min(originPos.col + colDelta, columns - originPos.colSpan));
|
|
5089
5220
|
const newRow = Math.max(0, originPos.row + rowDelta);
|
|
5090
|
-
|
|
5091
|
-
|
|
5092
|
-
|
|
5093
|
-
|
|
5094
|
-
|
|
5221
|
+
// Gate on whether the RAW target cell changed — not on ghostPosition(), which
|
|
5222
|
+
// is the collision-resolved position. During a swap, resolution relocates the
|
|
5223
|
+
// dragged item so the resolved ghost never equals the raw target, which made
|
|
5224
|
+
// this fire on every pointermove and restart every neighbour's animation ~120×/s
|
|
5225
|
+
// (the chop). layout() is a pure function of targetPosition, so if that cell is
|
|
5226
|
+
// unchanged nothing needs re-animating.
|
|
5227
|
+
const prevTarget = this.grid.dragState()?.targetPosition;
|
|
5228
|
+
const targetChanged = !prevTarget || prevTarget.col !== newCol || prevTarget.row !== newRow;
|
|
5229
|
+
this.dragMoveCount++;
|
|
5230
|
+
if (!targetChanged)
|
|
5231
|
+
return;
|
|
5232
|
+
this.grid.snapshotRects();
|
|
5095
5233
|
this.grid.updateDragTarget({
|
|
5096
5234
|
col: newCol,
|
|
5097
5235
|
row: newRow,
|
|
5098
5236
|
colSpan: originPos.colSpan,
|
|
5099
5237
|
rowSpan: originPos.rowSpan,
|
|
5100
5238
|
});
|
|
5101
|
-
if (
|
|
5102
|
-
|
|
5239
|
+
if (isGridDebugEnabled()) {
|
|
5240
|
+
const now = performance.now();
|
|
5241
|
+
const sinceLast = this.lastGhostMoveAt ? Math.round((now - this.lastGhostMoveAt) * 100) / 100 : -1;
|
|
5242
|
+
gridDebug('ghost→', {
|
|
5243
|
+
col: newCol,
|
|
5244
|
+
row: newRow,
|
|
5245
|
+
movesSinceLastGhostMove: this.dragMoveCount, // raw pointermoves between cell crossings
|
|
5246
|
+
msSinceLastGhostMove: sinceLast,
|
|
5247
|
+
});
|
|
5248
|
+
this.lastGhostMoveAt = now;
|
|
5249
|
+
this.dragMoveCount = 0;
|
|
5103
5250
|
}
|
|
5251
|
+
this.grid.animateLayoutTransition({ excludeIds: new Set([this.gridItem.itemId()]) });
|
|
5104
5252
|
}), takeUntilDestroyed())
|
|
5105
5253
|
.subscribe();
|
|
5106
5254
|
outputToObservable(this.dragHandle.dragEnded)
|
|
@@ -5188,29 +5336,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
5188
5336
|
}]
|
|
5189
5337
|
}], ctorParameters: () => [] });
|
|
5190
5338
|
|
|
5339
|
+
const GROW_THRESHOLD = 0.25;
|
|
5191
5340
|
class GridResizeDirective {
|
|
5192
5341
|
constructor() {
|
|
5193
5342
|
this.grid = inject(GRID_TOKEN);
|
|
5194
5343
|
this.gridItem = inject(GridItemDirective);
|
|
5344
|
+
this.injector = inject(Injector);
|
|
5345
|
+
this.elementRef = inject(ElementRef);
|
|
5346
|
+
this.renderer = injectRenderer();
|
|
5195
5347
|
this.isResizing = signal(false, /* @ts-ignore */
|
|
5196
5348
|
...(ngDevMode ? [{ debugName: "isResizing" }] : /* istanbul ignore next */ []));
|
|
5197
5349
|
this.resizeEdges = computed(() => ['n', 'e', 's', 'w', 'ne', 'nw', 'se', 'sw'], /* @ts-ignore */
|
|
5198
5350
|
...(ngDevMode ? [{ debugName: "resizeEdges" }] : /* istanbul ignore next */ []));
|
|
5199
5351
|
this.resizeStartPos = signal(null, /* @ts-ignore */
|
|
5200
5352
|
...(ngDevMode ? [{ debugName: "resizeStartPos" }] : /* istanbul ignore next */ []));
|
|
5353
|
+
this.liftedRect = null;
|
|
5354
|
+
this.lastSnap = null;
|
|
5201
5355
|
}
|
|
5202
5356
|
beginResize() {
|
|
5203
5357
|
if (this.grid.readOnly())
|
|
5204
5358
|
return;
|
|
5205
5359
|
const pos = this.gridItem.currentPosition();
|
|
5206
|
-
if (pos)
|
|
5207
|
-
|
|
5208
|
-
|
|
5209
|
-
|
|
5360
|
+
if (!pos)
|
|
5361
|
+
return;
|
|
5362
|
+
this.resizeStartPos.set({ col: pos.col, row: pos.row, colSpan: pos.colSpan, rowSpan: pos.rowSpan });
|
|
5363
|
+
this.lastSnap = null;
|
|
5364
|
+
this.isResizing.set(true);
|
|
5365
|
+
const rect = this.elementRef.nativeElement.getBoundingClientRect();
|
|
5366
|
+
this.liftedRect = { left: rect.left, top: rect.top, width: rect.width, height: rect.height };
|
|
5367
|
+
this.applyFixed(this.liftedRect);
|
|
5210
5368
|
}
|
|
5211
5369
|
updateResize(event) {
|
|
5212
5370
|
const start = this.resizeStartPos();
|
|
5213
|
-
|
|
5371
|
+
const startRect = this.liftedRect;
|
|
5372
|
+
if (!start || !startRect)
|
|
5214
5373
|
return;
|
|
5215
5374
|
const columns = this.grid.activeColumns();
|
|
5216
5375
|
const containerWidth = this.grid.containerWidth();
|
|
@@ -5218,53 +5377,143 @@ class GridResizeDirective {
|
|
|
5218
5377
|
const gap = this.grid.gap();
|
|
5219
5378
|
const cellWidth = (containerWidth - gap * (columns - 1)) / columns;
|
|
5220
5379
|
const cellHeight = rowHeight + gap;
|
|
5380
|
+
// 1. Live pixel size — the item follows the pointer 1:1, clamped to the span
|
|
5381
|
+
// constraints in pixels so it can't grow/shrink past its allowed size.
|
|
5382
|
+
const spanWidth = (span) => span * cellWidth + (span - 1) * gap;
|
|
5383
|
+
const spanHeight = (span) => span * rowHeight + (span - 1) * gap;
|
|
5384
|
+
const minW = spanWidth(this.gridItem.minColSpan());
|
|
5385
|
+
const maxW = spanWidth(this.gridItem.maxColSpan());
|
|
5386
|
+
const minH = spanHeight(this.gridItem.minRowSpan());
|
|
5387
|
+
const maxH = spanHeight(this.gridItem.maxRowSpan());
|
|
5388
|
+
const live = { ...startRect };
|
|
5389
|
+
if (event.edge === 'e' || event.edge === 'se' || event.edge === 'ne') {
|
|
5390
|
+
live.width = Math.min(maxW, Math.max(minW, startRect.width + event.dx));
|
|
5391
|
+
}
|
|
5392
|
+
if (event.edge === 'w' || event.edge === 'sw' || event.edge === 'nw') {
|
|
5393
|
+
const rightEdge = startRect.left + startRect.width;
|
|
5394
|
+
live.width = Math.min(maxW, Math.max(minW, startRect.width - event.dx));
|
|
5395
|
+
live.left = rightEdge - live.width;
|
|
5396
|
+
}
|
|
5397
|
+
if (event.edge === 's' || event.edge === 'se' || event.edge === 'sw') {
|
|
5398
|
+
live.height = Math.min(maxH, Math.max(minH, startRect.height + event.dy));
|
|
5399
|
+
}
|
|
5400
|
+
if (event.edge === 'n' || event.edge === 'ne' || event.edge === 'nw') {
|
|
5401
|
+
const bottomEdge = startRect.top + startRect.height;
|
|
5402
|
+
live.height = Math.min(maxH, Math.max(minH, startRect.height - event.dy));
|
|
5403
|
+
live.top = bottomEdge - live.height;
|
|
5404
|
+
}
|
|
5405
|
+
this.applyFixed(live);
|
|
5406
|
+
// liftedRect stays the gesture-start anchor — event.dx/dy are cumulative from start.
|
|
5407
|
+
// 2. Snapped span — drives neighbour reflow. The snap is biased toward the growth
|
|
5408
|
+
// direction (a cell is claimed once the edge is GROW_THRESHOLD into it) so
|
|
5409
|
+
// neighbours slide out of the way early and the growing item barely overlaps them.
|
|
5410
|
+
// growPos: for edges that grow with a positive delta (east/south).
|
|
5411
|
+
// growNeg: for edges that grow with a negative delta (west/north).
|
|
5412
|
+
const growPos = (px, cell) => Math.floor(px / cell + (1 - GROW_THRESHOLD));
|
|
5413
|
+
const growNeg = (px, cell) => Math.ceil(px / cell - (1 - GROW_THRESHOLD));
|
|
5221
5414
|
let newColSpan = start.colSpan;
|
|
5222
5415
|
let newRowSpan = start.rowSpan;
|
|
5223
5416
|
let newCol = start.col;
|
|
5224
5417
|
let newRow = start.row;
|
|
5225
|
-
// East edges: grow/shrink span to the right
|
|
5226
5418
|
if (event.edge === 'e' || event.edge === 'se' || event.edge === 'ne') {
|
|
5227
|
-
newColSpan = Math.max(1, start.colSpan +
|
|
5419
|
+
newColSpan = Math.max(1, start.colSpan + growPos(event.dx, cellWidth));
|
|
5228
5420
|
}
|
|
5229
|
-
// West edges: move col left and grow span, keeping right edge fixed
|
|
5230
5421
|
if (event.edge === 'w' || event.edge === 'sw' || event.edge === 'nw') {
|
|
5231
5422
|
const rightEdge = start.col + start.colSpan;
|
|
5232
|
-
|
|
5233
|
-
newCol = Math.max(0, start.col + colDelta);
|
|
5423
|
+
newCol = Math.max(0, start.col + growNeg(event.dx, cellWidth));
|
|
5234
5424
|
newColSpan = rightEdge - newCol;
|
|
5235
|
-
// Clamp against constraints and recalculate col to keep right edge fixed
|
|
5236
5425
|
newColSpan = Math.min(this.gridItem.maxColSpan(), Math.max(this.gridItem.minColSpan(), newColSpan));
|
|
5237
5426
|
newCol = rightEdge - newColSpan;
|
|
5238
5427
|
}
|
|
5239
|
-
// South edges: grow/shrink span downward
|
|
5240
5428
|
if (event.edge === 's' || event.edge === 'se' || event.edge === 'sw') {
|
|
5241
|
-
newRowSpan = Math.max(1, start.rowSpan +
|
|
5429
|
+
newRowSpan = Math.max(1, start.rowSpan + growPos(event.dy, cellHeight));
|
|
5242
5430
|
}
|
|
5243
|
-
// North edges: move row up and grow span, keeping bottom edge fixed
|
|
5244
5431
|
if (event.edge === 'n' || event.edge === 'ne' || event.edge === 'nw') {
|
|
5245
5432
|
const bottomEdge = start.row + start.rowSpan;
|
|
5246
|
-
|
|
5247
|
-
newRow = Math.max(0, start.row + rowDelta);
|
|
5433
|
+
newRow = Math.max(0, start.row + growNeg(event.dy, cellHeight));
|
|
5248
5434
|
newRowSpan = bottomEdge - newRow;
|
|
5249
|
-
// Clamp against constraints and recalculate row to keep bottom edge fixed
|
|
5250
5435
|
newRowSpan = Math.min(this.gridItem.maxRowSpan(), Math.max(this.gridItem.minRowSpan(), newRowSpan));
|
|
5251
5436
|
newRow = bottomEdge - newRowSpan;
|
|
5252
5437
|
}
|
|
5253
|
-
|
|
5254
|
-
|
|
5255
|
-
|
|
5256
|
-
|
|
5257
|
-
|
|
5258
|
-
|
|
5438
|
+
// Gate on the raw snapped target changing — not on the resized item's resolved
|
|
5439
|
+
// position (which compaction can shift), so we don't re-run the reflow and restart
|
|
5440
|
+
// every neighbour's animation on every pointermove.
|
|
5441
|
+
if (this.lastSnap &&
|
|
5442
|
+
this.lastSnap.colSpan === newColSpan &&
|
|
5443
|
+
this.lastSnap.rowSpan === newRowSpan &&
|
|
5444
|
+
this.lastSnap.col === newCol &&
|
|
5445
|
+
this.lastSnap.row === newRow)
|
|
5259
5446
|
return;
|
|
5447
|
+
this.lastSnap = { col: newCol, row: newRow, colSpan: newColSpan, rowSpan: newRowSpan };
|
|
5448
|
+
// The snapped span crossed into a new cell: reflow the neighbours. The resized
|
|
5449
|
+
// item is excluded from the FLIP because its own fixed element drives the size.
|
|
5450
|
+
// A shorter duration than a drag keeps pushed neighbours tracking the live-resizing
|
|
5451
|
+
// edge closely during a fast resize, instead of trailing it with a long glide.
|
|
5260
5452
|
this.grid.snapshotRects();
|
|
5261
5453
|
this.grid.resizeItem({ id: this.gridItem.itemId(), newColSpan, newRowSpan, newCol, newRow });
|
|
5262
|
-
this.grid.animateLayoutTransition({
|
|
5454
|
+
this.grid.animateLayoutTransition({ excludeIds: new Set([this.gridItem.itemId()]), durationMs: 160 });
|
|
5263
5455
|
}
|
|
5264
5456
|
finishResize() {
|
|
5265
5457
|
this.resizeStartPos.set(null);
|
|
5458
|
+
this.lastSnap = null;
|
|
5266
5459
|
this.isResizing.set(false);
|
|
5267
5460
|
this.grid.commitResize();
|
|
5461
|
+
const liveRect = this.liftedRect ? this.currentFixedRect() : null;
|
|
5462
|
+
this.liftedRect = null;
|
|
5463
|
+
if (!liveRect) {
|
|
5464
|
+
this.releaseFixed();
|
|
5465
|
+
return;
|
|
5466
|
+
}
|
|
5467
|
+
// Settle: drop back into grid flow, measure the final slot, then animate the
|
|
5468
|
+
// fixed element from its free pixel rect to that slot. Real width/height/left/top
|
|
5469
|
+
// are animated (never scale) so the content stays crisp during the settle.
|
|
5470
|
+
afterNextRender(() => {
|
|
5471
|
+
const el = this.elementRef.nativeElement;
|
|
5472
|
+
this.releaseFixed();
|
|
5473
|
+
const finalRect = el.getBoundingClientRect();
|
|
5474
|
+
this.applyFixed({ left: finalRect.left, top: finalRect.top, width: finalRect.width, height: finalRect.height });
|
|
5475
|
+
el.getAnimations().forEach((a) => a.cancel());
|
|
5476
|
+
const moved = Math.abs(liveRect.left - finalRect.left) > 1 || Math.abs(liveRect.top - finalRect.top) > 1;
|
|
5477
|
+
const resized = Math.abs(liveRect.width - finalRect.width) > 1 || Math.abs(liveRect.height - finalRect.height) > 1;
|
|
5478
|
+
const release = () => this.releaseFixed();
|
|
5479
|
+
if (!moved && !resized) {
|
|
5480
|
+
release();
|
|
5481
|
+
return;
|
|
5482
|
+
}
|
|
5483
|
+
const anim = el.animate([
|
|
5484
|
+
{
|
|
5485
|
+
left: `${liveRect.left}px`,
|
|
5486
|
+
top: `${liveRect.top}px`,
|
|
5487
|
+
width: `${liveRect.width}px`,
|
|
5488
|
+
height: `${liveRect.height}px`,
|
|
5489
|
+
},
|
|
5490
|
+
{
|
|
5491
|
+
left: `${finalRect.left}px`,
|
|
5492
|
+
top: `${finalRect.top}px`,
|
|
5493
|
+
width: `${finalRect.width}px`,
|
|
5494
|
+
height: `${finalRect.height}px`,
|
|
5495
|
+
},
|
|
5496
|
+
], { duration: 250, easing: 'cubic-bezier(0.2, 0, 0, 1)' });
|
|
5497
|
+
anim.onfinish = release;
|
|
5498
|
+
anim.oncancel = release;
|
|
5499
|
+
}, { injector: this.injector });
|
|
5500
|
+
}
|
|
5501
|
+
currentFixedRect() {
|
|
5502
|
+
const rect = this.elementRef.nativeElement.getBoundingClientRect();
|
|
5503
|
+
return { left: rect.left, top: rect.top, width: rect.width, height: rect.height };
|
|
5504
|
+
}
|
|
5505
|
+
applyFixed(rect) {
|
|
5506
|
+
this.renderer.setStyle(this.elementRef.nativeElement, {
|
|
5507
|
+
position: 'fixed',
|
|
5508
|
+
left: `${rect.left}px`,
|
|
5509
|
+
top: `${rect.top}px`,
|
|
5510
|
+
width: `${rect.width}px`,
|
|
5511
|
+
height: `${rect.height}px`,
|
|
5512
|
+
zIndex: '100',
|
|
5513
|
+
});
|
|
5514
|
+
}
|
|
5515
|
+
releaseFixed() {
|
|
5516
|
+
this.renderer.removeStyles(this.elementRef.nativeElement, 'position', 'left', 'top', 'width', 'height', 'zIndex');
|
|
5268
5517
|
}
|
|
5269
5518
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: GridResizeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5270
5519
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.5", type: GridResizeDirective, isStandalone: true, selector: "[etGridResize]", host: { properties: { "class.et-grid-resize--active": "isResizing()" }, classAttribute: "et-grid-resize" }, ngImport: i0 }); }
|
|
@@ -5306,6 +5555,67 @@ const fromGridPosition = (pos) => ({
|
|
|
5306
5555
|
rows: pos.rowSpan,
|
|
5307
5556
|
});
|
|
5308
5557
|
|
|
5558
|
+
class GridItemToolbarComponent {
|
|
5559
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: GridItemToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5560
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.5", type: GridItemToolbarComponent, isStandalone: true, selector: "et-grid-item-toolbar, [et-grid-item-toolbar]", host: { listeners: { "pointerdown": "$event.stopPropagation()" }, classAttribute: "et-grid-item-toolbar" }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [".et-grid-item-toolbar{display:inline-flex;align-items:center;gap:var(--et-grid-item-toolbar-gap, 4px);padding:var(--et-grid-item-toolbar-padding, 4px);border-radius:var(--et-grid-item-toolbar-radius, 8px);background:var(--et-grid-item-toolbar-background, transparent)}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5561
|
+
}
|
|
5562
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: GridItemToolbarComponent, decorators: [{
|
|
5563
|
+
type: Component,
|
|
5564
|
+
args: [{ selector: 'et-grid-item-toolbar, [et-grid-item-toolbar]', template: `<ng-content />`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
5565
|
+
class: 'et-grid-item-toolbar',
|
|
5566
|
+
'(pointerdown)': '$event.stopPropagation()',
|
|
5567
|
+
}, styles: [".et-grid-item-toolbar{display:inline-flex;align-items:center;gap:var(--et-grid-item-toolbar-gap, 4px);padding:var(--et-grid-item-toolbar-padding, 4px);border-radius:var(--et-grid-item-toolbar-radius, 8px);background:var(--et-grid-item-toolbar-background, transparent)}\n"] }]
|
|
5568
|
+
}] });
|
|
5569
|
+
|
|
5570
|
+
class GridItemDefaultActionsComponent {
|
|
5571
|
+
constructor() {
|
|
5572
|
+
this.grid = inject(GRID_TOKEN);
|
|
5573
|
+
this.gridConfig = injectGridConfig();
|
|
5574
|
+
this.locale = injectLocale();
|
|
5575
|
+
this.itemId = input.required(/* @ts-ignore */
|
|
5576
|
+
...(ngDevMode ? [{ debugName: "itemId" }] : /* istanbul ignore next */ []));
|
|
5577
|
+
this.data = input(/* @ts-ignore */
|
|
5578
|
+
...(ngDevMode ? [undefined, { debugName: "data" }] : /* istanbul ignore next */ []));
|
|
5579
|
+
this.removeAriaLabel = computed(() => this.gridConfig.transformer(this.gridConfig.removeActionAriaLabel, this.locale.currentLocale()), /* @ts-ignore */
|
|
5580
|
+
...(ngDevMode ? [{ debugName: "removeAriaLabel" }] : /* istanbul ignore next */ []));
|
|
5581
|
+
}
|
|
5582
|
+
remove() {
|
|
5583
|
+
this.grid.removeItem(this.itemId());
|
|
5584
|
+
}
|
|
5585
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: GridItemDefaultActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5586
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.5", type: GridItemDefaultActionsComponent, isStandalone: true, selector: "et-grid-item-default-actions", inputs: { itemId: { classPropertyName: "itemId", publicName: "itemId", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, providers: [provideIcons(TIMES_ICON)], ngImport: i0, template: `
|
|
5587
|
+
<et-grid-item-toolbar>
|
|
5588
|
+
<button
|
|
5589
|
+
[attr.aria-label]="removeAriaLabel()"
|
|
5590
|
+
(click)="remove()"
|
|
5591
|
+
class="et-grid-item-default-actions__remove"
|
|
5592
|
+
et-icon-button
|
|
5593
|
+
size="xs"
|
|
5594
|
+
type="button"
|
|
5595
|
+
>
|
|
5596
|
+
<i etIcon="et-times"></i>
|
|
5597
|
+
</button>
|
|
5598
|
+
</et-grid-item-toolbar>
|
|
5599
|
+
`, isInline: true, styles: ["et-grid-item-default-actions .et-grid-item-default-actions__remove{color:rgb(var(--et-surface-color-muted))}et-grid-item-default-actions .et-grid-item-default-actions__remove:hover{color:rgb(var(--et-surface-color))}\n"], dependencies: [{ kind: "component", type: GridItemToolbarComponent, selector: "et-grid-item-toolbar, [et-grid-item-toolbar]" }, { kind: "component", type: IconButtonComponent, selector: "[et-icon-button]", inputs: ["variant", "size"] }, { kind: "directive", type: IconDirective, selector: "[etIcon]", inputs: ["etIcon", "allowHardcodedColor"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5600
|
+
}
|
|
5601
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: GridItemDefaultActionsComponent, decorators: [{
|
|
5602
|
+
type: Component,
|
|
5603
|
+
args: [{ selector: 'et-grid-item-default-actions', template: `
|
|
5604
|
+
<et-grid-item-toolbar>
|
|
5605
|
+
<button
|
|
5606
|
+
[attr.aria-label]="removeAriaLabel()"
|
|
5607
|
+
(click)="remove()"
|
|
5608
|
+
class="et-grid-item-default-actions__remove"
|
|
5609
|
+
et-icon-button
|
|
5610
|
+
size="xs"
|
|
5611
|
+
type="button"
|
|
5612
|
+
>
|
|
5613
|
+
<i etIcon="et-times"></i>
|
|
5614
|
+
</button>
|
|
5615
|
+
</et-grid-item-toolbar>
|
|
5616
|
+
`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, imports: [GridItemToolbarComponent, IconButtonComponent, ...ICON_IMPORTS], providers: [provideIcons(TIMES_ICON)], styles: ["et-grid-item-default-actions .et-grid-item-default-actions__remove{color:rgb(var(--et-surface-color-muted))}et-grid-item-default-actions .et-grid-item-default-actions__remove:hover{color:rgb(var(--et-surface-color))}\n"] }]
|
|
5617
|
+
}], propDecorators: { itemId: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemId", required: true }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: false }] }] } });
|
|
5618
|
+
|
|
5309
5619
|
class GridItemComponent {
|
|
5310
5620
|
constructor() {
|
|
5311
5621
|
this.grid = inject(GRID_TOKEN);
|
|
@@ -5314,16 +5624,14 @@ class GridItemComponent {
|
|
|
5314
5624
|
this.parentSurfaceProvider = inject(SURFACE_PROVIDER, { optional: true, skipSelf: true });
|
|
5315
5625
|
this.gridDrag = inject(GridDragDirective);
|
|
5316
5626
|
this.gridResize = inject(GridResizeDirective);
|
|
5627
|
+
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
5317
5628
|
this.ariaLabel = input('Grid item', /* @ts-ignore */
|
|
5318
5629
|
...(ngDevMode ? [{ debugName: "ariaLabel" }] : /* istanbul ignore next */ []));
|
|
5319
5630
|
this.removed = output();
|
|
5320
|
-
this.
|
|
5321
|
-
|
|
5322
|
-
this.locale = injectLocale();
|
|
5631
|
+
this.itemContent = viewChild('itemContent', /* @ts-ignore */
|
|
5632
|
+
...(ngDevMode ? [{ debugName: "itemContent" }] : /* istanbul ignore next */ []));
|
|
5323
5633
|
this.isReadOnly = computed(() => this.grid.readOnly(), /* @ts-ignore */
|
|
5324
5634
|
...(ngDevMode ? [{ debugName: "isReadOnly" }] : /* istanbul ignore next */ []));
|
|
5325
|
-
this.dragHandleAriaLabel = computed(() => this.gridConfig.transformer(this.gridConfig.dragHandleAriaLabel, this.locale.currentLocale()), /* @ts-ignore */
|
|
5326
|
-
...(ngDevMode ? [{ debugName: "dragHandleAriaLabel" }] : /* istanbul ignore next */ []));
|
|
5327
5635
|
this.resolvedSurface = computed(() => {
|
|
5328
5636
|
const themes = this.surfaceThemes;
|
|
5329
5637
|
const parent = this.parentSurfaceProvider;
|
|
@@ -5341,6 +5649,17 @@ class GridItemComponent {
|
|
|
5341
5649
|
this.provideSurface.clearForcedSurface();
|
|
5342
5650
|
}
|
|
5343
5651
|
});
|
|
5652
|
+
effect(() => {
|
|
5653
|
+
const el = this.itemContent()?.nativeElement;
|
|
5654
|
+
if (el) {
|
|
5655
|
+
this.grid.registerContentElement(this.gridItem.itemId(), el);
|
|
5656
|
+
}
|
|
5657
|
+
});
|
|
5658
|
+
}
|
|
5659
|
+
blockPointerDownWhenReadOnly(event) {
|
|
5660
|
+
if (this.isReadOnly()) {
|
|
5661
|
+
event.stopPropagation();
|
|
5662
|
+
}
|
|
5344
5663
|
}
|
|
5345
5664
|
applyKeyboardShortcut(event) {
|
|
5346
5665
|
if (this.isReadOnly())
|
|
@@ -5374,6 +5693,7 @@ class GridItemComponent {
|
|
|
5374
5693
|
}
|
|
5375
5694
|
if (event.shiftKey) {
|
|
5376
5695
|
let handled = true;
|
|
5696
|
+
this.grid.snapshotRects();
|
|
5377
5697
|
switch (event.key) {
|
|
5378
5698
|
case 'ArrowRight':
|
|
5379
5699
|
this.grid.resizeItem({ id: this.gridItem.itemId(), newColSpan: pos.colSpan + 1, newRowSpan: pos.rowSpan });
|
|
@@ -5391,9 +5711,16 @@ class GridItemComponent {
|
|
|
5391
5711
|
handled = false;
|
|
5392
5712
|
}
|
|
5393
5713
|
if (handled) {
|
|
5714
|
+
// Discrete keyboard step: animate the neighbours (translate-only) and commit
|
|
5715
|
+
// so the resize base doesn't carry over into the next keypress or gesture.
|
|
5716
|
+
this.grid.animateLayoutTransition({ excludeIds: new Set([this.gridItem.itemId()]) });
|
|
5717
|
+
this.grid.commitResize();
|
|
5394
5718
|
event.preventDefault();
|
|
5395
5719
|
event.stopPropagation();
|
|
5396
5720
|
}
|
|
5721
|
+
else {
|
|
5722
|
+
this.grid.commitResize();
|
|
5723
|
+
}
|
|
5397
5724
|
}
|
|
5398
5725
|
if (event.key === 'Delete' || event.key === 'Backspace') {
|
|
5399
5726
|
if (event.ctrlKey || event.metaKey) {
|
|
@@ -5404,12 +5731,8 @@ class GridItemComponent {
|
|
|
5404
5731
|
}
|
|
5405
5732
|
}
|
|
5406
5733
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: GridItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5407
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
5408
|
-
<div
|
|
5409
|
-
<ng-content select="[etGridItemDragHandle]" />
|
|
5410
|
-
</div>
|
|
5411
|
-
|
|
5412
|
-
<div (pointerdown)="$event.stopPropagation()" class="et-grid-item__content">
|
|
5734
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.5", type: GridItemComponent, isStandalone: true, selector: "et-grid-item, [et-grid-item]", inputs: { ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { removed: "removed" }, host: { listeners: { "keydown": "applyKeyboardShortcut($event)" }, properties: { "class.et-grid-item--dragging": "!isReadOnly() && gridDrag.dragHandle.isDragging()", "class.et-grid-item--resizing": "gridResize.isResizing()", "attr.role": "\"group\"", "attr.aria-label": "ariaLabel()", "attr.tabindex": "\"0\"" }, classAttribute: "et-grid-item" }, viewQueries: [{ propertyName: "itemContent", first: true, predicate: ["itemContent"], descendants: true, isSignal: true }], hostDirectives: [{ directive: GridItemDirective, inputs: ["itemId", "itemId", "minColSpan", "minColSpan", "maxColSpan", "maxColSpan", "minRowSpan", "minRowSpan", "maxRowSpan", "maxRowSpan"] }, { directive: GridDragDirective }, { directive: GridResizeDirective }, { directive: i1.ProvideSurfaceDirective }], ngImport: i0, template: `
|
|
5735
|
+
<div #itemContent (pointerdown)="blockPointerDownWhenReadOnly($event)" class="et-grid-item__content">
|
|
5413
5736
|
<ng-content />
|
|
5414
5737
|
</div>
|
|
5415
5738
|
|
|
@@ -5425,16 +5748,12 @@ class GridItemComponent {
|
|
|
5425
5748
|
<div (pointerdown)="$event.stopPropagation()" class="et-grid-item__actions">
|
|
5426
5749
|
<ng-content select="[etGridItemAction]" />
|
|
5427
5750
|
</div>
|
|
5428
|
-
`, isInline: true, styles: [".et-grid-item{position:relative;display:flex;flex-direction:column;outline:none;will-change:transform;border-radius:var(--et-grid-item-radius, 0);background:var(--et-grid-item-bg, var(--et-surface-background-solid))}.et-grid-item:is(.et-grid-item--dragging){z-index:100;cursor:grabbing;-webkit-user-select:none;user-select:none}.et-grid-item:is(.et-grid-item--resizing){z-index:100;-webkit-user-select:none;user-select:none}.et-grid-item:hover .et-resize-handle--e:after,.et-grid-item:hover .et-resize-handle--s:after,.et-grid-item:hover .et-resize-handle--w:after,.et-grid-item:hover .et-resize-handle--n:after,.et-grid-item:hover .et-resize-handle--se:after,.et-grid-item:hover .et-resize-handle--sw:after,.et-grid-item:hover .et-resize-handle--ne:after,.et-grid-item:hover .et-resize-handle--nw:after,.et-grid-item--resizing .et-resize-handle--e:after,.et-grid-item--resizing .et-resize-handle--s:after,.et-grid-item--resizing .et-resize-handle--w:after,.et-grid-item--resizing .et-resize-handle--n:after,.et-grid-item--resizing .et-resize-handle--se:after,.et-grid-item--resizing .et-resize-handle--sw:after,.et-grid-item--resizing .et-resize-handle--ne:after,.et-grid-item--resizing .et-resize-handle--nw:after{content:\"\";position:absolute;border-radius:2px;background:var(--et-grid-item-resize-handle-color, var(--et-surface-color-solid));opacity:.2}.et-grid-item:hover .et-resize-handle--e:after,.et-grid-item--resizing .et-resize-handle--e:after{right:2px;top:50%;transform:translateY(-50%);width:3px;height:24px}.et-grid-item:hover .et-resize-handle--w:after,.et-grid-item--resizing .et-resize-handle--w:after{left:2px;top:50%;transform:translateY(-50%);width:3px;height:24px}.et-grid-item:hover .et-resize-handle--s:after,.et-grid-item--resizing .et-resize-handle--s:after{bottom:2px;left:50%;transform:translate(-50%);height:3px;width:24px}.et-grid-item:hover .et-resize-handle--n:after,.et-grid-item--resizing .et-resize-handle--n:after{top:2px;left:50%;transform:translate(-50%);height:3px;width:24px}.et-grid-item:hover .et-resize-handle--se:after,.et-grid-item--resizing .et-resize-handle--se:after{bottom:3px;right:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--sw:after,.et-grid-item--resizing .et-resize-handle--sw:after{bottom:3px;left:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--ne:after,.et-grid-item--resizing .et-resize-handle--ne:after{top:3px;right:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--nw:after,.et-grid-item--resizing .et-resize-handle--nw:after{top:3px;left:3px;width:8px;height:8px;border-radius:1px}.et-grid-
|
|
5751
|
+
`, isInline: true, styles: [".et-grid-item{position:relative;display:flex;flex-direction:column;outline:none;will-change:transform;border-radius:var(--et-grid-item-radius, 0);background:var(--et-grid-item-bg, var(--et-surface-background-solid))}.et-grid-item:is(.et-grid-item--dragging){z-index:100;cursor:grabbing;-webkit-user-select:none;user-select:none}.et-grid-item:is(.et-grid-item--resizing){z-index:100;-webkit-user-select:none;user-select:none}.et-grid-item:hover .et-resize-handle--e:after,.et-grid-item:hover .et-resize-handle--s:after,.et-grid-item:hover .et-resize-handle--w:after,.et-grid-item:hover .et-resize-handle--n:after,.et-grid-item:hover .et-resize-handle--se:after,.et-grid-item:hover .et-resize-handle--sw:after,.et-grid-item:hover .et-resize-handle--ne:after,.et-grid-item:hover .et-resize-handle--nw:after,.et-grid-item--resizing .et-resize-handle--e:after,.et-grid-item--resizing .et-resize-handle--s:after,.et-grid-item--resizing .et-resize-handle--w:after,.et-grid-item--resizing .et-resize-handle--n:after,.et-grid-item--resizing .et-resize-handle--se:after,.et-grid-item--resizing .et-resize-handle--sw:after,.et-grid-item--resizing .et-resize-handle--ne:after,.et-grid-item--resizing .et-resize-handle--nw:after{content:\"\";position:absolute;border-radius:2px;background:var(--et-grid-item-resize-handle-color, var(--et-surface-color-solid));opacity:.2}.et-grid-item:hover .et-resize-handle--e:after,.et-grid-item--resizing .et-resize-handle--e:after{right:2px;top:50%;transform:translateY(-50%);width:3px;height:24px}.et-grid-item:hover .et-resize-handle--w:after,.et-grid-item--resizing .et-resize-handle--w:after{left:2px;top:50%;transform:translateY(-50%);width:3px;height:24px}.et-grid-item:hover .et-resize-handle--s:after,.et-grid-item--resizing .et-resize-handle--s:after{bottom:2px;left:50%;transform:translate(-50%);height:3px;width:24px}.et-grid-item:hover .et-resize-handle--n:after,.et-grid-item--resizing .et-resize-handle--n:after{top:2px;left:50%;transform:translate(-50%);height:3px;width:24px}.et-grid-item:hover .et-resize-handle--se:after,.et-grid-item--resizing .et-resize-handle--se:after{bottom:3px;right:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--sw:after,.et-grid-item--resizing .et-resize-handle--sw:after{bottom:3px;left:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--ne:after,.et-grid-item--resizing .et-resize-handle--ne:after{top:3px;right:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--nw:after,.et-grid-item--resizing .et-resize-handle--nw:after{top:3px;left:3px;width:8px;height:8px;border-radius:1px}.et-grid-item__content{flex:1;min-height:0}.et-grid:not(.et-grid--readonly) .et-grid-item__content{cursor:grab}.et-grid-item--dragging .et-grid-item__content{cursor:grabbing}.et-grid-item__actions{position:absolute;top:4px;right:4px;display:flex;gap:4px}\n"], dependencies: [{ kind: "component", type: ResizeHandlesComponent, selector: "et-resize-handles", inputs: ["edges", "disabled"], outputs: ["resizeStarted", "resizeMoved", "resizeEnded"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5429
5752
|
}
|
|
5430
5753
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: GridItemComponent, decorators: [{
|
|
5431
5754
|
type: Component,
|
|
5432
5755
|
args: [{ selector: 'et-grid-item, [et-grid-item]', template: `
|
|
5433
|
-
<div
|
|
5434
|
-
<ng-content select="[etGridItemDragHandle]" />
|
|
5435
|
-
</div>
|
|
5436
|
-
|
|
5437
|
-
<div (pointerdown)="$event.stopPropagation()" class="et-grid-item__content">
|
|
5756
|
+
<div #itemContent (pointerdown)="blockPointerDownWhenReadOnly($event)" class="et-grid-item__content">
|
|
5438
5757
|
<ng-content />
|
|
5439
5758
|
</div>
|
|
5440
5759
|
|
|
@@ -5466,21 +5785,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
5466
5785
|
'[attr.aria-label]': 'ariaLabel()',
|
|
5467
5786
|
'[attr.tabindex]': '"0"',
|
|
5468
5787
|
'(keydown)': 'applyKeyboardShortcut($event)',
|
|
5469
|
-
}, styles: [".et-grid-item{position:relative;display:flex;flex-direction:column;outline:none;will-change:transform;border-radius:var(--et-grid-item-radius, 0);background:var(--et-grid-item-bg, var(--et-surface-background-solid))}.et-grid-item:is(.et-grid-item--dragging){z-index:100;cursor:grabbing;-webkit-user-select:none;user-select:none}.et-grid-item:is(.et-grid-item--resizing){z-index:100;-webkit-user-select:none;user-select:none}.et-grid-item:hover .et-resize-handle--e:after,.et-grid-item:hover .et-resize-handle--s:after,.et-grid-item:hover .et-resize-handle--w:after,.et-grid-item:hover .et-resize-handle--n:after,.et-grid-item:hover .et-resize-handle--se:after,.et-grid-item:hover .et-resize-handle--sw:after,.et-grid-item:hover .et-resize-handle--ne:after,.et-grid-item:hover .et-resize-handle--nw:after,.et-grid-item--resizing .et-resize-handle--e:after,.et-grid-item--resizing .et-resize-handle--s:after,.et-grid-item--resizing .et-resize-handle--w:after,.et-grid-item--resizing .et-resize-handle--n:after,.et-grid-item--resizing .et-resize-handle--se:after,.et-grid-item--resizing .et-resize-handle--sw:after,.et-grid-item--resizing .et-resize-handle--ne:after,.et-grid-item--resizing .et-resize-handle--nw:after{content:\"\";position:absolute;border-radius:2px;background:var(--et-grid-item-resize-handle-color, var(--et-surface-color-solid));opacity:.2}.et-grid-item:hover .et-resize-handle--e:after,.et-grid-item--resizing .et-resize-handle--e:after{right:2px;top:50%;transform:translateY(-50%);width:3px;height:24px}.et-grid-item:hover .et-resize-handle--w:after,.et-grid-item--resizing .et-resize-handle--w:after{left:2px;top:50%;transform:translateY(-50%);width:3px;height:24px}.et-grid-item:hover .et-resize-handle--s:after,.et-grid-item--resizing .et-resize-handle--s:after{bottom:2px;left:50%;transform:translate(-50%);height:3px;width:24px}.et-grid-item:hover .et-resize-handle--n:after,.et-grid-item--resizing .et-resize-handle--n:after{top:2px;left:50%;transform:translate(-50%);height:3px;width:24px}.et-grid-item:hover .et-resize-handle--se:after,.et-grid-item--resizing .et-resize-handle--se:after{bottom:3px;right:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--sw:after,.et-grid-item--resizing .et-resize-handle--sw:after{bottom:3px;left:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--ne:after,.et-grid-item--resizing .et-resize-handle--ne:after{top:3px;right:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--nw:after,.et-grid-item--resizing .et-resize-handle--nw:after{top:3px;left:3px;width:8px;height:8px;border-radius:1px}.et-grid-
|
|
5470
|
-
}], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], removed: [{ type: i0.Output, args: ["removed"] }] } });
|
|
5788
|
+
}, styles: [".et-grid-item{position:relative;display:flex;flex-direction:column;outline:none;will-change:transform;border-radius:var(--et-grid-item-radius, 0);background:var(--et-grid-item-bg, var(--et-surface-background-solid))}.et-grid-item:is(.et-grid-item--dragging){z-index:100;cursor:grabbing;-webkit-user-select:none;user-select:none}.et-grid-item:is(.et-grid-item--resizing){z-index:100;-webkit-user-select:none;user-select:none}.et-grid-item:hover .et-resize-handle--e:after,.et-grid-item:hover .et-resize-handle--s:after,.et-grid-item:hover .et-resize-handle--w:after,.et-grid-item:hover .et-resize-handle--n:after,.et-grid-item:hover .et-resize-handle--se:after,.et-grid-item:hover .et-resize-handle--sw:after,.et-grid-item:hover .et-resize-handle--ne:after,.et-grid-item:hover .et-resize-handle--nw:after,.et-grid-item--resizing .et-resize-handle--e:after,.et-grid-item--resizing .et-resize-handle--s:after,.et-grid-item--resizing .et-resize-handle--w:after,.et-grid-item--resizing .et-resize-handle--n:after,.et-grid-item--resizing .et-resize-handle--se:after,.et-grid-item--resizing .et-resize-handle--sw:after,.et-grid-item--resizing .et-resize-handle--ne:after,.et-grid-item--resizing .et-resize-handle--nw:after{content:\"\";position:absolute;border-radius:2px;background:var(--et-grid-item-resize-handle-color, var(--et-surface-color-solid));opacity:.2}.et-grid-item:hover .et-resize-handle--e:after,.et-grid-item--resizing .et-resize-handle--e:after{right:2px;top:50%;transform:translateY(-50%);width:3px;height:24px}.et-grid-item:hover .et-resize-handle--w:after,.et-grid-item--resizing .et-resize-handle--w:after{left:2px;top:50%;transform:translateY(-50%);width:3px;height:24px}.et-grid-item:hover .et-resize-handle--s:after,.et-grid-item--resizing .et-resize-handle--s:after{bottom:2px;left:50%;transform:translate(-50%);height:3px;width:24px}.et-grid-item:hover .et-resize-handle--n:after,.et-grid-item--resizing .et-resize-handle--n:after{top:2px;left:50%;transform:translate(-50%);height:3px;width:24px}.et-grid-item:hover .et-resize-handle--se:after,.et-grid-item--resizing .et-resize-handle--se:after{bottom:3px;right:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--sw:after,.et-grid-item--resizing .et-resize-handle--sw:after{bottom:3px;left:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--ne:after,.et-grid-item--resizing .et-resize-handle--ne:after{top:3px;right:3px;width:8px;height:8px;border-radius:1px}.et-grid-item:hover .et-resize-handle--nw:after,.et-grid-item--resizing .et-resize-handle--nw:after{top:3px;left:3px;width:8px;height:8px;border-radius:1px}.et-grid-item__content{flex:1;min-height:0}.et-grid:not(.et-grid--readonly) .et-grid-item__content{cursor:grab}.et-grid-item--dragging .et-grid-item__content{cursor:grabbing}.et-grid-item__actions{position:absolute;top:4px;right:4px;display:flex;gap:4px}\n"] }]
|
|
5789
|
+
}], ctorParameters: () => [], propDecorators: { ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], removed: [{ type: i0.Output, args: ["removed"] }], itemContent: [{ type: i0.ViewChild, args: ['itemContent', { isSignal: true }] }] } });
|
|
5471
5790
|
|
|
5472
5791
|
class GridComponent {
|
|
5473
5792
|
constructor() {
|
|
5474
5793
|
this.grid = inject(GridDirective);
|
|
5475
|
-
this.ghostRef = viewChild('ghostRef', /* @ts-ignore */
|
|
5476
|
-
...(ngDevMode ? [{ debugName: "ghostRef" }] : /* istanbul ignore next */ []));
|
|
5477
5794
|
this.gridConfig = injectGridConfig();
|
|
5478
5795
|
this.locale = injectLocale();
|
|
5479
|
-
this.
|
|
5480
|
-
...(ngDevMode ? [{ debugName: "
|
|
5481
|
-
this.
|
|
5482
|
-
|
|
5483
|
-
|
|
5796
|
+
this.ghostRef = viewChild('ghostRef', /* @ts-ignore */
|
|
5797
|
+
...(ngDevMode ? [{ debugName: "ghostRef" }] : /* istanbul ignore next */ []));
|
|
5798
|
+
this.actionsComponent = computed(() => {
|
|
5799
|
+
const configured = this.gridConfig.actionsComponent;
|
|
5800
|
+
return configured === undefined ? GridItemDefaultActionsComponent : configured;
|
|
5801
|
+
}, /* @ts-ignore */
|
|
5484
5802
|
...(ngDevMode ? [{ debugName: "actionsComponent" }] : /* istanbul ignore next */ []));
|
|
5485
5803
|
this.registeredItems = computed(() => {
|
|
5486
5804
|
const registrations = this.gridConfig.registrations;
|
|
@@ -5506,7 +5824,7 @@ class GridComponent {
|
|
|
5506
5824
|
});
|
|
5507
5825
|
}
|
|
5508
5826
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: GridComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5509
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: GridComponent, isStandalone: true, selector: "et-grid, [et-grid]", host: { attributes: { "role": "region" }, properties: { "attr.aria-label": "ariaLabel()", "style.--_et-grid-columns": "gridColumns()", "style.--et-grid-gap": "gridGap()", "style.--et-grid-row-height": "gridRowHeight()" }, classAttribute: "et-grid" }, viewQueries: [{ propertyName: "ghostRef", first: true, predicate: ["ghostRef"], descendants: true, isSignal: true }], hostDirectives: [{ directive: GridDirective, inputs: ["breakpoints", "breakpoints", "rowHeight", "rowHeight", "gap", "gap", "initialItems", "initialItems", "readOnly", "readOnly"], outputs: ["layoutChange", "layoutChange"] }], ngImport: i0, template: `
|
|
5827
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.5", type: GridComponent, isStandalone: true, selector: "et-grid, [et-grid]", host: { attributes: { "role": "region" }, properties: { "class.et-grid--readonly": "grid.readOnly()", "attr.aria-label": "ariaLabel()", "style.--_et-grid-columns": "gridColumns()", "style.--et-grid-gap": "gridGap()", "style.--et-grid-row-height": "gridRowHeight()" }, classAttribute: "et-grid" }, viewQueries: [{ propertyName: "ghostRef", first: true, predicate: ["ghostRef"], descendants: true, isSignal: true }], hostDirectives: [{ directive: GridDirective, inputs: ["breakpoints", "breakpoints", "rowHeight", "rowHeight", "gap", "gap", "initialItems", "initialItems", "readOnly", "readOnly"], outputs: ["layoutChange", "layoutChange"] }], ngImport: i0, template: `
|
|
5510
5828
|
@for (entry of registeredItems(); track entry.item.id) {
|
|
5511
5829
|
<et-grid-item
|
|
5512
5830
|
[itemId]="entry.item.id"
|
|
@@ -5515,16 +5833,6 @@ class GridComponent {
|
|
|
5515
5833
|
[minRowSpan]="entry.reg.constraints?.minRowSpan ?? 1"
|
|
5516
5834
|
[maxRowSpan]="entry.reg.constraints?.maxRowSpan ?? 4"
|
|
5517
5835
|
>
|
|
5518
|
-
@if (dragHandleComponent()) {
|
|
5519
|
-
<div etGridItemDragHandle>
|
|
5520
|
-
<ng-container
|
|
5521
|
-
[ngComponentOutlet]="dragHandleComponent()!"
|
|
5522
|
-
[ngComponentOutletInputs]="{ data: entry.item.data, itemId: entry.item.id }"
|
|
5523
|
-
/>
|
|
5524
|
-
</div>
|
|
5525
|
-
} @else {
|
|
5526
|
-
<div etGridItemDragHandle></div>
|
|
5527
|
-
}
|
|
5528
5836
|
<ng-container [ngComponentOutlet]="entry.reg.component" [ngComponentOutletInputs]="{ data: entry.item.data }" />
|
|
5529
5837
|
@if (actionsComponent()) {
|
|
5530
5838
|
<div etGridItemAction>
|
|
@@ -5533,8 +5841,6 @@ class GridComponent {
|
|
|
5533
5841
|
[ngComponentOutletInputs]="{ data: entry.item.data, itemId: entry.item.id }"
|
|
5534
5842
|
/>
|
|
5535
5843
|
</div>
|
|
5536
|
-
} @else if (!isReadOnly()) {
|
|
5537
|
-
<button (click)="grid.removeItem(entry.item.id)" etGridItemAction>✕</button>
|
|
5538
5844
|
}
|
|
5539
5845
|
</et-grid-item>
|
|
5540
5846
|
}
|
|
@@ -5547,7 +5853,7 @@ class GridComponent {
|
|
|
5547
5853
|
class="et-grid-ghost"
|
|
5548
5854
|
></div>
|
|
5549
5855
|
}
|
|
5550
|
-
`, isInline: true, styles: ["@property --et-grid-gap{syntax: \"<length>\"; inherits: false; initial-value: 16px;}@property --et-grid-row-height{syntax: \"<length>\"; inherits: false; initial-value: 100px;}@property --et-grid-padding{syntax: \"<length>\"; inherits: false; initial-value: 0px;}.et-grid{display:grid;grid-template-columns:repeat(var(--_et-grid-columns, 12),1fr);grid-auto-rows:var(--et-grid-row-height);gap:var(--et-grid-gap);padding:var(--et-grid-padding);position:relative;min-height:0}.et-grid:has(.et-grid-item--dragging,.et-grid-item--resizing){-webkit-user-select:none;user-select:none;cursor:grabbing}.et-grid:has(.et-grid-item--resizing){cursor:nwse-resize}.et-grid-ghost{border-radius:8px;background:rgb(var(--et-surface-color, 23 23 23) / .08);border:2px dashed rgb(var(--et-surface-color, 23 23 23) / .2);pointer-events:none;transition:grid-column 0s,grid-row 0s}.et-grid--readonly .et-grid-
|
|
5856
|
+
`, isInline: true, styles: ["@property --et-grid-gap{syntax: \"<length>\"; inherits: false; initial-value: 16px;}@property --et-grid-row-height{syntax: \"<length>\"; inherits: false; initial-value: 100px;}@property --et-grid-padding{syntax: \"<length>\"; inherits: false; initial-value: 0px;}.et-grid{display:grid;grid-template-columns:repeat(var(--_et-grid-columns, 12),1fr);grid-auto-rows:var(--et-grid-row-height);gap:var(--et-grid-gap);padding:var(--et-grid-padding);position:relative;min-height:0}.et-grid:has(.et-grid-item--dragging,.et-grid-item--resizing){-webkit-user-select:none;user-select:none;cursor:grabbing}.et-grid:has(.et-grid-item--resizing){cursor:nwse-resize}.et-grid-ghost{border-radius:8px;background:rgb(var(--et-surface-color, 23 23 23) / .08);border:2px dashed rgb(var(--et-surface-color, 23 23 23) / .2);pointer-events:none;transition:grid-column 0s,grid-row 0s}.et-grid--readonly .et-grid-item__actions{display:none}.et-grid--readonly .et-grid-item:hover .et-resize-handle--e:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--s:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--w:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--n:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--se:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--sw:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--ne:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--nw:after{content:unset}\n"], dependencies: [{ kind: "component", type: GridItemComponent, selector: "et-grid-item, [et-grid-item]", inputs: ["ariaLabel"], outputs: ["removed"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5551
5857
|
}
|
|
5552
5858
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: GridComponent, decorators: [{
|
|
5553
5859
|
type: Component,
|
|
@@ -5560,16 +5866,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
5560
5866
|
[minRowSpan]="entry.reg.constraints?.minRowSpan ?? 1"
|
|
5561
5867
|
[maxRowSpan]="entry.reg.constraints?.maxRowSpan ?? 4"
|
|
5562
5868
|
>
|
|
5563
|
-
@if (dragHandleComponent()) {
|
|
5564
|
-
<div etGridItemDragHandle>
|
|
5565
|
-
<ng-container
|
|
5566
|
-
[ngComponentOutlet]="dragHandleComponent()!"
|
|
5567
|
-
[ngComponentOutletInputs]="{ data: entry.item.data, itemId: entry.item.id }"
|
|
5568
|
-
/>
|
|
5569
|
-
</div>
|
|
5570
|
-
} @else {
|
|
5571
|
-
<div etGridItemDragHandle></div>
|
|
5572
|
-
}
|
|
5573
5869
|
<ng-container [ngComponentOutlet]="entry.reg.component" [ngComponentOutletInputs]="{ data: entry.item.data }" />
|
|
5574
5870
|
@if (actionsComponent()) {
|
|
5575
5871
|
<div etGridItemAction>
|
|
@@ -5578,8 +5874,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
5578
5874
|
[ngComponentOutletInputs]="{ data: entry.item.data, itemId: entry.item.id }"
|
|
5579
5875
|
/>
|
|
5580
5876
|
</div>
|
|
5581
|
-
} @else if (!isReadOnly()) {
|
|
5582
|
-
<button (click)="grid.removeItem(entry.item.id)" etGridItemAction>✕</button>
|
|
5583
5877
|
}
|
|
5584
5878
|
</et-grid-item>
|
|
5585
5879
|
}
|
|
@@ -5601,11 +5895,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
5601
5895
|
], host: {
|
|
5602
5896
|
class: 'et-grid',
|
|
5603
5897
|
role: 'region',
|
|
5898
|
+
'[class.et-grid--readonly]': 'grid.readOnly()',
|
|
5604
5899
|
'[attr.aria-label]': 'ariaLabel()',
|
|
5605
5900
|
'[style.--_et-grid-columns]': 'gridColumns()',
|
|
5606
5901
|
'[style.--et-grid-gap]': 'gridGap()',
|
|
5607
5902
|
'[style.--et-grid-row-height]': 'gridRowHeight()',
|
|
5608
|
-
}, styles: ["@property --et-grid-gap{syntax: \"<length>\"; inherits: false; initial-value: 16px;}@property --et-grid-row-height{syntax: \"<length>\"; inherits: false; initial-value: 100px;}@property --et-grid-padding{syntax: \"<length>\"; inherits: false; initial-value: 0px;}.et-grid{display:grid;grid-template-columns:repeat(var(--_et-grid-columns, 12),1fr);grid-auto-rows:var(--et-grid-row-height);gap:var(--et-grid-gap);padding:var(--et-grid-padding);position:relative;min-height:0}.et-grid:has(.et-grid-item--dragging,.et-grid-item--resizing){-webkit-user-select:none;user-select:none;cursor:grabbing}.et-grid:has(.et-grid-item--resizing){cursor:nwse-resize}.et-grid-ghost{border-radius:8px;background:rgb(var(--et-surface-color, 23 23 23) / .08);border:2px dashed rgb(var(--et-surface-color, 23 23 23) / .2);pointer-events:none;transition:grid-column 0s,grid-row 0s}.et-grid--readonly .et-grid-
|
|
5903
|
+
}, styles: ["@property --et-grid-gap{syntax: \"<length>\"; inherits: false; initial-value: 16px;}@property --et-grid-row-height{syntax: \"<length>\"; inherits: false; initial-value: 100px;}@property --et-grid-padding{syntax: \"<length>\"; inherits: false; initial-value: 0px;}.et-grid{display:grid;grid-template-columns:repeat(var(--_et-grid-columns, 12),1fr);grid-auto-rows:var(--et-grid-row-height);gap:var(--et-grid-gap);padding:var(--et-grid-padding);position:relative;min-height:0}.et-grid:has(.et-grid-item--dragging,.et-grid-item--resizing){-webkit-user-select:none;user-select:none;cursor:grabbing}.et-grid:has(.et-grid-item--resizing){cursor:nwse-resize}.et-grid-ghost{border-radius:8px;background:rgb(var(--et-surface-color, 23 23 23) / .08);border:2px dashed rgb(var(--et-surface-color, 23 23 23) / .2);pointer-events:none;transition:grid-column 0s,grid-row 0s}.et-grid--readonly .et-grid-item__actions{display:none}.et-grid--readonly .et-grid-item:hover .et-resize-handle--e:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--s:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--w:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--n:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--se:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--sw:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--ne:after,.et-grid--readonly .et-grid-item:hover .et-resize-handle--nw:after{content:unset}\n"] }]
|
|
5609
5904
|
}], ctorParameters: () => [], propDecorators: { ghostRef: [{ type: i0.ViewChild, args: ['ghostRef', { isSignal: true }] }] } });
|
|
5610
5905
|
|
|
5611
5906
|
const posEq = (a, b) => {
|
|
@@ -5947,7 +6242,13 @@ const GRID_ERROR_CODES = {
|
|
|
5947
6242
|
INVALID_LAYOUT_STATE: 1903,
|
|
5948
6243
|
};
|
|
5949
6244
|
|
|
5950
|
-
const GridImports = [
|
|
6245
|
+
const GridImports = [
|
|
6246
|
+
GridComponent,
|
|
6247
|
+
GridItemComponent,
|
|
6248
|
+
GridItemToolbarComponent,
|
|
6249
|
+
GridItemDefaultActionsComponent,
|
|
6250
|
+
GridDebugComponent,
|
|
6251
|
+
];
|
|
5951
6252
|
|
|
5952
6253
|
const NOTIFICATION_ERROR_CODES = {
|
|
5953
6254
|
ACTION_OUTSIDE_NOTIFICATION: 1700,
|
|
@@ -6663,6 +6964,10 @@ class OverlayContainerComponent {
|
|
|
6663
6964
|
this.destroyRef = inject(DestroyRef);
|
|
6664
6965
|
this.elementRef = inject(ElementRef);
|
|
6665
6966
|
this.overlayRef = inject(OVERLAY_REF);
|
|
6967
|
+
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
6968
|
+
this.surfaceContextTracker = injectSurfaceContextTracker();
|
|
6969
|
+
this.renderer = injectRenderer();
|
|
6970
|
+
this.rootBoundary = injectBoundaryElement();
|
|
6666
6971
|
this.component = input.required(/* @ts-ignore */
|
|
6667
6972
|
...(ngDevMode ? [{ debugName: "component" }] : /* istanbul ignore next */ []));
|
|
6668
6973
|
this.componentInputs = input(undefined, /* @ts-ignore */
|
|
@@ -6672,10 +6977,6 @@ class OverlayContainerComponent {
|
|
|
6672
6977
|
this.renderArrow = input(false, /* @ts-ignore */
|
|
6673
6978
|
...(ngDevMode ? [{ debugName: "renderArrow" }] : /* istanbul ignore next */ []));
|
|
6674
6979
|
this.contentOutlet = viewChild.required('contentOutlet', { read: ViewContainerRef });
|
|
6675
|
-
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
6676
|
-
this.surfaceContextTracker = injectSurfaceContextTracker();
|
|
6677
|
-
this.renderer = injectRenderer();
|
|
6678
|
-
this.rootBoundary = injectBoundaryElement();
|
|
6679
6980
|
this.animatedLifecycle = signal(inject(ANIMATED_LIFECYCLE_TOKEN), /* @ts-ignore */
|
|
6680
6981
|
...(ngDevMode ? [{ debugName: "animatedLifecycle" }] : /* istanbul ignore next */ []));
|
|
6681
6982
|
this.contentComponentRef = signal(null, /* @ts-ignore */
|
|
@@ -8464,6 +8765,7 @@ const topSheetOverlayStrategy = (config = {}) => {
|
|
|
8464
8765
|
class OverlayDirective {
|
|
8465
8766
|
constructor() {
|
|
8466
8767
|
this.destroyRef = inject(DestroyRef);
|
|
8768
|
+
this.overlayManager = injectOverlayManager();
|
|
8467
8769
|
this.mode = input('non-modal', /* @ts-ignore */
|
|
8468
8770
|
...(ngDevMode ? [{ debugName: "mode" }] : /* istanbul ignore next */ []));
|
|
8469
8771
|
this.role = input(undefined, /* @ts-ignore */
|
|
@@ -8508,7 +8810,6 @@ class OverlayDirective {
|
|
|
8508
8810
|
...(ngDevMode ? [{ debugName: "autoCloseIfReferenceHidden" }] : /* istanbul ignore next */ []));
|
|
8509
8811
|
this.mirrorWidth = input(false, /* @ts-ignore */
|
|
8510
8812
|
...(ngDevMode ? [{ debugName: "mirrorWidth" }] : /* istanbul ignore next */ []));
|
|
8511
|
-
this.overlayManager = injectOverlayManager();
|
|
8512
8813
|
/** @internal */
|
|
8513
8814
|
this.registeredAnchor = signal(null, /* @ts-ignore */
|
|
8514
8815
|
...(ngDevMode ? [{ debugName: "registeredAnchor" }] : /* istanbul ignore next */ []));
|
|
@@ -8778,9 +9079,9 @@ class OverlayBodyComponent {
|
|
|
8778
9079
|
this.overlayRef = inject(OVERLAY_REF, { optional: true });
|
|
8779
9080
|
this.elementRef = inject(ElementRef);
|
|
8780
9081
|
this.scrollObserver = inject(ScrollObserverDirective);
|
|
9082
|
+
this.overlayManager = injectOverlayManager();
|
|
8781
9083
|
this.dividers = input(false, /* @ts-ignore */
|
|
8782
9084
|
...(ngDevMode ? [{ debugName: "dividers" }] : /* istanbul ignore next */ []));
|
|
8783
|
-
this.overlayManager = injectOverlayManager();
|
|
8784
9085
|
this.dividersEnabled = computed(() => this.dividers() === 'dynamic' || this.dividers() === 'static', /* @ts-ignore */
|
|
8785
9086
|
...(ngDevMode ? [{ debugName: "dividersEnabled" }] : /* istanbul ignore next */ []));
|
|
8786
9087
|
this.dynamicDividersEnabled = computed(() => this.dividers() === 'dynamic', /* @ts-ignore */
|
|
@@ -8868,12 +9169,12 @@ class OverlayCloseDirective {
|
|
|
8868
9169
|
constructor() {
|
|
8869
9170
|
this.overlayRef = inject(OVERLAY_REF, { optional: true });
|
|
8870
9171
|
this.elementRef = inject(ElementRef);
|
|
9172
|
+
this.overlayManager = injectOverlayManager();
|
|
8871
9173
|
this.ariaLabel = input(undefined, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'aria-label' });
|
|
8872
9174
|
this.type = input('button', /* @ts-ignore */
|
|
8873
9175
|
...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
|
|
8874
9176
|
this.closeResult = input(undefined, { ...(ngDevMode ? { debugName: "closeResult" } : /* istanbul ignore next */ {}), alias: 'etOverlayClose' });
|
|
8875
9177
|
this.closeResultAlt = input(undefined, { ...(ngDevMode ? { debugName: "closeResultAlt" } : /* istanbul ignore next */ {}), alias: 'et-overlay-close' });
|
|
8876
|
-
this.overlayManager = injectOverlayManager();
|
|
8877
9178
|
applyHostListener('click', () => {
|
|
8878
9179
|
const overlayRef = this.overlayRef ?? getClosestOverlay(this.elementRef, this.overlayManager.openOverlays());
|
|
8879
9180
|
overlayRef?.close(this.closeResult() ?? this.closeResultAlt());
|
|
@@ -9192,8 +9493,8 @@ class OverlayMainDirective {
|
|
|
9192
9493
|
this.parent = inject(OVERLAY_MAIN_TOKEN, { optional: true, skipSelf: true });
|
|
9193
9494
|
this.elementRef = inject(ElementRef);
|
|
9194
9495
|
this.overlayRef = inject(OVERLAY_REF, { optional: true });
|
|
9195
|
-
this.enabled = input(true, { ...(ngDevMode ? { debugName: "enabled" } : /* istanbul ignore next */ {}), alias: 'etOverlayMain', transform: booleanAttribute });
|
|
9196
9496
|
this.overlayManager = injectOverlayManager();
|
|
9497
|
+
this.enabled = input(true, { ...(ngDevMode ? { debugName: "enabled" } : /* istanbul ignore next */ {}), alias: 'etOverlayMain', transform: booleanAttribute });
|
|
9197
9498
|
}
|
|
9198
9499
|
ngOnInit() {
|
|
9199
9500
|
this.overlayRef = resolveClosestOverlay({
|
|
@@ -9280,10 +9581,10 @@ class OverlayTitleDirective {
|
|
|
9280
9581
|
constructor() {
|
|
9281
9582
|
this.overlayRef = inject(OVERLAY_REF, { optional: true });
|
|
9282
9583
|
this.elementRef = inject(ElementRef);
|
|
9283
|
-
this.id = input(`et-overlay-title-${uniqueId++}`, /* @ts-ignore */
|
|
9284
|
-
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
9285
9584
|
this.overlayManager = injectOverlayManager();
|
|
9286
9585
|
this.renderer = injectRenderer();
|
|
9586
|
+
this.id = input(`et-overlay-title-${uniqueId++}`, /* @ts-ignore */
|
|
9587
|
+
...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
9287
9588
|
}
|
|
9288
9589
|
ngOnInit() {
|
|
9289
9590
|
this.overlayRef = resolveClosestOverlay({
|
|
@@ -9581,8 +9882,8 @@ class OverlayBackOrCloseDirective {
|
|
|
9581
9882
|
constructor() {
|
|
9582
9883
|
this.overlayRef = inject(OVERLAY_REF);
|
|
9583
9884
|
this.elementRef = inject(ElementRef);
|
|
9584
|
-
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
9585
9885
|
this.router = injectOverlayRouter();
|
|
9886
|
+
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
9586
9887
|
fromEvent(this.elementRef.nativeElement, 'click')
|
|
9587
9888
|
.pipe(filter(() => !this.disabled()), tap(() => {
|
|
9588
9889
|
if (!this.router.back()) {
|
|
@@ -9619,8 +9920,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
9619
9920
|
class OverlayRouteHeaderTemplateOutletComponent {
|
|
9620
9921
|
constructor() {
|
|
9621
9922
|
this.overlay = inject(OVERLAY_REF);
|
|
9622
|
-
this.animatedLifecycle = viewChild.required(ANIMATED_LIFECYCLE_TOKEN);
|
|
9623
9923
|
this.router = injectOverlayRouter();
|
|
9924
|
+
this.animatedLifecycle = viewChild.required(ANIMATED_LIFECYCLE_TOKEN);
|
|
9624
9925
|
}
|
|
9625
9926
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.5", ngImport: i0, type: OverlayRouteHeaderTemplateOutletComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9626
9927
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "22.0.5", type: OverlayRouteHeaderTemplateOutletComponent, isStandalone: true, selector: "et-overlay-route-header-template-outlet", host: { properties: { "class.et-overlay-router-outlet-nav-dir--backward": "router.navigationDirection() === 'backward'", "class.et-overlay-router-outlet-nav-dir--forward": "router.navigationDirection() === 'forward'" }, classAttribute: "et-overlay-route-header-template-outlet-host" }, viewQueries: [{ propertyName: "animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, isSignal: true }], ngImport: i0, template: `
|
|
@@ -9654,11 +9955,11 @@ const OVERLAY_ROUTER_LINK_TOKEN = new InjectionToken('OVERLAY_ROUTER_LINK_TOKEN'
|
|
|
9654
9955
|
class OverlayRouterLinkDirective {
|
|
9655
9956
|
constructor() {
|
|
9656
9957
|
this.elementRef = inject(ElementRef);
|
|
9958
|
+
this.router = injectOverlayRouter();
|
|
9657
9959
|
this.path = input.required({ ...(ngDevMode ? { debugName: "path" } : /* istanbul ignore next */ {}), alias: 'etOverlayRouterLink' });
|
|
9658
9960
|
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
9659
9961
|
this.navigationDirection = input(null, /* @ts-ignore */
|
|
9660
9962
|
...(ngDevMode ? [{ debugName: "navigationDirection" }] : /* istanbul ignore next */ []));
|
|
9661
|
-
this.router = injectOverlayRouter();
|
|
9662
9963
|
this.isActive = computed(() => this.router.resolvePath(this.path()).route === this.router.currentRoute(), /* @ts-ignore */
|
|
9663
9964
|
...(ngDevMode ? [{ debugName: "isActive" }] : /* istanbul ignore next */ []));
|
|
9664
9965
|
fromEvent(this.elementRef.nativeElement, 'click')
|
|
@@ -9867,13 +10168,13 @@ class OverlayRouterOutletComponent {
|
|
|
9867
10168
|
this.injector = inject(Injector);
|
|
9868
10169
|
this.overlayRef = inject(OVERLAY_REF, { optional: true });
|
|
9869
10170
|
this.elementRef = inject(ElementRef);
|
|
10171
|
+
this.router = injectOverlayRouter();
|
|
10172
|
+
this.renderer = injectRenderer();
|
|
9870
10173
|
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
9871
10174
|
this.sharedRouteTemplate = contentChild(OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, { ...(ngDevMode ? { debugName: "sharedRouteTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
9872
10175
|
this.outletDisabledTemplate = contentChild(OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, { ...(ngDevMode ? { debugName: "outletDisabledTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
|
|
9873
10176
|
this.pageWrappers = viewChildren('pageWrapper', /* @ts-ignore */
|
|
9874
10177
|
...(ngDevMode ? [{ debugName: "pageWrappers" }] : /* istanbul ignore next */ []));
|
|
9875
|
-
this.router = injectOverlayRouter();
|
|
9876
|
-
this.renderer = injectRenderer();
|
|
9877
10178
|
this.hasSidebar = !!injectSidebarOverlay({ optional: true });
|
|
9878
10179
|
this.wasDisabled = signal(false, /* @ts-ignore */
|
|
9879
10180
|
...(ngDevMode ? [{ debugName: "wasDisabled" }] : /* istanbul ignore next */ []));
|
|
@@ -10046,12 +10347,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
10046
10347
|
|
|
10047
10348
|
class OverlaySidebarComponent {
|
|
10048
10349
|
constructor() {
|
|
10350
|
+
this.sidebar = injectSidebarOverlay();
|
|
10049
10351
|
this.pageDividers = input(false, /* @ts-ignore */
|
|
10050
10352
|
...(ngDevMode ? [{ debugName: "pageDividers" }] : /* istanbul ignore next */ []));
|
|
10051
10353
|
this.sidebarContent = viewChild.required('sidebarContentTpl');
|
|
10052
10354
|
this.sidebarHeaderContent = contentChild(OVERLAY_HEADER_TEMPLATE_TOKEN, /* @ts-ignore */
|
|
10053
10355
|
...(ngDevMode ? [{ debugName: "sidebarHeaderContent" }] : /* istanbul ignore next */ []));
|
|
10054
|
-
this.sidebar = injectSidebarOverlay();
|
|
10055
10356
|
syncSignal(this.sidebarContent, this.sidebar.sidebarContentTemplate, { skipSyncRead: true });
|
|
10056
10357
|
syncSignal(this.sidebarHeaderContent, this.sidebar.sidebarHeaderTemplate);
|
|
10057
10358
|
syncSignal(this.pageDividers, this.sidebar.sidebarPageDividers);
|
|
@@ -11532,9 +11833,9 @@ class PipBackDirective {
|
|
|
11532
11833
|
constructor() {
|
|
11533
11834
|
this.chrome = inject(PIP_CHROME_REF_TOKEN, { optional: true });
|
|
11534
11835
|
this.tokenEntry = inject(PIP_ENTRY_TOKEN, { optional: true });
|
|
11836
|
+
this.pipManager = injectPipManager();
|
|
11535
11837
|
this.entry = input(/* @ts-ignore */
|
|
11536
11838
|
...(ngDevMode ? [undefined, { debugName: "entry" }] : /* istanbul ignore next */ []));
|
|
11537
|
-
this.pipManager = injectPipManager();
|
|
11538
11839
|
}
|
|
11539
11840
|
back(event) {
|
|
11540
11841
|
event.stopPropagation();
|
|
@@ -12002,13 +12303,13 @@ class PipPlayerComponent {
|
|
|
12002
12303
|
this.document = inject(DOCUMENT$1);
|
|
12003
12304
|
this.el = inject(ElementRef);
|
|
12004
12305
|
this.pipCell = inject(PipCellDirective, { optional: true });
|
|
12306
|
+
this.streamManager = injectStreamManager();
|
|
12307
|
+
this.pipManager = injectPipManager();
|
|
12308
|
+
this.renderer = injectRenderer();
|
|
12005
12309
|
this.entry = input(/* @ts-ignore */
|
|
12006
12310
|
...(ngDevMode ? [undefined, { debugName: "entry" }] : /* istanbul ignore next */ []));
|
|
12007
12311
|
this.showThumbnail = input(/* @ts-ignore */
|
|
12008
12312
|
...(ngDevMode ? [undefined, { debugName: "showThumbnail" }] : /* istanbul ignore next */ []));
|
|
12009
|
-
this.streamManager = injectStreamManager();
|
|
12010
|
-
this.pipManager = injectPipManager();
|
|
12011
|
-
this.renderer = injectRenderer();
|
|
12012
12313
|
this.isReady = signal(false, /* @ts-ignore */
|
|
12013
12314
|
...(ngDevMode ? [{ debugName: "isReady" }] : /* istanbul ignore next */ []));
|
|
12014
12315
|
this.resolvedEntry = computed(() => this.entry() ?? this.pipCell?.cell().pip ?? null, /* @ts-ignore */
|
|
@@ -12104,11 +12405,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.5", ngImpor
|
|
|
12104
12405
|
|
|
12105
12406
|
class StreamPipChromeComponent {
|
|
12106
12407
|
constructor() {
|
|
12408
|
+
this.pipManager = injectPipManager();
|
|
12107
12409
|
this.stageRef = viewChild(PipStageDirective, { ...(ngDevMode ? { debugName: "stageRef" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
12108
12410
|
this.pipWindowRef = viewChild(PipWindowComponent, /* @ts-ignore */
|
|
12109
12411
|
...(ngDevMode ? [{ debugName: "pipWindowRef" }] : /* istanbul ignore next */ []));
|
|
12110
12412
|
this.gridBtnRef = viewChild(PipGridToggleDirective, { ...(ngDevMode ? { debugName: "gridBtnRef" } : /* istanbul ignore next */ {}), read: ElementRef });
|
|
12111
|
-
this.pipManager = injectPipManager();
|
|
12112
12413
|
this.state = createPipChromeState();
|
|
12113
12414
|
this.animations = createPipChromeAnimations(this.state, {
|
|
12114
12415
|
stageRef: this.stageRef,
|
|
@@ -12712,9 +13013,9 @@ class PipCloseDirective {
|
|
|
12712
13013
|
this.chrome = inject(PIP_CHROME_REF_TOKEN, { optional: true });
|
|
12713
13014
|
this.pipWindow = inject(PipWindowComponent, { optional: true });
|
|
12714
13015
|
this.tokenEntry = inject(PIP_ENTRY_TOKEN, { optional: true });
|
|
13016
|
+
this.pipManager = injectPipManager();
|
|
12715
13017
|
this.entry = input(/* @ts-ignore */
|
|
12716
13018
|
...(ngDevMode ? [undefined, { debugName: "entry" }] : /* istanbul ignore next */ []));
|
|
12717
|
-
this.pipManager = injectPipManager();
|
|
12718
13019
|
}
|
|
12719
13020
|
close(event) {
|
|
12720
13021
|
event.stopPropagation();
|
|
@@ -12759,12 +13060,12 @@ class PipSlotPlaceholderComponent {
|
|
|
12759
13060
|
constructor() {
|
|
12760
13061
|
this.slotPlayerId = inject(STREAM_SLOT_PLAYER_ID_TOKEN);
|
|
12761
13062
|
this.parentSurfaceProvider = inject(SURFACE_PROVIDER, { optional: true, skipSelf: true });
|
|
12762
|
-
this.bringBackDir = viewChild(PipBringBackDirective, /* @ts-ignore */
|
|
12763
|
-
...(ngDevMode ? [{ debugName: "bringBackDir" }] : /* istanbul ignore next */ []));
|
|
12764
13063
|
this.pipManager = injectPipManager();
|
|
12765
13064
|
this.config = injectPipSlotPlaceholderConfig();
|
|
12766
13065
|
this.locale = injectLocale();
|
|
12767
13066
|
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
13067
|
+
this.bringBackDir = viewChild(PipBringBackDirective, /* @ts-ignore */
|
|
13068
|
+
...(ngDevMode ? [{ debugName: "bringBackDir" }] : /* istanbul ignore next */ []));
|
|
12768
13069
|
this.cardSurface = computed(() => {
|
|
12769
13070
|
const themes = this.surfaceThemes;
|
|
12770
13071
|
if (!themes)
|
|
@@ -13159,11 +13460,11 @@ class StreamPlayerSlotDirective {
|
|
|
13159
13460
|
this.playerComponent = inject(STREAM_PLAYER_COMPONENT_TOKEN);
|
|
13160
13461
|
this.provideSurface = inject(ProvideSurfaceDirective);
|
|
13161
13462
|
this.parentSurfaceProvider = inject(SURFACE_PROVIDER, { optional: true, skipSelf: true });
|
|
13463
|
+
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
13464
|
+
this.styleManager = injectStyleManager();
|
|
13162
13465
|
this.streamSlotPriority = input(false, { ...(ngDevMode ? { debugName: "streamSlotPriority" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
|
|
13163
13466
|
this.streamSlotOnPipBack = input(/* @ts-ignore */
|
|
13164
13467
|
...(ngDevMode ? [undefined, { debugName: "streamSlotOnPipBack" }] : /* istanbul ignore next */ []));
|
|
13165
|
-
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
13166
|
-
this.styleManager = injectStyleManager();
|
|
13167
13468
|
this.resolvedSurface = computed(() => {
|
|
13168
13469
|
const themes = this.surfaceThemes;
|
|
13169
13470
|
if (!themes)
|
|
@@ -16199,6 +16500,7 @@ class ToggletipComponent {
|
|
|
16199
16500
|
this.triggerColorProvider = inject(COLOR_PROVIDER, { optional: true, skipSelf: true });
|
|
16200
16501
|
this.triggerSurfaceProvider = inject(SURFACE_PROVIDER, { optional: true, skipSelf: true });
|
|
16201
16502
|
this.injector = inject(Injector);
|
|
16503
|
+
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
16202
16504
|
this.toggletipId = input.required(/* @ts-ignore */
|
|
16203
16505
|
...(ngDevMode ? [{ debugName: "toggletipId" }] : /* istanbul ignore next */ []));
|
|
16204
16506
|
this.contentId = input.required(/* @ts-ignore */
|
|
@@ -16209,7 +16511,6 @@ class ToggletipComponent {
|
|
|
16209
16511
|
...(ngDevMode ? [{ debugName: "colorProvider" }] : /* istanbul ignore next */ []));
|
|
16210
16512
|
this.surfaceProvider = input.required(/* @ts-ignore */
|
|
16211
16513
|
...(ngDevMode ? [{ debugName: "surfaceProvider" }] : /* istanbul ignore next */ []));
|
|
16212
|
-
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
16213
16514
|
this.hasTemplate = computed(() => this.content() instanceof TemplateRef, /* @ts-ignore */
|
|
16214
16515
|
...(ngDevMode ? [{ debugName: "hasTemplate" }] : /* istanbul ignore next */ []));
|
|
16215
16516
|
this.contentText = computed(() => {
|
|
@@ -16270,6 +16571,7 @@ class ToggletipDirective {
|
|
|
16270
16571
|
this.elementRef = inject(ElementRef);
|
|
16271
16572
|
this.colorProvider = inject(COLOR_PROVIDER, { optional: true });
|
|
16272
16573
|
this.surfaceProvider = inject(SURFACE_PROVIDER, { optional: true });
|
|
16574
|
+
this.overlayManager = injectOverlayManager();
|
|
16273
16575
|
this.content = input(null, { ...(ngDevMode ? { debugName: "content" } : /* istanbul ignore next */ {}), alias: 'etToggletip' });
|
|
16274
16576
|
this.ariaLabel = input(null, { ...(ngDevMode ? { debugName: "ariaLabel" } : /* istanbul ignore next */ {}), alias: 'etToggletipAriaLabel' });
|
|
16275
16577
|
this.ariaLabelledBy = input(null, { ...(ngDevMode ? { debugName: "ariaLabelledBy" } : /* istanbul ignore next */ {}), alias: 'etToggletipAriaLabelledBy' });
|
|
@@ -16285,7 +16587,6 @@ class ToggletipDirective {
|
|
|
16285
16587
|
...(ngDevMode ? [{ debugName: "viewportPadding" }] : /* istanbul ignore next */ []));
|
|
16286
16588
|
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), alias: 'etToggletipDisabled' });
|
|
16287
16589
|
this.open = model(false, { ...(ngDevMode ? { debugName: "open" } : /* istanbul ignore next */ {}), alias: 'etToggletipOpen' });
|
|
16288
|
-
this.overlayManager = injectOverlayManager();
|
|
16289
16590
|
/** @internal */
|
|
16290
16591
|
this.overlayRef = signal(null, /* @ts-ignore */
|
|
16291
16592
|
...(ngDevMode ? [{ debugName: "overlayRef" }] : /* istanbul ignore next */ []));
|
|
@@ -16537,6 +16838,7 @@ class TooltipComponent {
|
|
|
16537
16838
|
this.ownSurfaceProvider = inject(ProvideSurfaceDirective);
|
|
16538
16839
|
this.triggerColorProvider = inject(COLOR_PROVIDER, { optional: true, skipSelf: true });
|
|
16539
16840
|
this.triggerSurfaceProvider = inject(SURFACE_PROVIDER, { optional: true, skipSelf: true });
|
|
16841
|
+
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
16540
16842
|
this.tooltipId = input.required(/* @ts-ignore */
|
|
16541
16843
|
...(ngDevMode ? [{ debugName: "tooltipId" }] : /* istanbul ignore next */ []));
|
|
16542
16844
|
this.content = input.required(/* @ts-ignore */
|
|
@@ -16545,7 +16847,6 @@ class TooltipComponent {
|
|
|
16545
16847
|
...(ngDevMode ? [{ debugName: "colorProvider" }] : /* istanbul ignore next */ []));
|
|
16546
16848
|
this.surfaceProvider = input.required(/* @ts-ignore */
|
|
16547
16849
|
...(ngDevMode ? [{ debugName: "surfaceProvider" }] : /* istanbul ignore next */ []));
|
|
16548
|
-
this.surfaceThemes = injectSurfaceThemes({ optional: true });
|
|
16549
16850
|
this.hasTemplate = computed(() => this.content() instanceof TemplateRef, /* @ts-ignore */
|
|
16550
16851
|
...(ngDevMode ? [{ debugName: "hasTemplate" }] : /* istanbul ignore next */ []));
|
|
16551
16852
|
this.contentText = computed(() => {
|
|
@@ -16609,6 +16910,9 @@ class TooltipDirective {
|
|
|
16609
16910
|
this.elementRef = inject(ElementRef);
|
|
16610
16911
|
this.colorProvider = inject(COLOR_PROVIDER, { optional: true });
|
|
16611
16912
|
this.surfaceProvider = inject(SURFACE_PROVIDER, { optional: true });
|
|
16913
|
+
this.overlayManager = injectOverlayManager();
|
|
16914
|
+
this.focusVisibleTracker = injectFocusVisibleTracker();
|
|
16915
|
+
this.renderer = injectRenderer();
|
|
16612
16916
|
this.content = input(null, { ...(ngDevMode ? { debugName: "content" } : /* istanbul ignore next */ {}), alias: 'etTooltip' });
|
|
16613
16917
|
this.ariaDescription = input(null, { ...(ngDevMode ? { debugName: "ariaDescription" } : /* istanbul ignore next */ {}), alias: 'etTooltipAriaDescription' });
|
|
16614
16918
|
this.placement = input('top', /* @ts-ignore */
|
|
@@ -16624,9 +16928,6 @@ class TooltipDirective {
|
|
|
16624
16928
|
this.showDelay = input(DEFAULT_TOOLTIP_DELAY, /* @ts-ignore */
|
|
16625
16929
|
...(ngDevMode ? [{ debugName: "showDelay" }] : /* istanbul ignore next */ []));
|
|
16626
16930
|
this.disabled = input(false, { ...(ngDevMode ? { debugName: "disabled" } : /* istanbul ignore next */ {}), alias: 'etTooltipDisabled' });
|
|
16627
|
-
this.overlayManager = injectOverlayManager();
|
|
16628
|
-
this.focusVisibleTracker = injectFocusVisibleTracker();
|
|
16629
|
-
this.renderer = injectRenderer();
|
|
16630
16931
|
/** @internal */
|
|
16631
16932
|
this.overlayRef = signal(null, /* @ts-ignore */
|
|
16632
16933
|
...(ngDevMode ? [{ debugName: "overlayRef" }] : /* istanbul ignore next */ []));
|
|
@@ -16830,5 +17131,5 @@ const TOOLTIP_IMPORTS = [TooltipDirective, TooltipComponent];
|
|
|
16830
17131
|
* Generated bundle index. Do not edit.
|
|
16831
17132
|
*/
|
|
16832
17133
|
|
|
16833
|
-
export { ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, BOLD_ICON, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BrandLoaderComponent, ButtonComponent, ButtonDirective, ButtonStylesDirective, CHECKBOX_IMPORTS, CHEVRON_ICON, CHOICE_FIELD_IMPORTS, CLIPBOARD_CHECK_ICON, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxOptionComponent, ChoiceFieldComponent, DAILYMOTION_PLAYER_TOKEN, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_STREAM_PLAYER_STATE, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DescriptionComponent, FACEBOOK_PLAYER_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FocusRingDirective, FormErrorComponent, FormFieldComponent, FormFieldDirective, GRID_2X2_ICON, GRID_ERROR_CODES, GRID_TOKEN, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridImports, GridItemComponent, GridItemDirective, GridItemRef, GridResizeDirective, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, INPUT_IMPORTS, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, ITALIC_ICON, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputPrefixDirective, InputSuffixDirective, KICK_PLAYER_TOKEN, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LINK_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LOCK_ICON, LabelDirective, NAV_TABS_TOKEN, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NavTabImports, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CONFIG_CLASS_KEYS, OVERLAY_CONTENT_IMPORTS, OVERLAY_ERROR_CODES, OVERLAY_FOOTER_TOKEN, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_IMPORTS, OVERLAY_MAIN_TOKEN, OVERLAY_QUERY_PARAM_INPUT_NAME, OVERLAY_REF, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_ROUTER_TOKEN, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OverlayAnchorDirective, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseDirective, OverlayContainerComponent, OverlayDirective, OverlayFooterDirective, OverlayHandlerLinkDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayMainDirective, OverlayOriginCloneComponent, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlaySurfaceDirective, OverlayTitleDirective, OverlayTriggerDirective, PENCIL_ICON, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLUS_ICON, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, RICH_TEXT_EDITOR_IMPORTS, RadioComponent, RadioGroupComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, SCROLLABLE_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SOOP_PLAYER_TOKEN, STREAM_CONSENT_TOKEN, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_USER_CONSENT_PROVIDER_TOKEN, STRIKETHROUGH_ICON, SWITCH_IMPORTS, ScrollableActiveChildDirective, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableErrorCode, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamImports, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_PANEL_TOKEN, TAB_SIZES, TIKTOK_PLAYER_TOKEN, TIMES_ICON, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TRIANGLE_EXCLAMATION_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabImports, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TextButtonComponent, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, TooltipComponent, TooltipDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_SLOT_TOKEN, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, YoutubePlayerSlotDirective, abortFullscreenAnimation, anchoredDialogOverlayStrategy, anchoredOverlayStrategy, bottomSheetOverlayStrategy, buildAnchoredRuntimePositionStrategy, centeredOverlayStrategy, cleanupFullscreenAnimation, cleanupFullscreenAnimationStyles, createGridAdapter, createNotificationRef, createOverlayHandler, createOverlayHandlerWithQueryParamLifecycle, createOverlayRef, createOverlayStrategyController, createPipChromeAnimations, createPipChromeState, createStreamConfig, createStreamPlayerSlot, dialogOverlayStrategy, enableDragToDismiss, findNextRelevantHtmlElement, fromGridPosition, fullScreenDialogOverlayStrategy, getClosestOverlay, getOriginCoordinatesAndDimensions, injectAnchoredDialogStrategy, injectAnchoredDialogStrategyDefaults, injectBottomSheetStrategy, injectBottomSheetStrategyDefaults, injectDialogStrategy, injectDialogStrategyDefaults, injectFormSupport, injectFullscreenDialogStrategy, injectFullscreenDialogStrategyDefaults, injectGridConfig, injectLeftSheetStrategy, injectLeftSheetStrategyDefaults, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectOverlayRouter, injectOverlayScrollBlocker, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectRightSheetStrategy, injectRightSheetStrategyDefaults, injectSidebarOverlay, injectStreamConfig, injectStreamConsentConfig, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, injectTopSheetStrategy, injectTopSheetStrategyDefaults, isHtmlElement, isPointerEvent, isTouchEvent, leftSheetOverlayStrategy, mergeOverlayBreakpointConfigs, provideAnchoredDialogStrategy, provideAnchoredDialogStrategyDefaults, provideBottomSheetStrategy, provideBottomSheetStrategyDefaults, provideDialogStrategy, provideDialogStrategyDefaults, provideFormSupport, provideFullscreenDialogStrategy, provideFullscreenDialogStrategyDefaults, provideGridConfig, provideIcons, provideLeftSheetStrategy, provideLeftSheetStrategyDefaults, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlay, provideOverlayManager, provideOverlayRouter, provideOverlayRouterConfig, provideOverlayRouterService, provideOverlayScrollBlocker, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideRightSheetStrategy, provideRightSheetStrategyDefaults, provideSidebarOverlay, provideSidebarOverlayConfig, provideSidebarOverlayService, provideStreamConfig, provideStreamConsentConfig, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, provideTopSheetStrategy, provideTopSheetStrategyDefaults, resolveClosestOverlay, rightSheetOverlayStrategy, startFullscreenEnterAnimation, startFullscreenLeaveAnimation, toGridPosition, topSheetOverlayStrategy, transformingBottomSheetToDialogOverlayStrategy, transformingFullScreenDialogToDialogOverlayStrategy, transformingFullScreenDialogToRightSheetOverlayStrategy };
|
|
17134
|
+
export { ARROW_OUT_UP_RIGHT_ICON, ARROW_RIGHT_ICON, BOLD_ICON, BUTTON_ICON_ALIGNMENTS, BUTTON_IMPORTS, BUTTON_SIZES, BUTTON_SPINNER_CONFIG, BUTTON_TYPES, BUTTON_VARIANTS, BrandLoaderComponent, ButtonComponent, ButtonDirective, ButtonStylesDirective, CHECKBOX_IMPORTS, CHEVRON_ICON, CHOICE_FIELD_IMPORTS, CLIPBOARD_CHECK_ICON, CheckboxComponent, CheckboxDirective, CheckboxGroupComponent, CheckboxOptionComponent, ChoiceFieldComponent, DAILYMOTION_PLAYER_TOKEN, DEFAULT_NOTIFICATION_MANAGER_CONFIG, DEFAULT_PIP_WINDOW_CONFIG, DEFAULT_STREAM_PLAYER_STATE, DailymotionPlayerComponent, DailymotionPlayerDirective, DailymotionPlayerParamsDirective, DailymotionPlayerSlotComponent, DescriptionComponent, FACEBOOK_PLAYER_TOKEN, FLOPPY_DISK_ICON, FOCUS_FRAME_ICON, FORM_FIELD_APPEARANCES, FORM_FIELD_CONTROL_TYPES, FORM_FIELD_ERROR_CODES, FORM_FIELD_FILLS, FORM_FIELD_IMPORTS, FORM_FIELD_LABEL_MODES, FORM_FIELD_SIZES, FORM_FIELD_TOKEN, FabComponent, FacebookPlayerComponent, FacebookPlayerDirective, FacebookPlayerParamsDirective, FacebookPlayerSlotComponent, FocusRingDirective, FormErrorComponent, FormFieldComponent, FormFieldDirective, GRID_2X2_ICON, GRID_ERROR_CODES, GRID_TOKEN, GridComponent, GridDebugComponent, GridDirective, GridDragDirective, GridImports, GridItemComponent, GridItemDefaultActionsComponent, GridItemDirective, GridItemRef, GridItemToolbarComponent, GridResizeDirective, HintComponent, ICONS_TOKEN, ICON_DIRECTIVE_TOKEN, ICON_ERROR_CODES, ICON_IMPORTS, INPUT_IMPORTS, INPUT_TEXT_ALIGNMENTS, INPUT_TYPES, ITALIC_ICON, IconButtonComponent, IconDirective, InputComponent, InputDirective, InputPrefixDirective, InputSuffixDirective, KICK_PLAYER_TOKEN, KickPlayerComponent, KickPlayerDirective, KickPlayerParamsDirective, KickPlayerSlotComponent, LINK_ICON, LIST_BULLETED_ICON, LIST_NUMBERED_ICON, LOCK_ICON, LabelDirective, NAV_TABS_TOKEN, NOTIFICATION_ERROR_CODES, NOTIFICATION_IMPORTS, NOTIFICATION_STACK_CONTEXT_TOKEN, NOTIFICATION_STATUS, NavTabImports, NavTabLinkComponent, NavTabLinkDirective, NavTabsComponent, NavTabsDirective, NavTabsOutletComponent, NavTabsOutletDirective, NotificationActionDirective, NotificationComponent, NotificationDirective, NotificationDismissDirective, NotificationItemDirective, NotificationStackDirective, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CONFIG_CLASS_KEYS, OVERLAY_CONTENT_IMPORTS, OVERLAY_ERROR_CODES, OVERLAY_FOOTER_TOKEN, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_IMPORTS, OVERLAY_MAIN_TOKEN, OVERLAY_QUERY_PARAM_INPUT_NAME, OVERLAY_REF, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_ROUTER_TOKEN, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OverlayAnchorDirective, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseDirective, OverlayContainerComponent, OverlayDirective, OverlayFooterDirective, OverlayHandlerLinkDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayMainDirective, OverlayOriginCloneComponent, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlaySurfaceDirective, OverlayTitleDirective, OverlayTriggerDirective, PENCIL_ICON, PIP_CHROME_REF_TOKEN, PIP_ENTRY_TOKEN, PIP_WINDOW_ASPECT_RATIO_TOKEN, PLUS_ICON, PipBackDirective, PipBringBackDirective, PipCellDirective, PipCloseDirective, PipCollapseOverlayDirective, PipGridToggleDirective, PipPlayerComponent, PipSlotPlaceholderComponent, PipStageDirective, PipTitleBarDirective, PipTitleBarTemplateDirective, PipWindowComponent, PipWindowParamsDirective, ProgressBarComponent, RICH_TEXT_EDITOR_IMPORTS, RadioComponent, RadioGroupComponent, RichTextEditorComponent, RichTextEditorDirective, RichTextEditorFloatingToolbarComponent, SCROLLABLE_IMPORTS, SELECTION_LIST_MULTIPLE, SELECTION_LIST_TOKEN, SIDEBAR_OVERLAY_CONFIG, SIDEBAR_OVERLAY_TOKEN, SOOP_PLAYER_TOKEN, STREAM_CONSENT_TOKEN, STREAM_PLAYER_COMPONENT_TOKEN, STREAM_PLAYER_ERROR_CONTEXT_TOKEN, STREAM_PLAYER_ERROR_TOKEN, STREAM_PLAYER_PARAMS_TOKEN, STREAM_PLAYER_SLOT_TOKEN, STREAM_PLAYER_TOKEN, STREAM_SLOT_PLAYER_ID_TOKEN, STREAM_USER_CONSENT_PROVIDER_TOKEN, STRIKETHROUGH_ICON, SWITCH_IMPORTS, ScrollableActiveChildDirective, ScrollableButtonsDirective, ScrollableComponent, ScrollableDarkenDirective, ScrollableDirective, ScrollableDragDirective, ScrollableErrorCode, ScrollableIgnoreChildDirective, ScrollableLoadingTemplateDirective, ScrollableMasksDirective, ScrollableNavigationDirective, ScrollableSnapDirective, SegmentedButtonComponent, SegmentedButtonGroupComponent, SelectionListControlDirective, SelectionListDirective, SelectionOptionDirective, SoopPlayerComponent, SoopPlayerDirective, SoopPlayerParamsDirective, SoopPlayerSlotComponent, SpinnerComponent, StreamConsentAcceptDirective, StreamConsentComponent, StreamConsentDirective, StreamImports, StreamPipChromeComponent, StreamPlayerErrorComponent, StreamPlayerErrorDirective, StreamPlayerLoadingComponent, StreamPlayerSlotDirective, SwitchComponent, SwitchDirective, TAB_BAR_FITS, TAB_BAR_ORIENTATIONS, TAB_BAR_TOKEN, TAB_BAR_TRIGGER_TOKEN, TAB_BAR_VARIANTS, TAB_ERROR_CODES, TAB_GROUP_TOKEN, TAB_PANEL_TOKEN, TAB_SIZES, TIKTOK_PLAYER_TOKEN, TIMES_ICON, TOGGLETIP_ERROR_CODES, TOGGLETIP_IMPORTS, TOOLTIP_ERROR_CODES, TOOLTIP_IMPORTS, TRIANGLE_EXCLAMATION_ICON, TWITCH_PLAYER_TOKEN, TabBarDirective, TabBarTriggerDirective, TabBarUnderlineDirective, TabComponent, TabGroupComponent, TabGroupDirective, TabImports, TabLabelDirective, TabPanelDirective, TabTriggerDirective, TextButtonComponent, TikTokPlayerComponent, TikTokPlayerDirective, TikTokPlayerParamsDirective, TikTokPlayerSlotComponent, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipTriggerDirective, TooltipComponent, TooltipDirective, TwitchPlayerComponent, TwitchPlayerDirective, TwitchPlayerParamsDirective, TwitchPlayerSlotComponent, VIMEO_PLAYER_TOKEN, VimeoPlayerComponent, VimeoPlayerDirective, VimeoPlayerParamsDirective, VimeoPlayerSlotComponent, WINDOW_CONTROL_BUTTON_KINDS, WINDOW_CONTROL_BUTTON_SIZES, WindowControlButtonComponent, YOUTUBE_PLAYER_SLOT_TOKEN, YOUTUBE_PLAYER_TOKEN, YoutubePlayerComponent, YoutubePlayerDirective, YoutubePlayerParamsDirective, YoutubePlayerSlotComponent, YoutubePlayerSlotDirective, abortFullscreenAnimation, anchoredDialogOverlayStrategy, anchoredOverlayStrategy, bottomSheetOverlayStrategy, buildAnchoredRuntimePositionStrategy, centeredOverlayStrategy, cleanupFullscreenAnimation, cleanupFullscreenAnimationStyles, createGridAdapter, createNotificationRef, createOverlayHandler, createOverlayHandlerWithQueryParamLifecycle, createOverlayRef, createOverlayStrategyController, createPipChromeAnimations, createPipChromeState, createStreamConfig, createStreamPlayerSlot, dialogOverlayStrategy, enableDragToDismiss, findNextRelevantHtmlElement, fromGridPosition, fullScreenDialogOverlayStrategy, getClosestOverlay, getOriginCoordinatesAndDimensions, injectAnchoredDialogStrategy, injectAnchoredDialogStrategyDefaults, injectBottomSheetStrategy, injectBottomSheetStrategyDefaults, injectDialogStrategy, injectDialogStrategyDefaults, injectFormSupport, injectFullscreenDialogStrategy, injectFullscreenDialogStrategyDefaults, injectGridConfig, injectLeftSheetStrategy, injectLeftSheetStrategyDefaults, injectNotificationManager, injectNotificationManagerConfig, injectOverlayManager, injectOverlayRouter, injectOverlayScrollBlocker, injectPipChromeManager, injectPipManager, injectPipSlotPlaceholderConfig, injectRightSheetStrategy, injectRightSheetStrategyDefaults, injectSidebarOverlay, injectStreamConfig, injectStreamConsentConfig, injectStreamManager, injectStreamPlayerErrorConfig, injectStreamPlayerLoadingConfig, injectStreamScriptLoader, injectStreamUserConsentProvider, injectTopSheetStrategy, injectTopSheetStrategyDefaults, isHtmlElement, isPointerEvent, isTouchEvent, leftSheetOverlayStrategy, mergeOverlayBreakpointConfigs, provideAnchoredDialogStrategy, provideAnchoredDialogStrategyDefaults, provideBottomSheetStrategy, provideBottomSheetStrategyDefaults, provideDialogStrategy, provideDialogStrategyDefaults, provideFormSupport, provideFullscreenDialogStrategy, provideFullscreenDialogStrategyDefaults, provideGridConfig, provideIcons, provideLeftSheetStrategy, provideLeftSheetStrategyDefaults, provideNotificationManager, provideNotificationManagerConfig, provideNotificationManagerInstance, provideOverlay, provideOverlayManager, provideOverlayRouter, provideOverlayRouterConfig, provideOverlayRouterService, provideOverlayScrollBlocker, providePipChromeManager, providePipManager, providePipSlotPlaceholderConfig, provideRightSheetStrategy, provideRightSheetStrategyDefaults, provideSidebarOverlay, provideSidebarOverlayConfig, provideSidebarOverlayService, provideStreamConfig, provideStreamConsentConfig, provideStreamManager, provideStreamPlayerErrorConfig, provideStreamPlayerLoadingConfig, provideTopSheetStrategy, provideTopSheetStrategyDefaults, resolveClosestOverlay, rightSheetOverlayStrategy, startFullscreenEnterAnimation, startFullscreenLeaveAnimation, toGridPosition, topSheetOverlayStrategy, transformingBottomSheetToDialogOverlayStrategy, transformingFullScreenDialogToDialogOverlayStrategy, transformingFullScreenDialogToRightSheetOverlayStrategy };
|
|
16834
17135
|
//# sourceMappingURL=ethlete-components.mjs.map
|