@skyux/core 9.5.1 → 9.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/documentation.json +1190 -1400
- package/esm2022/index.mjs +2 -1
- package/esm2022/lib/modules/affix/affixer.mjs +3 -3
- package/esm2022/lib/modules/affix/dom-utils.mjs +3 -2
- package/esm2022/lib/modules/content-info-provider/content-info-descriptor.mjs +2 -0
- package/esm2022/lib/modules/content-info-provider/content-info.mjs +1 -1
- package/esm2022/lib/modules/resize-observer/resize-observer-media-query.service.mjs +6 -9
- package/esm2022/lib/modules/resize-observer/resize-observer.service.mjs +29 -16
- package/esm2022/lib/modules/screen-reader-label/screen-reader-label.directive.mjs +66 -0
- package/esm2022/testing/resize-observer-mock.mjs +6 -1
- package/esm2022/version.mjs +1 -1
- package/fesm2022/skyux-core-testing.mjs +5 -0
- package/fesm2022/skyux-core-testing.mjs.map +1 -1
- package/fesm2022/skyux-core.mjs +100 -26
- package/fesm2022/skyux-core.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/lib/modules/content-info-provider/content-info-descriptor.d.ts +16 -0
- package/lib/modules/content-info-provider/content-info.d.ts +11 -1
- package/lib/modules/resize-observer/resize-observer-media-query.service.d.ts +0 -2
- package/lib/modules/resize-observer/resize-observer.service.d.ts +1 -2
- package/lib/modules/screen-reader-label/screen-reader-label.directive.d.ts +20 -0
- package/package.json +2 -2
@@ -0,0 +1,66 @@
|
|
1
|
+
import { Directive, ElementRef, Input, Renderer2, inject, } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
const SCREEN_READER_LABELS_CONTAINER_ID = 'sky-screen-reader-labels-container';
|
4
|
+
/**
|
5
|
+
* Adds the element to a screen reader only section of the body.
|
6
|
+
* This prevents components' DOM from including text only intended for screen readers.
|
7
|
+
*
|
8
|
+
* @internal
|
9
|
+
*/
|
10
|
+
export class SkyScreenReaderLabelDirective {
|
11
|
+
ngOnDestroy() {
|
12
|
+
this.#removeLabelEl();
|
13
|
+
}
|
14
|
+
/**
|
15
|
+
* Indicates if the label should be created in the DOM.
|
16
|
+
* @default false
|
17
|
+
*/
|
18
|
+
set createLabel(value) {
|
19
|
+
this.#_createLabel = value ?? false;
|
20
|
+
this.#updateLabelEl();
|
21
|
+
}
|
22
|
+
get createLabel() {
|
23
|
+
return this.#_createLabel;
|
24
|
+
}
|
25
|
+
#elementRef = inject(ElementRef);
|
26
|
+
#renderer = inject(Renderer2);
|
27
|
+
#_createLabel = false;
|
28
|
+
#updateLabelEl() {
|
29
|
+
if (this.createLabel) {
|
30
|
+
const containerEl = this.#getContainerEl() || this.#createContainerEl();
|
31
|
+
this.#renderer.appendChild(containerEl, this.#elementRef.nativeElement);
|
32
|
+
}
|
33
|
+
else {
|
34
|
+
this.#removeLabelEl();
|
35
|
+
}
|
36
|
+
}
|
37
|
+
#getContainerEl() {
|
38
|
+
return document.getElementById(SCREEN_READER_LABELS_CONTAINER_ID);
|
39
|
+
}
|
40
|
+
#createContainerEl() {
|
41
|
+
const el = document.createElement('div');
|
42
|
+
el.id = SCREEN_READER_LABELS_CONTAINER_ID;
|
43
|
+
el.style.display = 'none';
|
44
|
+
this.#renderer.appendChild(document.body, el);
|
45
|
+
return el;
|
46
|
+
}
|
47
|
+
#removeLabelEl() {
|
48
|
+
const containerEl = this.#getContainerEl();
|
49
|
+
this.#elementRef.nativeElement.remove();
|
50
|
+
if (containerEl && containerEl.childNodes.length === 0) {
|
51
|
+
containerEl.remove();
|
52
|
+
}
|
53
|
+
}
|
54
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyScreenReaderLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
55
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: SkyScreenReaderLabelDirective, isStandalone: true, selector: "[skyScreenReaderLabel]", inputs: { createLabel: "createLabel" }, ngImport: i0 }); }
|
56
|
+
}
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyScreenReaderLabelDirective, decorators: [{
|
58
|
+
type: Directive,
|
59
|
+
args: [{
|
60
|
+
selector: '[skyScreenReaderLabel]',
|
61
|
+
standalone: true,
|
62
|
+
}]
|
63
|
+
}], propDecorators: { createLabel: [{
|
64
|
+
type: Input
|
65
|
+
}] } });
|
66
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NyZWVuLXJlYWRlci1sYWJlbC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS9zcmMvbGliL21vZHVsZXMvc2NyZWVuLXJlYWRlci1sYWJlbC9zY3JlZW4tcmVhZGVyLWxhYmVsLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixLQUFLLEVBRUwsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQzs7QUFFdkIsTUFBTSxpQ0FBaUMsR0FBRyxvQ0FBb0MsQ0FBQztBQUUvRTs7Ozs7R0FLRztBQUtILE1BQU0sT0FBTyw2QkFBNkI7SUFDakMsV0FBVztRQUNoQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVEOzs7T0FHRztJQUNILElBQ1csV0FBVyxDQUFDLEtBQTBCO1FBQy9DLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxJQUFJLEtBQUssQ0FBQztRQUNwQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUIsQ0FBQztJQUVRLFdBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN2QyxhQUFhLEdBQUcsS0FBSyxDQUFDO0lBRXRCLGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDcEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBRXhFLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQ3pFO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sUUFBUSxDQUFDLGNBQWMsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDO0lBQ3BFLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsTUFBTSxFQUFFLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxFQUFFLENBQUMsRUFBRSxHQUFHLGlDQUFpQyxDQUFDO1FBQzFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUUxQixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRTlDLE9BQU8sRUFBRSxDQUFDO0lBQ1osQ0FBQztJQUVELGNBQWM7UUFDWixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFFM0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFeEMsSUFBSSxXQUFXLElBQUksV0FBVyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RELFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztTQUN0QjtJQUNILENBQUM7OEdBdkRVLDZCQUE2QjtrR0FBN0IsNkJBQTZCOzsyRkFBN0IsNkJBQTZCO2tCQUp6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFXWSxXQUFXO3NCQURyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBSZW5kZXJlcjIsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IFNDUkVFTl9SRUFERVJfTEFCRUxTX0NPTlRBSU5FUl9JRCA9ICdza3ktc2NyZWVuLXJlYWRlci1sYWJlbHMtY29udGFpbmVyJztcblxuLyoqXG4gKiBBZGRzIHRoZSBlbGVtZW50IHRvIGEgc2NyZWVuIHJlYWRlciBvbmx5IHNlY3Rpb24gb2YgdGhlIGJvZHkuXG4gKiBUaGlzIHByZXZlbnRzIGNvbXBvbmVudHMnIERPTSBmcm9tIGluY2x1ZGluZyB0ZXh0IG9ubHkgaW50ZW5kZWQgZm9yIHNjcmVlbiByZWFkZXJzLlxuICpcbiAqIEBpbnRlcm5hbFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbc2t5U2NyZWVuUmVhZGVyTGFiZWxdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U2NyZWVuUmVhZGVyTGFiZWxEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jcmVtb3ZlTGFiZWxFbCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyBpZiB0aGUgbGFiZWwgc2hvdWxkIGJlIGNyZWF0ZWQgaW4gdGhlIERPTS5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY3JlYXRlTGFiZWwodmFsdWU6IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfY3JlYXRlTGFiZWwgPSB2YWx1ZSA/PyBmYWxzZTtcbiAgICB0aGlzLiN1cGRhdGVMYWJlbEVsKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGNyZWF0ZUxhYmVsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLiNfY3JlYXRlTGFiZWw7XG4gIH1cblxuICByZWFkb25seSAjZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgI3JlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICNfY3JlYXRlTGFiZWwgPSBmYWxzZTtcblxuICAjdXBkYXRlTGFiZWxFbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jcmVhdGVMYWJlbCkge1xuICAgICAgY29uc3QgY29udGFpbmVyRWwgPSB0aGlzLiNnZXRDb250YWluZXJFbCgpIHx8IHRoaXMuI2NyZWF0ZUNvbnRhaW5lckVsKCk7XG5cbiAgICAgIHRoaXMuI3JlbmRlcmVyLmFwcGVuZENoaWxkKGNvbnRhaW5lckVsLCB0aGlzLiNlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNyZW1vdmVMYWJlbEVsKCk7XG4gICAgfVxuICB9XG5cbiAgI2dldENvbnRhaW5lckVsKCk6IEhUTUxFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFNDUkVFTl9SRUFERVJfTEFCRUxTX0NPTlRBSU5FUl9JRCk7XG4gIH1cblxuICAjY3JlYXRlQ29udGFpbmVyRWwoKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IGVsID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgZWwuaWQgPSBTQ1JFRU5fUkVBREVSX0xBQkVMU19DT05UQUlORVJfSUQ7XG4gICAgZWwuc3R5bGUuZGlzcGxheSA9ICdub25lJztcblxuICAgIHRoaXMuI3JlbmRlcmVyLmFwcGVuZENoaWxkKGRvY3VtZW50LmJvZHksIGVsKTtcblxuICAgIHJldHVybiBlbDtcbiAgfVxuXG4gICNyZW1vdmVMYWJlbEVsKCk6IHZvaWQge1xuICAgIGNvbnN0IGNvbnRhaW5lckVsID0gdGhpcy4jZ2V0Q29udGFpbmVyRWwoKTtcblxuICAgIHRoaXMuI2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmUoKTtcblxuICAgIGlmIChjb250YWluZXJFbCAmJiBjb250YWluZXJFbC5jaGlsZE5vZGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgY29udGFpbmVyRWwucmVtb3ZlKCk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
@@ -23,6 +23,11 @@ export const mockResizeObserverHandle = {
|
|
23
23
|
},
|
24
24
|
};
|
25
25
|
export function mockResizeObserver() {
|
26
|
+
window.requestAnimationFrame = (callback) => {
|
27
|
+
callback();
|
28
|
+
return 0;
|
29
|
+
};
|
30
|
+
window.cancelAnimationFrame = (_) => undefined;
|
26
31
|
window.ResizeObserver = class {
|
27
32
|
constructor(callback) {
|
28
33
|
mockResizeObserverHandle.callback = callback;
|
@@ -32,4 +37,4 @@ export function mockResizeObserver() {
|
|
32
37
|
unobserve(element) { }
|
33
38
|
};
|
34
39
|
}
|
35
|
-
//# sourceMappingURL=data:application/json;base64,
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLW1vY2suanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvY29yZS90ZXN0aW5nL3NyYy9yZXNpemUtb2JzZXJ2ZXItbW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBd0I7SUFDMUQsTUFBTSxFQUFFLEVBQWE7SUFDckIsYUFBYSxFQUFFLEVBQUU7SUFDakIsY0FBYyxFQUFFLEVBQUU7SUFDbEIsV0FBVyxFQUFFO1FBQ1gsS0FBSyxFQUFFLEVBQUU7UUFDVCxNQUFNLEVBQUUsRUFBRTtRQUNWLENBQUMsRUFBRSxFQUFFO1FBQ0wsQ0FBQyxFQUFFLEVBQUU7UUFDTCxHQUFHLEVBQUUsRUFBRTtRQUNQLE1BQU0sRUFBRSxFQUFFO1FBQ1YsSUFBSSxFQUFFLEVBQUU7UUFDUixLQUFLLEVBQUUsRUFBRTtRQUNULE1BQU0sRUFBRSxHQUFHLEVBQUUsQ0FBQyxNQUFNO0tBQ0Y7SUFDcEIseUJBQXlCLEVBQUUsRUFBRTtDQUM5QixDQUFDO0FBRUYsTUFBTSxlQUFlLEdBQTJCLENBQzlDLE9BQThCLEVBQzlCLFFBQXdCLEVBQ3hCLEVBQUUsR0FBRSxDQUFDLENBQUM7QUFFUixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRztJQUN0QyxRQUFRLEVBQUUsZUFBZTtJQUN6QixJQUFJLEVBQUUsQ0FBQyxPQUE4QixFQUFFLFFBQXlCLEVBQUUsRUFBRTtRQUNsRSx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLFFBQVMsQ0FBQyxDQUFDO0lBQ3hELENBQUM7Q0FDRixDQUFDO0FBRUYsTUFBTSxVQUFVLGtCQUFrQjtJQUMvQixNQUFjLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxRQUFvQixFQUFVLEVBQUU7UUFDdkUsUUFBUSxFQUFFLENBQUM7UUFDWCxPQUFPLENBQUMsQ0FBQztJQUNYLENBQUMsQ0FBQztJQUNELE1BQWMsQ0FBQyxvQkFBb0IsR0FBRyxDQUFDLENBQVMsRUFBUSxFQUFFLENBQUMsU0FBUyxDQUFDO0lBQ3RFLE1BQU0sQ0FBQyxjQUFjLEdBQUc7UUFDdEIsWUFBWSxRQUFnQztZQUMxQyx3QkFBd0IsQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQy9DLENBQUM7UUFFTSxVQUFVLEtBQUksQ0FBQztRQUVmLE9BQU8sQ0FBQyxNQUFlLEVBQUUsT0FBK0IsSUFBRyxDQUFDO1FBRTVELFNBQVMsQ0FBQyxPQUFvQixJQUFHLENBQUM7S0FDMUMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgbW9ja1Jlc2l6ZU9ic2VydmVyRW50cnk6IFJlc2l6ZU9ic2VydmVyRW50cnkgPSB7XG4gIHRhcmdldDoge30gYXMgRWxlbWVudCxcbiAgYm9yZGVyQm94U2l6ZTogW10sXG4gIGNvbnRlbnRCb3hTaXplOiBbXSxcbiAgY29udGVudFJlY3Q6IHtcbiAgICB3aWR0aDogMjAsXG4gICAgaGVpZ2h0OiAyMCxcbiAgICB4OiAyMCxcbiAgICB5OiAyMCxcbiAgICB0b3A6IDIwLFxuICAgIGJvdHRvbTogMjAsXG4gICAgbGVmdDogMjAsXG4gICAgcmlnaHQ6IDIwLFxuICAgIHRvSlNPTjogKCkgPT4gJ3RydWUnLFxuICB9IGFzIERPTVJlY3RSZWFkT25seSxcbiAgZGV2aWNlUGl4ZWxDb250ZW50Qm94U2l6ZTogW10sXG59O1xuXG5jb25zdCBkZWZhdWx0Q2FsbGJhY2s6IFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2sgPSAoXG4gIGVudHJpZXM6IFJlc2l6ZU9ic2VydmVyRW50cnlbXSxcbiAgb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyXG4pID0+IHt9O1xuXG5leHBvcnQgY29uc3QgbW9ja1Jlc2l6ZU9ic2VydmVySGFuZGxlID0ge1xuICBjYWxsYmFjazogZGVmYXVsdENhbGxiYWNrLFxuICBlbWl0OiAoZW50cmllczogUmVzaXplT2JzZXJ2ZXJFbnRyeVtdLCBvYnNlcnZlcj86IFJlc2l6ZU9ic2VydmVyKSA9PiB7XG4gICAgbW9ja1Jlc2l6ZU9ic2VydmVySGFuZGxlLmNhbGxiYWNrKGVudHJpZXMsIG9ic2VydmVyISk7XG4gIH0sXG59O1xuXG5leHBvcnQgZnVuY3Rpb24gbW9ja1Jlc2l6ZU9ic2VydmVyKCkge1xuICAod2luZG93IGFzIGFueSkucmVxdWVzdEFuaW1hdGlvbkZyYW1lID0gKGNhbGxiYWNrOiAoKSA9PiB2b2lkKTogbnVtYmVyID0+IHtcbiAgICBjYWxsYmFjaygpO1xuICAgIHJldHVybiAwO1xuICB9O1xuICAod2luZG93IGFzIGFueSkuY2FuY2VsQW5pbWF0aW9uRnJhbWUgPSAoXzogbnVtYmVyKTogdm9pZCA9PiB1bmRlZmluZWQ7XG4gIHdpbmRvdy5SZXNpemVPYnNlcnZlciA9IGNsYXNzIHtcbiAgICBjb25zdHJ1Y3RvcihjYWxsYmFjazogUmVzaXplT2JzZXJ2ZXJDYWxsYmFjaykge1xuICAgICAgbW9ja1Jlc2l6ZU9ic2VydmVySGFuZGxlLmNhbGxiYWNrID0gY2FsbGJhY2s7XG4gICAgfVxuXG4gICAgcHVibGljIGRpc2Nvbm5lY3QoKSB7fVxuXG4gICAgcHVibGljIG9ic2VydmUodGFyZ2V0OiBFbGVtZW50LCBvcHRpb25zPzogUmVzaXplT2JzZXJ2ZXJPcHRpb25zKSB7fVxuXG4gICAgcHVibGljIHVub2JzZXJ2ZShlbGVtZW50OiBIVE1MRWxlbWVudCkge31cbiAgfTtcbn1cbiJdfQ==
|
package/esm2022/version.mjs
CHANGED
@@ -15,5 +15,5 @@ export class Version {
|
|
15
15
|
/**
|
16
16
|
* Represents the version of @skyux/core.
|
17
17
|
*/
|
18
|
-
export const VERSION = new Version('9.
|
18
|
+
export const VERSION = new Version('9.6.0');
|
19
19
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9jb3JlL3NyYy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHdDQUF3QztBQUN4QyxtRkFBbUY7QUFFbkY7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLE9BQU87SUFLbEIsWUFBNEIsSUFBWTtRQUFaLFNBQUksR0FBSixJQUFJLENBQVE7UUFDdEMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNsRCxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gVGFrZW4gZnJvbSBBbmd1bGFyJ3MgdmVyc2lvbi50cyBmaWxlLlxuLy8gU2VlOiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTYuMi54L3BhY2thZ2VzL2NvcmUvc3JjL3ZlcnNpb24udHNcblxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSB2ZXJzaW9uIG9mIGEgcGFja2FnZS5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgVmVyc2lvbiB7XG4gIHB1YmxpYyByZWFkb25seSBtYWpvcjogc3RyaW5nO1xuICBwdWJsaWMgcmVhZG9ubHkgbWlub3I6IHN0cmluZztcbiAgcHVibGljIHJlYWRvbmx5IHBhdGNoOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IGZ1bGw6IHN0cmluZykge1xuICAgIHRoaXMubWFqb3IgPSBmdWxsLnNwbGl0KCcuJylbMF07XG4gICAgdGhpcy5taW5vciA9IGZ1bGwuc3BsaXQoJy4nKVsxXTtcbiAgICB0aGlzLnBhdGNoID0gZnVsbC5zcGxpdCgnLicpLnNsaWNlKDIpLmpvaW4oJy4nKTtcbiAgfVxufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHZlcnNpb24gb2YgQHNreXV4L2NvcmUuXG4gKi9cbmV4cG9ydCBjb25zdCBWRVJTSU9OID0gbmV3IFZlcnNpb24oJzAuMC4wLVBMQUNFSE9MREVSJyk7XG4iXX0=
|
@@ -210,6 +210,11 @@ const mockResizeObserverHandle = {
|
|
210
210
|
},
|
211
211
|
};
|
212
212
|
function mockResizeObserver() {
|
213
|
+
window.requestAnimationFrame = (callback) => {
|
214
|
+
callback();
|
215
|
+
return 0;
|
216
|
+
};
|
217
|
+
window.cancelAnimationFrame = (_) => undefined;
|
213
218
|
window.ResizeObserver = class {
|
214
219
|
constructor(callback) {
|
215
220
|
mockResizeObserverHandle.callback = callback;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"skyux-core-testing.mjs","sources":["../../../../../libs/components/core/testing/src/overlay/overlay-harness.ts","../../../../../libs/components/core/testing/src/shared/component-harness.ts","../../../../../libs/components/core/testing/src/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/core-testing.module.ts","../../../../../libs/components/core/testing/src/resize-observer-mock.ts","../../../../../libs/components/core/testing/src/skyux-core-testing.ts"],"sourcesContent":["import {\n ComponentHarness,\n HarnessPredicate,\n HarnessQuery,\n TestElement,\n} from '@angular/cdk/testing';\n\nimport { SkyOverlayHarnessFilters } from './overlay-harness-filters';\n\n/**\n * Harness for interacting with an overlay component in tests.\n * @internal\n */\nexport class SkyOverlayHarness extends ComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-overlay';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyOverlayHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyOverlayHarnessFilters\n ): HarnessPredicate<SkyOverlayHarness> {\n return new HarnessPredicate(SkyOverlayHarness, filters);\n }\n\n /**\n * Returns a child harness.\n */\n public async queryHarness<T extends ComponentHarness>(\n harness: HarnessQuery<T>\n ): Promise<T | null> {\n return this.locatorForOptional(harness)();\n }\n\n /**\n * Returns child harnesses.\n */\n public async queryHarnesses<T extends ComponentHarness>(\n harness: HarnessQuery<T>\n ): Promise<T[]> {\n return this.locatorForAll(harness)();\n }\n\n /**\n * Returns a child test element.\n */\n public async querySelector(selector: string): Promise<TestElement | null> {\n return this.locatorForOptional(selector)();\n }\n\n /**\n * Returns child test elements.\n */\n public async querySelectorAll(selector: string): Promise<TestElement[]> {\n return this.locatorForAll(selector)();\n }\n}\n","import {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\nimport { SkyHarnessFilters } from './harness-filters';\n\n/**\n * @internal\n */\nexport abstract class SkyComponentHarness extends ComponentHarness {\n protected static getDataSkyIdPredicate<T extends SkyComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n filters: SkyHarnessFilters\n ) {\n return new HarnessPredicate(this, filters).addOption(\n 'dataSkyId',\n filters.dataSkyId,\n (harness, text) =>\n HarnessPredicate.stringMatches(harness.#getSkyId(), text)\n );\n }\n\n async #getSkyId(): Promise<string | null> {\n return (await this.host()).getAttribute('data-sky-id');\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryListener,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n public static override xs = '(max-width: 767px)';\n public static override sm = '(min-width: 768px) and (max-width: 991px)';\n public static override md = '(min-width: 992px) and (max-width: 1199px)';\n public static override lg = '(min-width: 1200px)';\n\n public override get current(): SkyMediaBreakpoints {\n return this.currentBreakpoints;\n }\n\n public override set current(breakpoints: SkyMediaBreakpoints) {\n this.currentBreakpoints = breakpoints;\n }\n\n public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current\n );\n\n protected currentBreakpoints = SkyMediaBreakpoints.md;\n\n constructor() {\n super(\n new NgZone({\n enableLongStackTrace: true,\n })\n );\n }\n\n public override subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentMockSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public fire(args: SkyMediaBreakpoints): void {\n this.currentBreakpoints = args;\n this.currentMockSubject.next(this.currentBreakpoints);\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public override destroy(): void {}\n}\n","import { Injectable } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { Observable, of as observableOf } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n public override getConfig(key: string, defaultConfig?: any): Observable<any> {\n switch (key) {\n case 'defaultSettings':\n return observableOf(defaultConfig);\n case 'badData':\n return observableOf({ invalidProperty: 'invalidData' });\n default: {\n return observableOf({\n settings: {\n userSettings: {\n singleColumn: {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n multiColumn: [\n {\n tiles: [\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n ],\n },\n ],\n },\n defaultSettings: ['tile-1', 'tile-2'],\n },\n });\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyMediaQueryService, SkyUIConfigService } from '@skyux/core';\n\nimport { MockSkyMediaQueryService } from './mock-media-query.service';\nimport { MockSkyUIConfigService } from './mock-ui-config.service';\n\n/**\n * @internal\n */\n@NgModule({\n providers: [\n { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },\n {\n provide: SkyUIConfigService,\n useClass: MockSkyUIConfigService,\n },\n ],\n})\nexport class SkyCoreTestingModule {}\n","export const mockResizeObserverEntry: ResizeObserverEntry = {\n target: {} as Element,\n borderBoxSize: [],\n contentBoxSize: [],\n contentRect: {\n width: 20,\n height: 20,\n x: 20,\n y: 20,\n top: 20,\n bottom: 20,\n left: 20,\n right: 20,\n toJSON: () => 'true',\n } as DOMRectReadOnly,\n devicePixelContentBoxSize: [],\n};\n\nconst defaultCallback: ResizeObserverCallback = (\n entries: ResizeObserverEntry[],\n observer: ResizeObserver\n) => {};\n\nexport const mockResizeObserverHandle = {\n callback: defaultCallback,\n emit: (entries: ResizeObserverEntry[], observer?: ResizeObserver) => {\n mockResizeObserverHandle.callback(entries, observer!);\n },\n};\n\nexport function mockResizeObserver() {\n window.ResizeObserver = class {\n constructor(callback: ResizeObserverCallback) {\n mockResizeObserverHandle.callback = callback;\n }\n\n public disconnect() {}\n\n public observe(target: Element, options?: ResizeObserverOptions) {}\n\n public unobserve(element: HTMLElement) {}\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"skyux-core-testing.mjs","sources":["../../../../../libs/components/core/testing/src/overlay/overlay-harness.ts","../../../../../libs/components/core/testing/src/shared/component-harness.ts","../../../../../libs/components/core/testing/src/mock-media-query.service.ts","../../../../../libs/components/core/testing/src/mock-ui-config.service.ts","../../../../../libs/components/core/testing/src/core-testing.module.ts","../../../../../libs/components/core/testing/src/resize-observer-mock.ts","../../../../../libs/components/core/testing/src/skyux-core-testing.ts"],"sourcesContent":["import {\n ComponentHarness,\n HarnessPredicate,\n HarnessQuery,\n TestElement,\n} from '@angular/cdk/testing';\n\nimport { SkyOverlayHarnessFilters } from './overlay-harness-filters';\n\n/**\n * Harness for interacting with an overlay component in tests.\n * @internal\n */\nexport class SkyOverlayHarness extends ComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-overlay';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyOverlayHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyOverlayHarnessFilters\n ): HarnessPredicate<SkyOverlayHarness> {\n return new HarnessPredicate(SkyOverlayHarness, filters);\n }\n\n /**\n * Returns a child harness.\n */\n public async queryHarness<T extends ComponentHarness>(\n harness: HarnessQuery<T>\n ): Promise<T | null> {\n return this.locatorForOptional(harness)();\n }\n\n /**\n * Returns child harnesses.\n */\n public async queryHarnesses<T extends ComponentHarness>(\n harness: HarnessQuery<T>\n ): Promise<T[]> {\n return this.locatorForAll(harness)();\n }\n\n /**\n * Returns a child test element.\n */\n public async querySelector(selector: string): Promise<TestElement | null> {\n return this.locatorForOptional(selector)();\n }\n\n /**\n * Returns child test elements.\n */\n public async querySelectorAll(selector: string): Promise<TestElement[]> {\n return this.locatorForAll(selector)();\n }\n}\n","import {\n ComponentHarness,\n ComponentHarnessConstructor,\n HarnessPredicate,\n} from '@angular/cdk/testing';\n\nimport { SkyHarnessFilters } from './harness-filters';\n\n/**\n * @internal\n */\nexport abstract class SkyComponentHarness extends ComponentHarness {\n protected static getDataSkyIdPredicate<T extends SkyComponentHarness>(\n this: ComponentHarnessConstructor<T>,\n filters: SkyHarnessFilters\n ) {\n return new HarnessPredicate(this, filters).addOption(\n 'dataSkyId',\n filters.dataSkyId,\n (harness, text) =>\n HarnessPredicate.stringMatches(harness.#getSkyId(), text)\n );\n }\n\n async #getSkyId(): Promise<string | null> {\n return (await this.host()).getAttribute('data-sky-id');\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport {\n SkyMediaBreakpoints,\n SkyMediaQueryListener,\n SkyMediaQueryService,\n} from '@skyux/core';\n\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class MockSkyMediaQueryService extends SkyMediaQueryService {\n public static override xs = '(max-width: 767px)';\n public static override sm = '(min-width: 768px) and (max-width: 991px)';\n public static override md = '(min-width: 992px) and (max-width: 1199px)';\n public static override lg = '(min-width: 1200px)';\n\n public override get current(): SkyMediaBreakpoints {\n return this.currentBreakpoints;\n }\n\n public override set current(breakpoints: SkyMediaBreakpoints) {\n this.currentBreakpoints = breakpoints;\n }\n\n public currentMockSubject = new BehaviorSubject<SkyMediaBreakpoints>(\n this.current\n );\n\n protected currentBreakpoints = SkyMediaBreakpoints.md;\n\n constructor() {\n super(\n new NgZone({\n enableLongStackTrace: true,\n })\n );\n }\n\n public override subscribe(listener: SkyMediaQueryListener): Subscription {\n return this.currentMockSubject.subscribe({\n next: (breakpoints: SkyMediaBreakpoints) => {\n listener(breakpoints);\n },\n });\n }\n\n public fire(args: SkyMediaBreakpoints): void {\n this.currentBreakpoints = args;\n this.currentMockSubject.next(this.currentBreakpoints);\n }\n\n /* istanbul ignore next */\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n public override destroy(): void {}\n}\n","import { Injectable } from '@angular/core';\nimport { SkyUIConfigService } from '@skyux/core';\n\nimport { Observable, of as observableOf } from 'rxjs';\n\n/**\n * @internal\n */\n@Injectable()\nexport class MockSkyUIConfigService extends SkyUIConfigService {\n public override getConfig(key: string, defaultConfig?: any): Observable<any> {\n switch (key) {\n case 'defaultSettings':\n return observableOf(defaultConfig);\n case 'badData':\n return observableOf({ invalidProperty: 'invalidData' });\n default: {\n return observableOf({\n settings: {\n userSettings: {\n singleColumn: {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n multiColumn: [\n {\n tiles: [\n {\n id: 'tile-2',\n isCollapsed: true,\n },\n ],\n },\n {\n tiles: [\n {\n id: 'tile-1',\n isCollapsed: true,\n },\n ],\n },\n ],\n },\n defaultSettings: ['tile-1', 'tile-2'],\n },\n });\n }\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SkyMediaQueryService, SkyUIConfigService } from '@skyux/core';\n\nimport { MockSkyMediaQueryService } from './mock-media-query.service';\nimport { MockSkyUIConfigService } from './mock-ui-config.service';\n\n/**\n * @internal\n */\n@NgModule({\n providers: [\n { provide: SkyMediaQueryService, useClass: MockSkyMediaQueryService },\n {\n provide: SkyUIConfigService,\n useClass: MockSkyUIConfigService,\n },\n ],\n})\nexport class SkyCoreTestingModule {}\n","export const mockResizeObserverEntry: ResizeObserverEntry = {\n target: {} as Element,\n borderBoxSize: [],\n contentBoxSize: [],\n contentRect: {\n width: 20,\n height: 20,\n x: 20,\n y: 20,\n top: 20,\n bottom: 20,\n left: 20,\n right: 20,\n toJSON: () => 'true',\n } as DOMRectReadOnly,\n devicePixelContentBoxSize: [],\n};\n\nconst defaultCallback: ResizeObserverCallback = (\n entries: ResizeObserverEntry[],\n observer: ResizeObserver\n) => {};\n\nexport const mockResizeObserverHandle = {\n callback: defaultCallback,\n emit: (entries: ResizeObserverEntry[], observer?: ResizeObserver) => {\n mockResizeObserverHandle.callback(entries, observer!);\n },\n};\n\nexport function mockResizeObserver() {\n (window as any).requestAnimationFrame = (callback: () => void): number => {\n callback();\n return 0;\n };\n (window as any).cancelAnimationFrame = (_: number): void => undefined;\n window.ResizeObserver = class {\n constructor(callback: ResizeObserverCallback) {\n mockResizeObserverHandle.callback = callback;\n }\n\n public disconnect() {}\n\n public observe(target: Element, options?: ResizeObserverOptions) {}\n\n public unobserve(element: HTMLElement) {}\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["observableOf"],"mappings":"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"}
|
package/fesm2022/skyux-core.mjs
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
import * as i0 from '@angular/core';
|
2
|
-
import { NgModule, Injectable, inject, RendererFactory2, NgZone, EventEmitter, Directive, Input, Output, EnvironmentInjector, createEnvironmentInjector, createComponent, ChangeDetectorRef, ElementRef, ViewContainerRef, Component, ChangeDetectionStrategy, ViewChild, InjectionToken, Optional, Inject, Pipe, HostBinding, ApplicationRef } from '@angular/core';
|
2
|
+
import { NgModule, Injectable, inject, RendererFactory2, NgZone, EventEmitter, Directive, Input, Output, EnvironmentInjector, createEnvironmentInjector, createComponent, ChangeDetectorRef, ElementRef, ViewContainerRef, Component, ChangeDetectionStrategy, ViewChild, InjectionToken, Optional, Inject, Pipe, HostBinding, ApplicationRef, Renderer2 } from '@angular/core';
|
3
3
|
import * as i1$1 from '@angular/common';
|
4
4
|
import { CommonModule, DOCUMENT } from '@angular/common';
|
5
5
|
import { Subject, Subscription, ReplaySubject, fromEvent, BehaviorSubject, Observable, of, concat, animationFrameScheduler } from 'rxjs';
|
@@ -336,7 +336,7 @@ function getElementOffset(element, bufferOffset) {
|
|
336
336
|
}
|
337
337
|
function getOverflowParents(child) {
|
338
338
|
const bodyElement = window.document.body;
|
339
|
-
const results = [
|
339
|
+
const results = [];
|
340
340
|
let parentElement = child?.parentNode;
|
341
341
|
while (parentElement !== undefined &&
|
342
342
|
parentElement !== bodyElement &&
|
@@ -351,6 +351,7 @@ function getOverflowParents(child) {
|
|
351
351
|
}
|
352
352
|
parentElement = parentElement.parentNode;
|
353
353
|
}
|
354
|
+
results.push(bodyElement);
|
354
355
|
return results;
|
355
356
|
}
|
356
357
|
/**
|
@@ -700,10 +701,10 @@ class SkyAffixer {
|
|
700
701
|
return offset;
|
701
702
|
}
|
702
703
|
#getImmediateOverflowParent() {
|
703
|
-
return this.#overflowParents[
|
704
|
+
return this.#overflowParents[0];
|
704
705
|
}
|
705
706
|
#getAutoFitContextParent() {
|
706
|
-
const bodyElement = this.#overflowParents[
|
707
|
+
const bodyElement = this.#overflowParents[this.#overflowParents.length - 1];
|
707
708
|
return this.#config.autoFitContext === SkyAffixAutoFitContext.OverflowParent
|
708
709
|
? this.#getImmediateOverflowParent()
|
709
710
|
: bodyElement;
|
@@ -2907,16 +2908,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
2907
2908
|
* Service to create rxjs observables for changes to the content box dimensions of elements.
|
2908
2909
|
*/
|
2909
2910
|
class SkyResizeObserverService {
|
2910
|
-
#
|
2911
|
+
#next = new Map();
|
2912
|
+
#resizeObserver = new ResizeObserver((entries) => {
|
2913
|
+
entries.forEach((entry) => this.#callback(entry));
|
2914
|
+
});
|
2911
2915
|
#tracking = [];
|
2912
|
-
#
|
2913
|
-
|
2914
|
-
this.#zone = zone;
|
2915
|
-
this.#resizeObserver = new ResizeObserver((entries) => {
|
2916
|
-
entries.forEach((entry) => this.#callback(entry));
|
2917
|
-
});
|
2918
|
-
}
|
2916
|
+
#window = inject(SkyAppWindowRef);
|
2917
|
+
#zone = inject(NgZone);
|
2919
2918
|
ngOnDestroy() {
|
2919
|
+
this.#next.forEach((value) => this.#window.nativeWindow.cancelAnimationFrame(value));
|
2920
|
+
this.#tracking.forEach((value) => {
|
2921
|
+
value.subject.complete();
|
2922
|
+
this.#resizeObserver.unobserve(value.element);
|
2923
|
+
});
|
2920
2924
|
this.#resizeObserver.disconnect();
|
2921
2925
|
}
|
2922
2926
|
/**
|
@@ -2942,6 +2946,10 @@ class SkyResizeObserverService {
|
|
2942
2946
|
});
|
2943
2947
|
if (checkTracking === -1) {
|
2944
2948
|
this.#resizeObserver.unobserve(element.nativeElement);
|
2949
|
+
const deleteTracking = this.#tracking.findIndex((value) => value.subject === subject);
|
2950
|
+
if (deleteTracking > -1) {
|
2951
|
+
this.#tracking.splice(deleteTracking, 1);
|
2952
|
+
}
|
2945
2953
|
}
|
2946
2954
|
}));
|
2947
2955
|
const tracking = {
|
@@ -2954,19 +2962,24 @@ class SkyResizeObserverService {
|
|
2954
2962
|
}
|
2955
2963
|
#callback(entry) {
|
2956
2964
|
this.#tracking
|
2957
|
-
.filter((value) => !
|
2965
|
+
.filter((value) => !value.subject.closed)
|
2958
2966
|
.forEach((value) => {
|
2959
2967
|
/* istanbul ignore else */
|
2960
2968
|
if (value.element === entry.target) {
|
2961
2969
|
// Execute the callback within NgZone because Angular does not "monkey patch"
|
2962
2970
|
// ResizeObserver like it does for other features in the DOM.
|
2963
|
-
this.#
|
2964
|
-
|
2965
|
-
}
|
2971
|
+
if (this.#next.has(value.subject)) {
|
2972
|
+
this.#window.nativeWindow.cancelAnimationFrame(this.#next.get(value.subject));
|
2973
|
+
}
|
2974
|
+
this.#next.set(value.subject, this.#window.nativeWindow.requestAnimationFrame(() => {
|
2975
|
+
this.#zone.run(() => {
|
2976
|
+
value.subject.next(entry);
|
2977
|
+
});
|
2978
|
+
}));
|
2966
2979
|
}
|
2967
2980
|
});
|
2968
2981
|
}
|
2969
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyResizeObserverService, deps: [
|
2982
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyResizeObserverService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
2970
2983
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyResizeObserverService, providedIn: 'root' }); }
|
2971
2984
|
}
|
2972
2985
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyResizeObserverService, decorators: [{
|
@@ -2974,7 +2987,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
2974
2987
|
args: [{
|
2975
2988
|
providedIn: 'root',
|
2976
2989
|
}]
|
2977
|
-
}]
|
2990
|
+
}] });
|
2978
2991
|
|
2979
2992
|
const DEFAULT_BREAKPOINT = SkyMediaBreakpoints.md;
|
2980
2993
|
/**
|
@@ -3008,11 +3021,8 @@ class SkyResizeObserverMediaQueryService {
|
|
3008
3021
|
#currentBreakpoint = DEFAULT_BREAKPOINT;
|
3009
3022
|
#currentBreakpointObs = new ReplaySubject(1);
|
3010
3023
|
#ngUnsubscribe = new Subject();
|
3011
|
-
#resizeObserverSvc;
|
3024
|
+
#resizeObserverSvc = inject(SkyResizeObserverService);
|
3012
3025
|
#target;
|
3013
|
-
constructor(resizeObserverSvc) {
|
3014
|
-
this.#resizeObserverSvc = resizeObserverSvc;
|
3015
|
-
}
|
3016
3026
|
ngOnDestroy() {
|
3017
3027
|
this.unobserve();
|
3018
3028
|
this.#target = undefined;
|
@@ -3104,12 +3114,76 @@ class SkyResizeObserverMediaQueryService {
|
|
3104
3114
|
this.#updateBreakpoint(breakpoint, updateResponsiveClasses);
|
3105
3115
|
}
|
3106
3116
|
}
|
3107
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyResizeObserverMediaQueryService, deps: [
|
3117
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyResizeObserverMediaQueryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
3108
3118
|
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyResizeObserverMediaQueryService }); }
|
3109
3119
|
}
|
3110
3120
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyResizeObserverMediaQueryService, decorators: [{
|
3111
3121
|
type: Injectable
|
3112
|
-
}]
|
3122
|
+
}] });
|
3123
|
+
|
3124
|
+
const SCREEN_READER_LABELS_CONTAINER_ID = 'sky-screen-reader-labels-container';
|
3125
|
+
/**
|
3126
|
+
* Adds the element to a screen reader only section of the body.
|
3127
|
+
* This prevents components' DOM from including text only intended for screen readers.
|
3128
|
+
*
|
3129
|
+
* @internal
|
3130
|
+
*/
|
3131
|
+
class SkyScreenReaderLabelDirective {
|
3132
|
+
ngOnDestroy() {
|
3133
|
+
this.#removeLabelEl();
|
3134
|
+
}
|
3135
|
+
/**
|
3136
|
+
* Indicates if the label should be created in the DOM.
|
3137
|
+
* @default false
|
3138
|
+
*/
|
3139
|
+
set createLabel(value) {
|
3140
|
+
this.#_createLabel = value ?? false;
|
3141
|
+
this.#updateLabelEl();
|
3142
|
+
}
|
3143
|
+
get createLabel() {
|
3144
|
+
return this.#_createLabel;
|
3145
|
+
}
|
3146
|
+
#elementRef = inject(ElementRef);
|
3147
|
+
#renderer = inject(Renderer2);
|
3148
|
+
#_createLabel = false;
|
3149
|
+
#updateLabelEl() {
|
3150
|
+
if (this.createLabel) {
|
3151
|
+
const containerEl = this.#getContainerEl() || this.#createContainerEl();
|
3152
|
+
this.#renderer.appendChild(containerEl, this.#elementRef.nativeElement);
|
3153
|
+
}
|
3154
|
+
else {
|
3155
|
+
this.#removeLabelEl();
|
3156
|
+
}
|
3157
|
+
}
|
3158
|
+
#getContainerEl() {
|
3159
|
+
return document.getElementById(SCREEN_READER_LABELS_CONTAINER_ID);
|
3160
|
+
}
|
3161
|
+
#createContainerEl() {
|
3162
|
+
const el = document.createElement('div');
|
3163
|
+
el.id = SCREEN_READER_LABELS_CONTAINER_ID;
|
3164
|
+
el.style.display = 'none';
|
3165
|
+
this.#renderer.appendChild(document.body, el);
|
3166
|
+
return el;
|
3167
|
+
}
|
3168
|
+
#removeLabelEl() {
|
3169
|
+
const containerEl = this.#getContainerEl();
|
3170
|
+
this.#elementRef.nativeElement.remove();
|
3171
|
+
if (containerEl && containerEl.childNodes.length === 0) {
|
3172
|
+
containerEl.remove();
|
3173
|
+
}
|
3174
|
+
}
|
3175
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyScreenReaderLabelDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
3176
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: SkyScreenReaderLabelDirective, isStandalone: true, selector: "[skyScreenReaderLabel]", inputs: { createLabel: "createLabel" }, ngImport: i0 }); }
|
3177
|
+
}
|
3178
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SkyScreenReaderLabelDirective, decorators: [{
|
3179
|
+
type: Directive,
|
3180
|
+
args: [{
|
3181
|
+
selector: '[skyScreenReaderLabel]',
|
3182
|
+
standalone: true,
|
3183
|
+
}]
|
3184
|
+
}], propDecorators: { createLabel: [{
|
3185
|
+
type: Input
|
3186
|
+
}] } });
|
3113
3187
|
|
3114
3188
|
function notifySubscribers(subscribers, item) {
|
3115
3189
|
for (const subscriber of subscribers) {
|
@@ -3927,11 +4001,11 @@ class Version {
|
|
3927
4001
|
/**
|
3928
4002
|
* Represents the version of @skyux/core.
|
3929
4003
|
*/
|
3930
|
-
const VERSION = new Version('9.
|
4004
|
+
const VERSION = new Version('9.6.0');
|
3931
4005
|
|
3932
4006
|
/**
|
3933
4007
|
* Generated bundle index. Do not edit.
|
3934
4008
|
*/
|
3935
4009
|
|
3936
|
-
export { NumericOptions, SKY_LOG_LEVEL, SKY_STACKING_CONTEXT, SkyAffixAutoFitContext, SkyAffixModule, SkyAffixService, SkyAffixer, SkyAppFormat, SkyAppTitleService, SkyAppWindowRef, SkyContentInfoProvider, SkyCoreAdapterModule, SkyCoreAdapterService, SkyDefaultInputProvider, SkyDockItem, SkyDockLocation, SkyDockModule, SkyDockService, SkyDynamicComponentLegacyService, SkyDynamicComponentLocation, SkyDynamicComponentModule, SkyDynamicComponentService, SkyIdModule, SkyIdService, SkyLayoutHostService, SkyLiveAnnouncerService, SkyLogModule, SkyLogService, SkyMediaBreakpoints, SkyMediaQueryModule, SkyMediaQueryService, SkyMutationObserverService, SkyNumericModule, SkyNumericPipe, SkyNumericService, SkyOverlayInstance, SkyOverlayLegacyService, SkyOverlayModule, SkyOverlayService, SkyPercentPipe, SkyPercentPipeModule, SkyResizeObserverMediaQueryService, SkyResizeObserverService, SkyScrollableHostService, SkyTrimModule, SkyUIConfigService, SkyViewkeeperHostOptions, SkyViewkeeperModule, SkyViewkeeperService, VERSION, SkyAffixDirective as λ1, SkyIdDirective as λ2, SkyViewkeeperDirective as λ3, SkyTrimDirective as λ4 };
|
4010
|
+
export { NumericOptions, SKY_LOG_LEVEL, SKY_STACKING_CONTEXT, SkyAffixAutoFitContext, SkyAffixModule, SkyAffixService, SkyAffixer, SkyAppFormat, SkyAppTitleService, SkyAppWindowRef, SkyContentInfoProvider, SkyCoreAdapterModule, SkyCoreAdapterService, SkyDefaultInputProvider, SkyDockItem, SkyDockLocation, SkyDockModule, SkyDockService, SkyDynamicComponentLegacyService, SkyDynamicComponentLocation, SkyDynamicComponentModule, SkyDynamicComponentService, SkyIdModule, SkyIdService, SkyLayoutHostService, SkyLiveAnnouncerService, SkyLogModule, SkyLogService, SkyMediaBreakpoints, SkyMediaQueryModule, SkyMediaQueryService, SkyMutationObserverService, SkyNumericModule, SkyNumericPipe, SkyNumericService, SkyOverlayInstance, SkyOverlayLegacyService, SkyOverlayModule, SkyOverlayService, SkyPercentPipe, SkyPercentPipeModule, SkyResizeObserverMediaQueryService, SkyResizeObserverService, SkyScreenReaderLabelDirective, SkyScrollableHostService, SkyTrimModule, SkyUIConfigService, SkyViewkeeperHostOptions, SkyViewkeeperModule, SkyViewkeeperService, VERSION, SkyAffixDirective as λ1, SkyIdDirective as λ2, SkyViewkeeperDirective as λ3, SkyTrimDirective as λ4 };
|
3937
4011
|
//# sourceMappingURL=skyux-core.mjs.map
|