@fundamental-ngx/cdk 0.54.2 → 0.55.0-rc.1
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,206 +0,0 @@
|
|
|
1
|
-
import { A, BACKSPACE, C, DASH, DELETE, DOWN_ARROW, END, ENTER, ESCAPE, HOME, LEFT_ARROW, NUMPAD_MINUS, RIGHT_ARROW, TAB, UP_ARROW, V, X } from '@angular/cdk/keycodes';
|
|
2
|
-
import { Directive, ElementRef, HostListener, Input } from '@angular/core';
|
|
3
|
-
import { KeyUtil } from '../../functions';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class OnlyDigitsDirective {
|
|
6
|
-
/** @hidden */
|
|
7
|
-
constructor(_el) {
|
|
8
|
-
this._el = _el;
|
|
9
|
-
/** Allow using decimal */
|
|
10
|
-
this.decimal = false;
|
|
11
|
-
/** Define decimal separator
|
|
12
|
-
* Default: .(dot)
|
|
13
|
-
*/
|
|
14
|
-
this.decimalSeparator = '.';
|
|
15
|
-
/** @hidden */
|
|
16
|
-
this._hasDecimalPoint = false;
|
|
17
|
-
this._inputElement = this._el.nativeElement;
|
|
18
|
-
}
|
|
19
|
-
/** @hidden */
|
|
20
|
-
onKeyDown(e) {
|
|
21
|
-
if (
|
|
22
|
-
// Allow: Delete, Backspace, Tab, Escape, Enter, End, Home, Arrow Left, Arrow Right, Arrow Up, Arrow Down
|
|
23
|
-
KeyUtil.isKeyCode(e, [
|
|
24
|
-
DELETE,
|
|
25
|
-
BACKSPACE,
|
|
26
|
-
TAB,
|
|
27
|
-
ESCAPE,
|
|
28
|
-
ENTER,
|
|
29
|
-
END,
|
|
30
|
-
HOME,
|
|
31
|
-
LEFT_ARROW,
|
|
32
|
-
RIGHT_ARROW,
|
|
33
|
-
UP_ARROW,
|
|
34
|
-
DOWN_ARROW
|
|
35
|
-
]) ||
|
|
36
|
-
// Allow: Ctrl+(A/C/V/X) and Cmd+(A/C/V/X) (Mac)
|
|
37
|
-
(KeyUtil.isKeyCode(e, [A, C, V, X]) && (e.ctrlKey || e.metaKey))) {
|
|
38
|
-
return; // let it happen, don't do anything
|
|
39
|
-
}
|
|
40
|
-
if (KeyUtil.isKeyCode(e, [DASH, NUMPAD_MINUS])) {
|
|
41
|
-
const newValue = this._forecastValue(e.key);
|
|
42
|
-
if (this._inputElement.value[0] === '-' || newValue[0] !== '-') {
|
|
43
|
-
e.preventDefault();
|
|
44
|
-
return; // has DASH point
|
|
45
|
-
}
|
|
46
|
-
else {
|
|
47
|
-
return; // Allow: only one DASH point
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
if (this.decimal && e.key === this.decimalSeparator) {
|
|
51
|
-
const newValue = this._forecastValue(e.key);
|
|
52
|
-
if (newValue.split(this.decimalSeparator).length > 2) {
|
|
53
|
-
// has two or more decimal points
|
|
54
|
-
e.preventDefault();
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
else {
|
|
58
|
-
this._hasDecimalPoint = newValue.indexOf(this.decimalSeparator) > -1;
|
|
59
|
-
return; // Allow: only one decimal point
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
// Ensure that it is a number and stop the keypress
|
|
63
|
-
if (e.key === ' ' || isNaN(Number(e.key))) {
|
|
64
|
-
e.preventDefault();
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/** @hidden */
|
|
69
|
-
onPaste(event) {
|
|
70
|
-
if (window['clipboardData']) {
|
|
71
|
-
// Browser is IE
|
|
72
|
-
this._pasteData(window['clipboardData'].getData('text'));
|
|
73
|
-
}
|
|
74
|
-
else if (event.clipboardData && event.clipboardData.getData) {
|
|
75
|
-
// Other browsers
|
|
76
|
-
this._pasteData(event.clipboardData.getData('text/plain'));
|
|
77
|
-
}
|
|
78
|
-
event.preventDefault();
|
|
79
|
-
}
|
|
80
|
-
/** @hidden */
|
|
81
|
-
onDrop(event) {
|
|
82
|
-
const textData = event.dataTransfer?.getData('text') ?? '';
|
|
83
|
-
this._inputElement.focus();
|
|
84
|
-
this._pasteData(textData);
|
|
85
|
-
event.preventDefault();
|
|
86
|
-
}
|
|
87
|
-
/** @hidden */
|
|
88
|
-
_pasteData(pastedContent) {
|
|
89
|
-
const sanitizedContent = this._sanitizeInput(pastedContent);
|
|
90
|
-
const pasted = document.execCommand('insertText', false, sanitizedContent);
|
|
91
|
-
if (!pasted) {
|
|
92
|
-
if (this._inputElement.setRangeText) {
|
|
93
|
-
const { selectionStart: start, selectionEnd: end } = this._inputElement;
|
|
94
|
-
this._inputElement.setRangeText(sanitizedContent, start ?? 0, end ?? 0, 'end');
|
|
95
|
-
// Angular's Reactive Form relies on "input" event, but on Firefox, the setRangeText method doesn't trigger it
|
|
96
|
-
// so we have to trigger it ourself.
|
|
97
|
-
if (typeof window['InstallTrigger'] !== 'undefined') {
|
|
98
|
-
this._inputElement.dispatchEvent(new Event('input', { cancelable: true }));
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
// Browser does not support setRangeText, e.g. IE
|
|
103
|
-
this._insertAtCursor(this._inputElement, sanitizedContent);
|
|
104
|
-
}
|
|
105
|
-
}
|
|
106
|
-
if (this.decimal) {
|
|
107
|
-
this._hasDecimalPoint = this._inputElement.value.indexOf(this.decimalSeparator) > -1;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
// The following 2 methods were added from the below article for browsers that do not support setRangeText
|
|
111
|
-
// https://stackoverflow.com/questions/11076975/how-to-insert-text-into-the-textarea-at-the-current-cursor-position
|
|
112
|
-
/** @hidden */
|
|
113
|
-
_insertAtCursor(myField, myValue) {
|
|
114
|
-
const startPos = myField.selectionStart ?? 0;
|
|
115
|
-
const endPos = myField.selectionEnd ?? 0;
|
|
116
|
-
myField.value =
|
|
117
|
-
myField.value.substring(0, startPos) + myValue + myField.value.substring(endPos, myField.value.length);
|
|
118
|
-
const pos = startPos + myValue.length;
|
|
119
|
-
myField.focus();
|
|
120
|
-
myField.setSelectionRange(pos, pos);
|
|
121
|
-
this._triggerEvent(myField, 'input');
|
|
122
|
-
}
|
|
123
|
-
/** @hidden */
|
|
124
|
-
_triggerEvent(el, type) {
|
|
125
|
-
if ('createEvent' in document) {
|
|
126
|
-
// modern browsers, IE9+
|
|
127
|
-
const e = document.createEvent('HTMLEvents');
|
|
128
|
-
e.initEvent(type, false, true);
|
|
129
|
-
el.dispatchEvent(e);
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
// end stack overflow code
|
|
133
|
-
/** @hidden */
|
|
134
|
-
_sanitizeInput(input) {
|
|
135
|
-
let result = '';
|
|
136
|
-
if (this.decimal && this._isValidDecimal(input)) {
|
|
137
|
-
const regex = new RegExp(`[^0-9${this.decimalSeparator}]`, 'g');
|
|
138
|
-
result = input.replace(regex, '');
|
|
139
|
-
}
|
|
140
|
-
else {
|
|
141
|
-
result = input.replace(/[^0-9]/g, '');
|
|
142
|
-
}
|
|
143
|
-
if (input[0] === '-') {
|
|
144
|
-
result = `-${result}`;
|
|
145
|
-
}
|
|
146
|
-
const maxLength = this._inputElement.maxLength;
|
|
147
|
-
if (maxLength > 0) {
|
|
148
|
-
// the input element has maxLength limit
|
|
149
|
-
const allowedLength = maxLength - this._inputElement.value.length;
|
|
150
|
-
result = allowedLength > 0 ? result.substring(0, allowedLength) : '';
|
|
151
|
-
}
|
|
152
|
-
return result;
|
|
153
|
-
}
|
|
154
|
-
/** @hidden */
|
|
155
|
-
_isValidDecimal(string) {
|
|
156
|
-
if (!this._hasDecimalPoint) {
|
|
157
|
-
return string.split(this.decimalSeparator).length <= 2;
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
// the input element already has a decimal separator
|
|
161
|
-
const selectedText = this._getSelection;
|
|
162
|
-
if (selectedText && selectedText.indexOf(this.decimalSeparator) > -1) {
|
|
163
|
-
return string.split(this.decimalSeparator).length <= 2;
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
return string.indexOf(this.decimalSeparator) < 0;
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
/** @hidden */
|
|
171
|
-
get _getSelection() {
|
|
172
|
-
const { selectionStart, selectionEnd } = this._inputElement;
|
|
173
|
-
return this._inputElement.value.substring(selectionStart ?? 0, selectionEnd ?? 0);
|
|
174
|
-
}
|
|
175
|
-
/** @hidden */
|
|
176
|
-
_forecastValue(key) {
|
|
177
|
-
const { selectionStart, selectionEnd, value: oldValue } = this._inputElement;
|
|
178
|
-
const selection = oldValue.substring(selectionStart ?? 0, selectionEnd ?? 0);
|
|
179
|
-
return selection
|
|
180
|
-
? oldValue.replace(selection, key)
|
|
181
|
-
: oldValue.substring(0, selectionStart ?? 0) + key + oldValue.substring(selectionStart ?? 0);
|
|
182
|
-
}
|
|
183
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OnlyDigitsDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
184
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: OnlyDigitsDirective, isStandalone: true, selector: "[fdkOnlyDigits]", inputs: { decimal: "decimal", decimalSeparator: "decimalSeparator" }, host: { listeners: { "keydown": "onKeyDown($event)", "paste": "onPaste($event)", "drop": "onDrop($event)" } }, ngImport: i0 }); }
|
|
185
|
-
}
|
|
186
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OnlyDigitsDirective, decorators: [{
|
|
187
|
-
type: Directive,
|
|
188
|
-
args: [{
|
|
189
|
-
selector: '[fdkOnlyDigits]',
|
|
190
|
-
standalone: true
|
|
191
|
-
}]
|
|
192
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { decimal: [{
|
|
193
|
-
type: Input
|
|
194
|
-
}], decimalSeparator: [{
|
|
195
|
-
type: Input
|
|
196
|
-
}], onKeyDown: [{
|
|
197
|
-
type: HostListener,
|
|
198
|
-
args: ['keydown', ['$event']]
|
|
199
|
-
}], onPaste: [{
|
|
200
|
-
type: HostListener,
|
|
201
|
-
args: ['paste', ['$event']]
|
|
202
|
-
}], onDrop: [{
|
|
203
|
-
type: HostListener,
|
|
204
|
-
args: ['drop', ['$event']]
|
|
205
|
-
}] } });
|
|
206
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25seS1kaWdpdHMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9vbmx5LWRpZ2l0cy9vbmx5LWRpZ2l0cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILENBQUMsRUFDRCxTQUFTLEVBQ1QsQ0FBQyxFQUNELElBQUksRUFDSixNQUFNLEVBQ04sVUFBVSxFQUNWLEdBQUcsRUFDSCxLQUFLLEVBQ0wsTUFBTSxFQUNOLElBQUksRUFDSixVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxHQUFHLEVBQ0gsUUFBUSxFQUNSLENBQUMsRUFDRCxDQUFDLEVBQ0osTUFBTSx1QkFBdUIsQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFNMUMsTUFBTSxPQUFPLG1CQUFtQjtJQWE1QixjQUFjO0lBQ2QsWUFBNkIsR0FBZTtRQUFmLFFBQUcsR0FBSCxHQUFHLENBQVk7UUFiNUMsMEJBQTBCO1FBQ2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekI7O1dBRUc7UUFDTSxxQkFBZ0IsR0FBRyxHQUFHLENBQUM7UUFJaEMsY0FBYztRQUNOLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUk3QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO0lBQ2hELENBQUM7SUFFRCxjQUFjO0lBRWQsU0FBUyxDQUFDLENBQWdCO1FBQ3RCO1FBQ0kseUdBQXlHO1FBQ3pHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFO1lBQ2pCLE1BQU07WUFDTixTQUFTO1lBQ1QsR0FBRztZQUNILE1BQU07WUFDTixLQUFLO1lBQ0ws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QUFjLElBQUksQ0FBQyxDQUFDLEdBQUcsR0FBRyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsY0FBYyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3JHLENBQUM7OEdBM01RLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQUovQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjsrRUFHWSxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsZ0JBQWdCO3NCQUF4QixLQUFLO2dCQWNOLFNBQVM7c0JBRFIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBd0RuQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWVqQyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBBLFxuICAgIEJBQ0tTUEFDRSxcbiAgICBDLFxuICAgIERBU0gsXG4gICAgREVMRVRFLFxuICAgIERPV05fQVJST1csXG4gICAgRU5ELFxuICAgIEVOVEVSLFxuICAgIEVTQ0FQRSxcbiAgICBIT01FLFxuICAgIExFRlRfQVJST1csXG4gICAgTlVNUEFEX01JTlVTLFxuICAgIFJJR0hUX0FSUk9XLFxuICAgIFRBQixcbiAgICBVUF9BUlJPVyxcbiAgICBWLFxuICAgIFhcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2V5VXRpbCB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka09ubHlEaWdpdHNdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIE9ubHlEaWdpdHNEaXJlY3RpdmUge1xuICAgIC8qKiBBbGxvdyB1c2luZyBkZWNpbWFsICovXG4gICAgQElucHV0KCkgZGVjaW1hbCA9IGZhbHNlO1xuICAgIC8qKiBEZWZpbmUgZGVjaW1hbCBzZXBhcmF0b3JcbiAgICAgKiBEZWZhdWx0OiAuKGRvdClcbiAgICAgKi9cbiAgICBASW5wdXQoKSBkZWNpbWFsU2VwYXJhdG9yID0gJy4nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQ7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9oYXNEZWNpbWFsUG9pbnQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBfZWw6IEVsZW1lbnRSZWYpIHtcbiAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50ID0gdGhpcy5fZWwubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uS2V5RG93bihlOiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIC8vIEFsbG93OiBEZWxldGUsIEJhY2tzcGFjZSwgVGFiLCBFc2NhcGUsIEVudGVyLCBFbmQsIEhvbWUsIEFycm93IExlZnQsIEFycm93IFJpZ2h0LCBBcnJvdyBVcCwgQXJyb3cgRG93blxuICAgICAgICAgICAgS2V5VXRpbC5pc0tleUNvZGUoZSwgW1xuICAgICAgICAgICAgICAgIERFTEVURSxcbiAgICAgICAgICAgICAgICBCQUNLU1BBQ0UsXG4gICAgICAgICAgICAgICAgVEFCLFxuICAgICAgICAgICAgICAgIEVTQ0FQRSxcbiAgICAgICAgICAgICAgICBFTlRFUixcbiAgICAgICAgICAgICAgICBFTkQsXG4gICAgICAgICAgICAgICAgSE9NRSxcbiAgICAgICAgICAgICAgICBMRUZUX0FSUk9XLFxuICAgICAgICAgICAgICAgIFJJR0hUX0FSUk9XLFxuICAgICAgICAgICAgICAgIFVQX0FSUk9XLFxuICAgICAgICAgICAgICAgIERPV05fQVJST1dcbiAgICAgICAgICAgIF0pIHx8XG4gICAgICAgICAgICAvLyBBbGxvdzogQ3RybCsoQS9DL1YvWCkgYW5kIENtZCsoQS9DL1YvWCkgKE1hYylcbiAgICAgICAgICAgIChLZXlVdGlsLmlzS2V5Q29kZShlLCBbQSwgQywgViwgWF0pICYmIChlLmN0cmxLZXkgfHwgZS5tZXRhS2V5KSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm47IC8vIGxldCBpdCBoYXBwZW4sIGRvbid0IGRvIGFueXRoaW5nXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoS2V5VXRpbC5pc0tleUNvZGUoZSwgW0RBU0gsIE5VTVBBRF9NSU5VU10pKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuX2ZvcmVjYXN0VmFsdWUoZS5rZXkpO1xuXG4gICAgICAgICAgICBpZiAodGhpcy5faW5wdXRFbGVtZW50LnZhbHVlWzBdID09PSAnLScgfHwgbmV3VmFsdWVbMF0gIT09ICctJykge1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcblxuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gaGFzIERBU0ggcG9pbnRcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuOyAvLyBBbGxvdzogb25seSBvbmUgREFTSCBwb2ludFxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuZGVjaW1hbCAmJiBlLmtleSA9PT0gdGhpcy5kZWNpbWFsU2VwYXJhdG9yKSB7XG4gICAgICAgICAgICBjb25zdCBuZXdWYWx1ZSA9IHRoaXMuX2ZvcmVjYXN0VmFsdWUoZS5rZXkpO1xuICAgICAgICAgICAgaWYgKG5ld1ZhbHVlLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgICAgIC8vIGhhcyB0d28gb3IgbW9yZSBkZWNpbWFsIHBvaW50c1xuICAgICAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuX2hhc0RlY2ltYWxQb2ludCA9IG5ld1ZhbHVlLmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKSA+IC0xO1xuICAgICAgICAgICAgICAgIHJldHVybjsgLy8gQWxsb3c6IG9ubHkgb25lIGRlY2ltYWwgcG9pbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIEVuc3VyZSB0aGF0IGl0IGlzIGEgbnVtYmVyIGFuZCBzdG9wIHRoZSBrZXlwcmVzc1xuICAgICAgICBpZiAoZS5rZXkgPT09ICcgJyB8fCBpc05hTihOdW1iZXIoZS5rZXkpKSkge1xuICAgICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBASG9zdExpc3RlbmVyKCdwYXN0ZScsIFsnJGV2ZW50J10pXG4gICAgb25QYXN0ZShldmVudDogYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh3aW5kb3dbJ2NsaXBib2FyZERhdGEnXSkge1xuICAgICAgICAgICAgLy8gQnJvd3NlciBpcyBJRVxuICAgICAgICAgICAgdGhpcy5fcGFzdGVEYXRhKHdpbmRvd1snY2xpcGJvYXJkRGF0YSddLmdldERhdGEoJ3RleHQnKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoZXZlbnQuY2xpcGJvYXJkRGF0YSAmJiBldmVudC5jbGlwYm9hcmREYXRhLmdldERhdGEpIHtcbiAgICAgICAgICAgIC8vIE90aGVyIGJyb3dzZXJzXG4gICAgICAgICAgICB0aGlzLl9wYXN0ZURhdGEoZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0L3BsYWluJykpO1xuICAgICAgICB9XG5cbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2Ryb3AnLCBbJyRldmVudCddKVxuICAgIG9uRHJvcChldmVudDogRHJhZ0V2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRleHREYXRhID0gZXZlbnQuZGF0YVRyYW5zZmVyPy5nZXREYXRhKCd0ZXh0JykgPz8gJyc7XG4gICAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5mb2N1cygpO1xuICAgICAgICB0aGlzLl9wYXN0ZURhdGEodGV4dERhdGEpO1xuXG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9wYXN0ZURhdGEocGFzdGVkQ29udGVudDogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNhbml0aXplZENvbnRlbnQgPSB0aGlzLl9zYW5pdGl6ZUlucHV0KHBhc3RlZENvbnRlbnQpO1xuICAgICAgICBjb25zdCBwYXN0ZWQgPSBkb2N1bWVudC5leGVjQ29tbWFuZCgnaW5zZXJ0VGV4dCcsIGZhbHNlLCBzYW5pdGl6ZWRDb250ZW50KTtcbiAgICAgICAgaWYgKCFwYXN0ZWQpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9pbnB1dEVsZW1lbnQuc2V0UmFuZ2VUZXh0KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydDogc3RhcnQsIHNlbGVjdGlvbkVuZDogZW5kIH0gPSB0aGlzLl9pbnB1dEVsZW1lbnQ7XG4gICAgICAgICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LnNldFJhbmdlVGV4dChzYW5pdGl6ZWRDb250ZW50LCBzdGFydCA/PyAwLCBlbmQgPz8gMCwgJ2VuZCcpO1xuICAgICAgICAgICAgICAgIC8vIEFuZ3VsYXIncyBSZWFjdGl2ZSBGb3JtIHJlbGllcyBvbiBcImlucHV0XCIgZXZlbnQsIGJ1dCBvbiBGaXJlZm94LCB0aGUgc2V0UmFuZ2VUZXh0IG1ldGhvZCBkb2Vzbid0IHRyaWdnZXIgaXRcbiAgICAgICAgICAgICAgICAvLyBzbyB3ZSBoYXZlIHRvIHRyaWdnZXIgaXQgb3Vyc2VsZi5cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHdpbmRvd1snSW5zdGFsbFRyaWdnZXInXSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcsIHsgY2FuY2VsYWJsZTogdHJ1ZSB9KSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBCcm93c2VyIGRvZXMgbm90IHN1cHBvcnQgc2V0UmFuZ2VUZXh0LCBlLmcuIElFXG4gICAgICAgICAgICAgICAgdGhpcy5faW5zZXJ0QXRDdXJzb3IodGhpcy5faW5wdXRFbGVtZW50LCBzYW5pdGl6ZWRDb250ZW50KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlY2ltYWwpIHtcbiAgICAgICAgICAgIHRoaXMuX2hhc0RlY2ltYWxQb2ludCA9IHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZS5pbmRleE9mKHRoaXMuZGVjaW1hbFNlcGFyYXRvcikgPiAtMTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8vIFRoZSBmb2xsb3dpbmcgMiBtZXRob2RzIHdlcmUgYWRkZWQgZnJvbSB0aGUgYmVsb3cgYXJ0aWNsZSBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBzZXRSYW5nZVRleHRcbiAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy8xMTA3Njk3NS9ob3ctdG8taW5zZXJ0LXRleHQtaW50by10aGUtdGV4dGFyZWEtYXQtdGhlLWN1cnJlbnQtY3Vyc29yLXBvc2l0aW9uXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pbnNlcnRBdEN1cnNvcihteUZpZWxkOiBIVE1MSW5wdXRFbGVtZW50LCBteVZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhcnRQb3MgPSBteUZpZWxkLnNlbGVjdGlvblN0YXJ0ID8/IDA7XG4gICAgICAgIGNvbnN0IGVuZFBvcyA9IG15RmllbGQuc2VsZWN0aW9uRW5kID8/IDA7XG5cbiAgICAgICAgbXlGaWVsZC52YWx1ZSA9XG4gICAgICAgICAgICBteUZpZWxkLnZhbHVlLnN1YnN0cmluZygwLCBzdGFydFBvcykgKyBteVZhbHVlICsgbXlGaWVsZC52YWx1ZS5zdWJzdHJpbmcoZW5kUG9zLCBteUZpZWxkLnZhbHVlLmxlbmd0aCk7XG5cbiAgICAgICAgY29uc3QgcG9zID0gc3RhcnRQb3MgKyBteVZhbHVlLmxlbmd0aDtcbiAgICAgICAgbXlGaWVsZC5mb2N1cygpO1xuICAgICAgICBteUZpZWxkLnNldFNlbGVjdGlvblJhbmdlKHBvcywgcG9zKTtcblxuICAgICAgICB0aGlzLl90cmlnZ2VyRXZlbnQobXlGaWVsZCwgJ2lucHV0Jyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF90cmlnZ2VyRXZlbnQoZWw6IEhUTUxJbnB1dEVsZW1lbnQsIHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2NyZWF0ZUV2ZW50JyBpbiBkb2N1bWVudCkge1xuICAgICAgICAgICAgLy8gbW9kZXJuIGJyb3dzZXJzLCBJRTkrXG4gICAgICAgICAgICBjb25zdCBlID0gZG9jdW1lbnQuY3JlYXRlRXZlbnQoJ0hUTUxFdmVudHMnKTtcbiAgICAgICAgICAgIGUuaW5pdEV2ZW50KHR5cGUsIGZhbHNlLCB0cnVlKTtcbiAgICAgICAgICAgIGVsLmRpc3BhdGNoRXZlbnQoZSk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLy8gZW5kIHN0YWNrIG92ZXJmbG93IGNvZGVcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfc2FuaXRpemVJbnB1dChpbnB1dDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgICAgICBpZiAodGhpcy5kZWNpbWFsICYmIHRoaXMuX2lzVmFsaWREZWNpbWFsKGlucHV0KSkge1xuICAgICAgICAgICAgY29uc3QgcmVnZXggPSBuZXcgUmVnRXhwKGBbXjAtOSR7dGhpcy5kZWNpbWFsU2VwYXJhdG9yfV1gLCAnZycpO1xuICAgICAgICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZShyZWdleCwgJycpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmVzdWx0ID0gaW5wdXQucmVwbGFjZSgvW14wLTldL2csICcnKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChpbnB1dFswXSA9PT0gJy0nKSB7XG4gICAgICAgICAgICByZXN1bHQgPSBgLSR7cmVzdWx0fWA7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtYXhMZW5ndGggPSB0aGlzLl9pbnB1dEVsZW1lbnQubWF4TGVuZ3RoO1xuICAgICAgICBpZiAobWF4TGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgaGFzIG1heExlbmd0aCBsaW1pdFxuICAgICAgICAgICAgY29uc3QgYWxsb3dlZExlbmd0aCA9IG1heExlbmd0aCAtIHRoaXMuX2lucHV0RWxlbWVudC52YWx1ZS5sZW5ndGg7XG4gICAgICAgICAgICByZXN1bHQgPSBhbGxvd2VkTGVuZ3RoID4gMCA/IHJlc3VsdC5zdWJzdHJpbmcoMCwgYWxsb3dlZExlbmd0aCkgOiAnJztcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9pc1ZhbGlkRGVjaW1hbChzdHJpbmc6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAoIXRoaXMuX2hhc0RlY2ltYWxQb2ludCkge1xuICAgICAgICAgICAgcmV0dXJuIHN0cmluZy5zcGxpdCh0aGlzLmRlY2ltYWxTZXBhcmF0b3IpLmxlbmd0aCA8PSAyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gdGhlIGlucHV0IGVsZW1lbnQgYWxyZWFkeSBoYXMgYSBkZWNpbWFsIHNlcGFyYXRvclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZXh0ID0gdGhpcy5fZ2V0U2VsZWN0aW9uO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkVGV4dCAmJiBzZWxlY3RlZFRleHQuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpID4gLTEpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc3RyaW5nLnNwbGl0KHRoaXMuZGVjaW1hbFNlcGFyYXRvcikubGVuZ3RoIDw9IDI7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBzdHJpbmcuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIDwgMDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBnZXQgX2dldFNlbGVjdGlvbigpOiBzdHJpbmcge1xuICAgICAgICBjb25zdCB7IHNlbGVjdGlvblN0YXJ0LCBzZWxlY3Rpb25FbmQgfSA9IHRoaXMuX2lucHV0RWxlbWVudDtcblxuICAgICAgICByZXR1cm4gdGhpcy5faW5wdXRFbGVtZW50LnZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25TdGFydCA/PyAwLCBzZWxlY3Rpb25FbmQgPz8gMCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9mb3JlY2FzdFZhbHVlKGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgeyBzZWxlY3Rpb25TdGFydCwgc2VsZWN0aW9uRW5kLCB2YWx1ZTogb2xkVmFsdWUgfSA9IHRoaXMuX2lucHV0RWxlbWVudDtcbiAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gb2xkVmFsdWUuc3Vic3RyaW5nKHNlbGVjdGlvblN0YXJ0ID8/IDAsIHNlbGVjdGlvbkVuZCA/PyAwKTtcblxuICAgICAgICByZXR1cm4gc2VsZWN0aW9uXG4gICAgICAgICAgICA/IG9sZFZhbHVlLnJlcGxhY2Uoc2VsZWN0aW9uLCBrZXkpXG4gICAgICAgICAgICA6IG9sZFZhbHVlLnN1YnN0cmluZygwLCBzZWxlY3Rpb25TdGFydCA/PyAwKSArIGtleSArIG9sZFZhbHVlLnN1YnN0cmluZyhzZWxlY3Rpb25TdGFydCA/PyAwKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { OnlyDigitsDirective } from './only-digits.directive';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class OnlyDigitsModule {
|
|
5
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OnlyDigitsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
6
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: OnlyDigitsModule, imports: [OnlyDigitsDirective], exports: [OnlyDigitsDirective] }); }
|
|
7
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OnlyDigitsModule }); }
|
|
8
|
-
}
|
|
9
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OnlyDigitsModule, decorators: [{
|
|
10
|
-
type: NgModule,
|
|
11
|
-
args: [{
|
|
12
|
-
imports: [OnlyDigitsDirective],
|
|
13
|
-
exports: [OnlyDigitsDirective]
|
|
14
|
-
}]
|
|
15
|
-
}] });
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25seS1kaWdpdHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9vbmx5LWRpZ2l0cy9vbmx5LWRpZ2l0cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFNOUQsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsWUFIZixtQkFBbUIsYUFDbkIsbUJBQW1COytHQUVwQixnQkFBZ0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQzlCLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE9ubHlEaWdpdHNEaXJlY3RpdmUgfSBmcm9tICcuL29ubHktZGlnaXRzLmRpcmVjdGl2ZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW09ubHlEaWdpdHNEaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtPbmx5RGlnaXRzRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBPbmx5RGlnaXRzTW9kdWxlIHt9XG4iXX0=
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class OverflowListItemDirective {
|
|
4
|
-
/** @hidden */
|
|
5
|
-
constructor(el) {
|
|
6
|
-
this.el = el;
|
|
7
|
-
}
|
|
8
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OverflowListItemDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: OverflowListItemDirective, isStandalone: true, selector: "[fdkOverflowListItem]", ngImport: i0 }); }
|
|
10
|
-
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OverflowListItemDirective, decorators: [{
|
|
12
|
-
type: Directive,
|
|
13
|
-
args: [{
|
|
14
|
-
selector: '[fdkOverflowListItem]',
|
|
15
|
-
standalone: true
|
|
16
|
-
}]
|
|
17
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }] });
|
|
18
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGlzdC1pdGVtLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3V0aWxzL2RpcmVjdGl2ZXMvb3ZlcmZsb3ctbGlzdC9vdmVyZmxvdy1saXN0LWl0ZW0uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU10RCxNQUFNLE9BQU8seUJBQXlCO0lBQ2xDLGNBQWM7SUFDZCxZQUFtQixFQUFjO1FBQWQsT0FBRSxHQUFGLEVBQUUsQ0FBWTtJQUFHLENBQUM7OEdBRjVCLHlCQUF5QjtrR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQUpyQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtPdmVyZmxvd0xpc3RJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbDogRWxlbWVudFJlZikge31cbn1cbiJdfQ==
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { ContentChildren, DestroyRef, Directive, ElementRef, EventEmitter, Input, NgZone, Output, QueryList, inject } from '@angular/core';
|
|
2
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { debounceTime } from 'rxjs/operators';
|
|
4
|
-
import { resizeObservable } from '../../functions';
|
|
5
|
-
import { OverflowListItemDirective } from './overflow-list-item.directive';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export class OverflowListDirective {
|
|
8
|
-
/** @hidden */
|
|
9
|
-
constructor(_el, _ngZone) {
|
|
10
|
-
this._el = _el;
|
|
11
|
-
this._ngZone = _ngZone;
|
|
12
|
-
/**
|
|
13
|
-
* @description Offset to calculate correct position
|
|
14
|
-
*/
|
|
15
|
-
this.overflowOffset = 0;
|
|
16
|
-
/**
|
|
17
|
-
* @description value of display property of existed list items
|
|
18
|
-
*/
|
|
19
|
-
this.itemCssBlockValue = 'flex';
|
|
20
|
-
/**
|
|
21
|
-
* @description Emits when changed amount of extra items
|
|
22
|
-
*/
|
|
23
|
-
this.overflowChanged = new EventEmitter();
|
|
24
|
-
/** @hidden */
|
|
25
|
-
this._destroyRef = inject(DestroyRef);
|
|
26
|
-
}
|
|
27
|
-
/** @hidden */
|
|
28
|
-
ngAfterViewInit() {
|
|
29
|
-
this._ngZone.runOutsideAngular(() => {
|
|
30
|
-
resizeObservable(this._el.nativeElement)
|
|
31
|
-
.pipe(debounceTime(10), takeUntilDestroyed(this._destroyRef))
|
|
32
|
-
.subscribe(() => this._ngZone.run(() => this._calculateAmountOfOverflowedItems()));
|
|
33
|
-
});
|
|
34
|
-
this._calculateAmountOfOverflowedItems();
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* @description Get amount of extra items in current list
|
|
38
|
-
* */
|
|
39
|
-
getAmountOfExtraItems() {
|
|
40
|
-
const elements = this.overflowItems.toArray().map((item) => item.el.nativeElement);
|
|
41
|
-
const computed = getComputedStyle(this._el.nativeElement);
|
|
42
|
-
const contentWidth = Math.floor(this._el.nativeElement.clientWidth -
|
|
43
|
-
parseFloat(computed.paddingLeft || '0') -
|
|
44
|
-
parseFloat(computed.paddingRight || '0'));
|
|
45
|
-
if (contentWidth <= 0) {
|
|
46
|
-
return 0;
|
|
47
|
-
}
|
|
48
|
-
return this._checkWidthWithOffset(elements, contentWidth);
|
|
49
|
-
}
|
|
50
|
-
/** @hidden */
|
|
51
|
-
_calculateAmountOfOverflowedItems() {
|
|
52
|
-
const extra = this.getAmountOfExtraItems();
|
|
53
|
-
this.overflowChanged.emit(extra);
|
|
54
|
-
}
|
|
55
|
-
/**
|
|
56
|
-
* @hidden
|
|
57
|
-
* @param arrItems
|
|
58
|
-
* @param containerWidth
|
|
59
|
-
* @param checkWithOffset
|
|
60
|
-
* */
|
|
61
|
-
_checkWidthWithOffset(arrItems, containerWidth, checkWithOffset = false) {
|
|
62
|
-
let itemsTotalWidth = 0;
|
|
63
|
-
const parentWidth = checkWithOffset ? containerWidth - this.overflowOffset : containerWidth;
|
|
64
|
-
arrItems.forEach((item) => {
|
|
65
|
-
item.hidden = true;
|
|
66
|
-
item.style.display = this.itemCssBlockValue;
|
|
67
|
-
});
|
|
68
|
-
for (let i = 0; i < arrItems.length; i++) {
|
|
69
|
-
const item = arrItems[i];
|
|
70
|
-
itemsTotalWidth += this.isRtl
|
|
71
|
-
? containerWidth - item.offsetLeft - itemsTotalWidth
|
|
72
|
-
: Math.ceil(item.offsetWidth + item.offsetLeft - itemsTotalWidth);
|
|
73
|
-
if (parentWidth < itemsTotalWidth) {
|
|
74
|
-
this._clearTempStyles(arrItems);
|
|
75
|
-
return checkWithOffset
|
|
76
|
-
? arrItems.length - i
|
|
77
|
-
: this._checkWidthWithOffset(arrItems, containerWidth, true);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
this._clearTempStyles(arrItems);
|
|
81
|
-
return 0;
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* @param arrItems
|
|
85
|
-
* @hidden
|
|
86
|
-
* */
|
|
87
|
-
_clearTempStyles(arrItems) {
|
|
88
|
-
arrItems.forEach((item) => {
|
|
89
|
-
item.hidden = false;
|
|
90
|
-
item.style.removeProperty('display');
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OverflowListDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
94
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.0.3", type: OverflowListDirective, isStandalone: true, selector: "[fdkOverflowList]", inputs: { overflowOffset: "overflowOffset", isRtl: "isRtl", itemCssBlockValue: "itemCssBlockValue" }, outputs: { overflowChanged: "overflowChanged" }, queries: [{ propertyName: "overflowItems", predicate: OverflowListItemDirective }], ngImport: i0 }); }
|
|
95
|
-
}
|
|
96
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OverflowListDirective, decorators: [{
|
|
97
|
-
type: Directive,
|
|
98
|
-
args: [{
|
|
99
|
-
selector: '[fdkOverflowList]',
|
|
100
|
-
standalone: true
|
|
101
|
-
}]
|
|
102
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }], propDecorators: { overflowOffset: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}], isRtl: [{
|
|
105
|
-
type: Input
|
|
106
|
-
}], itemCssBlockValue: [{
|
|
107
|
-
type: Input
|
|
108
|
-
}], overflowChanged: [{
|
|
109
|
-
type: Output
|
|
110
|
-
}], overflowItems: [{
|
|
111
|
-
type: ContentChildren,
|
|
112
|
-
args: [OverflowListItemDirective]
|
|
113
|
-
}] } });
|
|
114
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGlzdC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL292ZXJmbG93LWxpc3Qvb3ZlcmZsb3ctbGlzdC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILGVBQWUsRUFDZixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7O0FBTTNFLE1BQU0sT0FBTyxxQkFBcUI7SUFrQzlCLGNBQWM7SUFDZCxZQUNZLEdBQWUsRUFDZixPQUFlO1FBRGYsUUFBRyxHQUFILEdBQUcsQ0FBWTtRQUNmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFwQzNCOztXQUVHO1FBRUgsbUJBQWMsR0FBRyxDQUFDLENBQUM7UUFRbkI7O1dBRUc7UUFFSCxzQkFBaUIsR0FBRyxNQUFNLENBQUM7UUFFM0I7O1dBRUc7UUFFSCxvQkFBZSxHQUF5QixJQUFJLFlBQVksRUFBVSxDQUFDO1FBUW5FLGNBQWM7UUFDRyxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQU0vQyxDQUFDO0lBRUosY0FBYztJQUNkLGVBQWU7UUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtZQUNoQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxD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QUFDO1lBQ3JFLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sQ0FBQyxDQUFDO0lBQ2IsQ0FBQztJQUVEOzs7U0FHSztJQUNHLGdCQUFnQixDQUFDLFFBQXVCO1FBQzVDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNwQixJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN6QyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBMUhRLHFCQUFxQjtrR0FBckIscUJBQXFCLGtRQTRCYix5QkFBeUI7OzJGQTVCakMscUJBQXFCO2tCQUpqQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtvR0FNRyxjQUFjO3NCQURiLEtBQUs7Z0JBT04sS0FBSztzQkFESixLQUFLO2dCQU9OLGlCQUFpQjtzQkFEaEIsS0FBSztnQkFPTixlQUFlO3NCQURkLE1BQU07Z0JBT1AsYUFBYTtzQkFEWixlQUFlO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgTmdab25lLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgcmVzaXplT2JzZXJ2YWJsZSB9IGZyb20gJy4uLy4uL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9vdmVyZmxvdy1saXN0LWl0ZW0uZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrT3ZlcmZsb3dMaXN0XScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBPdmVyZmxvd0xpc3REaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gT2Zmc2V0IHRvIGNhbGN1bGF0ZSBjb3JyZWN0IHBvc2l0aW9uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBvdmVyZmxvd09mZnNldCA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBAZGVzY3JpcHRpb24gRmxhZyByZXByZXNlbnRpbmcgcnRsIG1vZGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGlzUnRsOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIHZhbHVlIG9mIGRpc3BsYXkgcHJvcGVydHkgb2YgZXhpc3RlZCBsaXN0IGl0ZW1zXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBpdGVtQ3NzQmxvY2tWYWx1ZSA9ICdmbGV4JztcblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBFbWl0cyB3aGVuIGNoYW5nZWQgYW1vdW50IG9mIGV4dHJhIGl0ZW1zXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgb3ZlcmZsb3dDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqXG4gICAgICogQGRlc2NyaXB0aW9uIFJlZmVyZW5jZXMgdG8gUXVlcnlMaXN0IG9mIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmVcbiAgICAgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmUpXG4gICAgb3ZlcmZsb3dJdGVtczogUXVlcnlMaXN0PE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmU+O1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBfZWw6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lXG4gICAgKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX25nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB7XG4gICAgICAgICAgICByZXNpemVPYnNlcnZhYmxlKHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fbmdab25lLnJ1bigoKSA9PiB0aGlzLl9jYWxjdWxhdGVBbW91bnRPZk92ZXJmbG93ZWRJdGVtcygpKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLl9jYWxjdWxhdGVBbW91bnRPZk92ZXJmbG93ZWRJdGVtcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBkZXNjcmlwdGlvbiBHZXQgYW1vdW50IG9mIGV4dHJhIGl0ZW1zIGluIGN1cnJlbnQgbGlzdFxuICAgICAqICovXG4gICAgZ2V0QW1vdW50T2ZFeHRyYUl0ZW1zKCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRzID0gdGhpcy5vdmVyZmxvd0l0ZW1zLnRvQXJyYXkoKS5tYXAoKGl0ZW0pID0+IGl0ZW0uZWwubmF0aXZlRWxlbWVudCk7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkID0gZ2V0Q29tcHV0ZWRTdHlsZSh0aGlzLl9lbC5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgY29uc3QgY29udGVudFdpZHRoID0gTWF0aC5mbG9vcihcbiAgICAgICAgICAgIHRoaXMuX2VsLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGggLVxuICAgICAgICAgICAgICAgIHBhcnNlRmxvYXQoY29tcHV0ZWQucGFkZGluZ0xlZnQgfHwgJzAnKSAtXG4gICAgICAgICAgICAgICAgcGFyc2VGbG9hdChjb21wdXRlZC5wYWRkaW5nUmlnaHQgfHwgJzAnKVxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChjb250ZW50V2lkdGggPD0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIDA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGhpcy5fY2hlY2tXaWR0aFdpdGhPZmZzZXQoZWxlbWVudHMsIGNvbnRlbnRXaWR0aCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9jYWxjdWxhdGVBbW91bnRPZk92ZXJmbG93ZWRJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZXh0cmEgPSB0aGlzLmdldEFtb3VudE9mRXh0cmFJdGVtcygpO1xuICAgICAgICB0aGlzLm92ZXJmbG93Q2hhbmdlZC5lbWl0KGV4dHJhKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQHBhcmFtIGFyckl0ZW1zXG4gICAgICogQHBhcmFtIGNvbnRhaW5lcldpZHRoXG4gICAgICogQHBhcmFtIGNoZWNrV2l0aE9mZnNldFxuICAgICAqICovXG4gICAgcHJpdmF0ZSBfY2hlY2tXaWR0aFdpdGhPZmZzZXQoXG4gICAgICAgIGFyckl0ZW1zOiBIVE1MRWxlbWVudFtdLFxuICAgICAgICBjb250YWluZXJXaWR0aDogbnVtYmVyLFxuICAgICAgICBjaGVja1dpdGhPZmZzZXQ6IGJvb2xlYW4gPSBmYWxzZVxuICAgICk6IG51bWJlciB7XG4gICAgICAgIGxldCBpdGVtc1RvdGFsV2lkdGggPSAwO1xuICAgICAgICBjb25zdCBwYXJlbnRXaWR0aCA9IGNoZWNrV2l0aE9mZnNldCA/IGNvbnRhaW5lcldpZHRoIC0gdGhpcy5vdmVyZmxvd09mZnNldCA6IGNvbnRhaW5lcldpZHRoO1xuXG4gICAgICAgIGFyckl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gdHJ1ZTtcbiAgICAgICAgICAgIGl0ZW0uc3R5bGUuZGlzcGxheSA9IHRoaXMuaXRlbUNzc0Jsb2NrVmFsdWU7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXJySXRlbXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW0gPSBhcnJJdGVtc1tpXTtcblxuICAgICAgICAgICAgaXRlbXNUb3RhbFdpZHRoICs9IHRoaXMuaXNSdGxcbiAgICAgICAgICAgICAgICA/IGNvbnRhaW5lcldpZHRoIC0gaXRlbS5vZmZzZXRMZWZ0IC0gaXRlbXNUb3RhbFdpZHRoXG4gICAgICAgICAgICAgICAgOiBNYXRoLmNlaWwoaXRlbS5vZmZzZXRXaWR0aCArIGl0ZW0ub2Zmc2V0TGVmdCAtIGl0ZW1zVG90YWxXaWR0aCk7XG5cbiAgICAgICAgICAgIGlmIChwYXJlbnRXaWR0aCA8IGl0ZW1zVG90YWxXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX2NsZWFyVGVtcFN0eWxlcyhhcnJJdGVtcyk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoZWNrV2l0aE9mZnNldFxuICAgICAgICAgICAgICAgICAgICA/IGFyckl0ZW1zLmxlbmd0aCAtIGlcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLl9jaGVja1dpZHRoV2l0aE9mZnNldChhcnJJdGVtcywgY29udGFpbmVyV2lkdGgsIHRydWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fY2xlYXJUZW1wU3R5bGVzKGFyckl0ZW1zKTtcbiAgICAgICAgcmV0dXJuIDA7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHBhcmFtIGFyckl0ZW1zXG4gICAgICogQGhpZGRlblxuICAgICAqICovXG4gICAgcHJpdmF0ZSBfY2xlYXJUZW1wU3R5bGVzKGFyckl0ZW1zOiBIVE1MRWxlbWVudFtdKTogdm9pZCB7XG4gICAgICAgIGFyckl0ZW1zLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGl0ZW0uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgICAgICBpdGVtLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { OverflowListItemDirective } from './overflow-list-item.directive';
|
|
3
|
-
import { OverflowListDirective } from './overflow-list.directive';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class OverflowListModule {
|
|
6
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OverflowListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
7
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.3", ngImport: i0, type: OverflowListModule, imports: [OverflowListDirective, OverflowListItemDirective], exports: [OverflowListDirective, OverflowListItemDirective] }); }
|
|
8
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OverflowListModule }); }
|
|
9
|
-
}
|
|
10
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: OverflowListModule, decorators: [{
|
|
11
|
-
type: NgModule,
|
|
12
|
-
args: [{
|
|
13
|
-
imports: [OverflowListDirective, OverflowListItemDirective],
|
|
14
|
-
exports: [OverflowListDirective, OverflowListItemDirective]
|
|
15
|
-
}]
|
|
16
|
-
}] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctbGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL292ZXJmbG93LWxpc3Qvb3ZlcmZsb3ctbGlzdC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFNbEUsTUFBTSxPQUFPLGtCQUFrQjs4R0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsWUFIakIscUJBQXFCLEVBQUUseUJBQXlCLGFBQ2hELHFCQUFxQixFQUFFLHlCQUF5QjsrR0FFakQsa0JBQWtCOzsyRkFBbEIsa0JBQWtCO2tCQUo5QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLHlCQUF5QixDQUFDO29CQUMzRCxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsRUFBRSx5QkFBeUIsQ0FBQztpQkFDOUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBPdmVyZmxvd0xpc3RJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi9vdmVyZmxvdy1saXN0LWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJmbG93TGlzdERpcmVjdGl2ZSB9IGZyb20gJy4vb3ZlcmZsb3ctbGlzdC5kaXJlY3RpdmUnO1xuXG5ATmdNb2R1bGUoe1xuICAgIGltcG9ydHM6IFtPdmVyZmxvd0xpc3REaXJlY3RpdmUsIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtPdmVyZmxvd0xpc3REaXJlY3RpdmUsIE92ZXJmbG93TGlzdEl0ZW1EaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIE92ZXJmbG93TGlzdE1vZHVsZSB7fVxuIl19
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { setReadonlyState } from './set-readonly-state';
|
|
2
|
-
export class DefaultReadonlyViewModifier {
|
|
3
|
-
/** @hidden */
|
|
4
|
-
constructor(elementRef) {
|
|
5
|
-
this.elementRef = elementRef;
|
|
6
|
-
/** @hidden */
|
|
7
|
-
this.setReadonlyState = (isDisabled) => {
|
|
8
|
-
setReadonlyState(this.elementRef, isDisabled);
|
|
9
|
-
};
|
|
10
|
-
}
|
|
11
|
-
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1yZWFkb25seS12aWV3LW1vZGlmaWVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9yZWFkb25seS9kZWZhdWx0LXJlYWRvbmx5LXZpZXctbW9kaWZpZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFeEQsTUFBTSxPQUFPLDJCQUEyQjtJQUNwQyxjQUFjO0lBQ2QsWUFBb0IsVUFBK0I7UUFBL0IsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFFbkQsY0FBYztRQUNkLHFCQUFnQixHQUFHLENBQUMsVUFBbUIsRUFBUSxFQUFFO1lBQzdDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDbEQsQ0FBQyxDQUFDO0lBTG9ELENBQUM7Q0FNMUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZWFkb25seVZpZXdNb2RpZmllciB9IGZyb20gJy4vcmVhZG9ubHktdmlldy1tb2RpZmllci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgc2V0UmVhZG9ubHlTdGF0ZSB9IGZyb20gJy4vc2V0LXJlYWRvbmx5LXN0YXRlJztcblxuZXhwb3J0IGNsYXNzIERlZmF1bHRSZWFkb25seVZpZXdNb2RpZmllciBpbXBsZW1lbnRzIFJlYWRvbmx5Vmlld01vZGlmaWVyIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZjxFbGVtZW50Pikge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgc2V0UmVhZG9ubHlTdGF0ZSA9IChpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCA9PiB7XG4gICAgICAgIHNldFJlYWRvbmx5U3RhdGUodGhpcy5lbGVtZW50UmVmLCBpc0Rpc2FibGVkKTtcbiAgICB9O1xufVxuIl19
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { DestroyRef, ElementRef, Inject, Injectable, NgZone, Optional, Self, SkipSelf, inject } from '@angular/core';
|
|
2
|
-
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
-
import { BehaviorSubject, ReplaySubject, combineLatest, firstValueFrom } from 'rxjs';
|
|
4
|
-
import { distinctUntilChanged, startWith, tap } from 'rxjs/operators';
|
|
5
|
-
import { DefaultReadonlyViewModifier } from './default-readonly-view-modifier';
|
|
6
|
-
import { FDK_READONLY_DIRECTIVE } from './fdk-readonly.token';
|
|
7
|
-
import { ReadonlyObserver } from './readonly.observer';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "./readonly.observer";
|
|
10
|
-
export class FdkReadonlyProvider extends ReplaySubject {
|
|
11
|
-
/** @hidden */
|
|
12
|
-
constructor(ngZone, elementRef, readonlyObserver, selfReadonly$, parentReadonly$) {
|
|
13
|
-
super(1);
|
|
14
|
-
this.ngZone = ngZone;
|
|
15
|
-
this.elementRef = elementRef;
|
|
16
|
-
this.readonlyObserver = readonlyObserver;
|
|
17
|
-
this.selfReadonly$ = selfReadonly$;
|
|
18
|
-
this.parentReadonly$ = parentReadonly$;
|
|
19
|
-
/** @Hidden */
|
|
20
|
-
this.fdkReadonly = false;
|
|
21
|
-
/** @hidden */
|
|
22
|
-
this._viewModifiers$ = new BehaviorSubject(this._getInitialViewModifiers());
|
|
23
|
-
/** @hidden */
|
|
24
|
-
this._readonlyChange$ = this._getReadonlyChange$();
|
|
25
|
-
/** @hidden */
|
|
26
|
-
this._destroyRef = inject(DestroyRef);
|
|
27
|
-
combineLatest([this._readonlyChange$, this._viewModifiers$])
|
|
28
|
-
.pipe(tap(([isReadonly]) => this.setReadonlyState(isReadonly)), takeUntilDestroyed(this._destroyRef))
|
|
29
|
-
.subscribe();
|
|
30
|
-
this._readonlyChange$
|
|
31
|
-
.pipe(tap((isDisabled) => (this.fdkReadonly = isDisabled)), tap((isDisabled) => this.next(isDisabled)), takeUntilDestroyed(this._destroyRef))
|
|
32
|
-
.subscribe();
|
|
33
|
-
}
|
|
34
|
-
/** @hidden */
|
|
35
|
-
addViewModifier(modifier) {
|
|
36
|
-
const viewModifiers = [...new Set([...this._viewModifiers$.value, modifier]).values()];
|
|
37
|
-
this._viewModifiers$.next(viewModifiers);
|
|
38
|
-
}
|
|
39
|
-
/** @hidden */
|
|
40
|
-
setReadonlyState(isReadonly) {
|
|
41
|
-
firstValueFrom(this.ngZone.onStable).then(() => {
|
|
42
|
-
this._viewModifiers$.value.forEach((viewModifier) => viewModifier.setReadonlyState(isReadonly));
|
|
43
|
-
});
|
|
44
|
-
}
|
|
45
|
-
/** @hidden */
|
|
46
|
-
ngOnDestroy() {
|
|
47
|
-
this.complete();
|
|
48
|
-
this.readonlyObserver.unobserve(this.elementRef);
|
|
49
|
-
}
|
|
50
|
-
/** @hidden */
|
|
51
|
-
_getReadonlyChange$() {
|
|
52
|
-
let selfReadonly = false;
|
|
53
|
-
let parentReadonly = false;
|
|
54
|
-
if (this.parentReadonly$) {
|
|
55
|
-
this.parentReadonly$
|
|
56
|
-
.pipe(startWith(this.parentReadonly$.fdkReadonly), tap((d) => (parentReadonly = d)), distinctUntilChanged(), tap(() => {
|
|
57
|
-
if (parentReadonly) {
|
|
58
|
-
this.setReadonlyState(true);
|
|
59
|
-
}
|
|
60
|
-
if (!selfReadonly && !parentReadonly) {
|
|
61
|
-
this.setReadonlyState(false);
|
|
62
|
-
}
|
|
63
|
-
}), takeUntilDestroyed(this._destroyRef))
|
|
64
|
-
.subscribe();
|
|
65
|
-
}
|
|
66
|
-
if (this.selfReadonly$) {
|
|
67
|
-
this.selfReadonly$
|
|
68
|
-
.pipe(startWith(this.selfReadonly$.fdkReadonly), tap((d) => (selfReadonly = d)), distinctUntilChanged(), tap((isReadonly) => {
|
|
69
|
-
if (!parentReadonly) {
|
|
70
|
-
this.setReadonlyState(isReadonly);
|
|
71
|
-
}
|
|
72
|
-
}), takeUntilDestroyed(this._destroyRef))
|
|
73
|
-
.subscribe();
|
|
74
|
-
}
|
|
75
|
-
return this.readonlyObserver.observe(this.elementRef).pipe(distinctUntilChanged());
|
|
76
|
-
}
|
|
77
|
-
/** @hidden */
|
|
78
|
-
_getInitialViewModifiers() {
|
|
79
|
-
return !this.selfReadonly$ ? [new DefaultReadonlyViewModifier(this.elementRef)] : [this.selfReadonly$];
|
|
80
|
-
}
|
|
81
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FdkReadonlyProvider, deps: [{ token: i0.NgZone }, { token: i0.ElementRef }, { token: i1.ReadonlyObserver }, { token: FDK_READONLY_DIRECTIVE, optional: true, self: true }, { token: FDK_READONLY_DIRECTIVE, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
82
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FdkReadonlyProvider }); }
|
|
83
|
-
}
|
|
84
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.3", ngImport: i0, type: FdkReadonlyProvider, decorators: [{
|
|
85
|
-
type: Injectable
|
|
86
|
-
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i1.ReadonlyObserver }, { type: undefined, decorators: [{
|
|
87
|
-
type: Optional
|
|
88
|
-
}, {
|
|
89
|
-
type: Self
|
|
90
|
-
}, {
|
|
91
|
-
type: Inject,
|
|
92
|
-
args: [FDK_READONLY_DIRECTIVE]
|
|
93
|
-
}] }, { type: undefined, decorators: [{
|
|
94
|
-
type: Optional
|
|
95
|
-
}, {
|
|
96
|
-
type: SkipSelf
|
|
97
|
-
}, {
|
|
98
|
-
type: Inject,
|
|
99
|
-
args: [FDK_READONLY_DIRECTIVE]
|
|
100
|
-
}] }] });
|
|
101
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmRrLXJlYWRvbmx5LXByb3ZpZGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL3JlYWRvbmx5L2Zkay1yZWFkb25seS1wcm92aWRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxVQUFVLEVBQ1YsVUFBVSxFQUNWLE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUVOLFFBQVEsRUFDUixJQUFJLEVBQ0osUUFBUSxFQUNSLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsZUFBZSxFQUFjLGFBQWEsRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFHOUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQUd2RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsYUFBc0I7SUFlM0QsY0FBYztJQUNkLFlBQ1ksTUFBYyxFQUNkLFVBQStCLEVBQy9CLGdCQUFrQyxFQUNrQixhQUErQixFQUMzQixlQUFpQztRQUVqRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFORCxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2QsZUFBVSxHQUFWLFVBQVUsQ0FBcUI7UUFDL0IscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNrQixrQkFBYSxHQUFiLGFBQWEsQ0FBa0I7UUFDM0Isb0JBQWUsR0FB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MEJBQUksSUFBSTs7MEJBQUksTUFBTTsyQkFBQyxzQkFBc0I7OzBCQUNqRCxRQUFROzswQkFBSSxRQUFROzswQkFBSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGVzdHJveVJlZixcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RhYmxlLFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgU2VsZixcbiAgICBTa2lwU2VsZixcbiAgICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgc3RhcnRXaXRoLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEZWZhdWx0UmVhZG9ubHlWaWV3TW9kaWZpZXIgfSBmcm9tICcuL2RlZmF1bHQtcmVhZG9ubHktdmlldy1tb2RpZmllcic7XG5pbXBvcnQgeyBGREtfUkVBRE9OTFlfRElSRUNUSVZFIH0gZnJvbSAnLi9mZGstcmVhZG9ubHkudG9rZW4nO1xuaW1wb3J0IHsgUmVhZG9ubHlCZWhhdmlvciB9IGZyb20gJy4vcmVhZG9ubHktYmVoYXZpb3IuaW50ZXJmYWNlJztcbmltcG9ydCB7IFJlYWRvbmx5Vmlld01vZGlmaWVyIH0gZnJvbSAnLi9yZWFkb25seS12aWV3LW1vZGlmaWVyLmludGVyZmFjZSc7XG5pbXBvcnQgeyBSZWFkb25seU9ic2VydmVyIH0gZnJvbSAnLi9yZWFkb25seS5vYnNlcnZlcic7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBGZGtSZWFkb25seVByb3ZpZGVyIGV4dGVuZHMgUmVwbGF5U3ViamVjdDxib29sZWFuPiBpbXBsZW1lbnRzIFJlYWRvbmx5QmVoYXZpb3IsIE9uRGVzdHJveSB7XG4gICAgLyoqIEBIaWRkZW4gKi9cbiAgICBmZGtSZWFkb25seSA9IGZhbHNlO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF92aWV3TW9kaWZpZXJzJDogQmVoYXZpb3JTdWJqZWN0PFJlYWRvbmx5Vmlld01vZGlmaWVyW10+ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxcbiAgICAgICAgUmVhZG9ubHlWaWV3TW9kaWZpZXJbXVxuICAgID4odGhpcy5fZ2V0SW5pdGlhbFZpZXdNb2RpZmllcnMoKSk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3JlYWRvbmx5Q2hhbmdlJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuX2dldFJlYWRvbmx5Q2hhbmdlJCgpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEVsZW1lbnQ+LFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5T2JzZXJ2ZXI6IFJlYWRvbmx5T2JzZXJ2ZXIsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTZWxmKCkgQEluamVjdChGREtfUkVBRE9OTFlfRElSRUNUSVZFKSBwcml2YXRlIHNlbGZSZWFkb25seSQ6IFJlYWRvbmx5QmVoYXZpb3IsXG4gICAgICAgIEBPcHRpb25hbCgpIEBTa2lwU2VsZigpIEBJbmplY3QoRkRLX1JFQURPTkxZX0RJUkVDVElWRSkgcHJpdmF0ZSBwYXJlbnRSZWFkb25seSQ6IFJlYWRvbmx5QmVoYXZpb3JcbiAgICApIHtcbiAgICAgICAgc3VwZXIoMSk7XG5cbiAgICAgICAgY29tYmluZUxhdGVzdChbdGhpcy5fcmVhZG9ubHlDaGFuZ2UkLCB0aGlzLl92aWV3TW9kaWZpZXJzJF0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKFtpc1JlYWRvbmx5XSkgPT4gdGhpcy5zZXRSZWFkb25seVN0YXRlKGlzUmVhZG9ubHkpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5fcmVhZG9ubHlDaGFuZ2UkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKGlzRGlzYWJsZWQpID0+ICh0aGlzLmZka1JlYWRvbmx5ID0gaXNEaXNhYmxlZCkpLFxuICAgICAgICAgICAgICAgIHRhcCgoaXNEaXNhYmxlZCkgPT4gdGhpcy5uZXh0KGlzRGlzYWJsZWQpKSxcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5fZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGFkZFZpZXdNb2RpZmllcihtb2RpZmllcjogUmVhZG9ubHlWaWV3TW9kaWZpZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgdmlld01vZGlmaWVycyA9IFsuLi5uZXcgU2V0KFsuLi50aGlzLl92aWV3TW9kaWZpZXJzJC52YWx1ZSwgbW9kaWZpZXJdKS52YWx1ZXMoKV07XG4gICAgICAgIHRoaXMuX3ZpZXdNb2RpZmllcnMkLm5leHQodmlld01vZGlmaWVycyk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBzZXRSZWFkb25seVN0YXRlKGlzUmVhZG9ubHk6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgZmlyc3RWYWx1ZUZyb20odGhpcy5uZ1pvbmUub25TdGFibGUpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fdmlld01vZGlmaWVycyQudmFsdWUuZm9yRWFjaCgodmlld01vZGlmaWVyKSA9PiB2aWV3TW9kaWZpZXIuc2V0UmVhZG9ubHlTdGF0ZShpc1JlYWRvbmx5KSk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5yZWFkb25seU9ic2VydmVyLnVub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0UmVhZG9ubHlDaGFuZ2UkKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgICAgICBsZXQgc2VsZlJlYWRvbmx5ID0gZmFsc2U7XG4gICAgICAgIGxldCBwYXJlbnRSZWFkb25seSA9IGZhbHNlO1xuXG4gICAgICAgIGlmICh0aGlzLnBhcmVudFJlYWRvbmx5JCkge1xuICAgICAgICAgICAgdGhpcy5wYXJlbnRSZWFkb25seSRcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMucGFyZW50UmVhZG9ubHkkLmZka1JlYWRvbmx5KSxcbiAgICAgICAgICAgICAgICAgICAgdGFwKChkKSA9PiAocGFyZW50UmVhZG9ubHkgPSBkKSksXG4gICAgICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAocGFyZW50UmVhZG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFJlYWRvbmx5U3RhdGUodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXNlbGZSZWFkb25seSAmJiAhcGFyZW50UmVhZG9ubHkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFJlYWRvbmx5U3RhdGUoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5zZWxmUmVhZG9ubHkkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGZSZWFkb25seSRcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuc2VsZlJlYWRvbmx5JC5mZGtSZWFkb25seSksXG4gICAgICAgICAgICAgICAgICAgIHRhcCgoZCkgPT4gKHNlbGZSZWFkb25seSA9IGQpKSxcbiAgICAgICAgICAgICAgICAgICAgZGlzdGluY3RVbnRpbENoYW5nZWQoKSxcbiAgICAgICAgICAgICAgICAgICAgdGFwKChpc1JlYWRvbmx5KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIXBhcmVudFJlYWRvbmx5KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSZWFkb25seVN0YXRlKGlzUmVhZG9ubHkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuX2Rlc3Ryb3lSZWYpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5yZWFkb25seU9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZ2V0SW5pdGlhbFZpZXdNb2RpZmllcnMoKTogUmVhZG9ubHlWaWV3TW9kaWZpZXJbXSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5zZWxmUmVhZG9ubHkkID8gW25ldyBEZWZhdWx0UmVhZG9ubHlWaWV3TW9kaWZpZXIodGhpcy5lbGVtZW50UmVmKV0gOiBbdGhpcy5zZWxmUmVhZG9ubHkkXTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export const FDK_READONLY_DIRECTIVE = new InjectionToken('Readonly directive token');
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmRrLXJlYWRvbmx5LnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvdXRpbHMvZGlyZWN0aXZlcy9yZWFkb25seS9mZGstcmVhZG9ubHkudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQyxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLGNBQWMsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNvbnN0IEZES19SRUFET05MWV9ESVJFQ1RJVkUgPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ1JlYWRvbmx5IGRpcmVjdGl2ZSB0b2tlbicpO1xuIl19
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from './default-readonly-view-modifier';
|
|
2
|
-
export * from './fdk-readonly-provider.service';
|
|
3
|
-
export * from './fdk-readonly.token';
|
|
4
|
-
export * from './readonly-behavior.directive';
|
|
5
|
-
export * from './readonly-behavior.interface';
|
|
6
|
-
export * from './readonly-behavior.module';
|
|
7
|
-
export * from './readonly-view-modifier.interface';
|
|
8
|
-
export * from './readonly.observer';
|
|
9
|
-
export * from './set-readonly-state';
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay91dGlscy9kaXJlY3RpdmVzL3JlYWRvbmx5L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyxpQ0FBaUMsQ0FBQztBQUNoRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDRCQUE0QixDQUFDO0FBQzNDLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9kZWZhdWx0LXJlYWRvbmx5LXZpZXctbW9kaWZpZXInO1xuZXhwb3J0ICogZnJvbSAnLi9mZGstcmVhZG9ubHktcHJvdmlkZXIuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2Zkay1yZWFkb25seS50b2tlbic7XG5leHBvcnQgKiBmcm9tICcuL3JlYWRvbmx5LWJlaGF2aW9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlYWRvbmx5LWJlaGF2aW9yLmludGVyZmFjZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlYWRvbmx5LWJlaGF2aW9yLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3JlYWRvbmx5LXZpZXctbW9kaWZpZXIuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVhZG9ubHkub2JzZXJ2ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9zZXQtcmVhZG9ubHktc3RhdGUnO1xuIl19
|