@fundamental-ngx/cdk 0.54.2-rc.9 → 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,147 +0,0 @@
|
|
|
1
|
-
import { coerceBooleanProperty } from '@angular/cdk/coercion';
|
|
2
|
-
import { Directive, ElementRef, EventEmitter, Inject, Input, Optional, Output } from '@angular/core';
|
|
3
|
-
import { Observable, merge } from 'rxjs';
|
|
4
|
-
import { FdkClickedProvider } from '../clicked';
|
|
5
|
-
import { FdkDisabledProvider } from '../disabled';
|
|
6
|
-
import { FdkReadonlyProvider } from '../readonly';
|
|
7
|
-
import { SelectableItemToken } from './selectable-item.token';
|
|
8
|
-
import { FDK_SELECTABLE_ITEM_PROVIDER } from './selectable-list.tokens';
|
|
9
|
-
import { SelectionService } from './selection.service';
|
|
10
|
-
import * as i0 from "@angular/core";
|
|
11
|
-
import * as i1 from "../disabled";
|
|
12
|
-
import * as i2 from "../readonly";
|
|
13
|
-
import * as i3 from "./selection.service";
|
|
14
|
-
import * as i4 from "../clicked";
|
|
15
|
-
export class SelectableItemDirective {
|
|
16
|
-
/** @hidden */
|
|
17
|
-
set value(val) {
|
|
18
|
-
this._value = val;
|
|
19
|
-
}
|
|
20
|
-
get value() {
|
|
21
|
-
if (this.provider && this.provider.value) {
|
|
22
|
-
return this.provider.value;
|
|
23
|
-
}
|
|
24
|
-
return this._value;
|
|
25
|
-
}
|
|
26
|
-
/** @hidden */
|
|
27
|
-
set fdkSelectableItem(value) {
|
|
28
|
-
const isSelectable = coerceBooleanProperty(value);
|
|
29
|
-
if (isSelectable !== this._selectable) {
|
|
30
|
-
this._selectable = isSelectable;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
get fdkSelectableItem() {
|
|
34
|
-
let selectable = this._selectable;
|
|
35
|
-
if (typeof this.provider?.fdkSelectableItem !== 'undefined') {
|
|
36
|
-
selectable = this.provider.fdkSelectableItem;
|
|
37
|
-
}
|
|
38
|
-
return (selectable &&
|
|
39
|
-
(!this.disabled$ || !this.disabled$?.fdkDisabled) &&
|
|
40
|
-
(!this.readonly$ || !this.readonly$?.fdkReadonly));
|
|
41
|
-
}
|
|
42
|
-
/** @hidden */
|
|
43
|
-
constructor(provider, disabled$, readonly$, selectionService, elementRef, _clicked) {
|
|
44
|
-
this.provider = provider;
|
|
45
|
-
this.disabled$ = disabled$;
|
|
46
|
-
this.readonly$ = readonly$;
|
|
47
|
-
this.selectionService = selectionService;
|
|
48
|
-
this.elementRef = elementRef;
|
|
49
|
-
/** Event emitted when selection state being changed for selectable item. */
|
|
50
|
-
this.selected = new EventEmitter();
|
|
51
|
-
/** @hidden */
|
|
52
|
-
this._selected = false;
|
|
53
|
-
/** @hidden */
|
|
54
|
-
this._selectable = true;
|
|
55
|
-
this.clicked = this.provider?.clicked || _clicked.asObservable();
|
|
56
|
-
this._listenToDisablingEvents();
|
|
57
|
-
}
|
|
58
|
-
/** @hidden */
|
|
59
|
-
getSelected() {
|
|
60
|
-
if (this.provider?.getSelected) {
|
|
61
|
-
return this.provider.getSelected();
|
|
62
|
-
}
|
|
63
|
-
return this._selected;
|
|
64
|
-
}
|
|
65
|
-
/** @hidden */
|
|
66
|
-
setSelected(isSelected) {
|
|
67
|
-
if (this.provider?.setSelected) {
|
|
68
|
-
this.provider.setSelected(isSelected);
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
this._selected = isSelected;
|
|
72
|
-
const htmlElement = this.elementRef.nativeElement;
|
|
73
|
-
const { classList } = htmlElement;
|
|
74
|
-
if (isSelected) {
|
|
75
|
-
classList.add('is-selected');
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
classList.remove('is-selected');
|
|
79
|
-
}
|
|
80
|
-
htmlElement.setAttribute('aria-selected', `${isSelected}`);
|
|
81
|
-
}
|
|
82
|
-
this.selected.emit(isSelected);
|
|
83
|
-
}
|
|
84
|
-
/** @hidden */
|
|
85
|
-
_listenToDisablingEvents() {
|
|
86
|
-
const disablingEvents$ = [];
|
|
87
|
-
if (this.disabled$) {
|
|
88
|
-
disablingEvents$.push(this.disabled$);
|
|
89
|
-
}
|
|
90
|
-
if (this.readonly$) {
|
|
91
|
-
disablingEvents$.push(this.readonly$);
|
|
92
|
-
}
|
|
93
|
-
merge(...disablingEvents$).subscribe(() => this._updateSelectionAndSelectableWatcher());
|
|
94
|
-
}
|
|
95
|
-
/** @hidden */
|
|
96
|
-
_updateSelectionAndSelectableWatcher() {
|
|
97
|
-
if (this.disabled$?.fdkDisabled) {
|
|
98
|
-
this.selectionService.deselectItem(this);
|
|
99
|
-
}
|
|
100
|
-
this._updateSelectableWatcher();
|
|
101
|
-
}
|
|
102
|
-
/** @hidden */
|
|
103
|
-
_updateSelectableWatcher() {
|
|
104
|
-
this.selectionService.listenToItemInteractions();
|
|
105
|
-
}
|
|
106
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableItemDirective, deps: [{ token: FDK_SELECTABLE_ITEM_PROVIDER, optional: true }, { token: i1.FdkDisabledProvider }, { token: i2.FdkReadonlyProvider }, { token: i3.SelectionService }, { token: i0.ElementRef }, { token: i4.FdkClickedProvider }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
107
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: SelectableItemDirective, isStandalone: true, selector: "[fdkSelectableItem]", inputs: { value: "value", fdkSelectableItem: "fdkSelectableItem" }, outputs: { clicked: "clicked", selected: "selected" }, providers: [
|
|
108
|
-
{
|
|
109
|
-
provide: SelectableItemToken,
|
|
110
|
-
useExisting: SelectableItemDirective
|
|
111
|
-
},
|
|
112
|
-
FdkReadonlyProvider,
|
|
113
|
-
FdkDisabledProvider,
|
|
114
|
-
FdkClickedProvider
|
|
115
|
-
], exportAs: ["fdkSelectableItem"], ngImport: i0 }); }
|
|
116
|
-
}
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableItemDirective, decorators: [{
|
|
118
|
-
type: Directive,
|
|
119
|
-
args: [{
|
|
120
|
-
selector: '[fdkSelectableItem]',
|
|
121
|
-
exportAs: 'fdkSelectableItem',
|
|
122
|
-
standalone: true,
|
|
123
|
-
providers: [
|
|
124
|
-
{
|
|
125
|
-
provide: SelectableItemToken,
|
|
126
|
-
useExisting: SelectableItemDirective
|
|
127
|
-
},
|
|
128
|
-
FdkReadonlyProvider,
|
|
129
|
-
FdkDisabledProvider,
|
|
130
|
-
FdkClickedProvider
|
|
131
|
-
]
|
|
132
|
-
}]
|
|
133
|
-
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
134
|
-
type: Optional
|
|
135
|
-
}, {
|
|
136
|
-
type: Inject,
|
|
137
|
-
args: [FDK_SELECTABLE_ITEM_PROVIDER]
|
|
138
|
-
}] }, { type: i1.FdkDisabledProvider }, { type: i2.FdkReadonlyProvider }, { type: i3.SelectionService }, { type: i0.ElementRef }, { type: i4.FdkClickedProvider }], propDecorators: { value: [{
|
|
139
|
-
type: Input
|
|
140
|
-
}], fdkSelectableItem: [{
|
|
141
|
-
type: Input
|
|
142
|
-
}], clicked: [{
|
|
143
|
-
type: Output
|
|
144
|
-
}], selected: [{
|
|
145
|
-
type: Output
|
|
146
|
-
}] } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3V0aWxzL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1saXN0L3NlbGVjdGFibGUtaXRlbS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckcsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2hELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUNsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDbEQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQWdCdkQsTUFBTSxPQUFPLHVCQUF1QjtJQUdoQyxjQUFjO0lBQ2QsSUFDSSxLQUFLLENBQUMsR0FBYztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBSSxLQUFLO1FBQ0wsSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDdkMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztRQUMvQixDQUFD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LFdBQVcseUJBQXlCO3lCQUN2Qzt3QkFDRCxtQkFBbUI7d0JBQ25CLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3FCQUNyQjtpQkFDSjs7MEJBc0RRLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsNEJBQTRCO3NNQWpEcEMsS0FBSztzQkFEUixLQUFLO2dCQWFGLGlCQUFpQjtzQkFEcEIsS0FBSztnQkFzQk4sT0FBTztzQkFETixNQUFNO2dCQUtQLFFBQVE7c0JBRFAsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJvb2xlYW5JbnB1dCwgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIElucHV0LCBPcHRpb25hbCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRmRrQ2xpY2tlZFByb3ZpZGVyIH0gZnJvbSAnLi4vY2xpY2tlZCc7XG5pbXBvcnQgeyBGZGtEaXNhYmxlZFByb3ZpZGVyIH0gZnJvbSAnLi4vZGlzYWJsZWQnO1xuaW1wb3J0IHsgRmRrUmVhZG9ubHlQcm92aWRlciB9IGZyb20gJy4uL3JlYWRvbmx5JztcbmltcG9ydCB7IFNlbGVjdGFibGVJdGVtVG9rZW4gfSBmcm9tICcuL3NlbGVjdGFibGUtaXRlbS50b2tlbic7XG5pbXBvcnQgeyBGREtfU0VMRUNUQUJMRV9JVEVNX1BST1ZJREVSIH0gZnJvbSAnLi9zZWxlY3RhYmxlLWxpc3QudG9rZW5zJztcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdGlvbi5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrU2VsZWN0YWJsZUl0ZW1dJyxcbiAgICBleHBvcnRBczogJ2Zka1NlbGVjdGFibGVJdGVtJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTZWxlY3RhYmxlSXRlbVRva2VuLFxuICAgICAgICAgICAgdXNlRXhpc3Rpbmc6IFNlbGVjdGFibGVJdGVtRGlyZWN0aXZlXG4gICAgICAgIH0sXG4gICAgICAgIEZka1JlYWRvbmx5UHJvdmlkZXIsXG4gICAgICAgIEZka0Rpc2FibGVkUHJvdmlkZXIsXG4gICAgICAgIEZka0NsaWNrZWRQcm92aWRlclxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0YWJsZUl0ZW1EaXJlY3RpdmU8RWxlbWVudFR5cGUgZXh0ZW5kcyBFbGVtZW50ID0gSFRNTEVsZW1lbnQsIFZhbHVlVHlwZSA9IGFueT5cbiAgICBpbXBsZW1lbnRzIFNlbGVjdGFibGVJdGVtVG9rZW48RWxlbWVudFR5cGUsIFZhbHVlVHlwZT5cbntcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IHZhbHVlKHZhbDogVmFsdWVUeXBlKSB7XG4gICAgICAgIHRoaXMuX3ZhbHVlID0gdmFsO1xuICAgIH1cbiAgICBnZXQgdmFsdWUoKTogVmFsdWVUeXBlIHtcbiAgICAgICAgaWYgKHRoaXMucHJvdmlkZXIgJiYgdGhpcy5wcm92aWRlci52YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucHJvdmlkZXIudmFsdWU7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZmRrU2VsZWN0YWJsZUl0ZW0odmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgICAgICBjb25zdCBpc1NlbGVjdGFibGUgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICBpZiAoaXNTZWxlY3RhYmxlICE9PSB0aGlzLl9zZWxlY3RhYmxlKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RhYmxlID0gaXNTZWxlY3RhYmxlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGZka1NlbGVjdGFibGVJdGVtKCk6IGJvb2xlYW4ge1xuICAgICAgICBsZXQgc2VsZWN0YWJsZSA9IHRoaXMuX3NlbGVjdGFibGU7XG4gICAgICAgIGlmICh0eXBlb2YgdGhpcy5wcm92aWRlcj8uZmRrU2VsZWN0YWJsZUl0ZW0gIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICBzZWxlY3RhYmxlID0gdGhpcy5wcm92aWRlci5mZGtTZWxlY3RhYmxlSXRlbTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgc2VsZWN0YWJsZSAmJlxuICAgICAgICAgICAgKCF0aGlzLmRpc2FibGVkJCB8fCAhdGhpcy5kaXNhYmxlZCQ/LmZka0Rpc2FibGVkKSAmJlxuICAgICAgICAgICAgKCF0aGlzLnJlYWRvbmx5JCB8fCAhdGhpcy5yZWFkb25seSQ/LmZka1JlYWRvbmx5KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQE91dHB1dCgpXG4gICAgY2xpY2tlZDogT2JzZXJ2YWJsZTxNb3VzZUV2ZW50IHwgS2V5Ym9hcmRFdmVudD47XG5cbiAgICAvKiogRXZlbnQgZW1pdHRlZCB3aGVuIHNlbGVjdGlvbiBzdGF0ZSBiZWluZyBjaGFuZ2VkIGZvciBzZWxlY3RhYmxlIGl0ZW0uICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3ZhbHVlITogVmFsdWVUeXBlO1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3NlbGVjdGFibGUgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKClcbiAgICAgICAgQEluamVjdChGREtfU0VMRUNUQUJMRV9JVEVNX1BST1ZJREVSKVxuICAgICAgICBwcml2YXRlIHByb3ZpZGVyOiBQYXJ0aWFsPFNlbGVjdGFibGVJdGVtVG9rZW48RWxlbWVudFR5cGUsIFZhbHVlVHlwZT4+LFxuICAgICAgICBwcml2YXRlIGRpc2FibGVkJDogRmRrRGlzYWJsZWRQcm92aWRlcixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSQ6IEZka1JlYWRvbmx5UHJvdmlkZXIsXG4gICAgICAgIHByaXZhdGUgc2VsZWN0aW9uU2VydmljZTogU2VsZWN0aW9uU2VydmljZTxFbGVtZW50VHlwZSwgVmFsdWVUeXBlPixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8RWxlbWVudFR5cGU+LFxuICAgICAgICBfY2xpY2tlZDogRmRrQ2xpY2tlZFByb3ZpZGVyXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY2xpY2tlZCA9IHRoaXMucHJvdmlkZXI/LmNsaWNrZWQgfHwgX2NsaWNrZWQuYXNPYnNlcnZhYmxlKCk7XG4gICAgICAgIHRoaXMuX2xpc3RlblRvRGlzYWJsaW5nRXZlbnRzKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBnZXRTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgaWYgKHRoaXMucHJvdmlkZXI/LmdldFNlbGVjdGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5wcm92aWRlci5nZXRTZWxlY3RlZCgpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNldFNlbGVjdGVkKGlzU2VsZWN0ZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMucHJvdmlkZXI/LnNldFNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLnByb3ZpZGVyLnNldFNlbGVjdGVkKGlzU2VsZWN0ZWQpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWQgPSBpc1NlbGVjdGVkO1xuICAgICAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIGNvbnN0IHsgY2xhc3NMaXN0IH0gPSBodG1sRWxlbWVudDtcbiAgICAgICAgICAgIGlmIChpc1NlbGVjdGVkKSB7XG4gICAgICAgICAgICAgICAgY2xhc3NMaXN0LmFkZCgnaXMtc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY2xhc3NMaXN0LnJlbW92ZSgnaXMtc2VsZWN0ZWQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGh0bWxFbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1zZWxlY3RlZCcsIGAke2lzU2VsZWN0ZWR9YCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkLmVtaXQoaXNTZWxlY3RlZCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saXN0ZW5Ub0Rpc2FibGluZ0V2ZW50cygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGlzYWJsaW5nRXZlbnRzJDogT2JzZXJ2YWJsZTxib29sZWFuPltdID0gW107XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkJCkge1xuICAgICAgICAgICAgZGlzYWJsaW5nRXZlbnRzJC5wdXNoKHRoaXMuZGlzYWJsZWQkKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5yZWFkb25seSQpIHtcbiAgICAgICAgICAgIGRpc2FibGluZ0V2ZW50cyQucHVzaCh0aGlzLnJlYWRvbmx5JCk7XG4gICAgICAgIH1cbiAgICAgICAgbWVyZ2UoLi4uZGlzYWJsaW5nRXZlbnRzJCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX3VwZGF0ZVNlbGVjdGlvbkFuZFNlbGVjdGFibGVXYXRjaGVyKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdXBkYXRlU2VsZWN0aW9uQW5kU2VsZWN0YWJsZVdhdGNoZXIoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmRpc2FibGVkJD8uZmRrRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uU2VydmljZS5kZXNlbGVjdEl0ZW0odGhpcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdXBkYXRlU2VsZWN0YWJsZVdhdGNoZXIoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3VwZGF0ZVNlbGVjdGFibGVXYXRjaGVyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNlbGVjdGlvblNlcnZpY2UubGlzdGVuVG9JdGVtSW50ZXJhY3Rpb25zKCk7XG4gICAgfVxufVxuIl19
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export class SelectableItemToken {
|
|
2
|
-
}
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1pdGVtLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9zZWxlY3RhYmxlLWxpc3Qvc2VsZWN0YWJsZS1pdGVtLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUlBLE1BQU0sT0FBZ0IsbUJBQW1CO0NBYXhDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgSGFzRWxlbWVudFJlZiB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMvaGFzLWVsZW1lbnQtcmVmLmludGVyZmFjZSc7XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlIGV4dGVuZHMgRWxlbWVudCA9IEhUTUxFbGVtZW50LCBUVmFsdWUgPSBFbGVtZW50VHlwZT5cbiAgICBpbXBsZW1lbnRzIEhhc0VsZW1lbnRSZWY8RWxlbWVudFR5cGU+XG57XG4gICAgYWJzdHJhY3QgdmFsdWU6IFRWYWx1ZTtcbiAgICBhYnN0cmFjdCBmZGtTZWxlY3RhYmxlSXRlbT86IGJvb2xlYW47XG5cbiAgICBhYnN0cmFjdCByZWFkb25seSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEVsZW1lbnRUeXBlPjtcblxuICAgIGFic3RyYWN0IGNsaWNrZWQ6IE9ic2VydmFibGU8TW91c2VFdmVudCB8IEtleWJvYXJkRXZlbnQ+O1xuXG4gICAgYWJzdHJhY3Qgc2V0U2VsZWN0ZWQoaXNTZWxlY3RlZDogYm9vbGVhbik6IHZvaWQ7XG5cbiAgICBhYnN0cmFjdCBnZXRTZWxlY3RlZCgpOiBib29sZWFuO1xufVxuIl19
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { ContentChildren, Directive, EventEmitter, Input, Output, QueryList, booleanAttribute } from '@angular/core';
|
|
2
|
-
import { SelectComponentRootToken } from './select-component-root.token';
|
|
3
|
-
import { SelectableItemToken } from './selectable-item.token';
|
|
4
|
-
import { SelectionService } from './selection.service';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "./selection.service";
|
|
7
|
-
export class SelectableListDirective {
|
|
8
|
-
/** @hidden */
|
|
9
|
-
set selected(value) {
|
|
10
|
-
this._selectionService.setValue(value);
|
|
11
|
-
}
|
|
12
|
-
/** @hidden */
|
|
13
|
-
constructor(_selectionService) {
|
|
14
|
-
this._selectionService = _selectionService;
|
|
15
|
-
/** @hidden */
|
|
16
|
-
this.selectedChange = new EventEmitter();
|
|
17
|
-
/** @hidden */
|
|
18
|
-
this.toggle = false;
|
|
19
|
-
/** @hidden */
|
|
20
|
-
this.multiple = false;
|
|
21
|
-
this._selectionService.registerRootComponent(this);
|
|
22
|
-
}
|
|
23
|
-
/** @hidden */
|
|
24
|
-
select(item) {
|
|
25
|
-
this._selectionService.selectItem(item);
|
|
26
|
-
}
|
|
27
|
-
/** @hidden */
|
|
28
|
-
deselect(item) {
|
|
29
|
-
this._selectionService.deselectItem(item);
|
|
30
|
-
}
|
|
31
|
-
/** @hidden */
|
|
32
|
-
toggleSelect(item) {
|
|
33
|
-
if (item.getSelected()) {
|
|
34
|
-
this.deselect(item);
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
this.select(item);
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
/** @hidden */
|
|
41
|
-
onChange(value) {
|
|
42
|
-
this.selectedChange.emit(value);
|
|
43
|
-
}
|
|
44
|
-
/** @hidden */
|
|
45
|
-
ngAfterViewInit() {
|
|
46
|
-
this._selectionService.initialize(this.selectableItems);
|
|
47
|
-
}
|
|
48
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableListDirective, deps: [{ token: i1.SelectionService }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
49
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.3", type: SelectableListDirective, isStandalone: true, selector: "[fdkSelectableList]", inputs: { toggle: ["toggle", "toggle", booleanAttribute], multiple: ["multiple", "multiple", booleanAttribute], selected: "selected" }, outputs: { selectedChange: "selectedChange" }, providers: [
|
|
50
|
-
{
|
|
51
|
-
provide: SelectComponentRootToken,
|
|
52
|
-
useExisting: SelectableListDirective
|
|
53
|
-
},
|
|
54
|
-
SelectionService
|
|
55
|
-
], queries: [{ propertyName: "selectableItems", predicate: SelectableItemToken }], exportAs: ["fdkSelectableList"], ngImport: i0 }); }
|
|
56
|
-
}
|
|
57
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableListDirective, decorators: [{
|
|
58
|
-
type: Directive,
|
|
59
|
-
args: [{
|
|
60
|
-
selector: '[fdkSelectableList]',
|
|
61
|
-
exportAs: 'fdkSelectableList',
|
|
62
|
-
standalone: true,
|
|
63
|
-
providers: [
|
|
64
|
-
{
|
|
65
|
-
provide: SelectComponentRootToken,
|
|
66
|
-
useExisting: SelectableListDirective
|
|
67
|
-
},
|
|
68
|
-
SelectionService
|
|
69
|
-
]
|
|
70
|
-
}]
|
|
71
|
-
}], ctorParameters: () => [{ type: i1.SelectionService }], propDecorators: { selectedChange: [{
|
|
72
|
-
type: Output
|
|
73
|
-
}], toggle: [{
|
|
74
|
-
type: Input,
|
|
75
|
-
args: [{ transform: booleanAttribute }]
|
|
76
|
-
}], multiple: [{
|
|
77
|
-
type: Input,
|
|
78
|
-
args: [{ transform: booleanAttribute }]
|
|
79
|
-
}], selected: [{
|
|
80
|
-
type: Input
|
|
81
|
-
}], selectableItems: [{
|
|
82
|
-
type: ContentChildren,
|
|
83
|
-
args: [SelectableItemToken]
|
|
84
|
-
}] } });
|
|
85
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3V0aWxzL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1saXN0L3NlbGVjdGFibGUtbGlzdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGVBQWUsRUFDZixTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsd0JBQXdCLEVBQTJCLE1BQU0sK0JBQStCLENBQUM7QUFDbEcsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQWN2RCxNQUFNLE9BQU8sdUJBQXVCO0lBZWhDLGNBQWM7SUFDZCxJQUNJLFFBQVEsQ0FBQyxLQUFpQztRQUMxQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7SUFLRCxjQUFjO0lBQ2QsWUFBb0IsaUJBQXlDO1FBQXpDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBd0I7UUF0QjdELGNBQWM7UUFFZCxtQkFBYyxHQUFHLElBQUksWUFBWSxFQUE4QixDQUFDO1FBRWhFLGNBQWM7UUFFZCxXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRWYsY0FBYztRQUVkLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFhYixJQUFJLENBQUMsaUJBQWlCLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELGNBQWM7SUFDZCxNQUFNLENBQUMsSUFBK0I7UUFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsY0FBYztJQUNkLFFBQVEsQ0FBQyxJQUErQjtRQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFRCxjQUFjO0lBQ2QsWUFBWSxDQUFDLElBQStCO1FBQ3hDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QixDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsQ0FBQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsUUFBUSxDQUFDLEtBQWlDO1FBQ3RDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQzVELENBQUM7OEdBeERRLHVCQUF1QjtrR0FBdkIsdUJBQXVCLDhGQVFaLGdCQUFnQixzQ0FJaEIsZ0JBQWdCLHFGQXBCekI7WUFDUDtnQkFDSSxPQUFPLEVBQUUsd0JBQXdCO2dCQUNqQyxXQUFXLEVBQUUsdUJBQXVCO2FBQ3ZDO1lBQ0QsZ0JBQWdCO1NBQ25CLDBEQXdCZ0IsbUJBQW1COzsyRkF0QjNCLHVCQUF1QjtrQkFabkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSx3QkFBd0I7NEJBQ2pDLFdBQVcseUJBQXlCO3lCQUN2Qzt3QkFDRCxnQkFBZ0I7cUJBQ25CO2lCQUNKO3FGQU1HLGNBQWM7c0JBRGIsTUFBTTtnQkFLUCxNQUFNO3NCQURMLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS3RDLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFLbEMsUUFBUTtzQkFEWCxLQUFLO2dCQU1nQyxlQUFlO3NCQUFwRCxlQUFlO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnRSb290VG9rZW4sIFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlIH0gZnJvbSAnLi9zZWxlY3QtY29tcG9uZW50LXJvb3QudG9rZW4nO1xuaW1wb3J0IHsgU2VsZWN0YWJsZUl0ZW1Ub2tlbiB9IGZyb20gJy4vc2VsZWN0YWJsZS1pdGVtLnRva2VuJztcbmltcG9ydCB7IFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuL3NlbGVjdGlvbi5zZXJ2aWNlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrU2VsZWN0YWJsZUxpc3RdJyxcbiAgICBleHBvcnRBczogJ2Zka1NlbGVjdGFibGVMaXN0JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTZWxlY3RDb21wb25lbnRSb290VG9rZW4sXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogU2VsZWN0YWJsZUxpc3REaXJlY3RpdmVcbiAgICAgICAgfSxcbiAgICAgICAgU2VsZWN0aW9uU2VydmljZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgU2VsZWN0YWJsZUxpc3REaXJlY3RpdmU8VCBleHRlbmRzIEVsZW1lbnQgPSBIVE1MRWxlbWVudCwgViA9IGFueT5cbiAgICBpbXBsZW1lbnRzIFNlbGVjdENvbXBvbmVudFJvb3RUb2tlbjxUPiwgQWZ0ZXJWaWV3SW5pdFxue1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQE91dHB1dCgpXG4gICAgc2VsZWN0ZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPFQ+PigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgICB0b2dnbGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gICAgbXVsdGlwbGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQElucHV0KClcbiAgICBzZXQgc2VsZWN0ZWQodmFsdWU6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPFQ+KSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2Uuc2V0VmFsdWUodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihTZWxlY3RhYmxlSXRlbVRva2VuKSBzZWxlY3RhYmxlSXRlbXMhOiBRdWVyeUxpc3Q8U2VsZWN0YWJsZUl0ZW1Ub2tlbjxULCBWPj47XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX3NlbGVjdGlvblNlcnZpY2U6IFNlbGVjdGlvblNlcnZpY2U8VCwgVj4pIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5yZWdpc3RlclJvb3RDb21wb25lbnQodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZWxlY3QoaXRlbTogU2VsZWN0YWJsZUl0ZW1Ub2tlbjxULCBWPik6IHZvaWQge1xuICAgICAgICB0aGlzLl9zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBkZXNlbGVjdChpdGVtOiBTZWxlY3RhYmxlSXRlbVRva2VuPFQsIFY+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGlvblNlcnZpY2UuZGVzZWxlY3RJdGVtKGl0ZW0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgdG9nZ2xlU2VsZWN0KGl0ZW06IFNlbGVjdGFibGVJdGVtVG9rZW48VCwgVj4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGl0ZW0uZ2V0U2VsZWN0ZWQoKSkge1xuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdChpdGVtKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0KGl0ZW0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBvbkNoYW5nZSh2YWx1ZTogU2VsZWN0YWJsZUxpc3RWYWx1ZVR5cGU8VD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0aW9uU2VydmljZS5pbml0aWFsaXplKHRoaXMuc2VsZWN0YWJsZUl0ZW1zKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { SelectableItemDirective } from './selectable-item.directive';
|
|
3
|
-
import { SelectableListDirective } from './selectable-list.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class SelectableListModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: SelectableListModule, imports: [SelectableListDirective, SelectableItemDirective], exports: [SelectableListDirective, SelectableItemDirective] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableListModule }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectableListModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
imports: [SelectableListDirective, SelectableItemDirective],
|
|
14
|
-
exports: [SelectableListDirective, SelectableItemDirective]
|
|
15
|
-
}]
|
|
16
|
-
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3V0aWxzL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1saXN0L3NlbGVjdGFibGUtbGlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQzs7QUFNdEUsTUFBTSxPQUFPLG9CQUFvQjs4R0FBcEIsb0JBQW9COytHQUFwQixvQkFBb0IsWUFIbkIsdUJBQXVCLEVBQUUsdUJBQXVCLGFBQ2hELHVCQUF1QixFQUFFLHVCQUF1QjsrR0FFakQsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQUpoQyxRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixDQUFDO29CQUMzRCxPQUFPLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSx1QkFBdUIsQ0FBQztpQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2VsZWN0YWJsZUl0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdGFibGUtaXRlbS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgU2VsZWN0YWJsZUxpc3REaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdGFibGUtbGlzdC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtTZWxlY3RhYmxlTGlzdERpcmVjdGl2ZSwgU2VsZWN0YWJsZUl0ZW1EaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtTZWxlY3RhYmxlTGlzdERpcmVjdGl2ZSwgU2VsZWN0YWJsZUl0ZW1EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdGFibGVMaXN0TW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const FDK_SELECTABLE_ITEM_PROVIDER = new InjectionToken('Token for providing custom behaviors to the SelectableListItem');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0YWJsZS1saXN0LnRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3V0aWxzL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1saXN0L3NlbGVjdGFibGUtbGlzdC50b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSw0QkFBNEIsR0FBRyxJQUFJLGNBQWMsQ0FDMUQsZ0VBQWdFLENBQ25FLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY29uc3QgRkRLX1NFTEVDVEFCTEVfSVRFTV9QUk9WSURFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbihcbiAgICAnVG9rZW4gZm9yIHByb3ZpZGluZyBjdXN0b20gYmVoYXZpb3JzIHRvIHRoZSBTZWxlY3RhYmxlTGlzdEl0ZW0nXG4pO1xuIl19
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import { coerceArray } from '@angular/cdk/coercion';
|
|
2
|
-
import { ChangeDetectorRef, DestroyRef, Injectable, QueryList, inject } from '@angular/core';
|
|
3
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
-
import equal from 'fast-deep-equal';
|
|
5
|
-
import { ReplaySubject, Subject, combineLatest, isObservable, merge, of, switchMap } from 'rxjs';
|
|
6
|
-
import { distinctUntilChanged, map, shareReplay, startWith, takeUntil, tap } from 'rxjs/operators';
|
|
7
|
-
import { destroyObservable } from '../../helpers/destroy-observable';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
export class SelectionService {
|
|
10
|
-
/** @hidden */
|
|
11
|
-
constructor(_cd) {
|
|
12
|
-
this._cd = _cd;
|
|
13
|
-
/** @hidden */
|
|
14
|
-
this._value$ = new ReplaySubject(1);
|
|
15
|
-
/** @hidden */
|
|
16
|
-
this._destroyRef = inject(DestroyRef);
|
|
17
|
-
/** @hidden */
|
|
18
|
-
this._clear$ = new Subject();
|
|
19
|
-
/** @hidden */
|
|
20
|
-
this._value = [];
|
|
21
|
-
this._normalizedValue$ = this._value$.pipe(distinctUntilChanged(equal), map((v) => coerceArray(v)), map((value) => (this._isMultipleMode ? value : [value[0]])), map((coerced) => coerced.filter(Boolean)));
|
|
22
|
-
this._normalizedValue$.pipe(takeUntilDestroyed(this._destroyRef)).subscribe((val) => (this._value = val));
|
|
23
|
-
this.value$ = this._normalizedValue$.pipe(map((v) => this._getProperValues(v)), shareReplay(1));
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Register main select component, which holds config
|
|
27
|
-
* */
|
|
28
|
-
registerRootComponent(rootComponent) {
|
|
29
|
-
this._rootComponent = rootComponent;
|
|
30
|
-
}
|
|
31
|
-
/**
|
|
32
|
-
* Clear listeners
|
|
33
|
-
*/
|
|
34
|
-
clear() {
|
|
35
|
-
this._clear$.next();
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Initialize watcher for selection changes and user interactions
|
|
39
|
-
* */
|
|
40
|
-
initialize(list) {
|
|
41
|
-
if (list instanceof QueryList) {
|
|
42
|
-
this._items$ = list.changes.pipe(startWith(list), map((items) => items.toArray()), shareReplay(1));
|
|
43
|
-
}
|
|
44
|
-
else {
|
|
45
|
-
this._items$ = isObservable(list) ? list : of(list);
|
|
46
|
-
}
|
|
47
|
-
this.listenToItemInteractions();
|
|
48
|
-
}
|
|
49
|
-
/**
|
|
50
|
-
* Sets Value, on which service looks at and updates UI accordingly
|
|
51
|
-
* */
|
|
52
|
-
setValue(v) {
|
|
53
|
-
this._value$.next(v);
|
|
54
|
-
}
|
|
55
|
-
/** @hidden */
|
|
56
|
-
getValue() {
|
|
57
|
-
return this._getProperValues(this._value);
|
|
58
|
-
}
|
|
59
|
-
/**
|
|
60
|
-
* Start listening for item interactions. Will destroy() first.
|
|
61
|
-
* Will silently continue if service was not initialized first.
|
|
62
|
-
* */
|
|
63
|
-
listenToItemInteractions() {
|
|
64
|
-
this.clear();
|
|
65
|
-
const unsubscribe$ = merge(destroyObservable(this._destroyRef), this._clear$);
|
|
66
|
-
if (this._items$) {
|
|
67
|
-
this._items$
|
|
68
|
-
.pipe(map((items) => items.filter((itm) => itm.fdkSelectableItem !== false)), switchMap((items) => {
|
|
69
|
-
const clickedEvents$ = items.map((item) => item.clicked.pipe(map(() => item)));
|
|
70
|
-
return merge(...clickedEvents$);
|
|
71
|
-
}), tap((clickedItem) => this._itemClicked(clickedItem)), takeUntil(unsubscribe$))
|
|
72
|
-
.subscribe();
|
|
73
|
-
combineLatest([this._normalizedValue$, this._items$])
|
|
74
|
-
.pipe(tap(([value, items]) => {
|
|
75
|
-
if (value.length === 0 &&
|
|
76
|
-
items.some((itm) => itm.getSelected()) &&
|
|
77
|
-
!this._rootComponent.toggle) {
|
|
78
|
-
const selectedValues = this._getSelectedValues(items);
|
|
79
|
-
this._rootComponent.onChange(selectedValues);
|
|
80
|
-
return this._value$.next(selectedValues);
|
|
81
|
-
}
|
|
82
|
-
items.forEach((item) => {
|
|
83
|
-
item.setSelected(value.includes(item.value));
|
|
84
|
-
});
|
|
85
|
-
this._cd.detectChanges();
|
|
86
|
-
}), takeUntil(unsubscribe$))
|
|
87
|
-
.subscribe();
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
/** @hidden */
|
|
91
|
-
selectItem(item) {
|
|
92
|
-
if (item.fdkSelectableItem !== false) {
|
|
93
|
-
const val = [item.value, ...this._value];
|
|
94
|
-
const properValues = this._getProperValues(val);
|
|
95
|
-
this._value$.next(properValues);
|
|
96
|
-
this._rootComponent.onChange(properValues);
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
/** @hidden */
|
|
100
|
-
deselectItem(item) {
|
|
101
|
-
const canBeDeselected = this._rootComponent.toggle || (this._isMultipleMode && this._value.length > 1);
|
|
102
|
-
if (canBeDeselected) {
|
|
103
|
-
const val = this._value.filter((v) => v !== item.value);
|
|
104
|
-
const properValues = this._getProperValues(val);
|
|
105
|
-
this._value$.next(properValues);
|
|
106
|
-
this._rootComponent.onChange(properValues);
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
/** @hidden */
|
|
110
|
-
get _isMultipleMode() {
|
|
111
|
-
return this._rootComponent.multiple === true;
|
|
112
|
-
}
|
|
113
|
-
/** @hidden */
|
|
114
|
-
_itemClicked(item) {
|
|
115
|
-
const wasSelected = this._value.includes(item.value);
|
|
116
|
-
if (wasSelected) {
|
|
117
|
-
this.deselectItem(item);
|
|
118
|
-
}
|
|
119
|
-
else {
|
|
120
|
-
this.selectItem(item);
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/** @hidden */
|
|
124
|
-
_getSelectedValues(items) {
|
|
125
|
-
const selectedValues = items.filter((itm) => itm.getSelected()).map((itm) => itm.value);
|
|
126
|
-
return this._getProperValues(selectedValues);
|
|
127
|
-
}
|
|
128
|
-
/** @hidden */
|
|
129
|
-
_getProperValues(values) {
|
|
130
|
-
return this._isMultipleMode ? values : values[0];
|
|
131
|
-
}
|
|
132
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectionService, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
133
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectionService }); }
|
|
134
|
-
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: SelectionService, decorators: [{
|
|
136
|
-
type: Injectable
|
|
137
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
|
|
138
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL3NlbGVjdGFibGUtbGlzdC9zZWxlY3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDcEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEtBQUssTUFBTSxpQkFBaUIsQ0FBQztBQUNwQyxPQUFPLEVBQWMsYUFBYSxFQUFFLE9BQU8sRUFBRSxhQUFhLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7O0FBVXJFLE1BQU0sT0FBTyxnQkFBZ0I7SUFtQnpCLGNBQWM7SUFDZCxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWQxQyxjQUFjO1FBQ04sWUFBTyxHQUFHLElBQUksYUFBYSxDQUFxQyxDQUFDLENBQUMsQ0FBQztRQUszRSxjQUFjO1FBQ04sZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekMsY0FBYztRQUNOLFlBQU8sR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ3RDLGNBQWM7UUFDTixXQUFNLEdBQWdCLEVBQUUsQ0FBQztRQUk3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O2tCQUQ1QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQXJyYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIERlc3Ryb3lSZWYsIEluamVjdGFibGUsIFF1ZXJ5TGlzdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgZXF1YWwgZnJvbSAnZmFzdC1kZWVwLWVxdWFsJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGlzT2JzZXJ2YWJsZSwgbWVyZ2UsIG9mLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzdGFydFdpdGgsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgZGVzdHJveU9ic2VydmFibGUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL2Rlc3Ryb3ktb2JzZXJ2YWJsZSc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnRSb290VG9rZW4sIFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlIH0gZnJvbSAnLi9zZWxlY3QtY29tcG9uZW50LXJvb3QudG9rZW4nO1xuaW1wb3J0IHsgU2VsZWN0YWJsZUl0ZW1Ub2tlbiB9IGZyb20gJy4vc2VsZWN0YWJsZS1pdGVtLnRva2VuJztcblxuZXhwb3J0IHR5cGUgU2VsZWN0aW9uSXRlbXNMaXN0PEVsZW1lbnRUeXBlIGV4dGVuZHMgRWxlbWVudCwgVmFsdWVUeXBlID0gRWxlbWVudFR5cGU+ID1cbiAgICB8IFF1ZXJ5TGlzdDxTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+PlxuICAgIHwgT2JzZXJ2YWJsZTxTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+W10+XG4gICAgfCBTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+W107XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTZWxlY3Rpb25TZXJ2aWNlPEVsZW1lbnRUeXBlIGV4dGVuZHMgRWxlbWVudCwgVmFsdWVUeXBlID0gRWxlbWVudFR5cGU+IHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHZhbHVlJDogT2JzZXJ2YWJsZTxTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxWYWx1ZVR5cGU+PjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfaXRlbXMkITogT2JzZXJ2YWJsZTxTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+W10+O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdmFsdWUkID0gbmV3IFJlcGxheVN1YmplY3Q8U2VsZWN0YWJsZUxpc3RWYWx1ZVR5cGU8VmFsdWVUeXBlPj4oMSk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9ub3JtYWxpemVkVmFsdWUkOiBPYnNlcnZhYmxlPFZhbHVlVHlwZVtdPjtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3Jvb3RDb21wb25lbnQhOiBTZWxlY3RDb21wb25lbnRSb290VG9rZW48RWxlbWVudFR5cGU+O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2NsZWFyJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF92YWx1ZTogVmFsdWVUeXBlW10gPSBbXTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XG4gICAgICAgIHRoaXMuX25vcm1hbGl6ZWRWYWx1ZSQgPSB0aGlzLl92YWx1ZSQucGlwZShcbiAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKGVxdWFsKSxcbiAgICAgICAgICAgIG1hcCgodikgPT4gY29lcmNlQXJyYXk8VmFsdWVUeXBlPih2KSksXG4gICAgICAgICAgICBtYXAoKHZhbHVlKSA9PiAodGhpcy5faXNNdWx0aXBsZU1vZGUgPyB2YWx1ZSA6IFt2YWx1ZVswXV0pKSxcbiAgICAgICAgICAgIG1hcCgoY29lcmNlZDogVmFsdWVUeXBlW10pID0+IGNvZXJjZWQuZmlsdGVyKEJvb2xlYW4pKVxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9ub3JtYWxpemVkVmFsdWUkLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKS5zdWJzY3JpYmUoKHZhbCkgPT4gKHRoaXMuX3ZhbHVlID0gdmFsKSk7XG4gICAgICAgIHRoaXMudmFsdWUkID0gdGhpcy5fbm9ybWFsaXplZFZhbHVlJC5waXBlKFxuICAgICAgICAgICAgbWFwKCh2KSA9PiB0aGlzLl9nZXRQcm9wZXJWYWx1ZXModiBhcyBTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxFbGVtZW50VHlwZT4pKSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgbWFpbiBzZWxlY3QgY29tcG9uZW50LCB3aGljaCBob2xkcyBjb25maWdcbiAgICAgKiAqL1xuICAgIHJlZ2lzdGVyUm9vdENvbXBvbmVudChyb290Q29tcG9uZW50OiBTZWxlY3RDb21wb25lbnRSb290VG9rZW48RWxlbWVudFR5cGU+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3Jvb3RDb21wb25lbnQgPSByb290Q29tcG9uZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFyIGxpc3RlbmVyc1xuICAgICAqL1xuICAgIGNsZWFyKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jbGVhciQubmV4dCgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEluaXRpYWxpemUgd2F0Y2hlciBmb3Igc2VsZWN0aW9uIGNoYW5nZXMgYW5kIHVzZXIgaW50ZXJhY3Rpb25zXG4gICAgICogKi9cbiAgICBpbml0aWFsaXplKGxpc3Q6IFNlbGVjdGlvbkl0ZW1zTGlzdDxFbGVtZW50VHlwZSwgVmFsdWVUeXBlPik6IHZvaWQge1xuICAgICAgICBpZiAobGlzdCBpbnN0YW5jZW9mIFF1ZXJ5TGlzdCkge1xuICAgICAgICAgICAgdGhpcy5faXRlbXMkID0gbGlzdC5jaGFuZ2VzLnBpcGUoXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKGxpc3QpLFxuICAgICAgICAgICAgICAgIG1hcCgoaXRlbXM6IFF1ZXJ5TGlzdDxTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+PikgPT4gaXRlbXMudG9BcnJheSgpKSxcbiAgICAgICAgICAgICAgICBzaGFyZVJlcGxheSgxKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX2l0ZW1zJCA9IGlzT2JzZXJ2YWJsZShsaXN0KSA/IGxpc3QgOiBvZihsaXN0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxpc3RlblRvSXRlbUludGVyYWN0aW9ucygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgVmFsdWUsIG9uIHdoaWNoIHNlcnZpY2UgbG9va3MgYXQgYW5kIHVwZGF0ZXMgVUkgYWNjb3JkaW5nbHlcbiAgICAgKiAqL1xuICAgIHNldFZhbHVlKHY6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPEVsZW1lbnRUeXBlPik6IHZvaWQge1xuICAgICAgICB0aGlzLl92YWx1ZSQubmV4dCh2KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldFZhbHVlKCk6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPEVsZW1lbnRUeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRQcm9wZXJWYWx1ZXModGhpcy5fdmFsdWUgYXMgU2VsZWN0YWJsZUxpc3RWYWx1ZVR5cGU8RWxlbWVudFR5cGU+KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTdGFydCBsaXN0ZW5pbmcgZm9yIGl0ZW0gaW50ZXJhY3Rpb25zLiBXaWxsIGRlc3Ryb3koKSBmaXJzdC5cbiAgICAgKiBXaWxsIHNpbGVudGx5IGNvbnRpbnVlIGlmIHNlcnZpY2Ugd2FzIG5vdCBpbml0aWFsaXplZCBmaXJzdC5cbiAgICAgKiAqL1xuICAgIGxpc3RlblRvSXRlbUludGVyYWN0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jbGVhcigpO1xuICAgICAgICBjb25zdCB1bnN1YnNjcmliZSQgPSBtZXJnZShkZXN0cm95T2JzZXJ2YWJsZSh0aGlzLl9kZXN0cm95UmVmKSwgdGhpcy5fY2xlYXIkKTtcbiAgICAgICAgaWYgKHRoaXMuX2l0ZW1zJCkge1xuICAgICAgICAgICAgdGhpcy5faXRlbXMkXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIG1hcCgoaXRlbXMpID0+IGl0ZW1zLmZpbHRlcigoaXRtKSA9PiBpdG0uZmRrU2VsZWN0YWJsZUl0ZW0gIT09IGZhbHNlKSksXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoaXRlbXM6IFNlbGVjdGFibGVJdGVtVG9rZW48RWxlbWVudFR5cGUsIFZhbHVlVHlwZT5bXSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgY2xpY2tlZEV2ZW50cyQgPSBpdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0uY2xpY2tlZC5waXBlKG1hcCgoKSA9PiBpdGVtKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG1lcmdlKC4uLmNsaWNrZWRFdmVudHMkKTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoY2xpY2tlZEl0ZW0pID0+IHRoaXMuX2l0ZW1DbGlja2VkKGNsaWNrZWRJdGVtKSksXG4gICAgICAgICAgICAgICAgICAgIHRha2VVbnRpbCh1bnN1YnNjcmliZSQpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIGNvbWJpbmVMYXRlc3QoW3RoaXMuX25vcm1hbGl6ZWRWYWx1ZSQsIHRoaXMuX2l0ZW1zJF0pXG4gICAgICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoW3ZhbHVlLCBpdGVtc10pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZS5sZW5ndGggPT09IDAgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtcy5zb21lKChpdG0pID0+IGl0bS5nZXRTZWxlY3RlZCgpKSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICF0aGlzLl9yb290Q29tcG9uZW50LnRvZ2dsZVxuICAgICAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZXMgPSB0aGlzLl9nZXRTZWxlY3RlZFZhbHVlcyhpdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fcm9vdENvbXBvbmVudC5vbkNoYW5nZShzZWxlY3RlZFZhbHVlcyBhcyBTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxFbGVtZW50VHlwZT4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLl92YWx1ZSQubmV4dChzZWxlY3RlZFZhbHVlcyBhcyBTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxFbGVtZW50VHlwZT4pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXMuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uc2V0U2VsZWN0ZWQodmFsdWUuaW5jbHVkZXMoaXRlbS52YWx1ZSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICB0YWtlVW50aWwodW5zdWJzY3JpYmUkKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHNlbGVjdEl0ZW0oaXRlbTogU2VsZWN0YWJsZUl0ZW1Ub2tlbjxFbGVtZW50VHlwZSwgVmFsdWVUeXBlPik6IHZvaWQge1xuICAgICAgICBpZiAoaXRlbS5mZGtTZWxlY3RhYmxlSXRlbSAhPT0gZmFsc2UpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbDogVmFsdWVUeXBlW10gPSBbaXRlbS52YWx1ZSwgLi4udGhpcy5fdmFsdWVdO1xuICAgICAgICAgICAgY29uc3QgcHJvcGVyVmFsdWVzID0gdGhpcy5fZ2V0UHJvcGVyVmFsdWVzKHZhbCBhcyBTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxFbGVtZW50VHlwZT4pO1xuICAgICAgICAgICAgdGhpcy5fdmFsdWUkLm5leHQocHJvcGVyVmFsdWVzKTtcbiAgICAgICAgICAgIHRoaXMuX3Jvb3RDb21wb25lbnQub25DaGFuZ2UocHJvcGVyVmFsdWVzKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgZGVzZWxlY3RJdGVtKGl0ZW06IFNlbGVjdGFibGVJdGVtVG9rZW48RWxlbWVudFR5cGUsIFZhbHVlVHlwZT4pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY2FuQmVEZXNlbGVjdGVkID0gdGhpcy5fcm9vdENvbXBvbmVudC50b2dnbGUgfHwgKHRoaXMuX2lzTXVsdGlwbGVNb2RlICYmIHRoaXMuX3ZhbHVlLmxlbmd0aCA+IDEpO1xuICAgICAgICBpZiAoY2FuQmVEZXNlbGVjdGVkKSB7XG4gICAgICAgICAgICBjb25zdCB2YWw6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPEVsZW1lbnRUeXBlPiA9IHRoaXMuX3ZhbHVlLmZpbHRlcihcbiAgICAgICAgICAgICAgICAodikgPT4gdiAhPT0gaXRlbS52YWx1ZVxuICAgICAgICAgICAgKSBhcyBTZWxlY3RhYmxlTGlzdFZhbHVlVHlwZTxFbGVtZW50VHlwZT47XG4gICAgICAgICAgICBjb25zdCBwcm9wZXJWYWx1ZXMgPSB0aGlzLl9nZXRQcm9wZXJWYWx1ZXModmFsKTtcbiAgICAgICAgICAgIHRoaXMuX3ZhbHVlJC5uZXh0KHByb3BlclZhbHVlcyk7XG4gICAgICAgICAgICB0aGlzLl9yb290Q29tcG9uZW50Lm9uQ2hhbmdlKHByb3BlclZhbHVlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9pc011bHRpcGxlTW9kZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jvb3RDb21wb25lbnQubXVsdGlwbGUgPT09IHRydWU7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pdGVtQ2xpY2tlZChpdGVtOiBTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHdhc1NlbGVjdGVkID0gdGhpcy5fdmFsdWUuaW5jbHVkZXMoaXRlbS52YWx1ZSk7XG4gICAgICAgIGlmICh3YXNTZWxlY3RlZCkge1xuICAgICAgICAgICAgdGhpcy5kZXNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFNlbGVjdGVkVmFsdWVzKGl0ZW1zOiBTZWxlY3RhYmxlSXRlbVRva2VuPEVsZW1lbnRUeXBlLCBWYWx1ZVR5cGU+W10pOiBFbGVtZW50VHlwZSB8IEVsZW1lbnRUeXBlW10ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFZhbHVlcyA9IGl0ZW1zLmZpbHRlcigoaXRtKSA9PiBpdG0uZ2V0U2VsZWN0ZWQoKSkubWFwKChpdG0pID0+IGl0bS52YWx1ZSk7XG4gICAgICAgIHJldHVybiB0aGlzLl9nZXRQcm9wZXJWYWx1ZXMoc2VsZWN0ZWRWYWx1ZXMgYXMgU2VsZWN0YWJsZUxpc3RWYWx1ZVR5cGU8RWxlbWVudFR5cGU+KTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2dldFByb3BlclZhbHVlcyh2YWx1ZXM6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPEVsZW1lbnRUeXBlPik6IFNlbGVjdGFibGVMaXN0VmFsdWVUeXBlPEVsZW1lbnRUeXBlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc011bHRpcGxlTW9kZSA/IHZhbHVlcyA6IHZhbHVlc1swXTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, TemplateRef } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class TemplateDirective {
|
|
4
|
-
/** @hidden */
|
|
5
|
-
constructor(templateRef) {
|
|
6
|
-
this.templateRef = templateRef;
|
|
7
|
-
}
|
|
8
|
-
/** @hidden */
|
|
9
|
-
getName() {
|
|
10
|
-
return this.name;
|
|
11
|
-
}
|
|
12
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
13
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: TemplateDirective, isStandalone: true, selector: "[fdkTemplate]", inputs: { name: ["fdkTemplate", "name"] }, ngImport: i0 }); }
|
|
14
|
-
}
|
|
15
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TemplateDirective, decorators: [{
|
|
16
|
-
type: Directive,
|
|
17
|
-
args: [{
|
|
18
|
-
selector: '[fdkTemplate]',
|
|
19
|
-
standalone: true
|
|
20
|
-
}]
|
|
21
|
-
}], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { name: [{
|
|
22
|
-
type: Input,
|
|
23
|
-
args: ['fdkTemplate']
|
|
24
|
-
}] } });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU05RCxNQUFNLE9BQU8saUJBQWlCO0lBSzFCLGNBQWM7SUFDZCxZQUFtQixXQUE2QjtRQUE3QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7SUFBRyxDQUFDO0lBRXBELGNBQWM7SUFDZCxPQUFPO1FBQ0gsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JCLENBQUM7OEdBWFEsaUJBQWlCO2tHQUFqQixpQkFBaUI7OzJGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtnRkFJRyxJQUFJO3NCQURILEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka1RlbXBsYXRlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gICAgLyoqIE5hbWUgb2YgdGhlIHRlbXBsYXRlICovXG4gICAgQElucHV0KCdmZGtUZW1wbGF0ZScpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { TemplateDirective } from './template.directive';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class TemplateModule {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TemplateModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: TemplateModule, imports: [TemplateDirective], exports: [TemplateDirective] }); }
|
|
7
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TemplateModule }); }
|
|
8
|
-
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TemplateModule, decorators: [{
|
|
10
|
-
type: NgModule,
|
|
11
|
-
args: [{
|
|
12
|
-
imports: [TemplateDirective],
|
|
13
|
-
exports: [TemplateDirective]
|
|
14
|
-
}]
|
|
15
|
-
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy90ZW1wbGF0ZS90ZW1wbGF0ZS5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFNekQsTUFBTSxPQUFPLGNBQWM7OEdBQWQsY0FBYzsrR0FBZCxjQUFjLFlBSGIsaUJBQWlCLGFBQ2pCLGlCQUFpQjsrR0FFbEIsY0FBYzs7MkZBQWQsY0FBYztrQkFKMUIsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQztvQkFDNUIsT0FBTyxFQUFFLENBQUMsaUJBQWlCLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRlbXBsYXRlRGlyZWN0aXZlIH0gZnJvbSAnLi90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtUZW1wbGF0ZURpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW1RlbXBsYXRlRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZU1vZHVsZSB7fVxuIl19
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
2
|
-
import { Directive, ElementRef, Input } from '@angular/core';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class TruncateDirective {
|
|
5
|
-
/**
|
|
6
|
-
* Width in pixel for truncation of an element , by default
|
|
7
|
-
*/
|
|
8
|
-
set fdkTruncateWidth(value) {
|
|
9
|
-
this._customWidthCount = coerceNumberProperty(value);
|
|
10
|
-
}
|
|
11
|
-
/** @hidden */
|
|
12
|
-
constructor(_elementRef) {
|
|
13
|
-
this._elementRef = _elementRef;
|
|
14
|
-
/**
|
|
15
|
-
* Truncating state
|
|
16
|
-
*/
|
|
17
|
-
this.fdkTruncateState = false;
|
|
18
|
-
/** @hidden */
|
|
19
|
-
this._customWidthCount = 200;
|
|
20
|
-
/** @hidden */
|
|
21
|
-
this.takeDefaultStyleOnce = true;
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Root native element
|
|
25
|
-
*/
|
|
26
|
-
get rootElement() {
|
|
27
|
-
return this._elementRef.nativeElement;
|
|
28
|
-
}
|
|
29
|
-
/**
|
|
30
|
-
* Method saves default style of target element before first truncate.
|
|
31
|
-
*/
|
|
32
|
-
setDefaultStyle() {
|
|
33
|
-
if (this.takeDefaultStyleOnce) {
|
|
34
|
-
this._defaultStyle = this._truncateTarget.style.cssText;
|
|
35
|
-
this.takeDefaultStyleOnce = false;
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
/** @hidden */
|
|
39
|
-
ngAfterViewInit() {
|
|
40
|
-
if (this.rootElement) {
|
|
41
|
-
this._truncate();
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
/** @hidden */
|
|
45
|
-
ngOnChanges() {
|
|
46
|
-
this._truncate();
|
|
47
|
-
}
|
|
48
|
-
/** @hidden */
|
|
49
|
-
_truncate() {
|
|
50
|
-
this._truncateTarget = this.rootElement;
|
|
51
|
-
if (!this._truncateTarget) {
|
|
52
|
-
return;
|
|
53
|
-
}
|
|
54
|
-
this.setDefaultStyle();
|
|
55
|
-
this._truncationStyle = `${this._defaultStyle} max-width: ${this._customWidthCount}px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`;
|
|
56
|
-
this._truncateTarget.style.cssText = this.fdkTruncateState ? this._truncationStyle : this._defaultStyle;
|
|
57
|
-
}
|
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TruncateDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
59
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: TruncateDirective, isStandalone: true, selector: "[fdkTruncate]", inputs: { fdkTruncateWidth: "fdkTruncateWidth", fdkTruncateState: "fdkTruncateState" }, usesOnChanges: true, ngImport: i0 }); }
|
|
60
|
-
}
|
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TruncateDirective, decorators: [{
|
|
62
|
-
type: Directive,
|
|
63
|
-
args: [{
|
|
64
|
-
selector: '[fdkTruncate]',
|
|
65
|
-
standalone: true
|
|
66
|
-
}]
|
|
67
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { fdkTruncateWidth: [{
|
|
68
|
-
type: Input
|
|
69
|
-
}], fdkTruncateState: [{
|
|
70
|
-
type: Input
|
|
71
|
-
}] } });
|
|
72
|
-
export class TruncatedTitleDirective {
|
|
73
|
-
/** @hidden */
|
|
74
|
-
constructor(_elRef) {
|
|
75
|
-
this._elRef = _elRef;
|
|
76
|
-
}
|
|
77
|
-
/** @hidden */
|
|
78
|
-
ngAfterContentChecked() {
|
|
79
|
-
const el = this._elRef.nativeElement;
|
|
80
|
-
if (el.scrollWidth > el.offsetWidth) {
|
|
81
|
-
el.title = el.innerText;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TruncatedTitleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
85
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: TruncatedTitleDirective, isStandalone: true, selector: "[fdkTruncatedTitle], [fdTruncatedTitle], [fd-truncate-title]", ngImport: i0 }); }
|
|
86
|
-
}
|
|
87
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: TruncatedTitleDirective, decorators: [{
|
|
88
|
-
type: Directive,
|
|
89
|
-
args: [{
|
|
90
|
-
selector: '[fdkTruncatedTitle], [fdTruncatedTitle], [fd-truncate-title]',
|
|
91
|
-
standalone: true
|
|
92
|
-
}]
|
|
93
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy90cnVuY2F0ZS90cnVuY2F0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFzQyxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBYSxNQUFNLGVBQWUsQ0FBQzs7QUFPNUcsTUFBTSxPQUFPLGlCQUFpQjtJQUMxQjs7T0FFRztJQUNILElBQ0ksZ0JBQWdCLENBQUMsS0FBdUI7UUFDeEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUEyQkQsY0FBYztJQUNkLFlBQTZCLFdBQXVCO1FBQXZCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBMUJwRDs7V0FFRztRQUVILHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUV6QixjQUFjO1FBQ04sc0JBQWlCLEdBQUcsR0FBRyxDQUFDO1FBVWhDLGNBQWM7UUFDTix5QkFBb0IsR0FBRyxJQUFJLENBQUM7SUFRbUIsQ0FBQztJQUV4RDs7T0FFRztJQUNILElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDMUMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7WUFDeEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQztRQUN0QyxDQUFDO0lBQ0wsQ0FBQztJQUNELGNBQWM7SUFDZCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVELGNBQWM7SUFDTixTQUFTO1FBQ2IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBRXhDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDeEIsT0FBTztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsSUFBSSxDQUFDLGFBQWEsZUFBZSxJQUFJLENBQUMsaUJBQWlCLHFFQUFxRSxDQUFDO1FBQ3hKLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztJQUM1RyxDQUFDOzhHQTNFUSxpQkFBaUI7a0dBQWpCLGlCQUFpQjs7MkZBQWpCLGlCQUFpQjtrQkFKN0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsVUFBVSxFQUFFLElBQUk7aUJBQ25COytFQU1PLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFTTixnQkFBZ0I7c0JBRGYsS0FBSzs7QUFzRVYsTUFBTSxPQUFPLHVCQUF1QjtJQUNoQyxjQUFjO0lBQ2QsWUFBb0IsTUFBa0I7UUFBbEIsV0FBTSxHQUFOLE1BQU0sQ0FBWTtJQUFHLENBQUM7SUFFMUMsY0FBYztJQUNkLHFCQUFxQjtRQUNqQixNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQztRQUNyQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEdBQUcsRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUM1QixDQUFDO0lBQ0wsQ0FBQzs4R0FWUSx1QkFBdUI7a0dBQXZCLHVCQUF1Qjs7MkZBQXZCLHVCQUF1QjtrQkFKbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsOERBQThEO29CQUN4RSxVQUFVLEVBQUUsSUFBSTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE51bGxhYmxlIH0gZnJvbSAnLi4vLi4vbW9kZWxzL251bGxhYmxlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrVHJ1bmNhdGVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFRydW5jYXRlRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBXaWR0aCBpbiBwaXhlbCBmb3IgdHJ1bmNhdGlvbiBvZiBhbiBlbGVtZW50ICwgYnkgZGVmYXVsdFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGZka1RydW5jYXRlV2lkdGgodmFsdWU6IE51bGxhYmxlPG51bWJlcj4pIHtcbiAgICAgICAgdGhpcy5fY3VzdG9tV2lkdGhDb3VudCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcnVuY2F0aW5nIHN0YXRlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBmZGtUcnVuY2F0ZVN0YXRlID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2N1c3RvbVdpZHRoQ291bnQgPSAyMDA7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RydW5jYXRlVGFyZ2V0OiBIVE1MRWxlbWVudDtcblxuICAgIC8qKiBAaGlkZGVuXG4gICAgICogc2F2ZXMgZGVmYXVsdCBzdHlsZSBvZiBlbGVtZW50IGJlZm9yZSB0cnVuY2F0aW5nXG4gICAgICovXG4gICAgcHJpdmF0ZSBfZGVmYXVsdFN0eWxlOiBzdHJpbmc7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgdGFrZURlZmF1bHRTdHlsZU9uY2UgPSB0cnVlO1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiB0cnVuY2F0aW9uIHN0eWxlIGZvciB0cnVuY2F0aW5nIGVsZW1lbnRcbiAgICAgKi9cbiAgICBwcml2YXRlIF90cnVuY2F0aW9uU3R5bGU6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfZWxlbWVudFJlZjogRWxlbWVudFJlZikge31cblxuICAgIC8qKlxuICAgICAqIFJvb3QgbmF0aXZlIGVsZW1lbnRcbiAgICAgKi9cbiAgICBnZXQgcm9vdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIE1ldGhvZCBzYXZlcyBkZWZhdWx0IHN0eWxlIG9mIHRhcmdldCBlbGVtZW50IGJlZm9yZSBmaXJzdCB0cnVuY2F0ZS5cbiAgICAgKi9cbiAgICBzZXREZWZhdWx0U3R5bGUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnRha2VEZWZhdWx0U3R5bGVPbmNlKSB7XG4gICAgICAgICAgICB0aGlzLl9kZWZhdWx0U3R5bGUgPSB0aGlzLl90cnVuY2F0ZVRhcmdldC5zdHlsZS5jc3NUZXh0O1xuICAgICAgICAgICAgdGhpcy50YWtlRGVmYXVsdFN0eWxlT25jZSA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5yb290RWxlbWVudCkge1xuICAgICAgICAgICAgdGhpcy5fdHJ1bmNhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3RydW5jYXRlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cnVuY2F0ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJ1bmNhdGVUYXJnZXQgPSB0aGlzLnJvb3RFbGVtZW50O1xuXG4gICAgICAgIGlmICghdGhpcy5fdHJ1bmNhdGVUYXJnZXQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldERlZmF1bHRTdHlsZSgpO1xuICAgICAgICB0aGlzLl90cnVuY2F0aW9uU3R5bGUgPSBgJHt0aGlzLl9kZWZhdWx0U3R5bGV9IG1heC13aWR0aDogJHt0aGlzLl9jdXN0b21XaWR0aENvdW50fXB4OyBvdmVyZmxvdzogaGlkZGVuOyB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpczsgd2hpdGUtc3BhY2U6IG5vd3JhcDtgO1xuICAgICAgICB0aGlzLl90cnVuY2F0ZVRhcmdldC5zdHlsZS5jc3NUZXh0ID0gdGhpcy5mZGtUcnVuY2F0ZVN0YXRlID8gdGhpcy5fdHJ1bmNhdGlvblN0eWxlIDogdGhpcy5fZGVmYXVsdFN0eWxlO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrVHJ1bmNhdGVkVGl0bGVdLCBbZmRUcnVuY2F0ZWRUaXRsZV0sIFtmZC10cnVuY2F0ZS10aXRsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVHJ1bmNhdGVkVGl0bGVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsUmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGVsID0gdGhpcy5fZWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgaWYgKGVsLnNjcm9sbFdpZHRoID4gZWwub2Zmc2V0V2lkdGgpIHtcbiAgICAgICAgICAgIGVsLnRpdGxlID0gZWwuaW5uZXJUZXh0O1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|