@fundamental-ngx/cdk 0.43.2 → 0.44.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/data-source/data-source.directive.d.ts +1 -1
- package/esm2022/data-source/base/base-data-source.class.mjs +112 -0
- package/{esm2020 → esm2022}/data-source/data-source.directive.mjs +4 -4
- package/{esm2020 → esm2022}/data-source/data-source.module.mjs +5 -5
- package/{esm2020 → esm2022}/forms/cva/cva-control.class.mjs +4 -4
- package/{esm2020 → esm2022}/forms/cva/cva.directive.mjs +4 -4
- package/{esm2020 → esm2022}/forms/forms.module.mjs +5 -5
- package/{esm2020 → esm2022}/fundamental-ngx.module.mjs +5 -5
- package/{esm2020 → esm2022}/utils/abstract-fd-ngx-class.mjs +4 -4
- package/{esm2020 → esm2022}/utils/components/dynamic-portal/dynamic-portal.component.mjs +4 -4
- package/esm2022/utils/directives/auto-complete/auto-complete.directive.mjs +136 -0
- package/{esm2020 → esm2022}/utils/directives/auto-complete/auto-complete.module.mjs +5 -5
- package/{esm2020 → esm2022}/utils/directives/breakpoints/breakpoint.directive.mjs +8 -8
- package/{esm2020 → esm2022}/utils/directives/clicked/clicked-behavior.module.mjs +5 -5
- package/{esm2020 → esm2022}/utils/directives/clicked/clicked-event.plugin.mjs +4 -4
- package/esm2022/utils/directives/clicked/clicked.directive.mjs +51 -0
- package/{esm2020 → esm2022}/utils/directives/clicked/fdk-clicked-provider.service.mjs +4 -4
- package/esm2022/utils/directives/disabled/disabled-behavior.directive.mjs +114 -0
- package/{esm2020 → esm2022}/utils/directives/disabled/disabled-behavior.module.mjs +5 -5
- package/{esm2020 → esm2022}/utils/directives/disabled/disabled.observer.mjs +4 -4
- package/{esm2020 → esm2022}/utils/directives/disabled/fdk-disabled-provider.service.mjs +4 -4
- package/{esm2020 → esm2022}/utils/directives/focus-key-manager/focus-key-manager-helpers.module.mjs +11 -11
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +98 -0
- package/esm2022/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +114 -0
- package/{esm2020 → esm2022}/utils/directives/focusable-grid/focusable-grid.directive.mjs +10 -10
- package/{esm2020 → esm2022}/utils/directives/focusable-grid/focusable-grid.module.mjs +5 -5
- package/esm2022/utils/directives/focusable-item/focusable-item.directive.mjs +217 -0
- package/{esm2020 → esm2022}/utils/directives/focusable-item/focusable-item.module.mjs +5 -5
- package/{esm2020 → esm2022}/utils/directives/focusable-item/focusable.observer.mjs +4 -4
- package/esm2022/utils/directives/focusable-list/focusable-list.directive.mjs +330 -0
- package/{esm2020 → esm2022}/utils/directives/focusable-list/focusable-list.module.mjs +5 -5
- package/esm2022/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +79 -0
- package/{esm2020 → esm2022}/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs +5 -5
- package/esm2022/utils/directives/initial-focus/initial-focus.directive.mjs +152 -0
- package/{esm2020 → esm2022}/utils/directives/initial-focus/initial-focus.module.mjs +5 -5
- package/{esm2020 → esm2022}/utils/directives/intersection-spy/intersection-spy.directive.mjs +4 -4
- package/esm2022/utils/directives/line-clamp/line-clamp.directive.mjs +262 -0
- package/{esm2020 → esm2022}/utils/directives/line-clamp/line-clamp.module.mjs +11 -11
- package/esm2022/utils/directives/only-digits/only-digits.directive.mjs +218 -0
- package/{esm2020 → esm2022}/utils/directives/only-digits/only-digits.module.mjs +5 -5
- package/esm2022/utils/directives/overflow-list/overflow-list-item.directive.mjs +42 -0
- package/esm2022/utils/directives/overflow-list/overflow-list.directive.mjs +142 -0
- package/{esm2020 → esm2022}/utils/directives/overflow-list/overflow-list.module.mjs +11 -11
- package/{esm2020 → esm2022}/utils/directives/readonly/fdk-readonly-provider.service.mjs +4 -4
- package/esm2022/utils/directives/readonly/readonly-behavior.directive.mjs +97 -0
- package/{esm2020 → esm2022}/utils/directives/readonly/readonly-behavior.module.mjs +5 -5
- package/{esm2020 → esm2022}/utils/directives/readonly/readonly.observer.mjs +4 -4
- package/esm2022/utils/directives/repeat/repeat.directive.mjs +65 -0
- package/{esm2020 → esm2022}/utils/directives/repeat/repeat.module.mjs +5 -5
- package/esm2022/utils/directives/resize/resize-handle.directive.mjs +42 -0
- package/esm2022/utils/directives/resize/resize.directive.mjs +231 -0
- package/{esm2020 → esm2022}/utils/directives/resize/resize.module.mjs +5 -5
- package/{esm2020 → esm2022}/utils/directives/selectable-list/selectable-item.directive.mjs +12 -12
- package/{esm2020 → esm2022}/utils/directives/selectable-list/selectable-list.directive.mjs +10 -10
- package/{esm2020 → esm2022}/utils/directives/selectable-list/selectable-list.module.mjs +5 -5
- package/{esm2020 → esm2022}/utils/directives/selectable-list/selection.service.mjs +4 -4
- package/esm2022/utils/directives/template/template.directive.mjs +49 -0
- package/{esm2020 → esm2022}/utils/directives/template/template.module.mjs +5 -5
- package/esm2022/utils/directives/truncate/truncate.directive.mjs +96 -0
- package/{esm2020 → esm2022}/utils/directives/truncate/truncate.module.mjs +5 -5
- package/esm2022/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +274 -0
- package/{esm2020 → esm2022}/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.mjs +4 -4
- package/{esm2020 → esm2022}/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.mjs +4 -4
- package/{esm2020 → esm2022}/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +4 -4
- package/{esm2020 → esm2022}/utils/drag-and-drop/drag-and-drop.module.mjs +5 -5
- package/{esm2020 → esm2022}/utils/dynamic-component/dynamic-component.service.mjs +4 -4
- package/esm2022/utils/functions/get-document-font-size.mjs +9 -0
- package/{esm2020 → esm2022}/utils/pipes/async-or-sync.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/utils/pipes/displayFn.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/utils/pipes/filter-strings.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/utils/pipes/is-compact.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/utils/pipes/make-async.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/utils/pipes/pipe.module.mjs +23 -23
- package/{esm2020 → esm2022}/utils/pipes/safe.pipe.mjs +4 -4
- package/esm2022/utils/pipes/search-highlight.pipe.mjs +32 -0
- package/{esm2020 → esm2022}/utils/pipes/truncate.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/utils/pipes/two-digits.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/utils/pipes/value-by-path.pipe.mjs +4 -4
- package/{esm2020 → esm2022}/utils/services/content-density.service.mjs +4 -4
- package/{esm2020 → esm2022}/utils/services/destroyed.service.mjs +4 -4
- package/{esm2020 → esm2022}/utils/services/focus-trap.service.mjs +4 -4
- package/{esm2020 → esm2022}/utils/services/keyboard-support/keyboard-support.service.mjs +4 -4
- package/{esm2020 → esm2022}/utils/services/local-storage.service.mjs +4 -4
- package/{esm2020 → esm2022}/utils/services/observers/attribute.observer.mjs +4 -4
- package/{esm2020 → esm2022}/utils/services/resize-observer.service.mjs +7 -7
- package/{esm2020 → esm2022}/utils/services/rtl.service.mjs +4 -4
- package/{esm2020 → esm2022}/utils/services/tabbable-element.service.mjs +4 -4
- package/{esm2020 → esm2022}/utils/services/themes.service.mjs +4 -4
- package/esm2022/utils/toast/base-toast-positions.mjs +108 -0
- package/{esm2020 → esm2022}/utils/toast/base-toast.service.mjs +4 -4
- package/{esm2020 → esm2022}/utils/toast/classes/base-toast-animated-container.component.mjs +4 -4
- package/{esm2020 → esm2022}/utils/toast/classes/base-toast-container.component.mjs +4 -4
- package/{esm2020 → esm2022}/utils/toast/classes/base-toast-overlay-container.mjs +4 -4
- package/{esm2020 → esm2022}/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-container.component.mjs +4 -4
- package/{esm2020 → esm2022}/utils/utils.module.mjs +77 -77
- package/{fesm2020 → fesm2022}/fundamental-ngx-cdk-data-source.mjs +11 -11
- package/{fesm2020 → fesm2022}/fundamental-ngx-cdk-data-source.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/fundamental-ngx-cdk-forms.mjs +10 -10
- package/{fesm2020 → fesm2022}/fundamental-ngx-cdk-forms.mjs.map +1 -1
- package/{fesm2020 → fesm2022}/fundamental-ngx-cdk-utils.mjs +662 -657
- package/fesm2022/fundamental-ngx-cdk-utils.mjs.map +1 -0
- package/{fesm2015 → fesm2022}/fundamental-ngx-cdk.mjs +4 -4
- package/fesm2022/fundamental-ngx-cdk.mjs.map +1 -0
- package/forms/cva/cva.directive.d.ts +1 -1
- package/fundamental-ngx-cdk-v0.44.0-rc.1.tgz +0 -0
- package/package.json +23 -35
- package/utils/abstract-fd-ngx-class.d.ts +1 -1
- package/utils/components/dynamic-portal/dynamic-portal.component.d.ts +1 -1
- package/utils/directives/auto-complete/auto-complete.directive.d.ts +2 -2
- package/utils/directives/breakpoints/breakpoint.directive.d.ts +1 -1
- package/utils/directives/clicked/clicked.directive.d.ts +2 -2
- package/utils/directives/disabled/disabled-behavior.directive.d.ts +2 -2
- package/utils/directives/focus-key-manager/focus-key-manager-item.directive.d.ts +2 -2
- package/utils/directives/focus-key-manager/focus-key-manager-list.directive.d.ts +2 -2
- package/utils/directives/focusable-grid/focusable-grid.directive.d.ts +1 -1
- package/utils/directives/focusable-item/focusable-item.directive.d.ts +2 -2
- package/utils/directives/focusable-list/focusable-list.directive.d.ts +2 -2
- package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.d.ts +2 -2
- package/utils/directives/initial-focus/initial-focus.directive.d.ts +2 -2
- package/utils/directives/intersection-spy/intersection-spy.directive.d.ts +1 -1
- package/utils/directives/line-clamp/line-clamp.directive.d.ts +4 -4
- package/utils/directives/only-digits/only-digits.directive.d.ts +2 -2
- package/utils/directives/overflow-list/overflow-list-item.directive.d.ts +2 -2
- package/utils/directives/overflow-list/overflow-list.directive.d.ts +2 -2
- package/utils/directives/readonly/readonly-behavior.directive.d.ts +2 -2
- package/utils/directives/repeat/repeat.directive.d.ts +2 -2
- package/utils/directives/resize/resize-handle.directive.d.ts +2 -2
- package/utils/directives/resize/resize.directive.d.ts +2 -2
- package/utils/directives/selectable-list/selectable-item.directive.d.ts +1 -1
- package/utils/directives/selectable-list/selectable-list.directive.d.ts +1 -1
- package/utils/directives/template/template.directive.d.ts +2 -2
- package/utils/directives/truncate/truncate.directive.d.ts +2 -2
- 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/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/esm2020/data-source/base/base-data-source.class.mjs +0 -112
- package/esm2020/utils/directives/auto-complete/auto-complete.directive.mjs +0 -136
- package/esm2020/utils/directives/clicked/clicked.directive.mjs +0 -51
- package/esm2020/utils/directives/disabled/disabled-behavior.directive.mjs +0 -114
- package/esm2020/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +0 -98
- package/esm2020/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +0 -114
- package/esm2020/utils/directives/focusable-item/focusable-item.directive.mjs +0 -217
- package/esm2020/utils/directives/focusable-list/focusable-list.directive.mjs +0 -330
- package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +0 -79
- package/esm2020/utils/directives/initial-focus/initial-focus.directive.mjs +0 -152
- package/esm2020/utils/directives/line-clamp/line-clamp.directive.mjs +0 -262
- package/esm2020/utils/directives/only-digits/only-digits.directive.mjs +0 -218
- package/esm2020/utils/directives/overflow-list/overflow-list-item.directive.mjs +0 -42
- package/esm2020/utils/directives/overflow-list/overflow-list.directive.mjs +0 -142
- package/esm2020/utils/directives/readonly/readonly-behavior.directive.mjs +0 -97
- package/esm2020/utils/directives/repeat/repeat.directive.mjs +0 -65
- package/esm2020/utils/directives/resize/resize-handle.directive.mjs +0 -42
- package/esm2020/utils/directives/resize/resize.directive.mjs +0 -231
- package/esm2020/utils/directives/template/template.directive.mjs +0 -49
- package/esm2020/utils/directives/truncate/truncate.directive.mjs +0 -96
- package/esm2020/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +0 -272
- package/esm2020/utils/functions/get-document-font-size.mjs +0 -5
- package/esm2020/utils/pipes/search-highlight.pipe.mjs +0 -32
- package/esm2020/utils/toast/base-toast-positions.mjs +0 -108
- package/fesm2015/fundamental-ngx-cdk-data-source.mjs +0 -405
- package/fesm2015/fundamental-ngx-cdk-data-source.mjs.map +0 -1
- package/fesm2015/fundamental-ngx-cdk-forms.mjs +0 -398
- package/fesm2015/fundamental-ngx-cdk-forms.mjs.map +0 -1
- package/fesm2015/fundamental-ngx-cdk-utils.mjs +0 -7611
- package/fesm2015/fundamental-ngx-cdk-utils.mjs.map +0 -1
- package/fesm2015/fundamental-ngx-cdk.mjs.map +0 -1
- package/fesm2020/fundamental-ngx-cdk-utils.mjs.map +0 -1
- package/fesm2020/fundamental-ngx-cdk.mjs +0 -29
- package/fesm2020/fundamental-ngx-cdk.mjs.map +0 -1
- package/fundamental-ngx-cdk-v0.43.2.tgz +0 -0
- /package/{esm2020 → esm2022}/data-source/base/abstract-data-provider.class.mjs +0 -0
- /package/{esm2020 → esm2022}/data-source/fundamental-ngx-cdk-data-source.mjs +0 -0
- /package/{esm2020 → esm2022}/data-source/helpers/apply-datasource-directive.mjs +0 -0
- /package/{esm2020 → esm2022}/data-source/helpers/common.mjs +0 -0
- /package/{esm2020 → esm2022}/data-source/helpers/is-datasource.mjs +0 -0
- /package/{esm2020 → esm2022}/data-source/index.mjs +0 -0
- /package/{esm2020 → esm2022}/data-source/models/data-source-provider.mjs +0 -0
- /package/{esm2020 → esm2022}/data-source/models/data-source.mjs +0 -0
- /package/{esm2020 → esm2022}/data-source/models/index.mjs +0 -0
- /package/{esm2020 → esm2022}/data-source/models/matching-strategy.mjs +0 -0
- /package/{esm2020 → esm2022}/data-source/tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/forms/fundamental-ngx-cdk-forms.mjs +0 -0
- /package/{esm2020 → esm2022}/forms/helpers/state.mjs +0 -0
- /package/{esm2020 → esm2022}/forms/index.mjs +0 -0
- /package/{esm2020 → esm2022}/forms/models/cva.mjs +0 -0
- /package/{esm2020 → esm2022}/forms/models/form-error.mjs +0 -0
- /package/{esm2020 → esm2022}/forms/models/form-field.mjs +0 -0
- /package/{esm2020 → esm2022}/forms/models/form-state.mjs +0 -0
- /package/{esm2020 → esm2022}/forms/models/select-item.mjs +0 -0
- /package/{esm2020 → esm2022}/forms/tokens/form-field-control.token.mjs +0 -0
- /package/{esm2020 → esm2022}/forms/tokens/form-field.token.mjs +0 -0
- /package/{esm2020 → esm2022}/fundamental-ngx-cdk.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/async-strategy/function-strategy.class.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/async-strategy/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/async-strategy/observable-strategy.class.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/async-strategy/promise-strategy.class.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/async-strategy/select-strategy.class.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/async-strategy/subscription-strategy.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/async-strategy/value-strategy.class.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/coercion/array.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/components/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/consts/error-messages.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/consts/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/consts/overflow-priority-score.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/consts/unicode-letters.regex.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/consts/unicode-numbers.regex.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/datatypes/color-accent.datatype.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/datatypes/hash.datatype.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/datatypes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/datatypes/size.datatype.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/decorators/apply-css-class.decorator.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/decorators/apply-css-style.decorator.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/decorators/coerce-boolean.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/decorators/coerce-css-pixel.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/decorators/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/decorators/setter-alternator.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/deprecated-selector.class.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/breakpoints/responsive-breakpoints.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/clicked/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/disabled/default-disabled-view-modifier.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/disabled/disabled-behavior.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/disabled/disabled-view-modifier.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/disabled/fdk-disabled.token.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/disabled/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/disabled/set-disabled-state.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/focus-key-manager/focus-key-manager.tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/focus-key-manager/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/focusable-grid/focusable-grid.tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/focusable-grid/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/focusable-item/focusable-item.tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/focusable-item/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/focusable-item/is-element-focusable-by-default.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/focusable-list/focusable-list.tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/focusable-list/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/focusable-list/scroll.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/ignore-click-on-selection/tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/readonly/default-readonly-view-modifier.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/readonly/fdk-readonly.token.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/readonly/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/readonly/readonly-behavior.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/readonly/readonly-view-modifier.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/readonly/set-readonly-state.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/selectable-list/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/selectable-list/select-component-root.token.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/selectable-list/selectable-item.token.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/directives/selectable-list/selectable-list.tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/drag-and-drop/dnd.interfaces.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/drag-and-drop/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/drag-and-drop/tokens.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/dynamic-component/dynamic-component-config.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/dynamic-component/dynamic-component-container.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/dynamic-component/dynamic-component-injector.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/dynamic-component/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/consumer-provider-factory.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/element-size.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/intersection-observable.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/is-compact-density.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/is-odd.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/key-util.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/module-deprecations-provider.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/parser-file-size.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/random-color-accent.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/resize-observable.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/scroll.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/functions/uuidv4-generator.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/fundamental-ngx-cdk-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/helpers/get-native-element.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/helpers/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/helpers/range-selector.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/interfaces/content-density.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/interfaces/css-class-builder.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/interfaces/css-style-builder.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/interfaces/has-element-ref.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/interfaces/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/interfaces/keyboard-support-item.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/interfaces/module-deprecation.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/interfaces/require.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/list-item/list-item-utils.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/models/nullable.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/pipes/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/services/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/toast/base-toast-animations.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/toast/classes/action-dismissible/base-toast-action-dismissible-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/toast/classes/base-toast-config.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/toast/classes/base-toast-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-config.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/toast/classes/duration-dismissible/base-toast-duration-dismissible.service.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/toast/index.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/toast/interfaces/toast-container-component.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/toast/interfaces/toast-duration-dismissible-container-component.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/toast/interfaces/toast-text-component.interface.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/tokens/module-deprecations.token.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/tokens/viewport-size.observable.mjs +0 -0
- /package/{esm2020 → esm2022}/utils/typecheck.mjs +0 -0
|
@@ -1,65 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, TemplateRef, ViewContainerRef } from '@angular/core';
|
|
2
|
-
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class DeprecatedRepeatDirective extends DeprecatedSelector {
|
|
5
|
-
}
|
|
6
|
-
DeprecatedRepeatDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedRepeatDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7
|
-
DeprecatedRepeatDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedRepeatDirective, isStandalone: true, selector: "[fdRepeat]", providers: [
|
|
8
|
-
{
|
|
9
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
10
|
-
useValue: getDeprecatedModel('[fdkRepeat]', '[fdRepeat]')
|
|
11
|
-
}
|
|
12
|
-
], usesInheritance: true, ngImport: i0 });
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedRepeatDirective, decorators: [{
|
|
14
|
-
type: Directive,
|
|
15
|
-
args: [{
|
|
16
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
17
|
-
selector: '[fdRepeat]',
|
|
18
|
-
standalone: true,
|
|
19
|
-
providers: [
|
|
20
|
-
{
|
|
21
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
22
|
-
useValue: getDeprecatedModel('[fdkRepeat]', '[fdRepeat]')
|
|
23
|
-
}
|
|
24
|
-
]
|
|
25
|
-
}]
|
|
26
|
-
}] });
|
|
27
|
-
/**
|
|
28
|
-
* Directive to repeatably render template N times.
|
|
29
|
-
*/
|
|
30
|
-
export class RepeatDirective {
|
|
31
|
-
/** @hidden */
|
|
32
|
-
get _repeatCount() {
|
|
33
|
-
return this.count || this.deprecatedCount;
|
|
34
|
-
}
|
|
35
|
-
/** @hidden */
|
|
36
|
-
constructor(_templateRef, _viewContainerRef) {
|
|
37
|
-
this._templateRef = _templateRef;
|
|
38
|
-
this._viewContainerRef = _viewContainerRef;
|
|
39
|
-
}
|
|
40
|
-
/** @hidden */
|
|
41
|
-
ngOnChanges(changes) {
|
|
42
|
-
if ((changes['count'] || changes['deprecatedCount']) && Number.isInteger(this._repeatCount)) {
|
|
43
|
-
this._viewContainerRef.clear();
|
|
44
|
-
for (let index = 0; index < Math.max(0, this._repeatCount); index++) {
|
|
45
|
-
this._viewContainerRef.createEmbeddedView(this._templateRef, { index });
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
RepeatDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RepeatDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
51
|
-
RepeatDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: RepeatDirective, isStandalone: true, selector: "[fdkRepeat], [fdRepeat]", inputs: { count: ["fdkRepeat", "count"], deprecatedCount: ["fdRepeat", "deprecatedCount"] }, usesOnChanges: true, ngImport: i0 });
|
|
52
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: RepeatDirective, decorators: [{
|
|
53
|
-
type: Directive,
|
|
54
|
-
args: [{
|
|
55
|
-
selector: '[fdkRepeat], [fdRepeat]',
|
|
56
|
-
standalone: true
|
|
57
|
-
}]
|
|
58
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { count: [{
|
|
59
|
-
type: Input,
|
|
60
|
-
args: ['fdkRepeat']
|
|
61
|
-
}], deprecatedCount: [{
|
|
62
|
-
type: Input,
|
|
63
|
-
args: ['fdRepeat']
|
|
64
|
-
}] } });
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVwZWF0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9yZXBlYXQvcmVwZWF0LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBNEIsV0FBVyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFHLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDOztBQWF6QyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsa0JBQWtCOztzSEFBcEQseUJBQXlCOzBHQUF6Qix5QkFBeUIseURBUHZCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDO1NBQzVEO0tBQ0o7MkZBRVEseUJBQXlCO2tCQVhyQyxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUM7eUJBQzVEO3FCQUNKO2lCQUNKOztBQUdEOztHQUVHO0FBS0gsTUFBTSxPQUFPLGVBQWU7SUFXeEIsY0FBYztJQUNkLElBQVksWUFBWTtRQUNwQixPQUFPLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QyxDQUFDO0lBRUQsY0FBYztJQUNkLFlBQ3FCLFlBQThCLEVBQzlCLGlCQUFtQztRQURuQyxpQkFBWSxHQUFaLFlBQVksQ0FBa0I7UUFDOUIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtJQUNyRCxDQUFDO0lBRUosY0FBYztJQUNkLFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDekYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDO1lBRS9CLEtBQUssSUFBSSxLQUFLLEdBQUcsQ0FBQyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQzthQUMzRTtTQUNKO0lBQ0wsQ0FBQzs7NEdBL0JRLGVBQWU7Z0dBQWYsZUFBZTsyRkFBZixlQUFlO2tCQUozQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtpSUFJRyxLQUFLO3NCQURKLEtBQUs7dUJBQUMsV0FBVztnQkFPbEIsZUFBZTtzQkFEZCxLQUFLO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIElucHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIFRlbXBsYXRlUmVmLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRSZXBlYXRdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtSZXBlYXRdJywgJ1tmZFJlcGVhdF0nKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkUmVwZWF0RGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbi8qKlxuICogRGlyZWN0aXZlIHRvIHJlcGVhdGFibHkgcmVuZGVyIHRlbXBsYXRlIE4gdGltZXMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka1JlcGVhdF0sIFtmZFJlcGVhdF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUmVwZWF0RGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICAvKiogTnVtYmVyIG9mIHRpbWVzIHRvIHJlbmRlciBhIHRlbXBsYXRlLiAqL1xuICAgIEBJbnB1dCgnZmRrUmVwZWF0JylcbiAgICBjb3VudDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogRGVwcmVjYXRlZCBmZFJlcGVhdCBpbnB1dCBwcm9wZXJ0eS4gVXNlIGBbZmRrUmVwZWF0XWAuXG4gICAgICovXG4gICAgQElucHV0KCdmZFJlcGVhdCcpXG4gICAgZGVwcmVjYXRlZENvdW50OiBudW1iZXI7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgZ2V0IF9yZXBlYXRDb3VudCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5jb3VudCB8fCB0aGlzLmRlcHJlY2F0ZWRDb3VudDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF90ZW1wbGF0ZVJlZjogVGVtcGxhdGVSZWY8YW55PixcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoKGNoYW5nZXNbJ2NvdW50J10gfHwgY2hhbmdlc1snZGVwcmVjYXRlZENvdW50J10pICYmIE51bWJlci5pc0ludGVnZXIodGhpcy5fcmVwZWF0Q291bnQpKSB7XG4gICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNsZWFyKCk7XG5cbiAgICAgICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBNYXRoLm1heCgwLCB0aGlzLl9yZXBlYXRDb3VudCk7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUVtYmVkZGVkVmlldyh0aGlzLl90ZW1wbGF0ZVJlZiwgeyBpbmRleCB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef } from '@angular/core';
|
|
2
|
-
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class DeprecatedResizeHandleDirective extends DeprecatedSelector {
|
|
5
|
-
}
|
|
6
|
-
DeprecatedResizeHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedResizeHandleDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7
|
-
DeprecatedResizeHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedResizeHandleDirective, isStandalone: true, selector: "[fdResizeHandle], [fd-resize-handle]", providers: [
|
|
8
|
-
{
|
|
9
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
10
|
-
useValue: getDeprecatedModel('[fdkResizeHandle]', '[fdResizeHandle], [fd-resize-handle]')
|
|
11
|
-
}
|
|
12
|
-
], usesInheritance: true, ngImport: i0 });
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedResizeHandleDirective, decorators: [{
|
|
14
|
-
type: Directive,
|
|
15
|
-
args: [{
|
|
16
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
17
|
-
selector: '[fdResizeHandle], [fd-resize-handle]',
|
|
18
|
-
standalone: true,
|
|
19
|
-
providers: [
|
|
20
|
-
{
|
|
21
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
22
|
-
useValue: getDeprecatedModel('[fdkResizeHandle]', '[fdResizeHandle], [fd-resize-handle]')
|
|
23
|
-
}
|
|
24
|
-
]
|
|
25
|
-
}]
|
|
26
|
-
}] });
|
|
27
|
-
export class ResizeHandleDirective {
|
|
28
|
-
/** @hidden */
|
|
29
|
-
constructor(elementRef) {
|
|
30
|
-
this.elementRef = elementRef;
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
ResizeHandleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizeHandleDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
34
|
-
ResizeHandleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ResizeHandleDirective, isStandalone: true, selector: "[fdkResizeHandle], [fdResizeHandle], [fd-resize-handle]", ngImport: i0 });
|
|
35
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizeHandleDirective, decorators: [{
|
|
36
|
-
type: Directive,
|
|
37
|
-
args: [{
|
|
38
|
-
selector: '[fdkResizeHandle], [fdResizeHandle], [fd-resize-handle]',
|
|
39
|
-
standalone: true
|
|
40
|
-
}]
|
|
41
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; } });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLWhhbmRsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvcmVzaXplL3Jlc2l6ZS1oYW5kbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDOztBQWF6QyxNQUFNLE9BQU8sK0JBQWdDLFNBQVEsa0JBQWtCOzs0SEFBMUQsK0JBQStCO2dIQUEvQiwrQkFBK0IsbUZBUDdCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxzQ0FBc0MsQ0FBQztTQUM1RjtLQUNKOzJGQUVRLCtCQUErQjtrQkFYM0MsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLHNDQUFzQyxDQUFDO3lCQUM1RjtxQkFDSjtpQkFDSjs7QUFPRCxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLGNBQWM7SUFDZCxZQUFtQixVQUFzQjtRQUF0QixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQUcsQ0FBQzs7a0hBRnBDLHFCQUFxQjtzR0FBckIscUJBQXFCOzJGQUFyQixxQkFBcUI7a0JBSmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlEQUF5RDtvQkFDbkUsVUFBVSxFQUFFLElBQUk7aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRSZXNpemVIYW5kbGVdLCBbZmQtcmVzaXplLWhhbmRsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka1Jlc2l6ZUhhbmRsZV0nLCAnW2ZkUmVzaXplSGFuZGxlXSwgW2ZkLXJlc2l6ZS1oYW5kbGVdJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZFJlc2l6ZUhhbmRsZURpcmVjdGl2ZSBleHRlbmRzIERlcHJlY2F0ZWRTZWxlY3RvciB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtSZXNpemVIYW5kbGVdLCBbZmRSZXNpemVIYW5kbGVdLCBbZmQtcmVzaXplLWhhbmRsZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgUmVzaXplSGFuZGxlRGlyZWN0aXZlIHtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxufVxuIl19
|
|
@@ -1,231 +0,0 @@
|
|
|
1
|
-
import { ContentChild, Directive, ElementRef, EventEmitter, Input, Optional, Output } from '@angular/core';
|
|
2
|
-
import { ResizeHandleDirective } from './resize-handle.directive';
|
|
3
|
-
import { fromEvent, merge, Subscription } from 'rxjs';
|
|
4
|
-
import { filter, map, mapTo, pairwise, takeUntil, tap } from 'rxjs/operators';
|
|
5
|
-
import { RtlService } from '../../services/rtl.service';
|
|
6
|
-
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../services/rtl.service";
|
|
9
|
-
export class DeprecatedResizeDirective extends DeprecatedSelector {
|
|
10
|
-
}
|
|
11
|
-
DeprecatedResizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedResizeDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
12
|
-
DeprecatedResizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedResizeDirective, isStandalone: true, selector: "[fdResize], [fd-resize]", providers: [
|
|
13
|
-
{
|
|
14
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
15
|
-
useValue: getDeprecatedModel('[fdkResize]', '[fdResize], [fd-resize]')
|
|
16
|
-
}
|
|
17
|
-
], usesInheritance: true, ngImport: i0 });
|
|
18
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedResizeDirective, decorators: [{
|
|
19
|
-
type: Directive,
|
|
20
|
-
args: [{
|
|
21
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
22
|
-
selector: '[fdResize], [fd-resize]',
|
|
23
|
-
standalone: true,
|
|
24
|
-
providers: [
|
|
25
|
-
{
|
|
26
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
27
|
-
useValue: getDeprecatedModel('[fdkResize]', '[fdResize], [fd-resize]')
|
|
28
|
-
}
|
|
29
|
-
]
|
|
30
|
-
}]
|
|
31
|
-
}] });
|
|
32
|
-
export class ResizeDirective {
|
|
33
|
-
/** Resize handle reference - should be used if Resize handle is not a ContentChild of resizable container */
|
|
34
|
-
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
35
|
-
set setResizeHandleReference(value) {
|
|
36
|
-
this.resizeHandleReference = value;
|
|
37
|
-
}
|
|
38
|
-
/** @hidden */
|
|
39
|
-
constructor(_elementRef, _rtlService) {
|
|
40
|
-
this._elementRef = _elementRef;
|
|
41
|
-
this._rtlService = _rtlService;
|
|
42
|
-
/** Element limiting resizable container growth */
|
|
43
|
-
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
44
|
-
this.resizeBoundary = 'body';
|
|
45
|
-
/** Whether resizable behaviour should be disabled */
|
|
46
|
-
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
47
|
-
this.disabled = false;
|
|
48
|
-
/** Localization of resize handle inside resizable container */
|
|
49
|
-
// eslint-disable-next-line @angular-eslint/no-input-rename
|
|
50
|
-
this.resizeHandleLocation = 'bottom-right';
|
|
51
|
-
/** Emits event when resizing has tarted */
|
|
52
|
-
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
53
|
-
this.onResizeStart = new EventEmitter();
|
|
54
|
-
/** Emits event when resizing has ended */
|
|
55
|
-
// eslint-disable-next-line @angular-eslint/no-output-on-prefix
|
|
56
|
-
this.onResizeEnd = new EventEmitter();
|
|
57
|
-
/** @hidden */
|
|
58
|
-
this._subscriptions = new Subscription();
|
|
59
|
-
/** @hidden */
|
|
60
|
-
this._isRtl = false;
|
|
61
|
-
}
|
|
62
|
-
/** @hidden */
|
|
63
|
-
ngOnChanges(changes) {
|
|
64
|
-
if (changes['disabled']) {
|
|
65
|
-
if (changes['disabled'].previousValue === false && changes['disabled'].currentValue === true) {
|
|
66
|
-
this._subscriptions.unsubscribe();
|
|
67
|
-
}
|
|
68
|
-
else if (changes['disabled'].previousValue === true && changes['disabled'].currentValue === false) {
|
|
69
|
-
this._setResizeListeners();
|
|
70
|
-
}
|
|
71
|
-
}
|
|
72
|
-
}
|
|
73
|
-
/** @hidden */
|
|
74
|
-
ngAfterContentInit() {
|
|
75
|
-
if (this._rtlService) {
|
|
76
|
-
this._subscriptions.add(this._rtlService.rtl.subscribe((isRtl) => (this._isRtl = isRtl)));
|
|
77
|
-
}
|
|
78
|
-
if (!this.disabled) {
|
|
79
|
-
this._setResizeListeners();
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
/** @hidden */
|
|
83
|
-
ngOnDestroy() {
|
|
84
|
-
this._subscriptions.unsubscribe();
|
|
85
|
-
}
|
|
86
|
-
/** @hidden */
|
|
87
|
-
get _direction() {
|
|
88
|
-
return this._isRtl ? -1 : 1;
|
|
89
|
-
}
|
|
90
|
-
/** @hidden Sets Resize listeners */
|
|
91
|
-
_setResizeListeners() {
|
|
92
|
-
const resize = this._getResizeFunction();
|
|
93
|
-
const moveOffset = this._getMoveOffsetFunction();
|
|
94
|
-
const resizeContainer = this._findResizeContainer();
|
|
95
|
-
if (!resizeContainer) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
const isBoundaryOverflow = this._getBoundaryOverflowFunction(resizeContainer);
|
|
99
|
-
const mouseUpEvent$ = fromEvent(window, 'mouseup');
|
|
100
|
-
const mouseMoveEvent$ = fromEvent(resizeContainer, 'mousemove');
|
|
101
|
-
const mouseDownEvent$ = fromEvent(this.resizeHandleReference.elementRef.nativeElement, 'mousedown');
|
|
102
|
-
const resizeActive$ = merge(mouseDownEvent$.pipe(mapTo(true)), mouseUpEvent$.pipe(mapTo(false)));
|
|
103
|
-
const emitResizableEvents$ = this._getResizeEventsNotifiers(resizeActive$);
|
|
104
|
-
const preventOtherPointerEvents$ = this._blockOtherPointerEvents(resizeActive$);
|
|
105
|
-
const resizingCursorMovement$ = mouseMoveEvent$.pipe(pairwise(), map(([event1, event2]) => moveOffset(event1, event2)), filter((move) => isBoundaryOverflow(move)));
|
|
106
|
-
const setupResizer = () => {
|
|
107
|
-
resizingCursorMovement$.pipe(takeUntil(mouseUpEvent$)).subscribe((event) => resize(event));
|
|
108
|
-
};
|
|
109
|
-
const setupResize$ = resizeActive$.pipe(filter((isActive) => isActive), tap(() => setupResizer()));
|
|
110
|
-
this._subscriptions.add(setupResize$.subscribe());
|
|
111
|
-
this._subscriptions.add(emitResizableEvents$.subscribe());
|
|
112
|
-
this._subscriptions.add(preventOtherPointerEvents$.subscribe());
|
|
113
|
-
}
|
|
114
|
-
/** @hidden Creates resize function*/
|
|
115
|
-
_getResizeFunction() {
|
|
116
|
-
return (move) => {
|
|
117
|
-
this._elementRef.nativeElement.style.width = `${this._elementRef.nativeElement.offsetWidth + move.x}px`;
|
|
118
|
-
this._elementRef.nativeElement.style.height = `${this._elementRef.nativeElement.offsetHeight + move.y}px`;
|
|
119
|
-
};
|
|
120
|
-
}
|
|
121
|
-
/** @hidden Creates move function */
|
|
122
|
-
_getMoveOffsetFunction() {
|
|
123
|
-
let verticalModifier;
|
|
124
|
-
let horizontalModifier;
|
|
125
|
-
switch (this.resizeHandleLocation) {
|
|
126
|
-
case 'top-left':
|
|
127
|
-
horizontalModifier = -1;
|
|
128
|
-
verticalModifier = -1;
|
|
129
|
-
break;
|
|
130
|
-
case 'top-right':
|
|
131
|
-
horizontalModifier = -1;
|
|
132
|
-
verticalModifier = 1;
|
|
133
|
-
break;
|
|
134
|
-
case 'bottom-left':
|
|
135
|
-
horizontalModifier = 1;
|
|
136
|
-
verticalModifier = -1;
|
|
137
|
-
break;
|
|
138
|
-
case 'bottom-right':
|
|
139
|
-
horizontalModifier = 1;
|
|
140
|
-
verticalModifier = 1;
|
|
141
|
-
break;
|
|
142
|
-
}
|
|
143
|
-
return (event1, event2) => {
|
|
144
|
-
const x = (event2.screenX - event1.screenX) * this._direction;
|
|
145
|
-
const y = event2.screenY - event1.screenY;
|
|
146
|
-
return {
|
|
147
|
-
x: x * verticalModifier,
|
|
148
|
-
y: y * horizontalModifier
|
|
149
|
-
};
|
|
150
|
-
};
|
|
151
|
-
}
|
|
152
|
-
/** @hidden Return boundary container */
|
|
153
|
-
_findResizeContainer() {
|
|
154
|
-
let resizeContainer;
|
|
155
|
-
if (typeof this.resizeBoundary === 'string') {
|
|
156
|
-
resizeContainer = this._elementRef.nativeElement.closest(this.resizeBoundary);
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
resizeContainer = this.resizeBoundary;
|
|
160
|
-
}
|
|
161
|
-
if (resizeContainer) {
|
|
162
|
-
return resizeContainer;
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
console.warn(`fdResize - Cannot find "${this.resizeBoundary}", falling back to "body"`);
|
|
166
|
-
return document.querySelector('body');
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
/** @hidden Check whether resizable container is overflowing boundary container */
|
|
170
|
-
_getBoundaryOverflowFunction(resizeContainer) {
|
|
171
|
-
return (move) => {
|
|
172
|
-
const containerPosition = resizeContainer.getBoundingClientRect();
|
|
173
|
-
const elementPosition = this._elementRef.nativeElement.getBoundingClientRect();
|
|
174
|
-
switch (this.resizeHandleLocation) {
|
|
175
|
-
case 'top-left':
|
|
176
|
-
return (containerPosition.top < elementPosition.top + move.y &&
|
|
177
|
-
containerPosition.left < elementPosition.left + move.x);
|
|
178
|
-
case 'top-right':
|
|
179
|
-
return (containerPosition.top < elementPosition.top + move.y &&
|
|
180
|
-
containerPosition.right > elementPosition.right + move.x);
|
|
181
|
-
case 'bottom-left':
|
|
182
|
-
return (containerPosition.bottom > elementPosition.bottom + move.y &&
|
|
183
|
-
containerPosition.left < elementPosition.left + move.x);
|
|
184
|
-
case 'bottom-right':
|
|
185
|
-
return (containerPosition.bottom > elementPosition.bottom + move.y &&
|
|
186
|
-
containerPosition.right > elementPosition.right + move.x);
|
|
187
|
-
}
|
|
188
|
-
};
|
|
189
|
-
}
|
|
190
|
-
/** @hidden Create Observable notifying on resize actions */
|
|
191
|
-
_getResizeEventsNotifiers(trigger$) {
|
|
192
|
-
const emitResizableStart$ = trigger$.pipe(filter((isActive) => isActive), tap(() => this.onResizeStart.emit()));
|
|
193
|
-
const emitResizableEnd$ = trigger$.pipe(filter((isActive) => !isActive), tap(() => this.onResizeEnd.emit()));
|
|
194
|
-
return merge(emitResizableStart$, emitResizableEnd$);
|
|
195
|
-
}
|
|
196
|
-
/** @hidden Block resizable container pointer events when resizing */
|
|
197
|
-
_blockOtherPointerEvents(trigger$) {
|
|
198
|
-
return trigger$.pipe(map((isActive) => (isActive ? 'none' : 'auto')), tap((value) => (this._elementRef.nativeElement.style.pointerEvents = value)));
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
ResizeDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizeDirective, deps: [{ token: i0.ElementRef }, { token: i1.RtlService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
202
|
-
ResizeDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: ResizeDirective, isStandalone: true, selector: "[fdkResize], [fdResize], [fd-resize]", inputs: { resizeBoundary: ["fdkResizeBoundary", "resizeBoundary"], disabled: ["fdkResizeDisabled", "disabled"], resizeHandleLocation: ["fdkResizeHandleLocation", "resizeHandleLocation"], setResizeHandleReference: ["fdkResizeResizeHandleRef", "setResizeHandleReference"] }, outputs: { onResizeStart: "onResizeStart", onResizeEnd: "onResizeEnd" }, queries: [{ propertyName: "resizeHandleReference", first: true, predicate: ResizeHandleDirective, descendants: true }], usesOnChanges: true, ngImport: i0 });
|
|
203
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: ResizeDirective, decorators: [{
|
|
204
|
-
type: Directive,
|
|
205
|
-
args: [{
|
|
206
|
-
selector: '[fdkResize], [fdResize], [fd-resize]',
|
|
207
|
-
standalone: true
|
|
208
|
-
}]
|
|
209
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.RtlService, decorators: [{
|
|
210
|
-
type: Optional
|
|
211
|
-
}] }]; }, propDecorators: { resizeBoundary: [{
|
|
212
|
-
type: Input,
|
|
213
|
-
args: ['fdkResizeBoundary']
|
|
214
|
-
}], disabled: [{
|
|
215
|
-
type: Input,
|
|
216
|
-
args: ['fdkResizeDisabled']
|
|
217
|
-
}], resizeHandleLocation: [{
|
|
218
|
-
type: Input,
|
|
219
|
-
args: ['fdkResizeHandleLocation']
|
|
220
|
-
}], setResizeHandleReference: [{
|
|
221
|
-
type: Input,
|
|
222
|
-
args: ['fdkResizeResizeHandleRef']
|
|
223
|
-
}], onResizeStart: [{
|
|
224
|
-
type: Output
|
|
225
|
-
}], onResizeEnd: [{
|
|
226
|
-
type: Output
|
|
227
|
-
}], resizeHandleReference: [{
|
|
228
|
-
type: ContentChild,
|
|
229
|
-
args: [ResizeHandleDirective, { static: false }]
|
|
230
|
-
}] } });
|
|
231
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvdXRpbHMvZGlyZWN0aXZlcy9yZXNpemUvcmVzaXplLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsWUFBWSxFQUNaLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsTUFBTSxFQUVULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFjLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDeEQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7OztBQWF6QyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsa0JBQWtCOztzSEFBcEQseUJBQXlCOzBHQUF6Qix5QkFBeUIsc0VBUHZCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxhQUFhLEVBQUUseUJBQXlCLENBQUM7U0FDekU7S0FDSjsyRkFFUSx5QkFBeUI7a0JBWHJDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFFBQVEs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LG1CQUFtQjtnQkFJRSxRQUFRO3NCQUFuQyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFJUSxvQkFBb0I7c0JBQXJELEtBQUs7dUJBQUMseUJBQXlCO2dCQUtPLHdCQUF3QjtzQkFBOUQsS0FBSzt1QkFBQywwQkFBMEI7Z0JBTXZCLGFBQWE7c0JBQXRCLE1BQU07Z0JBSUcsV0FBVztzQkFBcEIsTUFBTTtnQkFHaUQscUJBQXFCO3NCQUE1RSxZQUFZO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDb250ZW50Q2hpbGQsXG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3B0aW9uYWwsXG4gICAgT3V0cHV0LFxuICAgIFNpbXBsZUNoYW5nZXNcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXNpemVIYW5kbGVEaXJlY3RpdmUgfSBmcm9tICcuL3Jlc2l6ZS1oYW5kbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IGZyb21FdmVudCwgbWVyZ2UsIE9ic2VydmFibGUsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAsIG1hcFRvLCBwYWlyd2lzZSwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSdGxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvcnRsLnNlcnZpY2UnO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkUmVzaXplXSwgW2ZkLXJlc2l6ZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka1Jlc2l6ZV0nLCAnW2ZkUmVzaXplXSwgW2ZkLXJlc2l6ZV0nKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkUmVzaXplRGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbmludGVyZmFjZSBSZXNpemVNb3ZlIHtcbiAgICB4OiBudW1iZXI7XG4gICAgeTogbnVtYmVyO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtSZXNpemVdLCBbZmRSZXNpemVdLCBbZmQtcmVzaXplXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBSZXNpemVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqIEVsZW1lbnQgbGltaXRpbmcgcmVzaXphYmxlIGNvbnRhaW5lciBncm93dGggKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgnZmRrUmVzaXplQm91bmRhcnknKSByZXNpemVCb3VuZGFyeTogc3RyaW5nIHwgSFRNTEVsZW1lbnQgPSAnYm9keSc7XG5cbiAgICAvKiogV2hldGhlciByZXNpemFibGUgYmVoYXZpb3VyIHNob3VsZCBiZSBkaXNhYmxlZCAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8taW5wdXQtcmVuYW1lXG4gICAgQElucHV0KCdmZGtSZXNpemVEaXNhYmxlZCcpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKiogTG9jYWxpemF0aW9uIG9mIHJlc2l6ZSBoYW5kbGUgaW5zaWRlIHJlc2l6YWJsZSBjb250YWluZXIgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZVxuICAgIEBJbnB1dCgnZmRrUmVzaXplSGFuZGxlTG9jYXRpb24nKSByZXNpemVIYW5kbGVMb2NhdGlvbjogJ3RvcC1yaWdodCcgfCAndG9wLWxlZnQnIHwgJ2JvdHRvbS1yaWdodCcgfCAnYm90dG9tLWxlZnQnID1cbiAgICAgICAgJ2JvdHRvbS1yaWdodCc7XG5cbiAgICAvKiogUmVzaXplIGhhbmRsZSByZWZlcmVuY2UgLSBzaG91bGQgYmUgdXNlZCBpZiBSZXNpemUgaGFuZGxlIGlzIG5vdCBhIENvbnRlbnRDaGlsZCBvZiByZXNpemFibGUgY29udGFpbmVyICovXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWVcbiAgICBASW5wdXQoJ2Zka1Jlc2l6ZVJlc2l6ZUhhbmRsZVJlZicpIHNldCBzZXRSZXNpemVIYW5kbGVSZWZlcmVuY2UodmFsdWU6IFJlc2l6ZUhhbmRsZURpcmVjdGl2ZSkge1xuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZVJlZmVyZW5jZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKiBFbWl0cyBldmVudCB3aGVuIHJlc2l6aW5nIGhhcyB0YXJ0ZWQgKi9cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L25vLW91dHB1dC1vbi1wcmVmaXhcbiAgICBAT3V0cHV0KCkgb25SZXNpemVTdGFydCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBFbWl0cyBldmVudCB3aGVuIHJlc2l6aW5nIGhhcyBlbmRlZCAqL1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeFxuICAgIEBPdXRwdXQoKSBvblJlc2l6ZUVuZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIC8qKiBAaGlkZGVuIFJlZmVyZW5jZSB0byBSZXNpemUgaGFuZGxlICovXG4gICAgQENvbnRlbnRDaGlsZChSZXNpemVIYW5kbGVEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KSByZXNpemVIYW5kbGVSZWZlcmVuY2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzUnRsID0gZmFsc2U7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LCBAT3B0aW9uYWwoKSBwcml2YXRlIF9ydGxTZXJ2aWNlOiBSdGxTZXJ2aWNlKSB7fVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmIChjaGFuZ2VzWydkaXNhYmxlZCddKSB7XG4gICAgICAgICAgICBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXS5wcmV2aW91c1ZhbHVlID09PSBmYWxzZSAmJiBjaGFuZ2VzWydkaXNhYmxlZCddLmN1cnJlbnRWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY2hhbmdlc1snZGlzYWJsZWQnXS5wcmV2aW91c1ZhbHVlID09PSB0cnVlICYmIGNoYW5nZXNbJ2Rpc2FibGVkJ10uY3VycmVudFZhbHVlID09PSBmYWxzZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldFJlc2l6ZUxpc3RlbmVycygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9ydGxTZXJ2aWNlKSB7XG4gICAgICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZCh0aGlzLl9ydGxTZXJ2aWNlLnJ0bC5zdWJzY3JpYmUoKGlzUnRsKSA9PiAodGhpcy5faXNSdGwgPSBpc1J0bCkpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5fc2V0UmVzaXplTGlzdGVuZXJzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIGdldCBfZGlyZWN0aW9uKCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc1J0bCA/IC0xIDogMTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBTZXRzIFJlc2l6ZSBsaXN0ZW5lcnMgKi9cbiAgICBwcml2YXRlIF9zZXRSZXNpemVMaXN0ZW5lcnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlc2l6ZSA9IHRoaXMuX2dldFJlc2l6ZUZ1bmN0aW9uKCk7XG4gICAgICAgIGNvbnN0IG1vdmVPZmZzZXQgPSB0aGlzLl9nZXRNb3ZlT2Zmc2V0RnVuY3Rpb24oKTtcbiAgICAgICAgY29uc3QgcmVzaXplQ29udGFpbmVyID0gdGhpcy5fZmluZFJlc2l6ZUNvbnRhaW5lcigpO1xuICAgICAgICBpZiAoIXJlc2l6ZUNvbnRhaW5lcikge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGlzQm91bmRhcnlPdmVyZmxvdyA9IHRoaXMuX2dldEJvdW5kYXJ5T3ZlcmZsb3dGdW5jdGlvbihyZXNpemVDb250YWluZXIpO1xuXG4gICAgICAgIGNvbnN0IG1vdXNlVXBFdmVudCQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4od2luZG93LCAnbW91c2V1cCcpO1xuICAgICAgICBjb25zdCBtb3VzZU1vdmVFdmVudCQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4ocmVzaXplQ29udGFpbmVyLCAnbW91c2Vtb3ZlJyk7XG4gICAgICAgIGNvbnN0IG1vdXNlRG93bkV2ZW50JCA9IGZyb21FdmVudDxNb3VzZUV2ZW50Pih0aGlzLnJlc2l6ZUhhbmRsZVJlZmVyZW5jZS5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWRvd24nKTtcblxuICAgICAgICBjb25zdCByZXNpemVBY3RpdmUkID0gbWVyZ2UobW91c2VEb3duRXZlbnQkLnBpcGUobWFwVG8odHJ1ZSkpLCBtb3VzZVVwRXZlbnQkLnBpcGUobWFwVG8oZmFsc2UpKSk7XG4gICAgICAgIGNvbnN0IGVtaXRSZXNpemFibGVFdmVudHMkID0gdGhpcy5fZ2V0UmVzaXplRXZlbnRzTm90aWZpZXJzKHJlc2l6ZUFjdGl2ZSQpO1xuICAgICAgICBjb25zdCBwcmV2ZW50T3RoZXJQb2ludGVyRXZlbnRzJCA9IHRoaXMuX2Jsb2NrT3RoZXJQb2ludGVyRXZlbnRzKHJlc2l6ZUFjdGl2ZSQpO1xuXG4gICAgICAgIGNvbnN0IHJlc2l6aW5nQ3Vyc29yTW92ZW1lbnQkID0gbW91c2VNb3ZlRXZlbnQkLnBpcGUoXG4gICAgICAgICAgICBwYWlyd2lzZSgpLFxuICAgICAgICAgICAgbWFwKChbZXZlbnQxLCBldmVudDJdOiBbTW91c2VFdmVudCwgTW91c2VFdmVudF0pID0+IG1vdmVPZmZzZXQoZXZlbnQxLCBldmVudDIpKSxcbiAgICAgICAgICAgIGZpbHRlcigobW92ZSkgPT4gaXNCb3VuZGFyeU92ZXJmbG93KG1vdmUpKVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IHNldHVwUmVzaXplciA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIHJlc2l6aW5nQ3Vyc29yTW92ZW1lbnQkLnBpcGUodGFrZVVudGlsKG1vdXNlVXBFdmVudCQpKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiByZXNpemUoZXZlbnQpKTtcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3Qgc2V0dXBSZXNpemUkID0gcmVzaXplQWN0aXZlJC5waXBlKFxuICAgICAgICAgICAgZmlsdGVyKChpc0FjdGl2ZSkgPT4gaXNBY3RpdmUpLFxuICAgICAgICAgICAgdGFwKCgpID0+IHNldHVwUmVzaXplcigpKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKHNldHVwUmVzaXplJC5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuX3N1YnNjcmlwdGlvbnMuYWRkKGVtaXRSZXNpemFibGVFdmVudHMkLnN1YnNjcmliZSgpKTtcbiAgICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQocHJldmVudE90aGVyUG9pbnRlckV2ZW50cyQuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIENyZWF0ZXMgcmVzaXplIGZ1bmN0aW9uKi9cbiAgICBwcml2YXRlIF9nZXRSZXNpemVGdW5jdGlvbigpOiAobW92ZTogUmVzaXplTW92ZSkgPT4gdm9pZCB7XG4gICAgICAgIHJldHVybiAobW92ZTogUmVzaXplTW92ZSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnN0eWxlLndpZHRoID0gYCR7dGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoICsgbW92ZS54fXB4YDtcbiAgICAgICAgICAgIHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSBgJHt0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0SGVpZ2h0ICsgbW92ZS55fXB4YDtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDcmVhdGVzIG1vdmUgZnVuY3Rpb24gKi9cbiAgICBwcml2YXRlIF9nZXRNb3ZlT2Zmc2V0RnVuY3Rpb24oKTogKGV2ZW50MTogTW91c2VFdmVudCwgZXZlbnQyOiBNb3VzZUV2ZW50KSA9PiBSZXNpemVNb3ZlIHtcbiAgICAgICAgbGV0IHZlcnRpY2FsTW9kaWZpZXI6IDEgfCAtMTtcbiAgICAgICAgbGV0IGhvcml6b250YWxNb2RpZmllcjogMSB8IC0xO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5yZXNpemVIYW5kbGVMb2NhdGlvbikge1xuICAgICAgICAgICAgY2FzZSAndG9wLWxlZnQnOlxuICAgICAgICAgICAgICAgIGhvcml6b250YWxNb2RpZmllciA9IC0xO1xuICAgICAgICAgICAgICAgIHZlcnRpY2FsTW9kaWZpZXIgPSAtMTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ3RvcC1yaWdodCc6XG4gICAgICAgICAgICAgICAgaG9yaXpvbnRhbE1vZGlmaWVyID0gLTE7XG4gICAgICAgICAgICAgICAgdmVydGljYWxNb2RpZmllciA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdib3R0b20tbGVmdCc6XG4gICAgICAgICAgICAgICAgaG9yaXpvbnRhbE1vZGlmaWVyID0gMTtcbiAgICAgICAgICAgICAgICB2ZXJ0aWNhbE1vZGlmaWVyID0gLTE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlICdib3R0b20tcmlnaHQnOlxuICAgICAgICAgICAgICAgIGhvcml6b250YWxNb2RpZmllciA9IDE7XG4gICAgICAgICAgICAgICAgdmVydGljYWxNb2RpZmllciA9IDE7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKGV2ZW50MTogTW91c2VFdmVudCwgZXZlbnQyOiBNb3VzZUV2ZW50KSA9PiB7XG4gICAgICAgICAgICBjb25zdCB4ID0gKGV2ZW50Mi5zY3JlZW5YIC0gZXZlbnQxLnNjcmVlblgpICogdGhpcy5fZGlyZWN0aW9uO1xuICAgICAgICAgICAgY29uc3QgeSA9IGV2ZW50Mi5zY3JlZW5ZIC0gZXZlbnQxLnNjcmVlblk7XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgeDogeCAqIHZlcnRpY2FsTW9kaWZpZXIsXG4gICAgICAgICAgICAgICAgeTogeSAqIGhvcml6b250YWxNb2RpZmllclxuICAgICAgICAgICAgfTtcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBSZXR1cm4gYm91bmRhcnkgY29udGFpbmVyICovXG4gICAgcHJpdmF0ZSBfZmluZFJlc2l6ZUNvbnRhaW5lcigpOiBFbGVtZW50IHwgbnVsbCB7XG4gICAgICAgIGxldCByZXNpemVDb250YWluZXI6IEVsZW1lbnQgfCBudWxsO1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMucmVzaXplQm91bmRhcnkgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICByZXNpemVDb250YWluZXIgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCh0aGlzLnJlc2l6ZUJvdW5kYXJ5KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJlc2l6ZUNvbnRhaW5lciA9IHRoaXMucmVzaXplQm91bmRhcnk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAocmVzaXplQ29udGFpbmVyKSB7XG4gICAgICAgICAgICByZXR1cm4gcmVzaXplQ29udGFpbmVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKGBmZFJlc2l6ZSAtIENhbm5vdCBmaW5kIFwiJHt0aGlzLnJlc2l6ZUJvdW5kYXJ5fVwiLCBmYWxsaW5nIGJhY2sgdG8gXCJib2R5XCJgKTtcbiAgICAgICAgICAgIHJldHVybiBkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCdib2R5Jyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBDaGVjayB3aGV0aGVyIHJlc2l6YWJsZSBjb250YWluZXIgaXMgb3ZlcmZsb3dpbmcgYm91bmRhcnkgY29udGFpbmVyICovXG4gICAgcHJpdmF0ZSBfZ2V0Qm91bmRhcnlPdmVyZmxvd0Z1bmN0aW9uKHJlc2l6ZUNvbnRhaW5lcjogRWxlbWVudCk6IChtb3ZlOiBSZXNpemVNb3ZlKSA9PiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIChtb3ZlOiBSZXNpemVNb3ZlKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjb250YWluZXJQb3NpdGlvbiA9IHJlc2l6ZUNvbnRhaW5lci5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW1lbnRQb3NpdGlvbiA9IHRoaXMuX2VsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgICAgICAgICAgc3dpdGNoICh0aGlzLnJlc2l6ZUhhbmRsZUxvY2F0aW9uKSB7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wLWxlZnQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUG9zaXRpb24udG9wIDwgZWxlbWVudFBvc2l0aW9uLnRvcCArIG1vdmUueSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUG9zaXRpb24ubGVmdCA8IGVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgbW92ZS54XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY2FzZSAndG9wLXJpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclBvc2l0aW9uLnRvcCA8IGVsZW1lbnRQb3NpdGlvbi50b3AgKyBtb3ZlLnkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0ID4gZWxlbWVudFBvc2l0aW9uLnJpZ2h0ICsgbW92ZS54XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY2FzZSAnYm90dG9tLWxlZnQnOlxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUG9zaXRpb24uYm90dG9tID4gZWxlbWVudFBvc2l0aW9uLmJvdHRvbSArIG1vdmUueSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyUG9zaXRpb24ubGVmdCA8IGVsZW1lbnRQb3NpdGlvbi5sZWZ0ICsgbW92ZS54XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgY2FzZSAnYm90dG9tLXJpZ2h0JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclBvc2l0aW9uLmJvdHRvbSA+IGVsZW1lbnRQb3NpdGlvbi5ib3R0b20gKyBtb3ZlLnkgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRhaW5lclBvc2l0aW9uLnJpZ2h0ID4gZWxlbWVudFBvc2l0aW9uLnJpZ2h0ICsgbW92ZS54XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQ3JlYXRlIE9ic2VydmFibGUgbm90aWZ5aW5nIG9uIHJlc2l6ZSBhY3Rpb25zICovXG4gICAgcHJpdmF0ZSBfZ2V0UmVzaXplRXZlbnRzTm90aWZpZXJzKHRyaWdnZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgY29uc3QgZW1pdFJlc2l6YWJsZVN0YXJ0JCA9IHRyaWdnZXIkLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGlzQWN0aXZlKSA9PiBpc0FjdGl2ZSksXG4gICAgICAgICAgICB0YXAoKCkgPT4gdGhpcy5vblJlc2l6ZVN0YXJ0LmVtaXQoKSlcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCBlbWl0UmVzaXphYmxlRW5kJCA9IHRyaWdnZXIkLnBpcGUoXG4gICAgICAgICAgICBmaWx0ZXIoKGlzQWN0aXZlKSA9PiAhaXNBY3RpdmUpLFxuICAgICAgICAgICAgdGFwKCgpID0+IHRoaXMub25SZXNpemVFbmQuZW1pdCgpKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiBtZXJnZShlbWl0UmVzaXphYmxlU3RhcnQkLCBlbWl0UmVzaXphYmxlRW5kJCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQmxvY2sgcmVzaXphYmxlIGNvbnRhaW5lciBwb2ludGVyIGV2ZW50cyB3aGVuIHJlc2l6aW5nICAqL1xuICAgIHByaXZhdGUgX2Jsb2NrT3RoZXJQb2ludGVyRXZlbnRzKHRyaWdnZXIkOiBPYnNlcnZhYmxlPGJvb2xlYW4+KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRyaWdnZXIkLnBpcGUoXG4gICAgICAgICAgICBtYXAoKGlzQWN0aXZlKSA9PiAoaXNBY3RpdmUgPyAnbm9uZScgOiAnYXV0bycpKSxcbiAgICAgICAgICAgIHRhcCgodmFsdWUpID0+ICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUucG9pbnRlckV2ZW50cyA9IHZhbHVlKSlcbiAgICAgICAgKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
import { Directive, Input, TemplateRef } from '@angular/core';
|
|
2
|
-
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export class DeprecatedTemplateSelectorDirective extends DeprecatedSelector {
|
|
5
|
-
}
|
|
6
|
-
DeprecatedTemplateSelectorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedTemplateSelectorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
7
|
-
DeprecatedTemplateSelectorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedTemplateSelectorDirective, isStandalone: true, selector: "[fdTemplate]", providers: [
|
|
8
|
-
{
|
|
9
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
10
|
-
useValue: getDeprecatedModel('[fdkTemplate]', '[fdTemplate]')
|
|
11
|
-
}
|
|
12
|
-
], usesInheritance: true, ngImport: i0 });
|
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedTemplateSelectorDirective, decorators: [{
|
|
14
|
-
type: Directive,
|
|
15
|
-
args: [{
|
|
16
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
17
|
-
selector: '[fdTemplate]',
|
|
18
|
-
standalone: true,
|
|
19
|
-
providers: [
|
|
20
|
-
{
|
|
21
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
22
|
-
useValue: getDeprecatedModel('[fdkTemplate]', '[fdTemplate]')
|
|
23
|
-
}
|
|
24
|
-
]
|
|
25
|
-
}]
|
|
26
|
-
}] });
|
|
27
|
-
export class TemplateDirective {
|
|
28
|
-
/** @hidden */
|
|
29
|
-
constructor(templateRef) {
|
|
30
|
-
this.templateRef = templateRef;
|
|
31
|
-
}
|
|
32
|
-
/** @hidden */
|
|
33
|
-
getName() {
|
|
34
|
-
return this.name;
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
TemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
38
|
-
TemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TemplateDirective, isStandalone: true, selector: "[fdkTemplate], [fdTemplate]", inputs: { name: ["fdkTemplate", "name"] }, ngImport: i0 });
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TemplateDirective, decorators: [{
|
|
40
|
-
type: Directive,
|
|
41
|
-
args: [{
|
|
42
|
-
selector: '[fdkTemplate], [fdTemplate]',
|
|
43
|
-
standalone: true
|
|
44
|
-
}]
|
|
45
|
-
}], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { name: [{
|
|
46
|
-
type: Input,
|
|
47
|
-
args: ['fdkTemplate']
|
|
48
|
-
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVtcGxhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL3RlbXBsYXRlL3RlbXBsYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7O0FBYXpDLE1BQU0sT0FBTyxtQ0FBb0MsU0FBUSxrQkFBa0I7O2dJQUE5RCxtQ0FBbUM7b0hBQW5DLG1DQUFtQywyREFQakM7UUFDUDtZQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUM7U0FDaEU7S0FDSjsyRkFFUSxtQ0FBbUM7a0JBWC9DLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsZ0NBQWdDOzRCQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsZUFBZSxFQUFFLGNBQWMsQ0FBQzt5QkFDaEU7cUJBQ0o7aUJBQ0o7O0FBT0QsTUFBTSxPQUFPLGlCQUFpQjtJQUsxQixjQUFjO0lBQ2QsWUFBbUIsV0FBNkI7UUFBN0IsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO0lBQUcsQ0FBQztJQUVwRCxjQUFjO0lBQ2QsT0FBTztRQUNILE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNyQixDQUFDOzs4R0FYUSxpQkFBaUI7a0dBQWpCLGlCQUFpQjsyRkFBakIsaUJBQWlCO2tCQUo3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSw2QkFBNkI7b0JBQ3ZDLFVBQVUsRUFBRSxJQUFJO2lCQUNuQjtrR0FJRyxJQUFJO3NCQURILEtBQUs7dUJBQUMsYUFBYSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRUZW1wbGF0ZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka1RlbXBsYXRlXScsICdbZmRUZW1wbGF0ZV0nKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkVGVtcGxhdGVTZWxlY3RvckRpcmVjdGl2ZSBleHRlbmRzIERlcHJlY2F0ZWRTZWxlY3RvciB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtUZW1wbGF0ZV0sIFtmZFRlbXBsYXRlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gICAgLyoqIE5hbWUgb2YgdGhlIHRlbXBsYXRlICovXG4gICAgQElucHV0KCdmZGtUZW1wbGF0ZScpXG4gICAgbmFtZTogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgdGVtcGxhdGVSZWY6IFRlbXBsYXRlUmVmPGFueT4pIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGdldE5hbWUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubmFtZTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { Directive, ElementRef, Input } from '@angular/core';
|
|
2
|
-
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
3
|
-
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class DeprecatedTruncateSelectorDirective extends DeprecatedSelector {
|
|
6
|
-
}
|
|
7
|
-
DeprecatedTruncateSelectorDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedTruncateSelectorDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
8
|
-
DeprecatedTruncateSelectorDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: DeprecatedTruncateSelectorDirective, isStandalone: true, selector: "[fdTruncate], [fd-truncate]", providers: [
|
|
9
|
-
{
|
|
10
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
11
|
-
useValue: getDeprecatedModel('[fdkTemplate]', '[fdTruncate], [fd-truncate]')
|
|
12
|
-
}
|
|
13
|
-
], usesInheritance: true, ngImport: i0 });
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: DeprecatedTruncateSelectorDirective, decorators: [{
|
|
15
|
-
type: Directive,
|
|
16
|
-
args: [{
|
|
17
|
-
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
18
|
-
selector: '[fdTruncate], [fd-truncate]',
|
|
19
|
-
standalone: true,
|
|
20
|
-
providers: [
|
|
21
|
-
{
|
|
22
|
-
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
23
|
-
useValue: getDeprecatedModel('[fdkTemplate]', '[fdTruncate], [fd-truncate]')
|
|
24
|
-
}
|
|
25
|
-
]
|
|
26
|
-
}]
|
|
27
|
-
}] });
|
|
28
|
-
export class TruncateDirective {
|
|
29
|
-
/**
|
|
30
|
-
* Width in pixel for truncation of an element , by default
|
|
31
|
-
*/
|
|
32
|
-
set fdkTruncateWidth(value) {
|
|
33
|
-
this._customWidthCount = coerceNumberProperty(value);
|
|
34
|
-
}
|
|
35
|
-
/** @hidden */
|
|
36
|
-
constructor(_elementRef) {
|
|
37
|
-
this._elementRef = _elementRef;
|
|
38
|
-
/**
|
|
39
|
-
* Truncating state
|
|
40
|
-
*/
|
|
41
|
-
this.fdkTruncateState = false;
|
|
42
|
-
/** @hidden */
|
|
43
|
-
this._customWidthCount = 200;
|
|
44
|
-
/** @hidden */
|
|
45
|
-
this.takeDefaultStyleOnce = true;
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Root native element
|
|
49
|
-
*/
|
|
50
|
-
get rootElement() {
|
|
51
|
-
return this._elementRef.nativeElement;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Method saves default style of target element before first truncate.
|
|
55
|
-
*/
|
|
56
|
-
setDefaultStyle() {
|
|
57
|
-
if (this.takeDefaultStyleOnce) {
|
|
58
|
-
this._defaultStyle = this._truncateTarget.style.cssText;
|
|
59
|
-
this.takeDefaultStyleOnce = false;
|
|
60
|
-
}
|
|
61
|
-
}
|
|
62
|
-
/** @hidden */
|
|
63
|
-
ngAfterViewInit() {
|
|
64
|
-
if (this.rootElement) {
|
|
65
|
-
this._truncate();
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
/** @hidden */
|
|
69
|
-
ngOnChanges() {
|
|
70
|
-
this._truncate();
|
|
71
|
-
}
|
|
72
|
-
/** @hidden */
|
|
73
|
-
_truncate() {
|
|
74
|
-
this._truncateTarget = this.rootElement;
|
|
75
|
-
if (!this._truncateTarget) {
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
this.setDefaultStyle();
|
|
79
|
-
this._truncationStyle = `${this._defaultStyle} max-width: ${this._customWidthCount}px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;`;
|
|
80
|
-
this._truncateTarget.style.cssText = this.fdkTruncateState ? this._truncationStyle : this._defaultStyle;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
TruncateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TruncateDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
84
|
-
TruncateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.2.9", type: TruncateDirective, isStandalone: true, selector: "[fdkTruncate], [fdTruncate], [fd-truncate]", inputs: { fdkTruncateWidth: "fdkTruncateWidth", fdkTruncateState: "fdkTruncateState" }, usesOnChanges: true, ngImport: i0 });
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: TruncateDirective, decorators: [{
|
|
86
|
-
type: Directive,
|
|
87
|
-
args: [{
|
|
88
|
-
selector: '[fdkTruncate], [fdTruncate], [fd-truncate]',
|
|
89
|
-
standalone: true
|
|
90
|
-
}]
|
|
91
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { fdkTruncateWidth: [{
|
|
92
|
-
type: Input
|
|
93
|
-
}], fdkTruncateState: [{
|
|
94
|
-
type: Input
|
|
95
|
-
}] } });
|
|
96
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJ1bmNhdGUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL3RydW5jYXRlL3RydW5jYXRlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRTdELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZ0NBQWdDLEVBQ2hDLGtCQUFrQixFQUNyQixNQUFNLGlDQUFpQyxDQUFDOztBQWF6QyxNQUFNLE9BQU8sbUNBQW9DLFNBQVEsa0JBQWtCOztnSUFBOUQsbUNBQW1DO29IQUFuQyxtQ0FBbUMsMEVBUGpDO1FBQ1A7WUFDSSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsNkJBQTZCLENBQUM7U0FDL0U7S0FDSjsyRkFFUSxtQ0FBbUM7a0JBWC9DLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsNkJBQTZCO29CQUN2QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxlQUFlLEVBQUUsNkJBQTZCLENBQUM7eUJBQy9FO3FCQUNKO2lCQUNKOztBQU9ELE1BQU0sT0FBTyxpQkFBaUI7SUFDMUI7O09BRUc7SUFDSCxJQUNJLGdCQUFnQixDQUFDLEtBQXVCO1FBQ3hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBMkJELGNBQWM7SUFDZCxZQUE2QixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQTFCcEQ7O1dBRUc7UUFFSCxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFFekIsY0FBYztRQUNOLHNCQUFpQixHQUFHLEdBQUcsQ0FBQztRQVVoQyxjQUFjO1FBQ04seUJBQW9CLEdBQUcsSUFBSSxDQUFDO0lBUW1CLENBQUM7SUFFeEQ7O09BRUc7SUFDSCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQzFDLENBQUM7SUFFRDs7T0FFRztJQUNILGVBQWU7UUFDWCxJQUFJLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN4RCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1NBQ3JDO0lBQ0wsQ0FBQztJQUNELGNBQWM7SUFDZCxlQUFlO1FBQ1gsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztTQUNwQjtJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQsY0FBYztJQUNOLFNBQVM7UUFDYixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFeEMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUU7WUFDdkIsT0FBTztTQUNWO1FBQ0QsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLElBQUksQ0FBQyxhQUFhLGVBQWUsSUFBSSxDQUFDLGlCQUFpQixxRUFBcUUsQ0FBQztRQUN4SixJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDNUcsQ0FBQzs7OEdBM0VRLGlCQUFpQjtrR0FBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBSjdCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDRDQUE0QztvQkFDdEQsVUFBVSxFQUFFLElBQUk7aUJBQ25CO2lHQU1PLGdCQUFnQjtzQkFEbkIsS0FBSztnQkFTTixnQkFBZ0I7c0JBRGYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSW5wdXQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHsgTnVsbGFibGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvbnVsbGFibGUnO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkVHJ1bmNhdGVdLCBbZmQtdHJ1bmNhdGVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICAgICAgICAgIHVzZVZhbHVlOiBnZXREZXByZWNhdGVkTW9kZWwoJ1tmZGtUZW1wbGF0ZV0nLCAnW2ZkVHJ1bmNhdGVdLCBbZmQtdHJ1bmNhdGVdJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZFRydW5jYXRlU2VsZWN0b3JEaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbZmRrVHJ1bmNhdGVdLCBbZmRUcnVuY2F0ZV0sIFtmZC10cnVuY2F0ZV0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgVHJ1bmNhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIFdpZHRoIGluIHBpeGVsIGZvciB0cnVuY2F0aW9uIG9mIGFuIGVsZW1lbnQgLCBieSBkZWZhdWx0XG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBzZXQgZmRrVHJ1bmNhdGVXaWR0aCh2YWx1ZTogTnVsbGFibGU8bnVtYmVyPikge1xuICAgICAgICB0aGlzLl9jdXN0b21XaWR0aENvdW50ID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRydW5jYXRpbmcgc3RhdGVcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZka1RydW5jYXRlU3RhdGUgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY3VzdG9tV2lkdGhDb3VudCA9IDIwMDtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfdHJ1bmNhdGVUYXJnZXQ6IEhUTUxFbGVtZW50O1xuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBzYXZlcyBkZWZhdWx0IHN0eWxlIG9mIGVsZW1lbnQgYmVmb3JlIHRydW5jYXRpbmdcbiAgICAgKi9cbiAgICBwcml2YXRlIF9kZWZhdWx0U3R5bGU6IHN0cmluZztcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSB0YWtlRGVmYXVsdFN0eWxlT25jZSA9IHRydWU7XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIHRydW5jYXRpb24gc3R5bGUgZm9yIHRydW5jYXRpbmcgZWxlbWVudFxuICAgICAqL1xuICAgIHByaXZhdGUgX3RydW5jYXRpb25TdHlsZTogc3RyaW5nO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IF9lbGVtZW50UmVmOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLyoqXG4gICAgICogUm9vdCBuYXRpdmUgZWxlbWVudFxuICAgICAqL1xuICAgIGdldCByb290RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTWV0aG9kIHNhdmVzIGRlZmF1bHQgc3R5bGUgb2YgdGFyZ2V0IGVsZW1lbnQgYmVmb3JlIGZpcnN0IHRydW5jYXRlLlxuICAgICAqL1xuICAgIHNldERlZmF1bHRTdHlsZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMudGFrZURlZmF1bHRTdHlsZU9uY2UpIHtcbiAgICAgICAgICAgIHRoaXMuX2RlZmF1bHRTdHlsZSA9IHRoaXMuX3RydW5jYXRlVGFyZ2V0LnN0eWxlLmNzc1RleHQ7XG4gICAgICAgICAgICB0aGlzLnRha2VEZWZhdWx0U3R5bGVPbmNlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLnJvb3RFbGVtZW50KSB7XG4gICAgICAgICAgICB0aGlzLl90cnVuY2F0ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fdHJ1bmNhdGUoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX3RydW5jYXRlKCk6IHZvaWQge1xuICAgICAgICB0aGlzLl90cnVuY2F0ZVRhcmdldCA9IHRoaXMucm9vdEVsZW1lbnQ7XG5cbiAgICAgICAgaWYgKCF0aGlzLl90cnVuY2F0ZVRhcmdldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuc2V0RGVmYXVsdFN0eWxlKCk7XG4gICAgICAgIHRoaXMuX3RydW5jYXRpb25TdHlsZSA9IGAke3RoaXMuX2RlZmF1bHRTdHlsZX0gbWF4LXdpZHRoOiAke3RoaXMuX2N1c3RvbVdpZHRoQ291bnR9cHg7IG92ZXJmbG93OiBoaWRkZW47IHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzOyB3aGl0ZS1zcGFjZTogbm93cmFwO2A7XG4gICAgICAgIHRoaXMuX3RydW5jYXRlVGFyZ2V0LnN0eWxlLmNzc1RleHQgPSB0aGlzLmZka1RydW5jYXRlU3RhdGUgPyB0aGlzLl90cnVuY2F0aW9uU3R5bGUgOiB0aGlzLl9kZWZhdWx0U3R5bGU7XG4gICAgfVxufVxuIl19
|