@ethlete/core 0.2.0-next.10 → 0.2.0-next.12
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/esm2020/lib/components/public-api.mjs +2 -0
- package/esm2020/lib/components/structured-data/public-api.mjs +2 -0
- package/esm2020/lib/components/structured-data/structured-data.component.mjs +37 -0
- package/esm2020/lib/public-api.mjs +2 -1
- package/esm2020/lib/types/angular.types.mjs +16 -2
- package/esm2020/lib/utils/public-api.mjs +3 -2
- package/esm2020/lib/utils/reactive-binding.util.mjs +102 -0
- package/fesm2015/ethlete-core.mjs +156 -8
- package/fesm2015/ethlete-core.mjs.map +1 -1
- package/fesm2020/ethlete-core.mjs +156 -8
- package/fesm2020/ethlete-core.mjs.map +1 -1
- package/lib/components/public-api.d.ts +1 -0
- package/lib/components/structured-data/public-api.d.ts +1 -0
- package/lib/components/structured-data/structured-data.component.d.ts +11 -0
- package/lib/public-api.d.ts +1 -0
- package/lib/types/angular.types.d.ts +7 -0
- package/lib/utils/public-api.d.ts +2 -1
- package/lib/utils/reactive-binding.util.d.ts +19 -0
- package/package.json +4 -4
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './structured-data/public-api';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDhCQUE4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zdHJ1Y3R1cmVkLWRhdGEvcHVibGljLWFwaSc7XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './structured-data.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc3RydWN0dXJlZC1kYXRhL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3RydWN0dXJlZC1kYXRhLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, HostBinding, inject, Input, ViewEncapsulation } from '@angular/core';
|
|
2
|
+
import { DomSanitizer } from '@angular/platform-browser';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class StructuredDataComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this._sanitizer = inject(DomSanitizer);
|
|
7
|
+
}
|
|
8
|
+
set data(currentValue) {
|
|
9
|
+
this.jsonLD = this.getSafeHTML(currentValue);
|
|
10
|
+
}
|
|
11
|
+
getSafeHTML(value) {
|
|
12
|
+
const json = value ? JSON.stringify(value, null, 2).replace(/<\/script>/g, '<\\/script>') : '';
|
|
13
|
+
const html = `<script type="application/ld+json">${json}</script>`;
|
|
14
|
+
return this._sanitizer.bypassSecurityTrustHtml(html);
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
StructuredDataComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: StructuredDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18
|
+
StructuredDataComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: StructuredDataComponent, isStandalone: true, selector: "et-structured-data", inputs: { data: "data" }, host: { properties: { "innerHTML": "this.jsonLD" }, styleAttribute: "display: none" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: StructuredDataComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{
|
|
22
|
+
selector: 'et-structured-data',
|
|
23
|
+
standalone: true,
|
|
24
|
+
template: '',
|
|
25
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
26
|
+
encapsulation: ViewEncapsulation.None,
|
|
27
|
+
host: {
|
|
28
|
+
style: 'display: none',
|
|
29
|
+
},
|
|
30
|
+
}]
|
|
31
|
+
}], propDecorators: { data: [{
|
|
32
|
+
type: Input
|
|
33
|
+
}], jsonLD: [{
|
|
34
|
+
type: HostBinding,
|
|
35
|
+
args: ['innerHTML']
|
|
36
|
+
}] } });
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RydWN0dXJlZC1kYXRhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL2NvbXBvbmVudHMvc3RydWN0dXJlZC1kYXRhL3N0cnVjdHVyZWQtZGF0YS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSCxPQUFPLEVBQUUsWUFBWSxFQUFZLE1BQU0sMkJBQTJCLENBQUM7O0FBYW5FLE1BQU0sT0FBTyx1QkFBdUI7SUFWcEM7UUFXbUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztLQWVwRDtJQWJDLElBQ0ksSUFBSSxDQUFDLFlBQWdGO1FBQ3ZGLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBS0QsV0FBVyxDQUFDLEtBQXlFO1FBQ25GLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUMvRixNQUFNLElBQUksR0FBRyxzQ0FBc0MsSUFBSSxXQUFXLENBQUM7UUFDbkUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZELENBQUM7O29IQWZVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLCtMQVB4QixFQUFFOzJGQU9ELHVCQUF1QjtrQkFWbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsb0JBQW9CO29CQUM5QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLEVBQUU7b0JBQ1osZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07b0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0osS0FBSyxFQUFFLGVBQWU7cUJBQ3ZCO2lCQUNGOzhCQUtLLElBQUk7c0JBRFAsS0FBSztnQkFNTixNQUFNO3NCQURMLFdBQVc7dUJBQUMsV0FBVyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBpbmplY3QsIElucHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuaW1wb3J0IHsgSnNvbkxEIH0gZnJvbSAnQGV0aGxldGUvdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1zdHJ1Y3R1cmVkLWRhdGEnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZTogJycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBob3N0OiB7XG4gICAgc3R5bGU6ICdkaXNwbGF5OiBub25lJyxcbiAgfSxcbn0pXG5leHBvcnQgY2xhc3MgU3RydWN0dXJlZERhdGFDb21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IF9zYW5pdGl6ZXIgPSBpbmplY3QoRG9tU2FuaXRpemVyKTtcblxuICBASW5wdXQoKVxuICBzZXQgZGF0YShjdXJyZW50VmFsdWU6IEpzb25MRC5XaXRoQ29udGV4dDxKc29uTEQuVGhpbmc+IHwgSnNvbkxELkdyYXBoIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuanNvbkxEID0gdGhpcy5nZXRTYWZlSFRNTChjdXJyZW50VmFsdWUpO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdpbm5lckhUTUwnKVxuICBqc29uTEQ/OiBTYWZlSHRtbDtcblxuICBnZXRTYWZlSFRNTCh2YWx1ZTogSnNvbkxELldpdGhDb250ZXh0PEpzb25MRC5UaGluZz4gfCBKc29uTEQuR3JhcGggfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgY29uc3QganNvbiA9IHZhbHVlID8gSlNPTi5zdHJpbmdpZnkodmFsdWUsIG51bGwsIDIpLnJlcGxhY2UoLzxcXC9zY3JpcHQ+L2csICc8XFxcXC9zY3JpcHQ+JykgOiAnJztcbiAgICBjb25zdCBodG1sID0gYDxzY3JpcHQgdHlwZT1cImFwcGxpY2F0aW9uL2xkK2pzb25cIj4ke2pzb259PC9zY3JpcHQ+YDtcbiAgICByZXR1cm4gdGhpcy5fc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGh0bWwpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './components/public-api';
|
|
1
2
|
export * from './constants/public-api';
|
|
2
3
|
export * from './decorators/public-api';
|
|
3
4
|
export * from './directives/public-api';
|
|
@@ -5,4 +6,4 @@ export * from './pipes/public-api';
|
|
|
5
6
|
export * from './services/public-api';
|
|
6
7
|
export * from './types/public-api';
|
|
7
8
|
export * from './utils/public-api';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLG9CQUFvQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9jb25zdGFudHMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2RlY29yYXRvcnMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2RpcmVjdGl2ZXMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3BpcGVzL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vdHlwZXMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3V0aWxzL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -1,2 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import { QueryList } from '@angular/core';
|
|
2
|
+
export class TypedQueryList extends QueryList {
|
|
3
|
+
constructor() {
|
|
4
|
+
super(...arguments);
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
this.first = super.first;
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
9
|
+
// @ts-ignore
|
|
10
|
+
this.last = super.last;
|
|
11
|
+
}
|
|
12
|
+
get changes() {
|
|
13
|
+
return super.changes;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5ndWxhci50eXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3R5cGVzL2FuZ3VsYXIudHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQWMxQyxNQUFNLE9BQU8sY0FBa0IsU0FBUSxTQUFZO0lBQW5EOztRQUtFLDZEQUE2RDtRQUM3RCxhQUFhO1FBQ0ssVUFBSyxHQUFHLEtBQUssQ0FBQyxLQUFzQixDQUFDO1FBRXZELDZEQUE2RDtRQUM3RCxhQUFhO1FBQ0ssU0FBSSxHQUFHLEtBQUssQ0FBQyxJQUFxQixDQUFDO0lBQ3ZELENBQUM7SUFYQyxJQUFhLE9BQU87UUFDbEIsT0FBTyxLQUFLLENBQUMsT0FBd0MsQ0FBQztJQUN4RCxDQUFDO0NBU0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IHR5cGUgTmdDbGFzc1R5cGUgPVxuICB8IHN0cmluZ1xuICB8IHN0cmluZ1tdXG4gIHwgU2V0PHN0cmluZz5cbiAgfCB7XG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgICAgW2tsYXNzOiBzdHJpbmddOiBhbnk7XG4gICAgfVxuICB8IG51bGxcbiAgfCB1bmRlZmluZWQ7XG5cbmV4cG9ydCBjbGFzcyBUeXBlZFF1ZXJ5TGlzdDxUPiBleHRlbmRzIFF1ZXJ5TGlzdDxUPiB7XG4gIG92ZXJyaWRlIGdldCBjaGFuZ2VzKCk6IE9ic2VydmFibGU8VHlwZWRRdWVyeUxpc3Q8VD4+IHtcbiAgICByZXR1cm4gc3VwZXIuY2hhbmdlcyBhcyBPYnNlcnZhYmxlPFR5cGVkUXVlcnlMaXN0PFQ+PjtcbiAgfVxuXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXRzLWNvbW1lbnRcbiAgLy8gQHRzLWlnbm9yZVxuICBvdmVycmlkZSByZWFkb25seSBmaXJzdCA9IHN1cGVyLmZpcnN0IGFzIFQgfCB1bmRlZmluZWQ7XG5cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHMtY29tbWVudFxuICAvLyBAdHMtaWdub3JlXG4gIG92ZXJyaWRlIHJlYWRvbmx5IGxhc3QgPSBzdXBlci5sYXN0IGFzIFQgfCB1bmRlZmluZWQ7XG59XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
export * from './viewport.util';
|
|
2
1
|
export * from './clamp.util';
|
|
2
|
+
export * from './reactive-binding.util';
|
|
3
3
|
export * from './scrollable.utils';
|
|
4
|
-
|
|
4
|
+
export * from './viewport.util';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29yZS9zcmMvbGliL3V0aWxzL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsaUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NsYW1wLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9yZWFjdGl2ZS1iaW5kaW5nLnV0aWwnO1xuZXhwb3J0ICogZnJvbSAnLi9zY3JvbGxhYmxlLnV0aWxzJztcbmV4cG9ydCAqIGZyb20gJy4vdmlld3BvcnQudXRpbCc7XG4iXX0=
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { ElementRef, inject } from '@angular/core';
|
|
2
|
+
import { distinctUntilChanged, takeUntil } from 'rxjs';
|
|
3
|
+
import { DestroyService } from '../services';
|
|
4
|
+
const isAttributeRenderBinding = (value) => typeof value === 'boolean';
|
|
5
|
+
const isAttributeValueBinding = (value) => typeof value === 'object';
|
|
6
|
+
export const createReactiveBindings = (...values) => {
|
|
7
|
+
const rootElementRef = inject(ElementRef);
|
|
8
|
+
const destroy$ = inject(DestroyService).destroy$;
|
|
9
|
+
const subscriptions = [];
|
|
10
|
+
const pushedAttributes = [];
|
|
11
|
+
const defaults = {};
|
|
12
|
+
const push = (value) => {
|
|
13
|
+
const { attribute, observable, elementRef } = value;
|
|
14
|
+
const elRef = elementRef || rootElementRef;
|
|
15
|
+
const attributes = Array.isArray(attribute) ? attribute : [attribute];
|
|
16
|
+
pushedAttributes.push(attributes);
|
|
17
|
+
for (const attribute of attributes) {
|
|
18
|
+
if (!defaults[attribute]) {
|
|
19
|
+
defaults[attribute] = elRef.nativeElement.getAttribute(attribute) || undefined;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const subscription = observable
|
|
23
|
+
.pipe(takeUntil(destroy$), distinctUntilChanged((a, b) => {
|
|
24
|
+
if (isAttributeRenderBinding(a) && isAttributeRenderBinding(b)) {
|
|
25
|
+
return a === b;
|
|
26
|
+
}
|
|
27
|
+
else if (isAttributeValueBinding(a) && isAttributeValueBinding(b)) {
|
|
28
|
+
return a.render === b.render && a.value === b.value;
|
|
29
|
+
}
|
|
30
|
+
return false;
|
|
31
|
+
}))
|
|
32
|
+
.subscribe((value) => {
|
|
33
|
+
const currentAttributes = pushedAttributes.find((s) => s.some((current) => attributes.includes(current))) || [];
|
|
34
|
+
for (const attribute of currentAttributes) {
|
|
35
|
+
const isSingleClassMutation = attribute.startsWith('class.');
|
|
36
|
+
const isMultipleClassMutation = attribute === 'class';
|
|
37
|
+
const render = isAttributeRenderBinding(value) ? value : value.render;
|
|
38
|
+
if (isSingleClassMutation) {
|
|
39
|
+
const className = attribute.replace('class.', '');
|
|
40
|
+
if (!render) {
|
|
41
|
+
elRef.nativeElement.classList.remove(className);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
elRef.nativeElement.classList.add(className);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if (isMultipleClassMutation) {
|
|
48
|
+
const classes = isAttributeRenderBinding(value) ? '' : `${value.value}`;
|
|
49
|
+
if (!render) {
|
|
50
|
+
elRef.nativeElement.classList.remove(...classes.split(' '));
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
elRef.nativeElement.classList.add(...classes.split(' '));
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
const attributeValue = isAttributeRenderBinding(value) ? true : `${value.value}`;
|
|
58
|
+
if (!render) {
|
|
59
|
+
elRef.nativeElement.removeAttribute(attribute);
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
elRef.nativeElement.setAttribute(attribute, `${attributeValue}`);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
subscriptions.push({ attributes, subscription });
|
|
68
|
+
};
|
|
69
|
+
const remove = (...attributes) => {
|
|
70
|
+
for (const attribute of attributes) {
|
|
71
|
+
const sub = subscriptions.find((s) => s.attributes.includes(attribute));
|
|
72
|
+
const attributeStack = pushedAttributes.find((a) => a.includes(attribute));
|
|
73
|
+
if (sub) {
|
|
74
|
+
sub.attributes = sub.attributes.filter((a) => a !== attribute);
|
|
75
|
+
attributeStack?.splice(attributeStack.indexOf(attribute), 1);
|
|
76
|
+
if (sub.attributes.length === 0) {
|
|
77
|
+
sub.subscription.unsubscribe();
|
|
78
|
+
subscriptions.splice(subscriptions.indexOf(sub), 1);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
};
|
|
83
|
+
const reset = () => {
|
|
84
|
+
for (const attribute in defaults) {
|
|
85
|
+
if (defaults[attribute] === undefined) {
|
|
86
|
+
rootElementRef.nativeElement.removeAttribute(attribute);
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
rootElementRef.nativeElement.setAttribute(attribute, defaults[attribute]);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
};
|
|
93
|
+
for (const value of values) {
|
|
94
|
+
push(value);
|
|
95
|
+
}
|
|
96
|
+
return {
|
|
97
|
+
push,
|
|
98
|
+
remove,
|
|
99
|
+
reset,
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtYmluZGluZy51dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb3JlL3NyYy9saWIvdXRpbHMvcmVhY3RpdmUtYmluZGluZy51dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBNEIsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFlN0MsTUFBTSx3QkFBd0IsR0FBRyxDQUMvQixLQUFxRCxFQUNwQixFQUFFLENBQUMsT0FBTyxLQUFLLEtBQUssU0FBUyxDQUFDO0FBQ2pFLE1BQU0sdUJBQXVCLEdBQUcsQ0FDOUIsS0FBcUQsRUFDckIsRUFBRSxDQUFDLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztBQVEvRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxDQUFDLEdBQUcsTUFBNEIsRUFBeUIsRUFBRTtJQUMvRixNQUFNLGNBQWMsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO0lBQ25FLE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBaUIsY0FBYyxDQUFDLENBQUMsUUFBUSxDQUFDO0lBRWpFLE1BQU0sYUFBYSxHQUEyRCxFQUFFLENBQUM7SUFDakYsTUFBTSxnQkFBZ0IsR0FBZSxFQUFFLENBQUM7SUFFeEMsTUFBTSxRQUFRLEdBQXVDLEVBQUUsQ0FBQztJQUV4RCxNQUFNLElBQUksR0FBRyxDQUFDLEtBQXlCLEVBQUUsRUFBRTtRQUN6QyxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUM7UUFDcEQsTUFBTSxLQUFLLEdBQUcsVUFBVSxJQUFJLGNBQWMsQ0FBQztRQUMzQyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMs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QUcsQ0FBQyxVQUFVLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDL0IsR0FBRyxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDL0IsYUFBYSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO2lCQUNyRDthQUNGO1NBQ0Y7SUFDSCxDQUFDLENBQUM7SUFFRixNQUFNLEtBQUssR0FBRyxHQUFHLEVBQUU7UUFDakIsS0FBSyxNQUFNLFNBQVMsSUFBSSxRQUFRLEVBQUU7WUFDaEMsSUFBSSxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssU0FBUyxFQUFFO2dCQUNyQyxjQUFjLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUN6RDtpQkFBTTtnQkFDTCxjQUFjLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBVyxDQUFDLENBQUM7YUFDckY7U0FDRjtJQUNILENBQUMsQ0FBQztJQUVGLEtBQUssTUFBTSxLQUFLLElBQUksTUFBTSxFQUFFO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUNiO0lBRUQsT0FBTztRQUNMLElBQUk7UUFDSixNQUFNO1FBQ04sS0FBSztLQUNOLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24sIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRGVzdHJveVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcyc7XG5cbnR5cGUgQXR0cmlidXRlVmFsdWVCaW5kaW5nID0ge1xuICByZW5kZXI6IGJvb2xlYW47XG4gIHZhbHVlOiBib29sZWFuIHwgc3RyaW5nIHwgbnVtYmVyO1xufTtcblxudHlwZSBBdHRyaWJ1dGVSZW5kZXJCaW5kaW5nID0gYm9vbGVhbjtcblxuZXhwb3J0IHR5cGUgUmVhY3RpdmVBdHRyaWJ1dGVzID0ge1xuICBhdHRyaWJ1dGU6IHN0cmluZyB8IHN0cmluZ1tdO1xuICBvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPEF0dHJpYnV0ZVZhbHVlQmluZGluZyB8IEF0dHJpYnV0ZVJlbmRlckJpbmRpbmc+O1xuICBlbGVtZW50UmVmPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG59O1xuXG5jb25zdCBpc0F0dHJpYnV0ZVJlbmRlckJpbmRpbmcgPSAoXG4gIHZhbHVlOiBBdHRyaWJ1dGVWYWx1ZUJpbmRpbmcgfCBBdHRyaWJ1dGVSZW5kZXJCaW5kaW5nLFxuKTogdmFsdWUgaXMgQXR0cmlidXRlUmVuZGVyQmluZGluZyA9PiB0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJztcbmNvbnN0IGlzQXR0cmlidXRlVmFsdWVCaW5kaW5nID0gKFxuICB2YWx1ZTogQXR0cmlidXRlVmFsdWVCaW5kaW5nIHwgQXR0cmlidXRlUmVuZGVyQmluZGluZyxcbik6IHZhbHVlIGlzIEF0dHJpYnV0ZVZhbHVlQmluZGluZyA9PiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlYWN0aXZlQmluZGluZ1Jlc3VsdCB7XG4gIHJlc2V0OiAoKSA9PiB2b2lkO1xuICByZW1vdmU6ICguLi5hdHRyaWJ1dGVzOiBzdHJpbmdbXSkgPT4gdm9pZDtcbiAgcHVzaDogKHZhbHVlOiBSZWFjdGl2ZUF0dHJpYnV0ZXMpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVSZWFjdGl2ZUJpbmRpbmdzID0gKC4uLnZhbHVlczogUmVhY3RpdmVBdHRyaWJ1dGVzW10pOiBSZWFjdGl2ZUJpbmRpbmdSZXN1bHQgPT4ge1xuICBjb25zdCByb290RWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG4gIGNvbnN0IGRlc3Ryb3kkID0gaW5qZWN0PERlc3Ryb3lTZXJ2aWNlPihEZXN0cm95U2VydmljZSkuZGVzdHJveSQ7XG5cbiAgY29uc3Qgc3Vic2NyaXB0aW9uczogeyBhdHRyaWJ1dGVzOiBzdHJpbmdbXTsgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfVtdID0gW107XG4gIGNvbnN0IHB1c2hlZEF0dHJpYnV0ZXM6IHN0cmluZ1tdW10gPSBbXTtcblxuICBjb25zdCBkZWZhdWx0czogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiA9IHt9O1xuXG4gIGNvbnN0IHB1c2ggPSAodmFsdWU6IFJlYWN0aXZlQXR0cmlidXRlcykgPT4ge1xuICAgIGNvbnN0IHsgYXR0cmlidXRlLCBvYnNlcnZhYmxlLCBlbGVtZW50UmVmIH0gPSB2YWx1ZTtcbiAgICBjb25zdCBlbFJlZiA9IGVsZW1lbnRSZWYgfHwgcm9vdEVsZW1lbnRSZWY7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IEFycmF5LmlzQXJyYXkoYXR0cmlidXRlKSA/IGF0dHJpYnV0ZSA6IFthdHRyaWJ1dGVdO1xuICAgIHB1c2hlZEF0dHJpYnV0ZXMucHVzaChhdHRyaWJ1dGVzKTtcblxuICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGF0dHJpYnV0ZXMpIHtcbiAgICAgIGlmICghZGVmYXVsdHNbYXR0cmlidXRlXSkge1xuICAgICAgICBkZWZhdWx0c1thdHRyaWJ1dGVdID0gZWxSZWYubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoYXR0cmlidXRlKSB8fCB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gb2JzZXJ2YWJsZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbChkZXN0cm95JCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKChhLCBiKSA9PiB7XG4gICAgICAgICAgaWYgKGlzQXR0cmlidXRlUmVuZGVyQmluZGluZyhhKSAmJiBpc0F0dHJpYnV0ZVJlbmRlckJpbmRpbmcoYikpIHtcbiAgICAgICAgICAgIHJldHVybiBhID09PSBiO1xuICAgICAgICAgIH0gZWxzZSBpZiAoaXNBdHRyaWJ1dGVWYWx1ZUJpbmRpbmcoYSkgJiYgaXNBdHRyaWJ1dGVWYWx1ZUJpbmRpbmcoYikpIHtcbiAgICAgICAgICAgIHJldHVybiBhLnJlbmRlciA9PT0gYi5yZW5kZXIgJiYgYS52YWx1ZSA9PT0gYi52YWx1ZTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgY3VycmVudEF0dHJpYnV0ZXMgPSBwdXNoZWRBdHRyaWJ1dGVzLmZpbmQoKHMpID0+IHMuc29tZSgoY3VycmVudCkgPT4gYXR0cmlidXRlcy5pbmNsdWRlcyhjdXJyZW50KSkpIHx8IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgYXR0cmlidXRlIG9mIGN1cnJlbnRBdHRyaWJ1dGVzKSB7XG4gICAgICAgICAgY29uc3QgaXNTaW5nbGVDbGFzc011dGF0aW9uID0gYXR0cmlidXRlLnN0YXJ0c1dpdGgoJ2NsYXNzLicpO1xuICAgICAgICAgIGNvbnN0IGlzTXVsdGlwbGVDbGFzc011dGF0aW9uID0gYXR0cmlidXRlID09PSAnY2xhc3MnO1xuXG4gICAgICAgICAgY29uc3QgcmVuZGVyID0gaXNBdHRyaWJ1dGVSZW5kZXJCaW5kaW5nKHZhbHVlKSA/IHZhbHVlIDogdmFsdWUucmVuZGVyO1xuXG4gICAgICAgICAgaWYgKGlzU2luZ2xlQ2xhc3NNdXRhdGlvbikge1xuICAgICAgICAgICAgY29uc3QgY2xhc3NOYW1lID0gYXR0cmlidXRlLnJlcGxhY2UoJ2NsYXNzLicsICcnKTtcblxuICAgICAgICAgICAgaWYgKCFyZW5kZXIpIHtcbiAgICAgICAgICAgICAgZWxSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKGNsYXNzTmFtZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2UgaWYgKGlzTXVsdGlwbGVDbGFzc011dGF0aW9uKSB7XG4gICAgICAgICAgICBjb25zdCBjbGFzc2VzID0gaXNBdHRyaWJ1dGVSZW5kZXJCaW5kaW5nKHZhbHVlKSA/ICcnIDogYCR7dmFsdWUudmFsdWV9YDtcblxuICAgICAgICAgICAgaWYgKCFyZW5kZXIpIHtcbiAgICAgICAgICAgICAgZWxSZWYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKC4uLmNsYXNzZXMuc3BsaXQoJyAnKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbFJlZi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQoLi4uY2xhc3Nlcy5zcGxpdCgnICcpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgYXR0cmlidXRlVmFsdWUgPSBpc0F0dHJpYnV0ZVJlbmRlckJpbmRpbmcodmFsdWUpID8gdHJ1ZSA6IGAke3ZhbHVlLnZhbHVlfWA7XG5cbiAgICAgICAgICAgIGlmICghcmVuZGVyKSB7XG4gICAgICAgICAgICAgIGVsUmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBlbFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIGAke2F0dHJpYnV0ZVZhbHVlfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICBzdWJzY3JpcHRpb25zLnB1c2goeyBhdHRyaWJ1dGVzLCBzdWJzY3JpcHRpb24gfSk7XG4gIH07XG5cbiAgY29uc3QgcmVtb3ZlID0gKC4uLmF0dHJpYnV0ZXM6IHN0cmluZ1tdKSA9PiB7XG4gICAgZm9yIChjb25zdCBhdHRyaWJ1dGUgb2YgYXR0cmlidXRlcykge1xuICAgICAgY29uc3Qgc3ViID0gc3Vic2NyaXB0aW9ucy5maW5kKChzKSA9PiBzLmF0dHJpYnV0ZXMuaW5jbHVkZXMoYXR0cmlidXRlKSk7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVTdGFjayA9IHB1c2hlZEF0dHJpYnV0ZXMuZmluZCgoYSkgPT4gYS5pbmNsdWRlcyhhdHRyaWJ1dGUpKTtcblxuICAgICAgaWYgKHN1Yikge1xuICAgICAgICBzdWIuYXR0cmlidXRlcyA9IHN1Yi5hdHRyaWJ1dGVzLmZpbHRlcigoYSkgPT4gYSAhPT0gYXR0cmlidXRlKTtcbiAgICAgICAgYXR0cmlidXRlU3RhY2s/LnNwbGljZShhdHRyaWJ1dGVTdGFjay5pbmRleE9mKGF0dHJpYnV0ZSksIDEpO1xuXG4gICAgICAgIGlmIChzdWIuYXR0cmlidXRlcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBzdWIuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgc3Vic2NyaXB0aW9ucy5zcGxpY2Uoc3Vic2NyaXB0aW9ucy5pbmRleE9mKHN1YiksIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9O1xuXG4gIGNvbnN0IHJlc2V0ID0gKCkgPT4ge1xuICAgIGZvciAoY29uc3QgYXR0cmlidXRlIGluIGRlZmF1bHRzKSB7XG4gICAgICBpZiAoZGVmYXVsdHNbYXR0cmlidXRlXSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJvb3RFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucmVtb3ZlQXR0cmlidXRlKGF0dHJpYnV0ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByb290RWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyaWJ1dGUsIGRlZmF1bHRzW2F0dHJpYnV0ZV0gYXMgc3RyaW5nKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG5cbiAgZm9yIChjb25zdCB2YWx1ZSBvZiB2YWx1ZXMpIHtcbiAgICBwdXNoKHZhbHVlKTtcbiAgfVxuXG4gIHJldHVybiB7XG4gICAgcHVzaCxcbiAgICByZW1vdmUsXG4gICAgcmVzZXQsXG4gIH07XG59O1xuIl19
|
|
@@ -1,12 +1,46 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, Injectable,
|
|
2
|
+
import { inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostBinding, InjectionToken, Injectable, Inject, Optional, ElementRef, EventEmitter, Directive, Output, NgZone, Pipe, QueryList } from '@angular/core';
|
|
3
|
+
import { DomSanitizer, Meta, Title } from '@angular/platform-browser';
|
|
3
4
|
import { coerceElement, coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
|
|
4
|
-
import { fromEvent, Observable, Subject, BehaviorSubject, combineLatest, map, shareReplay, startWith, debounceTime, tap,
|
|
5
|
+
import { fromEvent, Observable, Subject, BehaviorSubject, combineLatest, map, shareReplay, takeUntil, distinctUntilChanged, startWith, debounceTime, tap, take } from 'rxjs';
|
|
5
6
|
import { DOCUMENT } from '@angular/common';
|
|
6
7
|
import { __decorate, __metadata } from 'tslib';
|
|
7
8
|
import * as i1 from '@angular/cdk/layout';
|
|
8
9
|
import { debounceTime as debounceTime$1 } from 'rxjs/operators';
|
|
9
|
-
|
|
10
|
+
|
|
11
|
+
class StructuredDataComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this._sanitizer = inject(DomSanitizer);
|
|
14
|
+
}
|
|
15
|
+
set data(currentValue) {
|
|
16
|
+
this.jsonLD = this.getSafeHTML(currentValue);
|
|
17
|
+
}
|
|
18
|
+
getSafeHTML(value) {
|
|
19
|
+
const json = value ? JSON.stringify(value, null, 2).replace(/<\/script>/g, '<\\/script>') : '';
|
|
20
|
+
const html = `<script type="application/ld+json">${json}</script>`;
|
|
21
|
+
return this._sanitizer.bypassSecurityTrustHtml(html);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
StructuredDataComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: StructuredDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
25
|
+
StructuredDataComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.0", type: StructuredDataComponent, isStandalone: true, selector: "et-structured-data", inputs: { data: "data" }, host: { properties: { "innerHTML": "this.jsonLD" }, styleAttribute: "display: none" }, ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImport: i0, type: StructuredDataComponent, decorators: [{
|
|
27
|
+
type: Component,
|
|
28
|
+
args: [{
|
|
29
|
+
selector: 'et-structured-data',
|
|
30
|
+
standalone: true,
|
|
31
|
+
template: '',
|
|
32
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
33
|
+
encapsulation: ViewEncapsulation.None,
|
|
34
|
+
host: {
|
|
35
|
+
style: 'display: none',
|
|
36
|
+
},
|
|
37
|
+
}]
|
|
38
|
+
}], propDecorators: { data: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], jsonLD: [{
|
|
41
|
+
type: HostBinding,
|
|
42
|
+
args: ['innerHTML']
|
|
43
|
+
}] } });
|
|
10
44
|
|
|
11
45
|
const VIEWPORT_CONFIG = new InjectionToken('ViewportConfig');
|
|
12
46
|
/**
|
|
@@ -511,19 +545,118 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
511
545
|
type: Output
|
|
512
546
|
}] } });
|
|
513
547
|
|
|
514
|
-
const provideViewportConfig = (viewportConfig) => {
|
|
515
|
-
return { provide: VIEWPORT_CONFIG, useValue: viewportConfig };
|
|
516
|
-
};
|
|
517
|
-
|
|
518
548
|
const clamp = (value, min = 0, max = 100) => {
|
|
519
549
|
return Math.max(min, Math.min(max, value));
|
|
520
550
|
};
|
|
521
551
|
|
|
552
|
+
const isAttributeRenderBinding = (value) => typeof value === 'boolean';
|
|
553
|
+
const isAttributeValueBinding = (value) => typeof value === 'object';
|
|
554
|
+
const createReactiveBindings = (...values) => {
|
|
555
|
+
const rootElementRef = inject(ElementRef);
|
|
556
|
+
const destroy$ = inject(DestroyService).destroy$;
|
|
557
|
+
const subscriptions = [];
|
|
558
|
+
const pushedAttributes = [];
|
|
559
|
+
const defaults = {};
|
|
560
|
+
const push = (value) => {
|
|
561
|
+
const { attribute, observable, elementRef } = value;
|
|
562
|
+
const elRef = elementRef || rootElementRef;
|
|
563
|
+
const attributes = Array.isArray(attribute) ? attribute : [attribute];
|
|
564
|
+
pushedAttributes.push(attributes);
|
|
565
|
+
for (const attribute of attributes) {
|
|
566
|
+
if (!defaults[attribute]) {
|
|
567
|
+
defaults[attribute] = elRef.nativeElement.getAttribute(attribute) || undefined;
|
|
568
|
+
}
|
|
569
|
+
}
|
|
570
|
+
const subscription = observable
|
|
571
|
+
.pipe(takeUntil(destroy$), distinctUntilChanged((a, b) => {
|
|
572
|
+
if (isAttributeRenderBinding(a) && isAttributeRenderBinding(b)) {
|
|
573
|
+
return a === b;
|
|
574
|
+
}
|
|
575
|
+
else if (isAttributeValueBinding(a) && isAttributeValueBinding(b)) {
|
|
576
|
+
return a.render === b.render && a.value === b.value;
|
|
577
|
+
}
|
|
578
|
+
return false;
|
|
579
|
+
}))
|
|
580
|
+
.subscribe((value) => {
|
|
581
|
+
const currentAttributes = pushedAttributes.find((s) => s.some((current) => attributes.includes(current))) || [];
|
|
582
|
+
for (const attribute of currentAttributes) {
|
|
583
|
+
const isSingleClassMutation = attribute.startsWith('class.');
|
|
584
|
+
const isMultipleClassMutation = attribute === 'class';
|
|
585
|
+
const render = isAttributeRenderBinding(value) ? value : value.render;
|
|
586
|
+
if (isSingleClassMutation) {
|
|
587
|
+
const className = attribute.replace('class.', '');
|
|
588
|
+
if (!render) {
|
|
589
|
+
elRef.nativeElement.classList.remove(className);
|
|
590
|
+
}
|
|
591
|
+
else {
|
|
592
|
+
elRef.nativeElement.classList.add(className);
|
|
593
|
+
}
|
|
594
|
+
}
|
|
595
|
+
else if (isMultipleClassMutation) {
|
|
596
|
+
const classes = isAttributeRenderBinding(value) ? '' : `${value.value}`;
|
|
597
|
+
if (!render) {
|
|
598
|
+
elRef.nativeElement.classList.remove(...classes.split(' '));
|
|
599
|
+
}
|
|
600
|
+
else {
|
|
601
|
+
elRef.nativeElement.classList.add(...classes.split(' '));
|
|
602
|
+
}
|
|
603
|
+
}
|
|
604
|
+
else {
|
|
605
|
+
const attributeValue = isAttributeRenderBinding(value) ? true : `${value.value}`;
|
|
606
|
+
if (!render) {
|
|
607
|
+
elRef.nativeElement.removeAttribute(attribute);
|
|
608
|
+
}
|
|
609
|
+
else {
|
|
610
|
+
elRef.nativeElement.setAttribute(attribute, `${attributeValue}`);
|
|
611
|
+
}
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
});
|
|
615
|
+
subscriptions.push({ attributes, subscription });
|
|
616
|
+
};
|
|
617
|
+
const remove = (...attributes) => {
|
|
618
|
+
for (const attribute of attributes) {
|
|
619
|
+
const sub = subscriptions.find((s) => s.attributes.includes(attribute));
|
|
620
|
+
const attributeStack = pushedAttributes.find((a) => a.includes(attribute));
|
|
621
|
+
if (sub) {
|
|
622
|
+
sub.attributes = sub.attributes.filter((a) => a !== attribute);
|
|
623
|
+
attributeStack === null || attributeStack === void 0 ? void 0 : attributeStack.splice(attributeStack.indexOf(attribute), 1);
|
|
624
|
+
if (sub.attributes.length === 0) {
|
|
625
|
+
sub.subscription.unsubscribe();
|
|
626
|
+
subscriptions.splice(subscriptions.indexOf(sub), 1);
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
};
|
|
631
|
+
const reset = () => {
|
|
632
|
+
for (const attribute in defaults) {
|
|
633
|
+
if (defaults[attribute] === undefined) {
|
|
634
|
+
rootElementRef.nativeElement.removeAttribute(attribute);
|
|
635
|
+
}
|
|
636
|
+
else {
|
|
637
|
+
rootElementRef.nativeElement.setAttribute(attribute, defaults[attribute]);
|
|
638
|
+
}
|
|
639
|
+
}
|
|
640
|
+
};
|
|
641
|
+
for (const value of values) {
|
|
642
|
+
push(value);
|
|
643
|
+
}
|
|
644
|
+
return {
|
|
645
|
+
push,
|
|
646
|
+
remove,
|
|
647
|
+
reset,
|
|
648
|
+
};
|
|
649
|
+
};
|
|
650
|
+
|
|
522
651
|
const elementCanScroll = (element) => {
|
|
523
652
|
const { scrollHeight, clientHeight, scrollWidth, clientWidth } = element;
|
|
524
653
|
return scrollHeight > clientHeight || scrollWidth > clientWidth;
|
|
525
654
|
};
|
|
526
655
|
|
|
656
|
+
const provideViewportConfig = (viewportConfig) => {
|
|
657
|
+
return { provide: VIEWPORT_CONFIG, useValue: viewportConfig };
|
|
658
|
+
};
|
|
659
|
+
|
|
527
660
|
const CURSOR_DRAG_SCROLLING_CLASS = 'et-cursor-drag-scroll--scrolling';
|
|
528
661
|
const CURSOR_DRAG_SCROLLING_PREPARED_CLASS = 'et-cursor-drag-scroll--prepared';
|
|
529
662
|
|
|
@@ -1620,9 +1753,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.0", ngImpor
|
|
|
1620
1753
|
args: [{ name: 'toArray', standalone: true }]
|
|
1621
1754
|
}] });
|
|
1622
1755
|
|
|
1756
|
+
class TypedQueryList extends QueryList {
|
|
1757
|
+
constructor() {
|
|
1758
|
+
super(...arguments);
|
|
1759
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1760
|
+
// @ts-ignore
|
|
1761
|
+
this.first = super.first;
|
|
1762
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
1763
|
+
// @ts-ignore
|
|
1764
|
+
this.last = super.last;
|
|
1765
|
+
}
|
|
1766
|
+
get changes() {
|
|
1767
|
+
return super.changes;
|
|
1768
|
+
}
|
|
1769
|
+
}
|
|
1770
|
+
|
|
1623
1771
|
/**
|
|
1624
1772
|
* Generated bundle index. Do not edit.
|
|
1625
1773
|
*/
|
|
1626
1774
|
|
|
1627
|
-
export { ClickObserverFactory, ClickObserverService, ClickOutsideDirective, ContentObserverService, CursorDragScrollDirective, DEFAULT_VIEWPORT_CONFIG, DestroyService, FocusVisibleService, LetContext, LetDirective, Memo, MutationObserverFactory, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OBSERVE_SCROLL_STATE, ObserveContentDirective, ObserveResizeDirective, ObserveScrollStateDirective, RepeatDirective, ResizeObserverFactory, ResizeObserverService, SCROLL_OBSERVER_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_IGNORE_TARGET_CLASS, SCROLL_OBSERVER_LAST_ELEMENT_CLASS, SEO_DIRECTIVE_TOKEN, ScrollObserverFirstElementDirective, ScrollObserverIgnoreTargetDirective, ScrollObserverLastElementDirective, SeoDirective, ToArrayPipe, VIEWPORT_CONFIG, ViewportService, clamp, elementCanScroll, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, isGroupMatch, isKnockoutMatch, mergeSeoConfig, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, provideViewportConfig, toArray, toArrayTrackByFn };
|
|
1775
|
+
export { ClickObserverFactory, ClickObserverService, ClickOutsideDirective, ContentObserverService, CursorDragScrollDirective, DEFAULT_VIEWPORT_CONFIG, DestroyService, FocusVisibleService, LetContext, LetDirective, Memo, MutationObserverFactory, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OBSERVE_SCROLL_STATE, ObserveContentDirective, ObserveResizeDirective, ObserveScrollStateDirective, RepeatDirective, ResizeObserverFactory, ResizeObserverService, SCROLL_OBSERVER_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_IGNORE_TARGET_CLASS, SCROLL_OBSERVER_LAST_ELEMENT_CLASS, SEO_DIRECTIVE_TOKEN, ScrollObserverFirstElementDirective, ScrollObserverIgnoreTargetDirective, ScrollObserverLastElementDirective, SeoDirective, StructuredDataComponent, ToArrayPipe, TypedQueryList, VIEWPORT_CONFIG, ViewportService, clamp, createReactiveBindings, elementCanScroll, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, isGroupMatch, isKnockoutMatch, mergeSeoConfig, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, provideViewportConfig, toArray, toArrayTrackByFn };
|
|
1628
1776
|
//# sourceMappingURL=ethlete-core.mjs.map
|