@fundamental-ngx/cdk 0.54.2 → 0.55.0-rc.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/fesm2022/fundamental-ngx-cdk-data-source.mjs +7 -7
- package/fesm2022/fundamental-ngx-cdk-forms.mjs +21 -14
- package/fesm2022/fundamental-ngx-cdk-forms.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk-utils.mjs +361 -312
- package/fesm2022/fundamental-ngx-cdk-utils.mjs.map +1 -1
- package/fesm2022/fundamental-ngx-cdk.mjs +4 -4
- package/forms/cva/cva.directive.d.ts +7 -3
- package/package.json +8 -16
- package/utils/abstract-fd-ngx-class.d.ts +1 -1
- package/utils/directives/overflow-list/overflow-list.directive.d.ts +7 -0
- package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.d.ts +1 -1
- package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +1 -1
- package/utils/drag-and-drop/drag-and-drop.module.d.ts +7 -7
- package/utils/toast/base-toast-positions.d.ts +16 -16
- package/utils/toast/classes/base-toast-animated-container.component.d.ts +1 -1
- package/utils/toast/classes/base-toast-container.component.d.ts +1 -1
- package/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.d.ts +1 -1
- package/esm2022/data-source/base/abstract-data-provider.class.mjs +0 -142
- package/esm2022/data-source/base/base-data-source.class.mjs +0 -112
- package/esm2022/data-source/data-source.directive.mjs +0 -95
- package/esm2022/data-source/data-source.module.mjs +0 -16
- package/esm2022/data-source/fundamental-ngx-cdk-data-source.mjs +0 -5
- package/esm2022/data-source/helpers/apply-datasource-directive.mjs +0 -7
- package/esm2022/data-source/helpers/common.mjs +0 -17
- package/esm2022/data-source/helpers/is-datasource.mjs +0 -7
- package/esm2022/data-source/index.mjs +0 -9
- package/esm2022/data-source/models/data-source-provider.mjs +0 -2
- package/esm2022/data-source/models/data-source.mjs +0 -2
- package/esm2022/data-source/models/index.mjs +0 -4
- package/esm2022/data-source/models/matching-strategy.mjs +0 -7
- package/esm2022/data-source/tokens.mjs +0 -6
- package/esm2022/forms/cva/cva-control.class.mjs +0 -42
- package/esm2022/forms/cva/cva.directive.mjs +0 -321
- package/esm2022/forms/forms.module.mjs +0 -16
- package/esm2022/forms/fundamental-ngx-cdk-forms.mjs +0 -5
- package/esm2022/forms/helpers/state.mjs +0 -7
- package/esm2022/forms/index.mjs +0 -13
- package/esm2022/forms/models/control-type.model.mjs +0 -2
- package/esm2022/forms/models/cva.mjs +0 -2
- package/esm2022/forms/models/form-error.mjs +0 -2
- package/esm2022/forms/models/form-field.mjs +0 -9
- package/esm2022/forms/models/form-state.mjs +0 -2
- package/esm2022/forms/models/select-item.mjs +0 -14
- package/esm2022/forms/tokens/form-field-control.token.mjs +0 -3
- package/esm2022/forms/tokens/form-field.token.mjs +0 -3
- package/esm2022/fundamental-ngx-cdk.mjs +0 -5
- package/esm2022/fundamental-ngx.module.mjs +0 -19
- package/esm2022/index.mjs +0 -5
- package/esm2022/utils/abstract-fd-ngx-class.mjs +0 -61
- package/esm2022/utils/async-strategy/function-strategy.class.mjs +0 -12
- package/esm2022/utils/async-strategy/index.mjs +0 -7
- package/esm2022/utils/async-strategy/observable-strategy.class.mjs +0 -13
- package/esm2022/utils/async-strategy/promise-strategy.class.mjs +0 -12
- package/esm2022/utils/async-strategy/select-strategy.class.mjs +0 -23
- package/esm2022/utils/async-strategy/subscription-strategy.interface.mjs +0 -2
- package/esm2022/utils/async-strategy/value-strategy.class.mjs +0 -10
- package/esm2022/utils/coercion/array.mjs +0 -7
- package/esm2022/utils/components/dynamic-portal/dynamic-portal.component.mjs +0 -98
- package/esm2022/utils/components/index.mjs +0 -2
- package/esm2022/utils/consts/error-messages.mjs +0 -6
- package/esm2022/utils/consts/index.mjs +0 -5
- package/esm2022/utils/consts/overflow-priority-score.mjs +0 -8
- package/esm2022/utils/consts/unicode-letters.regex.mjs +0 -11
- package/esm2022/utils/consts/unicode-numbers.regex.mjs +0 -8
- package/esm2022/utils/datatypes/color-accent.datatype.mjs +0 -2
- package/esm2022/utils/datatypes/hash.datatype.mjs +0 -2
- package/esm2022/utils/datatypes/index.mjs +0 -5
- package/esm2022/utils/datatypes/object-nesting.types.mjs +0 -2
- package/esm2022/utils/datatypes/size.datatype.mjs +0 -2
- package/esm2022/utils/decorators/apply-css-class.decorator.mjs +0 -61
- package/esm2022/utils/decorators/apply-css-style.decorator.mjs +0 -26
- package/esm2022/utils/decorators/coerce-boolean.mjs +0 -7
- package/esm2022/utils/decorators/coerce-css-pixel.mjs +0 -4
- package/esm2022/utils/decorators/index.mjs +0 -6
- package/esm2022/utils/decorators/setter-alternator.mjs +0 -18
- package/esm2022/utils/deprecated-selector.class.mjs +0 -35
- package/esm2022/utils/directives/auto-complete/auto-complete.directive.mjs +0 -135
- package/esm2022/utils/directives/auto-complete/auto-complete.module.mjs +0 -17
- package/esm2022/utils/directives/breakpoints/breakpoint.directive.mjs +0 -156
- package/esm2022/utils/directives/breakpoints/responsive-breakpoints.mjs +0 -19
- package/esm2022/utils/directives/clicked/clicked-behavior.module.mjs +0 -35
- package/esm2022/utils/directives/clicked/clicked-event.plugin.mjs +0 -79
- package/esm2022/utils/directives/clicked/clicked.directive.mjs +0 -36
- package/esm2022/utils/directives/clicked/element-click.observable.mjs +0 -21
- package/esm2022/utils/directives/clicked/fdk-clicked-provider.service.mjs +0 -48
- package/esm2022/utils/directives/clicked/index.mjs +0 -6
- package/esm2022/utils/directives/clicked/provide-fdk-clicked.mjs +0 -29
- package/esm2022/utils/directives/disabled/default-disabled-view-modifier.mjs +0 -12
- package/esm2022/utils/directives/disabled/disabled-behavior.directive.mjs +0 -84
- package/esm2022/utils/directives/disabled/disabled-behavior.interface.mjs +0 -2
- package/esm2022/utils/directives/disabled/disabled-behavior.module.mjs +0 -16
- package/esm2022/utils/directives/disabled/disabled-view-modifier.interface.mjs +0 -2
- package/esm2022/utils/directives/disabled/disabled.observer.mjs +0 -35
- package/esm2022/utils/directives/disabled/fdk-disabled-provider.service.mjs +0 -101
- package/esm2022/utils/directives/disabled/fdk-disabled.token.mjs +0 -3
- package/esm2022/utils/directives/disabled/index.mjs +0 -9
- package/esm2022/utils/directives/disabled/set-disabled-state.mjs +0 -18
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-helpers.module.mjs +0 -17
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +0 -67
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +0 -88
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager.tokens.mjs +0 -3
- package/esm2022/utils/directives/focus-key-manager/index.mjs +0 -5
- package/esm2022/utils/directives/focusable-grid/focusable-grid.directive.mjs +0 -164
- package/esm2022/utils/directives/focusable-grid/focusable-grid.module.mjs +0 -17
- package/esm2022/utils/directives/focusable-grid/focusable-grid.tokens.mjs +0 -3
- package/esm2022/utils/directives/focusable-grid/index.mjs +0 -4
- package/esm2022/utils/directives/focusable-item/focusable-item.directive.mjs +0 -198
- package/esm2022/utils/directives/focusable-item/focusable-item.module.mjs +0 -16
- package/esm2022/utils/directives/focusable-item/focusable-item.tokens.mjs +0 -3
- package/esm2022/utils/directives/focusable-item/focusable-list.position.mjs +0 -2
- package/esm2022/utils/directives/focusable-item/focusable.item.mjs +0 -2
- package/esm2022/utils/directives/focusable-item/focusable.observer.mjs +0 -46
- package/esm2022/utils/directives/focusable-item/get-item-element.mjs +0 -14
- package/esm2022/utils/directives/focusable-item/index.mjs +0 -9
- package/esm2022/utils/directives/focusable-item/indirect-focusable-item.directive.mjs +0 -44
- package/esm2022/utils/directives/focusable-item/is-element-focusable-by-default.mjs +0 -32
- package/esm2022/utils/directives/focusable-item/is-item-focusable.mjs +0 -8
- package/esm2022/utils/directives/focusable-list/focusable-list.directive.mjs +0 -300
- package/esm2022/utils/directives/focusable-list/focusable-list.module.mjs +0 -17
- package/esm2022/utils/directives/focusable-list/focusable-list.tokens.mjs +0 -3
- package/esm2022/utils/directives/focusable-list/index.mjs +0 -6
- package/esm2022/utils/directives/focusable-list/indirect-focusable-list.directive.mjs +0 -59
- package/esm2022/utils/directives/focusable-list/scroll.mjs +0 -43
- package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +0 -55
- package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs +0 -16
- package/esm2022/utils/directives/ignore-click-on-selection/tokens.mjs +0 -3
- package/esm2022/utils/directives/index.mjs +0 -35
- package/esm2022/utils/directives/initial-focus/initial-focus.directive.mjs +0 -99
- package/esm2022/utils/directives/initial-focus/initial-focus.module.mjs +0 -16
- package/esm2022/utils/directives/intersection-spy/intersection-spy.directive.mjs +0 -42
- package/esm2022/utils/directives/line-clamp/line-clamp.directive.mjs +0 -213
- package/esm2022/utils/directives/line-clamp/line-clamp.module.mjs +0 -16
- package/esm2022/utils/directives/only-digits/only-digits.directive.mjs +0 -206
- package/esm2022/utils/directives/only-digits/only-digits.module.mjs +0 -16
- package/esm2022/utils/directives/overflow-list/overflow-list-item.directive.mjs +0 -18
- package/esm2022/utils/directives/overflow-list/overflow-list.directive.mjs +0 -114
- package/esm2022/utils/directives/overflow-list/overflow-list.module.mjs +0 -17
- package/esm2022/utils/directives/readonly/default-readonly-view-modifier.mjs +0 -12
- package/esm2022/utils/directives/readonly/fdk-readonly-provider.service.mjs +0 -101
- package/esm2022/utils/directives/readonly/fdk-readonly.token.mjs +0 -3
- package/esm2022/utils/directives/readonly/index.mjs +0 -10
- package/esm2022/utils/directives/readonly/readonly-behavior.directive.mjs +0 -67
- package/esm2022/utils/directives/readonly/readonly-behavior.interface.mjs +0 -2
- package/esm2022/utils/directives/readonly/readonly-behavior.module.mjs +0 -16
- package/esm2022/utils/directives/readonly/readonly-view-modifier.interface.mjs +0 -2
- package/esm2022/utils/directives/readonly/readonly.observer.mjs +0 -33
- package/esm2022/utils/directives/readonly/set-readonly-state.mjs +0 -14
- package/esm2022/utils/directives/repeat/repeat.directive.mjs +0 -34
- package/esm2022/utils/directives/repeat/repeat.module.mjs +0 -16
- package/esm2022/utils/directives/resize/resize-handle.directive.mjs +0 -18
- package/esm2022/utils/directives/resize/resize.directive.mjs +0 -241
- package/esm2022/utils/directives/resize/resize.module.mjs +0 -17
- package/esm2022/utils/directives/resize-observer/index.mjs +0 -2
- package/esm2022/utils/directives/resize-observer/resize-observer.directive.mjs +0 -29
- package/esm2022/utils/directives/selectable-list/index.mjs +0 -8
- package/esm2022/utils/directives/selectable-list/select-component-root.token.mjs +0 -3
- package/esm2022/utils/directives/selectable-list/selectable-item.directive.mjs +0 -147
- package/esm2022/utils/directives/selectable-list/selectable-item.token.mjs +0 -3
- package/esm2022/utils/directives/selectable-list/selectable-list.directive.mjs +0 -85
- package/esm2022/utils/directives/selectable-list/selectable-list.module.mjs +0 -17
- package/esm2022/utils/directives/selectable-list/selectable-list.tokens.mjs +0 -3
- package/esm2022/utils/directives/selectable-list/selection.service.mjs +0 -138
- package/esm2022/utils/directives/template/template.directive.mjs +0 -25
- package/esm2022/utils/directives/template/template.module.mjs +0 -16
- package/esm2022/utils/directives/truncate/truncate.directive.mjs +0 -94
- package/esm2022/utils/directives/truncate/truncate.module.mjs +0 -16
- package/esm2022/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +0 -274
- package/esm2022/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.mjs +0 -88
- package/esm2022/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.mjs +0 -83
- package/esm2022/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +0 -378
- package/esm2022/utils/drag-and-drop/dnd.interfaces.mjs +0 -2
- package/esm2022/utils/drag-and-drop/drag-and-drop.module.mjs +0 -22
- package/esm2022/utils/drag-and-drop/index.mjs +0 -8
- package/esm2022/utils/drag-and-drop/tokens.mjs +0 -4
- package/esm2022/utils/dynamic-component/dynamic-component-config.mjs +0 -2
- package/esm2022/utils/dynamic-component/dynamic-component-container.mjs +0 -32
- package/esm2022/utils/dynamic-component/dynamic-component-injector.mjs +0 -20
- package/esm2022/utils/dynamic-component/dynamic-component.service.mjs +0 -100
- package/esm2022/utils/dynamic-component/index.mjs +0 -5
- package/esm2022/utils/functions/consumer-provider-factory.mjs +0 -12
- package/esm2022/utils/functions/element-size.mjs +0 -23
- package/esm2022/utils/functions/get-document-font-size.mjs +0 -9
- package/esm2022/utils/functions/index.mjs +0 -14
- package/esm2022/utils/functions/intersection-observable.mjs +0 -26
- package/esm2022/utils/functions/is-compact-density.mjs +0 -11
- package/esm2022/utils/functions/is-odd.mjs +0 -9
- package/esm2022/utils/functions/key-util.mjs +0 -90
- package/esm2022/utils/functions/module-deprecations-provider.mjs +0 -18
- package/esm2022/utils/functions/parser-file-size.mjs +0 -37
- package/esm2022/utils/functions/random-color-accent.mjs +0 -5
- package/esm2022/utils/functions/resize-observable.mjs +0 -33
- package/esm2022/utils/functions/scroll.mjs +0 -19
- package/esm2022/utils/functions/uuidv4-generator.mjs +0 -12
- package/esm2022/utils/fundamental-ngx-cdk-utils.mjs +0 -5
- package/esm2022/utils/helpers/destroy-observable.mjs +0 -12
- package/esm2022/utils/helpers/dfs.mjs +0 -47
- package/esm2022/utils/helpers/get-native-element.mjs +0 -19
- package/esm2022/utils/helpers/index.mjs +0 -6
- package/esm2022/utils/helpers/range-selector.mjs +0 -117
- package/esm2022/utils/helpers/warn-once.mjs +0 -9
- package/esm2022/utils/index.mjs +0 -25
- package/esm2022/utils/interfaces/content-density.mjs +0 -2
- package/esm2022/utils/interfaces/css-class-builder.interface.mjs +0 -2
- package/esm2022/utils/interfaces/css-style-builder.interface.mjs +0 -2
- package/esm2022/utils/interfaces/has-element-ref.interface.mjs +0 -2
- package/esm2022/utils/interfaces/index.mjs +0 -8
- package/esm2022/utils/interfaces/keyboard-support-item.interface.mjs +0 -2
- package/esm2022/utils/interfaces/module-deprecation.interface.mjs +0 -2
- package/esm2022/utils/interfaces/require.interface.mjs +0 -2
- package/esm2022/utils/list-item/list-item-utils.mjs +0 -3
- package/esm2022/utils/models/nullable.mjs +0 -2
- package/esm2022/utils/pipes/async-or-sync.pipe.mjs +0 -35
- package/esm2022/utils/pipes/displayFn.pipe.mjs +0 -18
- package/esm2022/utils/pipes/filter-strings.pipe.mjs +0 -31
- package/esm2022/utils/pipes/index.mjs +0 -12
- package/esm2022/utils/pipes/is-compact.pipe.mjs +0 -16
- package/esm2022/utils/pipes/make-async.pipe.mjs +0 -24
- package/esm2022/utils/pipes/pipe.module.mjs +0 -65
- package/esm2022/utils/pipes/safe.pipe.mjs +0 -37
- package/esm2022/utils/pipes/search-highlight.pipe.mjs +0 -40
- package/esm2022/utils/pipes/truncate.pipe.mjs +0 -18
- package/esm2022/utils/pipes/two-digits.pipe.mjs +0 -23
- package/esm2022/utils/pipes/value-by-path.pipe.mjs +0 -16
- package/esm2022/utils/services/content-density.service.mjs +0 -35
- package/esm2022/utils/services/destroyed.service.mjs +0 -26
- package/esm2022/utils/services/focus-trap.service.mjs +0 -92
- package/esm2022/utils/services/index.mjs +0 -10
- package/esm2022/utils/services/keyboard-support/keyboard-support.service.mjs +0 -73
- package/esm2022/utils/services/local-storage.service.mjs +0 -38
- package/esm2022/utils/services/observers/attribute.observer.mjs +0 -81
- package/esm2022/utils/services/resize-observer.service.mjs +0 -92
- package/esm2022/utils/services/rtl.service.mjs +0 -32
- package/esm2022/utils/services/tabbable-element.service.mjs +0 -43
- package/esm2022/utils/toast/base-toast-animations.mjs +0 -22
- package/esm2022/utils/toast/base-toast-positions.mjs +0 -108
- package/esm2022/utils/toast/base-toast.service.mjs +0 -261
- package/esm2022/utils/toast/classes/action-dismissible/base-toast-action-dismissible-ref.mjs +0 -36
- package/esm2022/utils/toast/classes/base-toast-animated-container.component.mjs +0 -87
- package/esm2022/utils/toast/classes/base-toast-config.mjs +0 -23
- package/esm2022/utils/toast/classes/base-toast-container.component.mjs +0 -72
- package/esm2022/utils/toast/classes/base-toast-overlay-container.mjs +0 -25
- package/esm2022/utils/toast/classes/base-toast-ref.mjs +0 -45
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-config.mjs +0 -19
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.mjs +0 -39
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-ref.mjs +0 -23
- package/esm2022/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible.service.mjs +0 -25
- package/esm2022/utils/toast/index.mjs +0 -16
- package/esm2022/utils/toast/interfaces/toast-container-component.interface.mjs +0 -2
- package/esm2022/utils/toast/interfaces/toast-duration-dismissible-container-component.interface.mjs +0 -2
- package/esm2022/utils/toast/interfaces/toast-text-component.interface.mjs +0 -2
- package/esm2022/utils/tokens/module-deprecations.token.mjs +0 -3
- package/esm2022/utils/tokens/viewport-size.observable.mjs +0 -20
- package/esm2022/utils/typecheck.mjs +0 -75
- package/esm2022/utils/utils.module.mjs +0 -131
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class TwoDigitsPipe {
|
|
4
|
-
/** Transform number to two digits. */
|
|
5
|
-
transform(value, enable = true) {
|
|
6
|
-
if ((value || value === 0) && enable) {
|
|
7
|
-
return value < 10 ? '0' + value : value.toString();
|
|
8
|
-
}
|
|
9
|
-
else {
|
|
10
|
-
return String(value);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TwoDigitsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
14
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: TwoDigitsPipe, isStandalone: true, name: "twoDigits" }); }
|
|
15
|
-
}
|
|
16
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TwoDigitsPipe, decorators: [{
|
|
17
|
-
type: Pipe,
|
|
18
|
-
args: [{
|
|
19
|
-
name: 'twoDigits',
|
|
20
|
-
standalone: true
|
|
21
|
-
}]
|
|
22
|
-
}] });
|
|
23
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHdvLWRpZ2l0cy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvcGlwZXMvdHdvLWRpZ2l0cy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU1wRCxNQUFNLE9BQU8sYUFBYTtJQUN0QixzQ0FBc0M7SUFDdEMsU0FBUyxDQUFDLEtBQWEsRUFBRSxTQUFrQixJQUFJO1FBQzNDLElBQUksQ0FBQyxLQUFLLElBQUksS0FBSyxLQUFLLENBQUMsQ0FBQyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ25DLE9BQU8sS0FBSyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3ZELENBQUM7YUFBTSxDQUFDO1lBQ0osT0FBTyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDekIsQ0FBQztJQUNMLENBQUM7OEdBUlEsYUFBYTs0R0FBYixhQUFhOzsyRkFBYixhQUFhO2tCQUp6QixJQUFJO21CQUFDO29CQUNGLElBQUksRUFBRSxXQUFXO29CQUNqQixVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgICBuYW1lOiAndHdvRGlnaXRzJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFR3b0RpZ2l0c1BpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgICAvKiogVHJhbnNmb3JtIG51bWJlciB0byB0d28gZGlnaXRzLiAqL1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogbnVtYmVyLCBlbmFibGU6IGJvb2xlYW4gPSB0cnVlKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKCh2YWx1ZSB8fCB2YWx1ZSA9PT0gMCkgJiYgZW5hYmxlKSB7XG4gICAgICAgICAgICByZXR1cm4gdmFsdWUgPCAxMCA/ICcwJyArIHZhbHVlIDogdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { Pipe } from '@angular/core';
|
|
2
|
-
import { get } from 'lodash-es';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class ValueByPathPipe {
|
|
5
|
-
/** Get value by path. */
|
|
6
|
-
transform(value, key) {
|
|
7
|
-
return get(value, key);
|
|
8
|
-
}
|
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ValueByPathPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
10
|
-
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: ValueByPathPipe, isStandalone: true, name: "valueByPath" }); }
|
|
11
|
-
}
|
|
12
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ValueByPathPipe, decorators: [{
|
|
13
|
-
type: Pipe,
|
|
14
|
-
args: [{ name: 'valueByPath', standalone: true }]
|
|
15
|
-
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsdWUtYnktcGF0aC5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvcGlwZXMvdmFsdWUtYnktcGF0aC5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxXQUFXLENBQUM7O0FBR2hDLE1BQU0sT0FBTyxlQUFlO0lBQ3hCLHlCQUF5QjtJQUN6QixTQUFTLENBQUMsS0FBVSxFQUFFLEdBQVc7UUFDN0IsT0FBTyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQzNCLENBQUM7OEdBSlEsZUFBZTs0R0FBZixlQUFlOzsyRkFBZixlQUFlO2tCQUQzQixJQUFJO21CQUFDLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZ2V0IH0gZnJvbSAnbG9kYXNoLWVzJztcblxuQFBpcGUoeyBuYW1lOiAndmFsdWVCeVBhdGgnLCBzdGFuZGFsb25lOiB0cnVlIH0pXG5leHBvcnQgY2xhc3MgVmFsdWVCeVBhdGhQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gICAgLyoqIEdldCB2YWx1ZSBieSBwYXRoLiAqL1xuICAgIHRyYW5zZm9ybSh2YWx1ZTogYW55LCBrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIHJldHVybiBnZXQodmFsdWUsIGtleSk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { Injectable, isDevMode } from '@angular/core';
|
|
2
|
-
import { BehaviorSubject } from 'rxjs';
|
|
3
|
-
import { distinctUntilChanged, map, startWith } from 'rxjs/operators';
|
|
4
|
-
import { isCompactDensity } from '../functions/is-compact-density';
|
|
5
|
-
import { warnOnce } from '../helpers';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export const DEFAULT_CONTENT_DENSITY = 'cozy';
|
|
8
|
-
/**
|
|
9
|
-
* Service taking care of ContentDensity
|
|
10
|
-
*/
|
|
11
|
-
export class ContentDensityService {
|
|
12
|
-
/** @hidden */
|
|
13
|
-
constructor() {
|
|
14
|
-
/** Content Density BehaviourSubject */
|
|
15
|
-
this.contentDensity = new BehaviorSubject(DEFAULT_CONTENT_DENSITY);
|
|
16
|
-
if (isDevMode()) {
|
|
17
|
-
warnOnce(`[Deprecated] ContentDensityService is deprecated and will be removed in the next major version.
|
|
18
|
-
Please use ContentDensityControllerService instead, or use the ContentDensityModule forRoot method.`);
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
/** @hidden */
|
|
22
|
-
get _contentDensityListener() {
|
|
23
|
-
return this.contentDensity.pipe(distinctUntilChanged(), startWith(this.contentDensity.getValue()));
|
|
24
|
-
}
|
|
25
|
-
/** @hidden */
|
|
26
|
-
get _isCompactDensity() {
|
|
27
|
-
return this._contentDensityListener.pipe(map((density) => isCompactDensity(density)));
|
|
28
|
-
}
|
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ContentDensityService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ContentDensityService }); }
|
|
31
|
-
}
|
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ContentDensityService, decorators: [{
|
|
33
|
-
type: Injectable
|
|
34
|
-
}], ctorParameters: () => [] });
|
|
35
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC1kZW5zaXR5LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9zZXJ2aWNlcy9jb250ZW50LWRlbnNpdHkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFHdEMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQW1CLE1BQU0sQ0FBQztBQUU5RDs7R0FFRztBQUVILE1BQU0sT0FBTyxxQkFBcUI7SUFJOUIsY0FBYztJQUNkO1FBSkEsdUNBQXVDO1FBQzlCLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUluRSxJQUFJLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDZCxRQUFRLENBQ0o7cUhBQ3FHLENBQ3hHLENBQUM7UUFDTixDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUFJLHVCQUF1QjtRQUN2QixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZHLENBQUM7SUFFRCxjQUFjO0lBQ2QsSUFBSSxpQkFBaUI7UUFDakIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7OEdBdEJRLHFCQUFxQjtrSEFBckIscUJBQXFCOzsyRkFBckIscUJBQXFCO2tCQURqQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgaXNEZXZNb2RlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGlzQ29tcGFjdERlbnNpdHkgfSBmcm9tICcuLi9mdW5jdGlvbnMvaXMtY29tcGFjdC1kZW5zaXR5JztcbmltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBDb250ZW50RGVuc2l0eSB9IGZyb20gJy4uL2ludGVyZmFjZXMvY29udGVudC1kZW5zaXR5JztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfQ09OVEVOVF9ERU5TSVRZOiBDb250ZW50RGVuc2l0eSA9ICdjb3p5JztcblxuLyoqXG4gKiBTZXJ2aWNlIHRha2luZyBjYXJlIG9mIENvbnRlbnREZW5zaXR5XG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb250ZW50RGVuc2l0eVNlcnZpY2Uge1xuICAgIC8qKiBDb250ZW50IERlbnNpdHkgQmVoYXZpb3VyU3ViamVjdCAqL1xuICAgIHJlYWRvbmx5IGNvbnRlbnREZW5zaXR5ID0gbmV3IEJlaGF2aW9yU3ViamVjdChERUZBVUxUX0NPTlRFTlRfREVOU0lUWSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBpZiAoaXNEZXZNb2RlKCkpIHtcbiAgICAgICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgICAgIGBbRGVwcmVjYXRlZF0gQ29udGVudERlbnNpdHlTZXJ2aWNlIGlzIGRlcHJlY2F0ZWQgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiB0aGUgbmV4dCBtYWpvciB2ZXJzaW9uLlxuICAgICAgICAgICAgICAgICBQbGVhc2UgdXNlIENvbnRlbnREZW5zaXR5Q29udHJvbGxlclNlcnZpY2UgaW5zdGVhZCwgb3IgdXNlIHRoZSBDb250ZW50RGVuc2l0eU1vZHVsZSBmb3JSb290IG1ldGhvZC5gXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXQgX2NvbnRlbnREZW5zaXR5TGlzdGVuZXIoKTogT2JzZXJ2YWJsZTxDb250ZW50RGVuc2l0eT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZW50RGVuc2l0eS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIHN0YXJ0V2l0aCh0aGlzLmNvbnRlbnREZW5zaXR5LmdldFZhbHVlKCkpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBfaXNDb21wYWN0RGVuc2l0eSgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbnRlbnREZW5zaXR5TGlzdGVuZXIucGlwZShtYXAoKGRlbnNpdHkpID0+IGlzQ29tcGFjdERlbnNpdHkoZGVuc2l0eSkpKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { ReplaySubject } from 'rxjs';
|
|
3
|
-
import { warnOnce } from '../helpers';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/**
|
|
6
|
-
* @deprecated Use Angular's built-in `DestroyRef` and `takeUntilDestroyed` instead.
|
|
7
|
-
* Will be removed in next release
|
|
8
|
-
*/
|
|
9
|
-
export class DestroyedService extends ReplaySubject {
|
|
10
|
-
/** @hidden */
|
|
11
|
-
constructor() {
|
|
12
|
-
super(1);
|
|
13
|
-
warnOnce(`DestroyedService is deprecated. Use Angular's built-in 'DestroyRef' and 'takeUntilDestroyed' instead.`);
|
|
14
|
-
}
|
|
15
|
-
/** @hidden */
|
|
16
|
-
ngOnDestroy() {
|
|
17
|
-
this.next();
|
|
18
|
-
this.complete();
|
|
19
|
-
}
|
|
20
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DestroyedService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
21
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DestroyedService }); }
|
|
22
|
-
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: DestroyedService, decorators: [{
|
|
24
|
-
type: Injectable
|
|
25
|
-
}], ctorParameters: () => [] });
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveWVkLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9zZXJ2aWNlcy9kZXN0cm95ZWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQzs7QUFFdEM7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGFBQW1CO0lBQ3JELGNBQWM7SUFDZDtRQUNJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNULFFBQVEsQ0FDSix1R0FBdUcsQ0FDMUcsQ0FBQztJQUNOLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQixDQUFDOzhHQWJRLGdCQUFnQjtrSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBBbmd1bGFyJ3MgYnVpbHQtaW4gYERlc3Ryb3lSZWZgIGFuZCBgdGFrZVVudGlsRGVzdHJveWVkYCBpbnN0ZWFkLlxuICogV2lsbCBiZSByZW1vdmVkIGluIG5leHQgcmVsZWFzZVxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGVzdHJveWVkU2VydmljZSBleHRlbmRzIFJlcGxheVN1YmplY3Q8dm9pZD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKDEpO1xuICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgIGBEZXN0cm95ZWRTZXJ2aWNlIGlzIGRlcHJlY2F0ZWQuIFVzZSBBbmd1bGFyJ3MgYnVpbHQtaW4gJ0Rlc3Ryb3lSZWYnIGFuZCAndGFrZVVudGlsRGVzdHJveWVkJyBpbnN0ZWFkLmBcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm5leHQoKTtcbiAgICAgICAgdGhpcy5jb21wbGV0ZSgpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { createFocusTrap } from 'focus-trap';
|
|
3
|
-
import { uuidv4 } from '../functions/uuidv4-generator';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class FocusTrapService {
|
|
6
|
-
constructor() {
|
|
7
|
-
/** @hidden */
|
|
8
|
-
this._focusTrapInstances = new Map();
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Creates focus trap instance for defined element
|
|
12
|
-
* @param element Container for which to create focus trap
|
|
13
|
-
* @param userOptions Focus-trap specific configuration
|
|
14
|
-
* @returns {string} Unique ID of focus trap instance
|
|
15
|
-
*/
|
|
16
|
-
createFocusTrap(element, userOptions) {
|
|
17
|
-
const uid = uuidv4();
|
|
18
|
-
const trap = createFocusTrap(element, userOptions);
|
|
19
|
-
this._focusTrapInstances.set(uid, trap);
|
|
20
|
-
this.activateFocusTrap(uid);
|
|
21
|
-
return uid;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Activates focus trap for defined ID
|
|
25
|
-
* @param id Unique ID of focus trap instance
|
|
26
|
-
*/
|
|
27
|
-
activateFocusTrap(id) {
|
|
28
|
-
if (!this._focusTrapExists(id)) {
|
|
29
|
-
return;
|
|
30
|
-
}
|
|
31
|
-
const trap = this.getFocusTrapInstance(id);
|
|
32
|
-
trap?.activate();
|
|
33
|
-
}
|
|
34
|
-
/**
|
|
35
|
-
* Deactivates focus trap for defined ID
|
|
36
|
-
* @param id Unique ID of focus trap instance
|
|
37
|
-
*/
|
|
38
|
-
deactivateFocusTrap(id) {
|
|
39
|
-
if (!this._focusTrapExists(id)) {
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
const trap = this.getFocusTrapInstance(id);
|
|
43
|
-
trap?.deactivate();
|
|
44
|
-
this._focusTrapInstances.delete(id);
|
|
45
|
-
}
|
|
46
|
-
/**
|
|
47
|
-
* Pauses current focus trap.
|
|
48
|
-
*/
|
|
49
|
-
pauseCurrentFocusTrap() {
|
|
50
|
-
if (this._focusTrapInstances.size === 0) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
const trapItem = this._getLastTrapedItem();
|
|
54
|
-
trapItem?.pause();
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* Unpauses current focus trap.
|
|
58
|
-
*/
|
|
59
|
-
unpauseCurrentFocusTrap() {
|
|
60
|
-
if (this._focusTrapInstances.size === 0) {
|
|
61
|
-
return;
|
|
62
|
-
}
|
|
63
|
-
const trapItem = this._getLastTrapedItem();
|
|
64
|
-
trapItem?.unpause();
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Get focus trap instance by ID.
|
|
68
|
-
* @param id ID of the instance.
|
|
69
|
-
* @returns Focus trap instance if exists.
|
|
70
|
-
*/
|
|
71
|
-
getFocusTrapInstance(id) {
|
|
72
|
-
return this._focusTrapInstances.get(id);
|
|
73
|
-
}
|
|
74
|
-
/** @hidden */
|
|
75
|
-
_getLastTrapedItem() {
|
|
76
|
-
const lastItem = Array.from(this._focusTrapInstances).pop();
|
|
77
|
-
return lastItem ? lastItem[1] : undefined;
|
|
78
|
-
}
|
|
79
|
-
/** @hidden */
|
|
80
|
-
_focusTrapExists(id) {
|
|
81
|
-
return this._focusTrapInstances.has(id);
|
|
82
|
-
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusTrapService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
84
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusTrapService, providedIn: 'root' }); }
|
|
85
|
-
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FocusTrapService, decorators: [{
|
|
87
|
-
type: Injectable,
|
|
88
|
-
args: [{
|
|
89
|
-
providedIn: 'root'
|
|
90
|
-
}]
|
|
91
|
-
}] });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9jdXMtdHJhcC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvc2VydmljZXMvZm9jdXMtdHJhcC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBc0IsTUFBTSxZQUFZLENBQUM7QUFDakUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDOztBQUt2RCxNQUFNLE9BQU8sZ0JBQWdCO0lBSDdCO1FBSUksY0FBYztRQUNOLHdCQUFtQixHQUF3QixJQUFJLEdBQUcsRUFBRSxDQUFDO0tBbUdoRTtJQWpHRzs7Ozs7T0FLRztJQUNILGVBQWUsQ0FDWCxPQUFrRixFQUNsRixXQUFxQjtRQUVyQixNQUFNLEdBQUcsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUVyQixNQUFNLElBQUksR0FBRyxlQUFlLENBQUMsT0FBTyxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRW5ELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUU1QixPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFRDs7O09BR0c7SUFDSCxpQkFBaUIsQ0FBQyxFQUFVO1FBQ3hCLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUM3QixPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUUzQyxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVEOzs7T0FHRztJQUNILG1CQUFtQixDQUFDLEVBQVU7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBRTNDLElBQUksRUFBRSxVQUFVLEVBQUUsQ0FBQztRQUVuQixJQUFJLENBQUMsbUJBQW1CLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNILHFCQUFxQjtRQUNqQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDdEMsT0FBTztRQUNYLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUUzQyxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsdUJBQXVCO1FBQ25CLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxPQUFPO1FBQ1gsQ0FBQztRQUVELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBRTNDLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILG9CQUFvQixDQUFDLEVBQVU7UUFDM0IsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxjQUFjO0lBQ04sa0JBQWtCO1FBQ3RCLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUMsR0FBRyxFQUFFLENBQUM7UUFFNUQsT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBQzlDLENBQUM7SUFFRCxjQUFjO0lBQ04sZ0JBQWdCLENBQUMsRUFBVTtRQUMvQixPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQzs4R0FwR1EsZ0JBQWdCO2tIQUFoQixnQkFBZ0IsY0FGYixNQUFNOzsyRkFFVCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY3JlYXRlRm9jdXNUcmFwLCBGb2N1c1RyYXAsIE9wdGlvbnMgfSBmcm9tICdmb2N1cy10cmFwJztcbmltcG9ydCB7IHV1aWR2NCB9IGZyb20gJy4uL2Z1bmN0aW9ucy91dWlkdjQtZ2VuZXJhdG9yJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBGb2N1c1RyYXBTZXJ2aWNlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2ZvY3VzVHJhcEluc3RhbmNlczogTWFwPGFueSwgRm9jdXNUcmFwPiA9IG5ldyBNYXAoKTtcblxuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgZm9jdXMgdHJhcCBpbnN0YW5jZSBmb3IgZGVmaW5lZCBlbGVtZW50XG4gICAgICogQHBhcmFtIGVsZW1lbnQgQ29udGFpbmVyIGZvciB3aGljaCB0byBjcmVhdGUgZm9jdXMgdHJhcFxuICAgICAqIEBwYXJhbSB1c2VyT3B0aW9ucyBGb2N1cy10cmFwIHNwZWNpZmljIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBVbmlxdWUgSUQgb2YgZm9jdXMgdHJhcCBpbnN0YW5jZVxuICAgICAqL1xuICAgIGNyZWF0ZUZvY3VzVHJhcChcbiAgICAgICAgZWxlbWVudDogc3RyaW5nIHwgSFRNTEVsZW1lbnQgfCBTVkdFbGVtZW50IHwgKHN0cmluZyB8IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudClbXSxcbiAgICAgICAgdXNlck9wdGlvbnM/OiBPcHRpb25zXG4gICAgKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdWlkID0gdXVpZHY0KCk7XG5cbiAgICAgICAgY29uc3QgdHJhcCA9IGNyZWF0ZUZvY3VzVHJhcChlbGVtZW50LCB1c2VyT3B0aW9ucyk7XG5cbiAgICAgICAgdGhpcy5fZm9jdXNUcmFwSW5zdGFuY2VzLnNldCh1aWQsIHRyYXApO1xuXG4gICAgICAgIHRoaXMuYWN0aXZhdGVGb2N1c1RyYXAodWlkKTtcblxuICAgICAgICByZXR1cm4gdWlkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFjdGl2YXRlcyBmb2N1cyB0cmFwIGZvciBkZWZpbmVkIElEXG4gICAgICogQHBhcmFtIGlkIFVuaXF1ZSBJRCBvZiBmb2N1cyB0cmFwIGluc3RhbmNlXG4gICAgICovXG4gICAgYWN0aXZhdGVGb2N1c1RyYXAoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2ZvY3VzVHJhcEV4aXN0cyhpZCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYXAgPSB0aGlzLmdldEZvY3VzVHJhcEluc3RhbmNlKGlkKTtcblxuICAgICAgICB0cmFwPy5hY3RpdmF0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlYWN0aXZhdGVzIGZvY3VzIHRyYXAgZm9yIGRlZmluZWQgSURcbiAgICAgKiBAcGFyYW0gaWQgVW5pcXVlIElEIG9mIGZvY3VzIHRyYXAgaW5zdGFuY2VcbiAgICAgKi9cbiAgICBkZWFjdGl2YXRlRm9jdXNUcmFwKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLl9mb2N1c1RyYXBFeGlzdHMoaWQpKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCB0cmFwID0gdGhpcy5nZXRGb2N1c1RyYXBJbnN0YW5jZShpZCk7XG5cbiAgICAgICAgdHJhcD8uZGVhY3RpdmF0ZSgpO1xuXG4gICAgICAgIHRoaXMuX2ZvY3VzVHJhcEluc3RhbmNlcy5kZWxldGUoaWQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFBhdXNlcyBjdXJyZW50IGZvY3VzIHRyYXAuXG4gICAgICovXG4gICAgcGF1c2VDdXJyZW50Rm9jdXNUcmFwKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fZm9jdXNUcmFwSW5zdGFuY2VzLnNpemUgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHRyYXBJdGVtID0gdGhpcy5fZ2V0TGFzdFRyYXBlZEl0ZW0oKTtcblxuICAgICAgICB0cmFwSXRlbT8ucGF1c2UoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVbnBhdXNlcyBjdXJyZW50IGZvY3VzIHRyYXAuXG4gICAgICovXG4gICAgdW5wYXVzZUN1cnJlbnRGb2N1c1RyYXAoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9mb2N1c1RyYXBJbnN0YW5jZXMuc2l6ZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdHJhcEl0ZW0gPSB0aGlzLl9nZXRMYXN0VHJhcGVkSXRlbSgpO1xuXG4gICAgICAgIHRyYXBJdGVtPy51bnBhdXNlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IGZvY3VzIHRyYXAgaW5zdGFuY2UgYnkgSUQuXG4gICAgICogQHBhcmFtIGlkIElEIG9mIHRoZSBpbnN0YW5jZS5cbiAgICAgKiBAcmV0dXJucyBGb2N1cyB0cmFwIGluc3RhbmNlIGlmIGV4aXN0cy5cbiAgICAgKi9cbiAgICBnZXRGb2N1c1RyYXBJbnN0YW5jZShpZDogc3RyaW5nKTogRm9jdXNUcmFwIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvY3VzVHJhcEluc3RhbmNlcy5nZXQoaWQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0TGFzdFRyYXBlZEl0ZW0oKTogRm9jdXNUcmFwIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgY29uc3QgbGFzdEl0ZW0gPSBBcnJheS5mcm9tKHRoaXMuX2ZvY3VzVHJhcEluc3RhbmNlcykucG9wKCk7XG5cbiAgICAgICAgcmV0dXJuIGxhc3RJdGVtID8gbGFzdEl0ZW1bMV0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb2N1c1RyYXBFeGlzdHMoaWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9jdXNUcmFwSW5zdGFuY2VzLmhhcyhpZCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './content-density.service';
|
|
2
|
-
export * from './destroyed.service';
|
|
3
|
-
export * from './focus-trap.service';
|
|
4
|
-
export * from './keyboard-support/keyboard-support.service';
|
|
5
|
-
export * from './local-storage.service';
|
|
6
|
-
export * from './observers/attribute.observer';
|
|
7
|
-
export * from './resize-observer.service';
|
|
8
|
-
export * from './rtl.service';
|
|
9
|
-
export * from './tabbable-element.service';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbnRlbnQtZGVuc2l0eS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzdHJveWVkLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1cy10cmFwLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9rZXlib2FyZC1zdXBwb3J0L2tleWJvYXJkLXN1cHBvcnQuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2xvY2FsLXN0b3JhZ2Uuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL29ic2VydmVycy9hdHRyaWJ1dGUub2JzZXJ2ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL3J0bC5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vdGFiYmFibGUtZWxlbWVudC5zZXJ2aWNlJztcbiJdfQ==
|
|
@@ -1,73 +0,0 @@
|
|
|
1
|
-
import { FocusKeyManager } from '@angular/cdk/a11y';
|
|
2
|
-
import { DOWN_ARROW, TAB, UP_ARROW, hasModifierKey } from '@angular/cdk/keycodes';
|
|
3
|
-
import { DestroyRef, Injectable, inject } from '@angular/core';
|
|
4
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
5
|
-
import { Subject, merge } from 'rxjs';
|
|
6
|
-
import { filter, startWith, takeUntil, tap } from 'rxjs/operators';
|
|
7
|
-
import { KeyUtil } from '../../functions';
|
|
8
|
-
import { destroyObservable } from '../../helpers/destroy-observable';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
export class KeyboardSupportService {
|
|
11
|
-
constructor() {
|
|
12
|
-
/** Subject that is thrown, when focus escapes the list */
|
|
13
|
-
this.focusEscapeList = new Subject();
|
|
14
|
-
/** @hidden */
|
|
15
|
-
this._destroyRef = inject(DestroyRef);
|
|
16
|
-
/** An RxJS Subject that will kill the data stream upon queryList changes (for unsubscribing) */
|
|
17
|
-
this._onRefresh$ = new Subject();
|
|
18
|
-
/** @hidden
|
|
19
|
-
* allow tab key navigation. default is true.
|
|
20
|
-
*/
|
|
21
|
-
this._tabKeyNavigation = true;
|
|
22
|
-
}
|
|
23
|
-
/** @hidden */
|
|
24
|
-
get keyManager() {
|
|
25
|
-
return this._keyManager;
|
|
26
|
-
}
|
|
27
|
-
/** @hidden */
|
|
28
|
-
setKeyboardService(queryList, wrap, tabKeyNavigation = true) {
|
|
29
|
-
this._keyManager?.destroy();
|
|
30
|
-
this._tabKeyNavigation = tabKeyNavigation;
|
|
31
|
-
this._keyManager = new FocusKeyManager(queryList).withWrap(wrap).withHomeAndEnd();
|
|
32
|
-
queryList.changes
|
|
33
|
-
.pipe(startWith(0), takeUntilDestroyed(this._destroyRef))
|
|
34
|
-
.subscribe(() => this._refreshEscapeLogic(queryList));
|
|
35
|
-
}
|
|
36
|
-
/** @hidden */
|
|
37
|
-
onKeyDown(event) {
|
|
38
|
-
this._keyManager.onKeydown(event);
|
|
39
|
-
if (KeyUtil.isKeyCode(event, TAB)) {
|
|
40
|
-
if (KeyUtil.isKeyCode(event, TAB) && this._tabKeyNavigation) {
|
|
41
|
-
event.preventDefault();
|
|
42
|
-
hasModifierKey(event, 'shiftKey')
|
|
43
|
-
? this.keyManager.setPreviousItemActive()
|
|
44
|
-
: this.keyManager.setNextItemActive();
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
/** Destroys KeyboardSupportService dependencies */
|
|
49
|
-
ngOnDestroy() {
|
|
50
|
-
this._keyManager?.destroy();
|
|
51
|
-
}
|
|
52
|
-
/** @hidden */
|
|
53
|
-
_refreshEscapeLogic(queryList) {
|
|
54
|
-
const createEscapeListener = (listItem, onKeyCode, escapeDirection) => {
|
|
55
|
-
listItem.keyDown
|
|
56
|
-
.pipe(takeUntil(unsubscribe$), filter((event) => KeyUtil.isKeyCode(event, onKeyCode)), tap((event) => event.preventDefault()))
|
|
57
|
-
.subscribe(() => this.focusEscapeList.next(escapeDirection));
|
|
58
|
-
};
|
|
59
|
-
/** Finish all of the streams, form before */
|
|
60
|
-
this._onRefresh$.next();
|
|
61
|
-
const unsubscribe$ = merge(this._onRefresh$, destroyObservable(this._destroyRef));
|
|
62
|
-
if (queryList.length) {
|
|
63
|
-
createEscapeListener(queryList.last, DOWN_ARROW, 'down');
|
|
64
|
-
createEscapeListener(queryList.first, UP_ARROW, 'up');
|
|
65
|
-
}
|
|
66
|
-
}
|
|
67
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: KeyboardSupportService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
68
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: KeyboardSupportService }); }
|
|
69
|
-
}
|
|
70
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: KeyboardSupportService, decorators: [{
|
|
71
|
-
type: Injectable
|
|
72
|
-
}] });
|
|
73
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2V5Ym9hcmQtc3VwcG9ydC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvc2VydmljZXMva2V5Ym9hcmQtc3VwcG9ydC9rZXlib2FyZC1zdXBwb3J0LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRixPQUFPLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBd0IsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDMUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBTXJFLE1BQU0sT0FBTyxzQkFBc0I7SUFEbkM7UUFFSSwwREFBMEQ7UUFDMUQsb0JBQWUsR0FBRyxJQUFJLE9BQU8sRUFBd0IsQ0FBQztRQUV0RCxlQUFlO1FBQ0UsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEQsaUdBQWlHO1FBQ2hGLGdCQUFXLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFVbEU7O1dBRUc7UUFDSyxzQkFBaUIsR0FBRyxJQUFJLENBQUM7S0E0RHBDO0lBcEVHLGNBQWM7SUFDZCxJQUFJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQU9ELGNBQWM7SUFDZCxrQkFBa0IsQ0FDZCxTQUFzRCxFQUN0RCxJQUFjLEVBQ2QsZ0JBQWdCLEdBQUcsSUFBSTtRQUV2QixJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxnQkFBZ0IsQ0FBQztRQUMxQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNsRixTQUFTLENBQUMsT0FBTzthQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3hELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsY0FBYztJQUNkLFNBQVMsQ0FBQyxLQUFvQjtRQUMxQixJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDaEMsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztnQkFDMUQsS0FBSyxDQUFDLGNBQWMsRUFBRSxDQUFDO2dCQUN2QixjQUFjLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQztvQkFDN0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMscUJBQXFCLEVBQUU7b0JBQ3pDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDOUMsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsbURBQW1EO0lBQ25ELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxjQUFjO0lBQ04sbUJBQW1CLENBQUMsU0FBc0Q7UUFDOUUsTUFBTSxvQkFBb0IsR0FBRyxDQUN6QixRQUEwQyxFQUMxQyxTQUFpQixFQUNqQixlQUFxQyxFQUNqQyxFQUFFO1lBQ04sUUFBUSxDQUFDLE9BQU87aUJBQ1gsSUFBSSxDQUNELFNBQVMsQ0FBQyxZQUFZLENBQUMsRUFDdkIsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxTQUFTLENBQUMsQ0FBQyxFQUN0RCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUN6QztpQkFDQSxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUNyRSxDQUFDLENBQUM7UUFFRiw2Q0FBNkM7UUFDN0MsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUV4QixNQUFNLFlBQVksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUVsRixJQUFJLFNBQVMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixvQkFBb0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQztZQUN6RCxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0wsQ0FBQzs4R0FoRlEsc0JBQXNCO2tIQUF0QixzQkFBc0I7OzJGQUF0QixzQkFBc0I7a0JBRGxDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c0tleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBET1dOX0FSUk9XLCBUQUIsIFVQX0FSUk9XLCBoYXNNb2RpZmllcktleSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9rZXljb2Rlcyc7XG5pbXBvcnQgeyBEZXN0cm95UmVmLCBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIFF1ZXJ5TGlzdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBTdWJqZWN0LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgS2V5VXRpbCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBkZXN0cm95T2JzZXJ2YWJsZSB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZGVzdHJveS1vYnNlcnZhYmxlJztcbmltcG9ydCB7IEtleWJvYXJkU3VwcG9ydEl0ZW1JbnRlcmZhY2UgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2tleWJvYXJkLXN1cHBvcnQtaXRlbS5pbnRlcmZhY2UnO1xuXG5leHBvcnQgdHlwZSBGb2N1c0VzY2FwZURpcmVjdGlvbiA9ICd1cCcgfCAnZG93bic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBLZXlib2FyZFN1cHBvcnRTZXJ2aWNlPFQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKiogU3ViamVjdCB0aGF0IGlzIHRocm93biwgd2hlbiBmb2N1cyBlc2NhcGVzIHRoZSBsaXN0ICovXG4gICAgZm9jdXNFc2NhcGVMaXN0ID0gbmV3IFN1YmplY3Q8Rm9jdXNFc2NhcGVEaXJlY3Rpb24+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEFuIFJ4SlMgU3ViamVjdCB0aGF0IHdpbGwga2lsbCB0aGUgZGF0YSBzdHJlYW0gdXBvbiBxdWVyeUxpc3QgY2hhbmdlcyAoZm9yIHVuc3Vic2NyaWJpbmcpICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29uUmVmcmVzaCQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9rZXlNYW5hZ2VyOiBGb2N1c0tleU1hbmFnZXI8VD47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldCBrZXlNYW5hZ2VyKCk6IEZvY3VzS2V5TWFuYWdlcjxUPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9rZXlNYW5hZ2VyO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogYWxsb3cgdGFiIGtleSBuYXZpZ2F0aW9uLiBkZWZhdWx0IGlzIHRydWUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdGFiS2V5TmF2aWdhdGlvbiA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldEtleWJvYXJkU2VydmljZShcbiAgICAgICAgcXVlcnlMaXN0OiBRdWVyeUxpc3Q8S2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSAmIFQ+LFxuICAgICAgICB3cmFwPzogYm9vbGVhbixcbiAgICAgICAgdGFiS2V5TmF2aWdhdGlvbiA9IHRydWVcbiAgICApOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlcj8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLl90YWJLZXlOYXZpZ2F0aW9uID0gdGFiS2V5TmF2aWdhdGlvbjtcbiAgICAgICAgdGhpcy5fa2V5TWFuYWdlciA9IG5ldyBGb2N1c0tleU1hbmFnZXIocXVlcnlMaXN0KS53aXRoV3JhcCh3cmFwKS53aXRoSG9tZUFuZEVuZCgpO1xuICAgICAgICBxdWVyeUxpc3QuY2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUoc3RhcnRXaXRoKDApLCB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3JlZnJlc2hFc2NhcGVMb2dpYyhxdWVyeUxpc3QpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9rZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgICAgIGlmIChLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgVEFCKSkge1xuICAgICAgICAgICAgaWYgKEtleVV0aWwuaXNLZXlDb2RlKGV2ZW50LCBUQUIpICYmIHRoaXMuX3RhYktleU5hdmlnYXRpb24pIHtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIGhhc01vZGlmaWVyS2V5KGV2ZW50LCAnc2hpZnRLZXknKVxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMua2V5TWFuYWdlci5zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMua2V5TWFuYWdlci5zZXROZXh0SXRlbUFjdGl2ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIERlc3Ryb3lzIEtleWJvYXJkU3VwcG9ydFNlcnZpY2UgZGVwZW5kZW5jaWVzICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2tleU1hbmFnZXI/LmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JlZnJlc2hFc2NhcGVMb2dpYyhxdWVyeUxpc3Q6IFF1ZXJ5TGlzdDxLZXlib2FyZFN1cHBvcnRJdGVtSW50ZXJmYWNlICYgVD4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3JlYXRlRXNjYXBlTGlzdGVuZXIgPSAoXG4gICAgICAgICAgICBsaXN0SXRlbTogS2V5Ym9hcmRTdXBwb3J0SXRlbUludGVyZmFjZSAmIFQsXG4gICAgICAgICAgICBvbktleUNvZGU6IG51bWJlcixcbiAgICAgICAgICAgIGVzY2FwZURpcmVjdGlvbjogRm9jdXNFc2NhcGVEaXJlY3Rpb25cbiAgICAgICAgKTogdm9pZCA9PiB7XG4gICAgICAgICAgICBsaXN0SXRlbS5rZXlEb3duXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh1bnN1YnNjcmliZSQpLFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoKGV2ZW50KSA9PiBLZXlVdGlsLmlzS2V5Q29kZShldmVudCwgb25LZXlDb2RlKSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoZXZlbnQpID0+IGV2ZW50LnByZXZlbnREZWZhdWx0KCkpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5mb2N1c0VzY2FwZUxpc3QubmV4dChlc2NhcGVEaXJlY3Rpb24pKTtcbiAgICAgICAgfTtcblxuICAgICAgICAvKiogRmluaXNoIGFsbCBvZiB0aGUgc3RyZWFtcywgZm9ybSBiZWZvcmUgKi9cbiAgICAgICAgdGhpcy5fb25SZWZyZXNoJC5uZXh0KCk7XG5cbiAgICAgICAgY29uc3QgdW5zdWJzY3JpYmUkID0gbWVyZ2UodGhpcy5fb25SZWZyZXNoJCwgZGVzdHJveU9ic2VydmFibGUodGhpcy5fZGVzdHJveVJlZikpO1xuXG4gICAgICAgIGlmIChxdWVyeUxpc3QubGVuZ3RoKSB7XG4gICAgICAgICAgICBjcmVhdGVFc2NhcGVMaXN0ZW5lcihxdWVyeUxpc3QubGFzdCwgRE9XTl9BUlJPVywgJ2Rvd24nKTtcbiAgICAgICAgICAgIGNyZWF0ZUVzY2FwZUxpc3RlbmVyKHF1ZXJ5TGlzdC5maXJzdCwgVVBfQVJST1csICd1cCcpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
class MockStorage {
|
|
4
|
-
// eslint-disable-next-line
|
|
5
|
-
key(index) { }
|
|
6
|
-
clear() { }
|
|
7
|
-
// eslint-disable-next-line
|
|
8
|
-
getItem(key) { }
|
|
9
|
-
// eslint-disable-next-line
|
|
10
|
-
removeItem(key) { }
|
|
11
|
-
// eslint-disable-next-line
|
|
12
|
-
setItem(key, value) { }
|
|
13
|
-
}
|
|
14
|
-
export class LocalStorageService {
|
|
15
|
-
/** @hidden */
|
|
16
|
-
constructor() {
|
|
17
|
-
typeof localStorage !== 'undefined' ? (this._storage = localStorage) : (this._storage = new MockStorage());
|
|
18
|
-
}
|
|
19
|
-
/** Get item from local storage. */
|
|
20
|
-
get(key) {
|
|
21
|
-
const value = this._storage.getItem(key);
|
|
22
|
-
if (value) {
|
|
23
|
-
return JSON.parse(value);
|
|
24
|
-
}
|
|
25
|
-
return null;
|
|
26
|
-
}
|
|
27
|
-
/** Set item in local storage. */
|
|
28
|
-
set(key, value) {
|
|
29
|
-
this._storage.setItem(key, JSON.stringify(value));
|
|
30
|
-
}
|
|
31
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LocalStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
32
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LocalStorageService, providedIn: 'root' }); }
|
|
33
|
-
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: LocalStorageService, decorators: [{
|
|
35
|
-
type: Injectable,
|
|
36
|
-
args: [{ providedIn: 'root' }]
|
|
37
|
-
}], ctorParameters: () => [] });
|
|
38
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtc3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvc2VydmljZXMvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBRTNDLE1BQU0sV0FBVztJQUdiLDJCQUEyQjtJQUMzQixHQUFHLENBQUMsS0FBYSxJQUFRLENBQUM7SUFFMUIsS0FBSyxLQUFVLENBQUM7SUFFaEIsMkJBQTJCO0lBQzNCLE9BQU8sQ0FBQyxHQUFXLElBQVEsQ0FBQztJQUU1QiwyQkFBMkI7SUFDM0IsVUFBVSxDQUFDLEdBQVcsSUFBUyxDQUFDO0lBRWhDLDJCQUEyQjtJQUMzQixPQUFPLENBQUMsR0FBVyxFQUFFLEtBQWEsSUFBUyxDQUFDO0NBQy9DO0FBR0QsTUFBTSxPQUFPLG1CQUFtQjtJQUk1QixjQUFjO0lBQ2Q7UUFDSSxPQUFPLFlBQVksS0FBSyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQztJQUMvRyxDQUFDO0lBRUQsbUNBQW1DO0lBQ25DLEdBQUcsQ0FBQyxHQUFXO1FBQ1gsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDekMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM3QixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELGlDQUFpQztJQUNqQyxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDOzhHQXJCUSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUROLE1BQU07OzJGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5jbGFzcyBNb2NrU3RvcmFnZSB7XG4gICAgcmVhZG9ubHkgbGVuZ3RoOiBudW1iZXI7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICBrZXkoaW5kZXg6IG51bWJlcik6IGFueSB7fVxuXG4gICAgY2xlYXIoKTogdm9pZCB7fVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgZ2V0SXRlbShrZXk6IHN0cmluZyk6IGFueSB7fVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lXG4gICAgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IHZvaWQge31cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZVxuICAgIHNldEl0ZW0oa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHt9XG59XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlU2VydmljZSB7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9zdG9yYWdlOiBTdG9yYWdlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdHlwZW9mIGxvY2FsU3RvcmFnZSAhPT0gJ3VuZGVmaW5lZCcgPyAodGhpcy5fc3RvcmFnZSA9IGxvY2FsU3RvcmFnZSkgOiAodGhpcy5fc3RvcmFnZSA9IG5ldyBNb2NrU3RvcmFnZSgpKTtcbiAgICB9XG5cbiAgICAvKiogR2V0IGl0ZW0gZnJvbSBsb2NhbCBzdG9yYWdlLiAqL1xuICAgIGdldChrZXk6IHN0cmluZyk6IGFueSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5fc3RvcmFnZS5nZXRJdGVtKGtleSk7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIEpTT04ucGFyc2UodmFsdWUpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8qKiBTZXQgaXRlbSBpbiBsb2NhbCBzdG9yYWdlLiAqL1xuICAgIHNldChrZXk6IHN0cmluZywgdmFsdWU6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdG9yYWdlLnNldEl0ZW0oa2V5LCBKU09OLnN0cmluZ2lmeSh2YWx1ZSkpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,81 +0,0 @@
|
|
|
1
|
-
/* eslint-disable @typescript-eslint/no-non-null-assertion */
|
|
2
|
-
import { MutationObserverFactory } from '@angular/cdk/observers';
|
|
3
|
-
import { Injectable } from '@angular/core';
|
|
4
|
-
import { Observable, Subject } from 'rxjs';
|
|
5
|
-
import { getNativeElement } from '../../helpers/get-native-element';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "@angular/cdk/observers";
|
|
8
|
-
export class AttributeObserver {
|
|
9
|
-
/** @hidden */
|
|
10
|
-
constructor(_mutationObserverFactory) {
|
|
11
|
-
this._mutationObserverFactory = _mutationObserverFactory;
|
|
12
|
-
/** @Hidden */
|
|
13
|
-
this._observedElements = new Map();
|
|
14
|
-
}
|
|
15
|
-
/** @hidden */
|
|
16
|
-
ngOnDestroy() {
|
|
17
|
-
this._observedElements.forEach((_, element) => this._cleanupObserver(element));
|
|
18
|
-
}
|
|
19
|
-
/** @Hidden */
|
|
20
|
-
observe(elementOrRef) {
|
|
21
|
-
const element = getNativeElement(elementOrRef);
|
|
22
|
-
return new Observable((observer) => {
|
|
23
|
-
const stream = this._observeElement(element);
|
|
24
|
-
const subscription = stream.subscribe(observer);
|
|
25
|
-
return () => {
|
|
26
|
-
subscription.unsubscribe();
|
|
27
|
-
this._unobserveElement(element);
|
|
28
|
-
};
|
|
29
|
-
});
|
|
30
|
-
}
|
|
31
|
-
/** @Hidden */
|
|
32
|
-
unobserve(element) {
|
|
33
|
-
this._unobserveElement(getNativeElement(element));
|
|
34
|
-
}
|
|
35
|
-
/** @hidden */
|
|
36
|
-
_observeElement(element) {
|
|
37
|
-
if (!this._observedElements.has(element)) {
|
|
38
|
-
const stream = new Subject();
|
|
39
|
-
const observer = this._mutationObserverFactory.create((mutations) => stream.next(mutations));
|
|
40
|
-
if (observer) {
|
|
41
|
-
observer.observe(element, {
|
|
42
|
-
attributes: true
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
this._observedElements.set(element, { observer, stream, count: 1 });
|
|
46
|
-
}
|
|
47
|
-
else {
|
|
48
|
-
this._observedElements.get(element).count++;
|
|
49
|
-
}
|
|
50
|
-
return this._observedElements.get(element).stream;
|
|
51
|
-
}
|
|
52
|
-
/** @Hidden */
|
|
53
|
-
_unobserveElement(element) {
|
|
54
|
-
if (this._observedElements.has(element)) {
|
|
55
|
-
this._observedElements.get(element).count--;
|
|
56
|
-
if (!this._observedElements.get(element).count) {
|
|
57
|
-
this._cleanupObserver(element);
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
/** @hidden */
|
|
62
|
-
_cleanupObserver(element) {
|
|
63
|
-
if (this._observedElements.has(element)) {
|
|
64
|
-
const { observer, stream } = this._observedElements.get(element);
|
|
65
|
-
if (observer) {
|
|
66
|
-
observer.disconnect();
|
|
67
|
-
}
|
|
68
|
-
stream.complete();
|
|
69
|
-
this._observedElements.delete(element);
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AttributeObserver, deps: [{ token: i1.MutationObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
73
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AttributeObserver, providedIn: 'root' }); }
|
|
74
|
-
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: AttributeObserver, decorators: [{
|
|
76
|
-
type: Injectable,
|
|
77
|
-
args: [{
|
|
78
|
-
providedIn: 'root'
|
|
79
|
-
}]
|
|
80
|
-
}], ctorParameters: () => [{ type: i1.MutationObserverFactory }] });
|
|
81
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLm9ic2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvc2VydmljZXMvb2JzZXJ2ZXJzL2F0dHJpYnV0ZS5vYnNlcnZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2REFBNkQ7QUFDN0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDakUsT0FBTyxFQUFjLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFZLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQzs7O0FBTXBFLE1BQU0sT0FBTyxpQkFBaUI7SUFXMUIsY0FBYztJQUNkLFlBQW9CLHdCQUFpRDtRQUFqRCw2QkFBd0IsR0FBeEIsd0JBQXdCLENBQXlCO1FBWHJFLGNBQWM7UUFDRyxzQkFBaUIsR0FBRyxJQUFJLEdBQUcsRUFPekMsQ0FBQztJQUdvRSxDQUFDO0lBRXpFLGNBQWM7SUFDZCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ25GLENBQUM7SUFFRCxjQUFjO0lBQ2QsT0FBTyxDQUFDLFlBQW9FO1FBQ3hFLE1BQU0sT0FBTyxHQUFHLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9DLE9BQU8sSUFBSSxVQUFVLENBQUMsQ0FBQyxRQUFvQyxFQUFFLEVBQUU7WUFDM0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM3QyxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBRWhELE9BQU8sR0FBRyxFQUFFO2dCQUNSLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3BDLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGNBQWM7SUFDZCxTQUFTLENBQUMsT0FBK0Q7UUFDckUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELGNBQWM7SUFDTixlQUFlLENBQUMsT0FBZ0I7UUFDcEMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBb0IsQ0FBQztZQUMvQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7WUFDN0YsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDWCxRQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtvQkFDdEIsVUFBVSxFQUFFLElBQUk7aUJBQ25CLENBQUMsQ0FBQztZQUNQLENBQUM7WUFDRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEUsQ0FBQzthQUFNLENBQUM7WUFDSixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFFLENBQUMsTUFBTSxDQUFDO0lBQ3ZELENBQUM7SUFFRCxjQUFjO0lBQ04saUJBQWlCLENBQUMsT0FBZ0I7UUFDdEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ25DLENBQUM7UUFDTCxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDTixnQkFBZ0IsQ0FBQyxPQUFnQjtRQUNyQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUN0QyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFFLENBQUM7WUFDbEUsSUFBSSxRQUFRLEVBQUUsQ0FBQztnQkFDWCxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDMUIsQ0FBQztZQUNELE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDTCxDQUFDOzhHQTNFUSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZkLE1BQU07OzJGQUVULGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tbm9uLW51bGwtYXNzZXJ0aW9uICovXG5pbXBvcnQgeyBNdXRhdGlvbk9ic2VydmVyRmFjdG9yeSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vYnNlcnZlcnMnO1xuaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBPYnNlcnZlciwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZ2V0TmF0aXZlRWxlbWVudCB9IGZyb20gJy4uLy4uL2hlbHBlcnMvZ2V0LW5hdGl2ZS1lbGVtZW50JztcbmltcG9ydCB7IEhhc0VsZW1lbnRSZWYgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2hhcy1lbGVtZW50LXJlZi5pbnRlcmZhY2UnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZU9ic2VydmVyIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX29ic2VydmVkRWxlbWVudHMgPSBuZXcgTWFwPFxuICAgICAgICBFbGVtZW50LFxuICAgICAgICB7XG4gICAgICAgICAgICBvYnNlcnZlcjogTXV0YXRpb25PYnNlcnZlciB8IG51bGw7XG4gICAgICAgICAgICBzdHJlYW06IFN1YmplY3Q8TXV0YXRpb25SZWNvcmRbXT47XG4gICAgICAgICAgICBjb3VudDogbnVtYmVyO1xuICAgICAgICB9XG4gICAgPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9tdXRhdGlvbk9ic2VydmVyRmFjdG9yeTogTXV0YXRpb25PYnNlcnZlckZhY3RvcnkpIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmZvckVhY2goKF8sIGVsZW1lbnQpID0+IHRoaXMuX2NsZWFudXBPYnNlcnZlcihlbGVtZW50KSk7XG4gICAgfVxuXG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBvYnNlcnZlKGVsZW1lbnRPclJlZjogRWxlbWVudCB8IEVsZW1lbnRSZWY8RWxlbWVudD4gfCBIYXNFbGVtZW50UmVmPEVsZW1lbnQ+KTogT2JzZXJ2YWJsZTxNdXRhdGlvblJlY29yZFtdPiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBnZXROYXRpdmVFbGVtZW50KGVsZW1lbnRPclJlZik7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgob2JzZXJ2ZXI6IE9ic2VydmVyPE11dGF0aW9uUmVjb3JkW10+KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzdHJlYW0gPSB0aGlzLl9vYnNlcnZlRWxlbWVudChlbGVtZW50KTtcbiAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHN0cmVhbS5zdWJzY3JpYmUob2JzZXJ2ZXIpO1xuXG4gICAgICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vub2JzZXJ2ZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIHVub2JzZXJ2ZShlbGVtZW50OiBIYXNFbGVtZW50UmVmPEVsZW1lbnQ+IHwgRWxlbWVudCB8IEVsZW1lbnRSZWY8RWxlbWVudD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdW5vYnNlcnZlRWxlbWVudChnZXROYXRpdmVFbGVtZW50KGVsZW1lbnQpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX29ic2VydmVFbGVtZW50KGVsZW1lbnQ6IEVsZW1lbnQpOiBTdWJqZWN0PE11dGF0aW9uUmVjb3JkW10+IHtcbiAgICAgICAgaWYgKCF0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmhhcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3Qgc3RyZWFtID0gbmV3IFN1YmplY3Q8TXV0YXRpb25SZWNvcmRbXT4oKTtcbiAgICAgICAgICAgIGNvbnN0IG9ic2VydmVyID0gdGhpcy5fbXV0YXRpb25PYnNlcnZlckZhY3RvcnkuY3JlYXRlKChtdXRhdGlvbnMpID0+IHN0cmVhbS5uZXh0KG11dGF0aW9ucykpO1xuICAgICAgICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgICAgICAgICAgb2JzZXJ2ZXIub2JzZXJ2ZShlbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuX29ic2VydmVkRWxlbWVudHMuc2V0KGVsZW1lbnQsIHsgb2JzZXJ2ZXIsIHN0cmVhbSwgY291bnQ6IDEgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmdldChlbGVtZW50KSEuY291bnQrKztcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQoZWxlbWVudCkhLnN0cmVhbTtcbiAgICB9XG5cbiAgICAvKiogQEhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Vub2JzZXJ2ZUVsZW1lbnQoZWxlbWVudDogRWxlbWVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5oYXMoZWxlbWVudCkpIHtcbiAgICAgICAgICAgIHRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KGVsZW1lbnQpIS5jb3VudC0tO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmdldChlbGVtZW50KSEuY291bnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9jbGVhbnVwT2JzZXJ2ZXIoZWxlbWVudCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NsZWFudXBPYnNlcnZlcihlbGVtZW50OiBFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmhhcyhlbGVtZW50KSkge1xuICAgICAgICAgICAgY29uc3QgeyBvYnNlcnZlciwgc3RyZWFtIH0gPSB0aGlzLl9vYnNlcnZlZEVsZW1lbnRzLmdldChlbGVtZW50KSE7XG4gICAgICAgICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBzdHJlYW0uY29tcGxldGUoKTtcbiAgICAgICAgICAgIHRoaXMuX29ic2VydmVkRWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
import { coerceElement } from '@angular/cdk/coercion';
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { Observable, Subject } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class ResizeObserverFactory {
|
|
6
|
-
/** Factory to create ResizeObserver if it's present in browser. */
|
|
7
|
-
create(callback) {
|
|
8
|
-
return typeof ResizeObserver === 'undefined' ? null : new ResizeObserver(callback);
|
|
9
|
-
}
|
|
10
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ResizeObserverFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
11
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ResizeObserverFactory, providedIn: 'root' }); }
|
|
12
|
-
}
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ResizeObserverFactory, decorators: [{
|
|
14
|
-
type: Injectable,
|
|
15
|
-
args: [{ providedIn: 'root' }]
|
|
16
|
-
}] });
|
|
17
|
-
export class ResizeObserverService {
|
|
18
|
-
/** @hidden */
|
|
19
|
-
constructor(_resizeObserverFactory) {
|
|
20
|
-
this._resizeObserverFactory = _resizeObserverFactory;
|
|
21
|
-
/** @hidden */
|
|
22
|
-
this._observedElements = new Map();
|
|
23
|
-
}
|
|
24
|
-
/** @hidden */
|
|
25
|
-
ngOnDestroy() {
|
|
26
|
-
this._observedElements.forEach((_, element) => this._cleanupObserver(element));
|
|
27
|
-
}
|
|
28
|
-
/** Observe the given element and emit whenever its size changes. */
|
|
29
|
-
observe(elementOrRef) {
|
|
30
|
-
const element = coerceElement(elementOrRef);
|
|
31
|
-
return new Observable((observer) => {
|
|
32
|
-
const stream = this._observeElement(element);
|
|
33
|
-
const subscription = stream?.subscribe(observer);
|
|
34
|
-
return () => {
|
|
35
|
-
subscription?.unsubscribe();
|
|
36
|
-
this._unobserveElement(element);
|
|
37
|
-
};
|
|
38
|
-
});
|
|
39
|
-
}
|
|
40
|
-
/**
|
|
41
|
-
* Observes the given element by using the existing MutationObserver if available, or creating a
|
|
42
|
-
* new one if not.
|
|
43
|
-
*/
|
|
44
|
-
_observeElement(element) {
|
|
45
|
-
let observedElement = this._observedElements.get(element);
|
|
46
|
-
if (!observedElement) {
|
|
47
|
-
const stream = new Subject();
|
|
48
|
-
const observer = this._resizeObserverFactory.create((mutations) => stream.next(mutations));
|
|
49
|
-
if (observer) {
|
|
50
|
-
observer.observe(element);
|
|
51
|
-
}
|
|
52
|
-
observedElement = { observer, stream, count: 0 };
|
|
53
|
-
this._observedElements.set(element, observedElement);
|
|
54
|
-
}
|
|
55
|
-
observedElement.count++;
|
|
56
|
-
return observedElement?.stream;
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Un-observes the given element and cleans up the underlying MutationObserver if nobody else is
|
|
60
|
-
* observing this element.
|
|
61
|
-
*/
|
|
62
|
-
_unobserveElement(element) {
|
|
63
|
-
const observedElement = this._observedElements.get(element);
|
|
64
|
-
if (!observedElement) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
if (--observedElement.count) {
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
this._cleanupObserver(element);
|
|
71
|
-
}
|
|
72
|
-
/** Clean up the underlying MutationObserver for the specified element. */
|
|
73
|
-
_cleanupObserver(element) {
|
|
74
|
-
const observedElement = this._observedElements.get(element);
|
|
75
|
-
if (!observedElement) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
const { observer, stream } = observedElement;
|
|
79
|
-
if (observer) {
|
|
80
|
-
observer.disconnect();
|
|
81
|
-
}
|
|
82
|
-
stream.complete();
|
|
83
|
-
this._observedElements.delete(element);
|
|
84
|
-
}
|
|
85
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ResizeObserverService, deps: [{ token: ResizeObserverFactory }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
86
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ResizeObserverService, providedIn: 'root' }); }
|
|
87
|
-
}
|
|
88
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: ResizeObserverService, decorators: [{
|
|
89
|
-
type: Injectable,
|
|
90
|
-
args: [{ providedIn: 'root' }]
|
|
91
|
-
}], ctorParameters: () => [{ type: ResizeObserverFactory }] });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLW9ic2VydmVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9zZXJ2aWNlcy9yZXNpemUtb2JzZXJ2ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFjLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsVUFBVSxFQUFZLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFTckQsTUFBTSxPQUFPLHFCQUFxQjtJQUM5QixvRUFBb0U7SUFDcEUsTUFBTSxDQUFDLFFBQWdDO1FBQ25DLE9BQU8sT0FBTyxjQUFjLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZGLENBQUM7OEdBSlEscUJBQXFCO2tIQUFyQixxQkFBcUIsY0FEUixNQUFNOzsyRkFDbkIscUJBQXFCO2tCQURqQyxVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7QUFTbEMsTUFBTSxPQUFPLHFCQUFxQjtJQUk5QixjQUFjO0lBQ2QsWUFBb0Isc0JBQTZDO1FBQTdDLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBdUI7UUFKakUsY0FBYztRQUNOLHNCQUFpQixHQUFHLElBQUksR0FBRyxFQUE0QixDQUFDO0lBR0ksQ0FBQztJQUVyRSxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDO0lBRUQsb0VBQW9FO0lBQ3BFLE9BQU8sQ0FBQyxZQUEyQztRQUMvQyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7UUFFNUMsT0FBTyxJQUFJLFVBQVUsQ0FBQyxDQUFDLFFBQXlDLEVBQUUsRUFBRTtZQUNoRSxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdDLE1BQU0sWUFBWSxHQUFHLE1BQU0sRUFBRSxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7WUFFakQsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO2dCQUM1QixJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDcEMsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ssZUFBZSxDQUFDLE9BQWdCO1FBQ3BDLElBQUksZUFBZSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ25CLE1BQU0sTUFBTSxHQUFHLElBQUksT0FBTyxFQUF5QixDQUFDO1lBQ3BELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUMzRixJQUFJLFFBQVEsRUFBRSxDQUFDO2dCQUNYLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDOUIsQ0FBQztZQUNELGVBQWUsR0FBRyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ2pELElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLGVBQWUsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFDRCxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDeEIsT0FBTyxlQUFlLEVBQUUsTUFBTSxDQUFDO0lBQ25DLENBQUM7SUFFRDs7O09BR0c7SUFDSyxpQkFBaUIsQ0FBQyxPQUFnQjtRQUN0QyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksRUFBRSxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELDBFQUEwRTtJQUNsRSxnQkFBZ0IsQ0FBQyxPQUFnQjtRQUNyQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUNuQixPQUFPO1FBQ1gsQ0FBQztRQUNELE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEdBQUcsZUFBZSxDQUFDO1FBQzdDLElBQUksUUFBUSxFQUFFLENBQUM7WUFDWCxRQUFRLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDMUIsQ0FBQztRQUNELE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzNDLENBQUM7OEdBNUVRLHFCQUFxQjtrSEFBckIscUJBQXFCLGNBRFIsTUFBTTs7MkZBQ25CLHFCQUFxQjtrQkFEakMsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VFbGVtZW50IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgT2JzZXJ2ZXIsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW50ZXJmYWNlIE9ic2VydmVkRWxlbWVudCB7XG4gICAgb2JzZXJ2ZXI6IFJlc2l6ZU9ic2VydmVyIHwgbnVsbDtcbiAgICByZWFkb25seSBzdHJlYW06IFN1YmplY3Q8UmVzaXplT2JzZXJ2ZXJFbnRyeVtdPjtcbiAgICBjb3VudDogbnVtYmVyO1xufVxuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFJlc2l6ZU9ic2VydmVyRmFjdG9yeSB7XG4gICAgLyoqIEZhY3RvcnkgdG8gY3JlYXRlIFJlc2l6ZU9ic2VydmVyIGlmIGl0J3MgcHJlc2VudCBpbiBicm93c2VyLiAgKi9cbiAgICBjcmVhdGUoY2FsbGJhY2s6IFJlc2l6ZU9ic2VydmVyQ2FsbGJhY2spOiBSZXNpemVPYnNlcnZlciB8IG51bGwge1xuICAgICAgICByZXR1cm4gdHlwZW9mIFJlc2l6ZU9ic2VydmVyID09PSAndW5kZWZpbmVkJyA/IG51bGwgOiBuZXcgUmVzaXplT2JzZXJ2ZXIoY2FsbGJhY2spO1xuICAgIH1cbn1cblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBSZXNpemVPYnNlcnZlclNlcnZpY2UgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb2JzZXJ2ZWRFbGVtZW50cyA9IG5ldyBNYXA8RWxlbWVudCwgT2JzZXJ2ZWRFbGVtZW50PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9yZXNpemVPYnNlcnZlckZhY3Rvcnk6IFJlc2l6ZU9ic2VydmVyRmFjdG9yeSkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX29ic2VydmVkRWxlbWVudHMuZm9yRWFjaCgoXywgZWxlbWVudCkgPT4gdGhpcy5fY2xlYW51cE9ic2VydmVyKGVsZW1lbnQpKTtcbiAgICB9XG5cbiAgICAvKiogT2JzZXJ2ZSB0aGUgZ2l2ZW4gZWxlbWVudCBhbmQgZW1pdCB3aGVuZXZlciBpdHMgc2l6ZSBjaGFuZ2VzLiAqL1xuICAgIG9ic2VydmUoZWxlbWVudE9yUmVmOiBFbGVtZW50IHwgRWxlbWVudFJlZjxFbGVtZW50Pik6IE9ic2VydmFibGU8UmVzaXplT2JzZXJ2ZXJFbnRyeVtdPiB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnQgPSBjb2VyY2VFbGVtZW50KGVsZW1lbnRPclJlZik7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBPYnNlcnZhYmxlKChvYnNlcnZlcjogT2JzZXJ2ZXI8UmVzaXplT2JzZXJ2ZXJFbnRyeVtdPikgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc3RyZWFtID0gdGhpcy5fb2JzZXJ2ZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSBzdHJlYW0/LnN1YnNjcmliZShvYnNlcnZlcik7XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX3Vub2JzZXJ2ZUVsZW1lbnQoZWxlbWVudCk7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBPYnNlcnZlcyB0aGUgZ2l2ZW4gZWxlbWVudCBieSB1c2luZyB0aGUgZXhpc3RpbmcgTXV0YXRpb25PYnNlcnZlciBpZiBhdmFpbGFibGUsIG9yIGNyZWF0aW5nIGFcbiAgICAgKiBuZXcgb25lIGlmIG5vdC5cbiAgICAgKi9cbiAgICBwcml2YXRlIF9vYnNlcnZlRWxlbWVudChlbGVtZW50OiBFbGVtZW50KTogU3ViamVjdDxSZXNpemVPYnNlcnZlckVudHJ5W10+IHwgdW5kZWZpbmVkIHtcbiAgICAgICAgbGV0IG9ic2VydmVkRWxlbWVudCA9IHRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KGVsZW1lbnQpO1xuXG4gICAgICAgIGlmICghb2JzZXJ2ZWRFbGVtZW50KSB7XG4gICAgICAgICAgICBjb25zdCBzdHJlYW0gPSBuZXcgU3ViamVjdDxSZXNpemVPYnNlcnZlckVudHJ5W10+KCk7XG4gICAgICAgICAgICBjb25zdCBvYnNlcnZlciA9IHRoaXMuX3Jlc2l6ZU9ic2VydmVyRmFjdG9yeS5jcmVhdGUoKG11dGF0aW9ucykgPT4gc3RyZWFtLm5leHQobXV0YXRpb25zKSk7XG4gICAgICAgICAgICBpZiAob2JzZXJ2ZXIpIHtcbiAgICAgICAgICAgICAgICBvYnNlcnZlci5vYnNlcnZlKGVsZW1lbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgb2JzZXJ2ZWRFbGVtZW50ID0geyBvYnNlcnZlciwgc3RyZWFtLCBjb3VudDogMCB9O1xuICAgICAgICAgICAgdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5zZXQoZWxlbWVudCwgb2JzZXJ2ZWRFbGVtZW50KTtcbiAgICAgICAgfVxuICAgICAgICBvYnNlcnZlZEVsZW1lbnQuY291bnQrKztcbiAgICAgICAgcmV0dXJuIG9ic2VydmVkRWxlbWVudD8uc3RyZWFtO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVuLW9ic2VydmVzIHRoZSBnaXZlbiBlbGVtZW50IGFuZCBjbGVhbnMgdXAgdGhlIHVuZGVybHlpbmcgTXV0YXRpb25PYnNlcnZlciBpZiBub2JvZHkgZWxzZSBpc1xuICAgICAqIG9ic2VydmluZyB0aGlzIGVsZW1lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSBfdW5vYnNlcnZlRWxlbWVudChlbGVtZW50OiBFbGVtZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IG9ic2VydmVkRWxlbWVudCA9IHRoaXMuX29ic2VydmVkRWxlbWVudHMuZ2V0KGVsZW1lbnQpO1xuICAgICAgICBpZiAoIW9ic2VydmVkRWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKC0tb2JzZXJ2ZWRFbGVtZW50LmNvdW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fY2xlYW51cE9ic2VydmVyKGVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8qKiBDbGVhbiB1cCB0aGUgdW5kZXJseWluZyBNdXRhdGlvbk9ic2VydmVyIGZvciB0aGUgc3BlY2lmaWVkIGVsZW1lbnQuICovXG4gICAgcHJpdmF0ZSBfY2xlYW51cE9ic2VydmVyKGVsZW1lbnQ6IEVsZW1lbnQpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgb2JzZXJ2ZWRFbGVtZW50ID0gdGhpcy5fb2JzZXJ2ZWRFbGVtZW50cy5nZXQoZWxlbWVudCk7XG5cbiAgICAgICAgaWYgKCFvYnNlcnZlZEVsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCB7IG9ic2VydmVyLCBzdHJlYW0gfSA9IG9ic2VydmVkRWxlbWVudDtcbiAgICAgICAgaWYgKG9ic2VydmVyKSB7XG4gICAgICAgICAgICBvYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICAgIH1cbiAgICAgICAgc3RyZWFtLmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuX29ic2VydmVkRWxlbWVudHMuZGVsZXRlKGVsZW1lbnQpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { Inject, Injectable, InjectionToken, Optional } from '@angular/core';
|
|
2
|
-
import { toSignal } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { BehaviorSubject } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
/** Default RTL languages */
|
|
6
|
-
const DefaultRtlLanguages = ['ar', 'arc', 'dv', 'fa', 'ha', 'he', 'khw', 'ks', 'ku', 'ps', 'ur', 'yi'];
|
|
7
|
-
export const RTL_LANGUAGE = new InjectionToken('RtlLanguage');
|
|
8
|
-
/**
|
|
9
|
-
* Service taking care of RTL trough behavior subject
|
|
10
|
-
* language list is used to determine if rtl should be enabled at start
|
|
11
|
-
* user can overwrite default languages by using injection token RtlLanguageToken
|
|
12
|
-
*/
|
|
13
|
-
export class RtlService {
|
|
14
|
-
/** @hidden */
|
|
15
|
-
constructor(injectedRtlLanguages) {
|
|
16
|
-
injectedRtlLanguages = injectedRtlLanguages || DefaultRtlLanguages;
|
|
17
|
-
const filtered = injectedRtlLanguages.filter((language) => navigator.language.includes(language));
|
|
18
|
-
this.rtl = new BehaviorSubject(filtered.length > 0);
|
|
19
|
-
this.rtlSignal = toSignal(this.rtl, { requireSync: true });
|
|
20
|
-
}
|
|
21
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: RtlService, deps: [{ token: RTL_LANGUAGE, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
22
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: RtlService }); }
|
|
23
|
-
}
|
|
24
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: RtlService, decorators: [{
|
|
25
|
-
type: Injectable
|
|
26
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
27
|
-
type: Optional
|
|
28
|
-
}, {
|
|
29
|
-
type: Inject,
|
|
30
|
-
args: [RTL_LANGUAGE]
|
|
31
|
-
}] }] });
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnRsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9zZXJ2aWNlcy9ydGwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUV2Qyw0QkFBNEI7QUFDNUIsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7QUFDdkcsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLElBQUksY0FBYyxDQUFXLGFBQWEsQ0FBQyxDQUFDO0FBR3hFOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sVUFBVTtJQU9uQixjQUFjO0lBQ2QsWUFBOEMsb0JBQThCO1FBQ3hFLG9CQUFvQixHQUFHLG9CQUFvQixJQUFJLG1CQUFtQixDQUFDO1FBRW5FLE1BQU0sUUFBUSxHQUFHLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUVsRyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksZUFBZSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9ELENBQUM7OEdBaEJRLFVBQVUsa0JBUWEsWUFBWTtrSEFSbkMsVUFBVTs7MkZBQVYsVUFBVTtrQkFOdEIsVUFBVTs7MEJBY00sUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlLCBJbmplY3Rpb25Ub2tlbiwgT3B0aW9uYWwsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuLyoqIERlZmF1bHQgUlRMIGxhbmd1YWdlcyAqL1xuY29uc3QgRGVmYXVsdFJ0bExhbmd1YWdlcyA9IFsnYXInLCAnYXJjJywgJ2R2JywgJ2ZhJywgJ2hhJywgJ2hlJywgJ2todycsICdrcycsICdrdScsICdwcycsICd1cicsICd5aSddO1xuZXhwb3J0IGNvbnN0IFJUTF9MQU5HVUFHRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxzdHJpbmdbXT4oJ1J0bExhbmd1YWdlJyk7XG5cbkBJbmplY3RhYmxlKClcbi8qKlxuICogU2VydmljZSB0YWtpbmcgY2FyZSBvZiBSVEwgdHJvdWdoIGJlaGF2aW9yIHN1YmplY3RcbiAqIGxhbmd1YWdlIGxpc3QgaXMgdXNlZCB0byBkZXRlcm1pbmUgaWYgcnRsIHNob3VsZCBiZSBlbmFibGVkIGF0IHN0YXJ0XG4gKiB1c2VyIGNhbiBvdmVyd3JpdGUgZGVmYXVsdCBsYW5ndWFnZXMgYnkgdXNpbmcgaW5qZWN0aW9uIHRva2VuIFJ0bExhbmd1YWdlVG9rZW5cbiAqL1xuZXhwb3J0IGNsYXNzIFJ0bFNlcnZpY2Uge1xuICAgIC8qKiBSVEwgdmFsdWUgKi9cbiAgICBydGw6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuICAgIC8qKiBTaWduYWwgd3JhcHBlciBmb3IgUlRMIHZhbHVlLiAqL1xuICAgIHJ0bFNpZ25hbDogU2lnbmFsPGJvb2xlYW4+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBASW5qZWN0KFJUTF9MQU5HVUFHRSkgaW5qZWN0ZWRSdGxMYW5ndWFnZXM6IHN0cmluZ1tdKSB7XG4gICAgICAgIGluamVjdGVkUnRsTGFuZ3VhZ2VzID0gaW5qZWN0ZWRSdGxMYW5ndWFnZXMgfHwgRGVmYXVsdFJ0bExhbmd1YWdlcztcblxuICAgICAgICBjb25zdCBmaWx0ZXJlZCA9IGluamVjdGVkUnRsTGFuZ3VhZ2VzLmZpbHRlcigobGFuZ3VhZ2UpID0+IG5hdmlnYXRvci5sYW5ndWFnZS5pbmNsdWRlcyhsYW5ndWFnZSkpO1xuXG4gICAgICAgIHRoaXMucnRsID0gbmV3IEJlaGF2aW9yU3ViamVjdChmaWx0ZXJlZC5sZW5ndGggPiAwKTtcblxuICAgICAgICB0aGlzLnJ0bFNpZ25hbCA9IHRvU2lnbmFsKHRoaXMucnRsLCB7IHJlcXVpcmVTeW5jOiB0cnVlIH0pO1xuICAgIH1cbn1cbiJdfQ==
|