@fundamental-ngx/cdk 0.38.3-rc.4
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/README.md +89 -0
- package/data-source/README.md +7 -0
- package/data-source/base/abstract-data-provider.class.d.ts +43 -0
- package/data-source/base/base-data-source.class.d.ts +57 -0
- package/data-source/data-source.directive.d.ts +47 -0
- package/data-source/data-source.module.d.ts +7 -0
- package/data-source/helpers/apply-datasource-directive.d.ts +6 -0
- package/data-source/helpers/common.d.ts +7 -0
- package/data-source/helpers/is-datasource.d.ts +5 -0
- package/data-source/index.d.ts +8 -0
- package/data-source/models/data-source-provider.d.ts +23 -0
- package/data-source/models/data-source.d.ts +16 -0
- package/data-source/models/index.d.ts +3 -0
- package/data-source/models/matching-strategy.d.ts +10 -0
- package/data-source/tokens.d.ts +6 -0
- package/esm2020/data-source/base/abstract-data-provider.class.mjs +126 -0
- package/esm2020/data-source/base/base-data-source.class.mjs +99 -0
- package/esm2020/data-source/data-source.directive.mjs +96 -0
- package/esm2020/data-source/data-source.module.mjs +16 -0
- package/esm2020/data-source/fundamental-ngx-cdk-data-source.mjs +5 -0
- package/esm2020/data-source/helpers/apply-datasource-directive.mjs +7 -0
- package/esm2020/data-source/helpers/common.mjs +17 -0
- package/esm2020/data-source/helpers/is-datasource.mjs +7 -0
- package/esm2020/data-source/index.mjs +9 -0
- package/esm2020/data-source/models/data-source-provider.mjs +2 -0
- package/esm2020/data-source/models/data-source.mjs +2 -0
- package/esm2020/data-source/models/index.mjs +4 -0
- package/esm2020/data-source/models/matching-strategy.mjs +7 -0
- package/esm2020/data-source/tokens.mjs +6 -0
- package/esm2020/forms/cva/cva-control.class.mjs +43 -0
- package/esm2020/forms/cva/cva.directive.mjs +309 -0
- package/esm2020/forms/forms.module.mjs +16 -0
- package/esm2020/forms/fundamental-ngx-cdk-forms.mjs +5 -0
- package/esm2020/forms/helpers/state.mjs +6 -0
- package/esm2020/forms/index.mjs +13 -0
- package/esm2020/forms/models/cva.mjs +2 -0
- package/esm2020/forms/models/form-error.mjs +2 -0
- package/esm2020/forms/models/form-field-control.mjs +2 -0
- package/esm2020/forms/models/form-field.mjs +9 -0
- package/esm2020/forms/models/form-state.mjs +2 -0
- package/esm2020/forms/models/select-item.mjs +14 -0
- package/esm2020/forms/tokens/form-field-control.token.mjs +3 -0
- package/esm2020/forms/tokens/form-field.token.mjs +3 -0
- package/esm2020/fundamental-ngx-cdk.mjs +5 -0
- package/esm2020/fundamental-ngx.module.mjs +19 -0
- package/esm2020/public_api.mjs +5 -0
- package/esm2020/utils/abstract-fd-ngx-class.mjs +56 -0
- package/esm2020/utils/coercion/array.mjs +7 -0
- package/esm2020/utils/consts/error-messages.mjs +6 -0
- package/esm2020/utils/consts/index.mjs +5 -0
- package/esm2020/utils/consts/overflow-priority-score.mjs +8 -0
- package/esm2020/utils/consts/unicode-letters.regex.mjs +11 -0
- package/esm2020/utils/consts/unicode-numbers.regex.mjs +8 -0
- package/esm2020/utils/datatypes/color-accent.datatype.mjs +2 -0
- package/esm2020/utils/datatypes/hash.datatype.mjs +2 -0
- package/esm2020/utils/datatypes/index.mjs +4 -0
- package/esm2020/utils/datatypes/size.datatype.mjs +2 -0
- package/esm2020/utils/decorators/apply-css-class.decorator.mjs +60 -0
- package/esm2020/utils/decorators/apply-css-style.decorator.mjs +28 -0
- package/esm2020/utils/decorators/coerce-boolean.mjs +7 -0
- package/esm2020/utils/decorators/coerce-css-pixel.mjs +4 -0
- package/esm2020/utils/decorators/index.mjs +6 -0
- package/esm2020/utils/decorators/setter-alternator.mjs +18 -0
- package/esm2020/utils/deprecated-selector.class.mjs +20 -0
- package/esm2020/utils/directives/auto-complete/auto-complete.directive.mjs +136 -0
- package/esm2020/utils/directives/auto-complete/auto-complete.module.mjs +17 -0
- package/esm2020/utils/directives/clicked/clicked-behavior.module.mjs +45 -0
- package/esm2020/utils/directives/clicked/clicked-event.plugin.mjs +74 -0
- package/esm2020/utils/directives/clicked/clicked.directive.mjs +52 -0
- package/esm2020/utils/directives/clicked/fdk-clicked-provider.service.mjs +49 -0
- package/esm2020/utils/directives/clicked/index.mjs +4 -0
- package/esm2020/utils/directives/disabled/default-disabled-view-modifier.mjs +12 -0
- package/esm2020/utils/directives/disabled/disabled-behavior.directive.mjs +102 -0
- package/esm2020/utils/directives/disabled/disabled-behavior.interface.mjs +2 -0
- package/esm2020/utils/directives/disabled/disabled-behavior.module.mjs +16 -0
- package/esm2020/utils/directives/disabled/disabled-view-modifier.interface.mjs +2 -0
- package/esm2020/utils/directives/disabled/disabled.observer.mjs +35 -0
- package/esm2020/utils/directives/disabled/fdk-disabled-provider.service.mjs +101 -0
- package/esm2020/utils/directives/disabled/fdk-disabled.token.mjs +3 -0
- package/esm2020/utils/directives/disabled/index.mjs +9 -0
- package/esm2020/utils/directives/disabled/set-disabled-state.mjs +16 -0
- package/esm2020/utils/directives/focus-key-manager/focus-key-manager-helpers.module.mjs +33 -0
- package/esm2020/utils/directives/focus-key-manager/focus-key-manager-item.directive.mjs +98 -0
- package/esm2020/utils/directives/focus-key-manager/focus-key-manager-list.directive.mjs +113 -0
- package/esm2020/utils/directives/focus-key-manager/focus-key-manager.tokens.mjs +3 -0
- package/esm2020/utils/directives/focus-key-manager/index.mjs +5 -0
- package/esm2020/utils/directives/focusable-item/default-focusable-item-view-modifier.mjs +14 -0
- package/esm2020/utils/directives/focusable-item/fdk-focusable-item-provider.service.mjs +97 -0
- package/esm2020/utils/directives/focusable-item/focusable-item-view-modifier.interface.mjs +2 -0
- package/esm2020/utils/directives/focusable-item/focusable-item.directive.mjs +106 -0
- package/esm2020/utils/directives/focusable-item/focusable-item.module.mjs +16 -0
- package/esm2020/utils/directives/focusable-item/focusable.observer.mjs +47 -0
- package/esm2020/utils/directives/focusable-item/focusable.tokens.mjs +3 -0
- package/esm2020/utils/directives/focusable-item/index.mjs +9 -0
- package/esm2020/utils/directives/focusable-item/is-element-focusable-by-default.mjs +32 -0
- package/esm2020/utils/directives/focusable-item/set-focusable.mjs +12 -0
- package/esm2020/utils/directives/focusable-list/focusable-list.directive.mjs +79 -0
- package/esm2020/utils/directives/focusable-list/focusable-list.module.mjs +17 -0
- package/esm2020/utils/directives/focusable-list/focusable-list.service.mjs +54 -0
- package/esm2020/utils/directives/focusable-list/index.mjs +4 -0
- package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs +79 -0
- package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs +16 -0
- package/esm2020/utils/directives/ignore-click-on-selection/tokens.mjs +3 -0
- package/esm2020/utils/directives/index.mjs +31 -0
- package/esm2020/utils/directives/initial-focus/initial-focus.directive.mjs +117 -0
- package/esm2020/utils/directives/initial-focus/initial-focus.module.mjs +16 -0
- package/esm2020/utils/directives/line-clamp/line-clamp.directive.mjs +263 -0
- package/esm2020/utils/directives/line-clamp/line-clamp.module.mjs +32 -0
- package/esm2020/utils/directives/only-digits/only-digits.directive.mjs +218 -0
- package/esm2020/utils/directives/only-digits/only-digits.module.mjs +16 -0
- package/esm2020/utils/directives/overflow-list/overflow-list-item.directive.mjs +42 -0
- package/esm2020/utils/directives/overflow-list/overflow-list.directive.mjs +140 -0
- package/esm2020/utils/directives/overflow-list/overflow-list.module.mjs +33 -0
- package/esm2020/utils/directives/readonly/default-readonly-view-modifier.mjs +12 -0
- package/esm2020/utils/directives/readonly/fdk-readonly-provider.service.mjs +102 -0
- package/esm2020/utils/directives/readonly/fdk-readonly.token.mjs +3 -0
- package/esm2020/utils/directives/readonly/index.mjs +10 -0
- package/esm2020/utils/directives/readonly/readonly-behavior.directive.mjs +97 -0
- package/esm2020/utils/directives/readonly/readonly-behavior.interface.mjs +2 -0
- package/esm2020/utils/directives/readonly/readonly-behavior.module.mjs +16 -0
- package/esm2020/utils/directives/readonly/readonly-view-modifier.interface.mjs +2 -0
- package/esm2020/utils/directives/readonly/readonly.observer.mjs +33 -0
- package/esm2020/utils/directives/readonly/set-readonly-state.mjs +14 -0
- package/esm2020/utils/directives/repeat/repeat.directive.mjs +65 -0
- package/esm2020/utils/directives/repeat/repeat.module.mjs +16 -0
- package/esm2020/utils/directives/resize/resize-handle.directive.mjs +42 -0
- package/esm2020/utils/directives/resize/resize.directive.mjs +231 -0
- package/esm2020/utils/directives/resize/resize.module.mjs +17 -0
- package/esm2020/utils/directives/selectable-list/index.mjs +8 -0
- package/esm2020/utils/directives/selectable-list/select-component-root.token.mjs +3 -0
- package/esm2020/utils/directives/selectable-list/selectable-item.directive.mjs +147 -0
- package/esm2020/utils/directives/selectable-list/selectable-item.token.mjs +3 -0
- package/esm2020/utils/directives/selectable-list/selectable-list.directive.mjs +93 -0
- package/esm2020/utils/directives/selectable-list/selectable-list.module.mjs +17 -0
- package/esm2020/utils/directives/selectable-list/selectable-list.tokens.mjs +3 -0
- package/esm2020/utils/directives/selectable-list/selection.service.mjs +135 -0
- package/esm2020/utils/directives/template/template.directive.mjs +49 -0
- package/esm2020/utils/directives/template/template.module.mjs +16 -0
- package/esm2020/utils/directives/truncate/truncate.directive.mjs +96 -0
- package/esm2020/utils/directives/truncate/truncate.module.mjs +16 -0
- package/esm2020/utils/drag-and-drop/dnd-item/dnd-item.directive.mjs +255 -0
- package/esm2020/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.mjs +88 -0
- package/esm2020/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.mjs +83 -0
- package/esm2020/utils/drag-and-drop/dnd-list/dnd-list.directive.mjs +220 -0
- package/esm2020/utils/drag-and-drop/dnd.interfaces.mjs +2 -0
- package/esm2020/utils/drag-and-drop/drag-and-drop.module.mjs +22 -0
- package/esm2020/utils/drag-and-drop/index.mjs +8 -0
- package/esm2020/utils/drag-and-drop/tokens.mjs +4 -0
- package/esm2020/utils/dynamic-component/dynamic-component-config.mjs +2 -0
- package/esm2020/utils/dynamic-component/dynamic-component-container.mjs +21 -0
- package/esm2020/utils/dynamic-component/dynamic-component-injector.mjs +20 -0
- package/esm2020/utils/dynamic-component/dynamic-component.service.mjs +90 -0
- package/esm2020/utils/dynamic-component/index.mjs +5 -0
- package/esm2020/utils/functions/consumer-provider-factory.mjs +12 -0
- package/esm2020/utils/functions/element-size.mjs +23 -0
- package/esm2020/utils/functions/get-document-font-size.mjs +5 -0
- package/esm2020/utils/functions/index.mjs +13 -0
- package/esm2020/utils/functions/intersection-observable.mjs +26 -0
- package/esm2020/utils/functions/is-compact-density.mjs +11 -0
- package/esm2020/utils/functions/key-util.mjs +77 -0
- package/esm2020/utils/functions/module-deprecations-provider.mjs +18 -0
- package/esm2020/utils/functions/parser-file-size.mjs +37 -0
- package/esm2020/utils/functions/random-color-accent.mjs +5 -0
- package/esm2020/utils/functions/resize-observable.mjs +33 -0
- package/esm2020/utils/functions/scroll.mjs +19 -0
- package/esm2020/utils/functions/uuidv4-generator.mjs +12 -0
- package/esm2020/utils/fundamental-ngx-cdk-utils.mjs +5 -0
- package/esm2020/utils/helpers/get-native-element.mjs +18 -0
- package/esm2020/utils/helpers/index.mjs +3 -0
- package/esm2020/utils/helpers/range-selector.mjs +117 -0
- package/esm2020/utils/index.mjs +19 -0
- package/esm2020/utils/interfaces/content-density.mjs +2 -0
- package/esm2020/utils/interfaces/css-class-builder.interface.mjs +2 -0
- package/esm2020/utils/interfaces/css-style-builder.interface.mjs +2 -0
- package/esm2020/utils/interfaces/has-element-ref.interface.mjs +2 -0
- package/esm2020/utils/interfaces/index.mjs +8 -0
- package/esm2020/utils/interfaces/keyboard-support-item.interface.mjs +2 -0
- package/esm2020/utils/interfaces/module-deprecation.interface.mjs +2 -0
- package/esm2020/utils/interfaces/require.interface.mjs +2 -0
- package/esm2020/utils/list-item/list-item-utils.mjs +3 -0
- package/esm2020/utils/models/nullable.mjs +2 -0
- package/esm2020/utils/pipes/displayFn.pipe.mjs +17 -0
- package/esm2020/utils/pipes/filter-strings.pipe.mjs +30 -0
- package/esm2020/utils/pipes/index.mjs +10 -0
- package/esm2020/utils/pipes/is-compact.pipe.mjs +16 -0
- package/esm2020/utils/pipes/pipe.module.mjs +55 -0
- package/esm2020/utils/pipes/safe.pipe.mjs +36 -0
- package/esm2020/utils/pipes/search-highlight.pipe.mjs +31 -0
- package/esm2020/utils/pipes/truncate.pipe.mjs +17 -0
- package/esm2020/utils/pipes/two-digits.pipe.mjs +22 -0
- package/esm2020/utils/pipes/value-by-path.pipe.mjs +16 -0
- package/esm2020/utils/services/content-density.service.mjs +34 -0
- package/esm2020/utils/services/destroyed.service.mjs +20 -0
- package/esm2020/utils/services/focus-trap.service.mjs +92 -0
- package/esm2020/utils/services/index.mjs +11 -0
- package/esm2020/utils/services/keyboard-support/keyboard-support.service.mjs +73 -0
- package/esm2020/utils/services/local-storage.service.mjs +38 -0
- package/esm2020/utils/services/observers/attribute.observer.mjs +81 -0
- package/esm2020/utils/services/resize-observer.service.mjs +94 -0
- package/esm2020/utils/services/rtl.service.mjs +29 -0
- package/esm2020/utils/services/tabbable-element.service.mjs +43 -0
- package/esm2020/utils/services/themes.service.mjs +133 -0
- package/esm2020/utils/tokens/module-deprecations.token.mjs +3 -0
- package/esm2020/utils/typecheck.mjs +75 -0
- package/esm2020/utils/utils.module.mjs +136 -0
- package/fesm2015/fundamental-ngx-cdk-data-source.mjs +378 -0
- package/fesm2015/fundamental-ngx-cdk-data-source.mjs.map +1 -0
- package/fesm2015/fundamental-ngx-cdk-forms.mjs +404 -0
- package/fesm2015/fundamental-ngx-cdk-forms.mjs.map +1 -0
- package/fesm2015/fundamental-ngx-cdk-utils.mjs +5767 -0
- package/fesm2015/fundamental-ngx-cdk-utils.mjs.map +1 -0
- package/fesm2015/fundamental-ngx-cdk.mjs +30 -0
- package/fesm2015/fundamental-ngx-cdk.mjs.map +1 -0
- package/fesm2020/fundamental-ngx-cdk-data-source.mjs +374 -0
- package/fesm2020/fundamental-ngx-cdk-data-source.mjs.map +1 -0
- package/fesm2020/fundamental-ngx-cdk-forms.mjs +399 -0
- package/fesm2020/fundamental-ngx-cdk-forms.mjs.map +1 -0
- package/fesm2020/fundamental-ngx-cdk-utils.mjs +5724 -0
- package/fesm2020/fundamental-ngx-cdk-utils.mjs.map +1 -0
- package/fesm2020/fundamental-ngx-cdk.mjs +30 -0
- package/fesm2020/fundamental-ngx-cdk.mjs.map +1 -0
- package/forms/README.md +7 -0
- package/forms/cva/cva-control.class.d.ts +26 -0
- package/forms/cva/cva.directive.d.ts +178 -0
- package/forms/forms.module.d.ts +7 -0
- package/forms/helpers/state.d.ts +3 -0
- package/forms/index.d.ts +12 -0
- package/forms/models/cva.d.ts +4 -0
- package/forms/models/form-error.d.ts +31 -0
- package/forms/models/form-field-control.d.ts +61 -0
- package/forms/models/form-field.d.ts +30 -0
- package/forms/models/form-state.d.ts +1 -0
- package/forms/models/select-item.d.ts +47 -0
- package/forms/tokens/form-field-control.token.d.ts +3 -0
- package/forms/tokens/form-field.token.d.ts +3 -0
- package/fundamental-ngx-cdk-v0.38.3-rc.4.tgz +0 -0
- package/fundamental-ngx.module.d.ts +9 -0
- package/index.d.ts +5 -0
- package/package.json +80 -0
- package/public_api.d.ts +4 -0
- package/utils/README.md +7 -0
- package/utils/abstract-fd-ngx-class.d.ts +27 -0
- package/utils/coercion/array.d.ts +2 -0
- package/utils/consts/error-messages.d.ts +3 -0
- package/utils/consts/index.d.ts +4 -0
- package/utils/consts/overflow-priority-score.d.ts +2 -0
- package/utils/consts/unicode-letters.regex.d.ts +7 -0
- package/utils/consts/unicode-numbers.regex.d.ts +6 -0
- package/utils/datatypes/color-accent.datatype.d.ts +1 -0
- package/utils/datatypes/hash.datatype.d.ts +3 -0
- package/utils/datatypes/index.d.ts +3 -0
- package/utils/datatypes/size.datatype.d.ts +1 -0
- package/utils/decorators/apply-css-class.decorator.d.ts +10 -0
- package/utils/decorators/apply-css-style.decorator.d.ts +10 -0
- package/utils/decorators/coerce-boolean.d.ts +4 -0
- package/utils/decorators/coerce-css-pixel.d.ts +1 -0
- package/utils/decorators/index.d.ts +5 -0
- package/utils/decorators/setter-alternator.d.ts +4 -0
- package/utils/deprecated-selector.class.d.ts +14 -0
- package/utils/directives/auto-complete/auto-complete.directive.d.ts +58 -0
- package/utils/directives/auto-complete/auto-complete.module.d.ts +7 -0
- package/utils/directives/clicked/clicked-behavior.module.d.ts +12 -0
- package/utils/directives/clicked/clicked-event.plugin.d.ts +22 -0
- package/utils/directives/clicked/clicked.directive.d.ts +21 -0
- package/utils/directives/clicked/fdk-clicked-provider.service.d.ts +24 -0
- package/utils/directives/clicked/index.d.ts +3 -0
- package/utils/directives/disabled/default-disabled-view-modifier.d.ts +9 -0
- package/utils/directives/disabled/disabled-behavior.directive.d.ts +35 -0
- package/utils/directives/disabled/disabled-behavior.interface.d.ts +7 -0
- package/utils/directives/disabled/disabled-behavior.module.d.ts +7 -0
- package/utils/directives/disabled/disabled-view-modifier.interface.d.ts +3 -0
- package/utils/directives/disabled/disabled.observer.d.ts +18 -0
- package/utils/directives/disabled/fdk-disabled-provider.service.d.ts +35 -0
- package/utils/directives/disabled/fdk-disabled.token.d.ts +3 -0
- package/utils/directives/disabled/index.d.ts +8 -0
- package/utils/directives/disabled/set-disabled-state.d.ts +4 -0
- package/utils/directives/focus-key-manager/focus-key-manager-helpers.module.d.ts +8 -0
- package/utils/directives/focus-key-manager/focus-key-manager-item.directive.d.ts +37 -0
- package/utils/directives/focus-key-manager/focus-key-manager-list.directive.d.ts +42 -0
- package/utils/directives/focus-key-manager/focus-key-manager.tokens.d.ts +3 -0
- package/utils/directives/focus-key-manager/index.d.ts +4 -0
- package/utils/directives/focusable-item/default-focusable-item-view-modifier.d.ts +11 -0
- package/utils/directives/focusable-item/fdk-focusable-item-provider.service.d.ts +43 -0
- package/utils/directives/focusable-item/focusable-item-view-modifier.interface.d.ts +3 -0
- package/utils/directives/focusable-item/focusable-item.directive.d.ts +37 -0
- package/utils/directives/focusable-item/focusable-item.module.d.ts +7 -0
- package/utils/directives/focusable-item/focusable.observer.d.ts +18 -0
- package/utils/directives/focusable-item/focusable.tokens.d.ts +2 -0
- package/utils/directives/focusable-item/index.d.ts +8 -0
- package/utils/directives/focusable-item/is-element-focusable-by-default.d.ts +4 -0
- package/utils/directives/focusable-item/set-focusable.d.ts +4 -0
- package/utils/directives/focusable-list/focusable-list.directive.d.ts +25 -0
- package/utils/directives/focusable-list/focusable-list.module.d.ts +8 -0
- package/utils/directives/focusable-list/focusable-list.service.d.ts +35 -0
- package/utils/directives/focusable-list/index.d.ts +3 -0
- package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.d.ts +22 -0
- package/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.d.ts +7 -0
- package/utils/directives/ignore-click-on-selection/tokens.d.ts +2 -0
- package/utils/directives/index.d.ts +30 -0
- package/utils/directives/initial-focus/initial-focus.directive.d.ts +43 -0
- package/utils/directives/initial-focus/initial-focus.module.d.ts +7 -0
- package/utils/directives/line-clamp/line-clamp.directive.d.ts +101 -0
- package/utils/directives/line-clamp/line-clamp.module.d.ts +7 -0
- package/utils/directives/only-digits/only-digits.directive.d.ts +44 -0
- package/utils/directives/only-digits/only-digits.module.d.ts +7 -0
- package/utils/directives/overflow-list/overflow-list-item.directive.d.ts +14 -0
- package/utils/directives/overflow-list/overflow-list.directive.d.ts +62 -0
- package/utils/directives/overflow-list/overflow-list.module.d.ts +8 -0
- package/utils/directives/readonly/default-readonly-view-modifier.d.ts +9 -0
- package/utils/directives/readonly/fdk-readonly-provider.service.d.ts +35 -0
- package/utils/directives/readonly/fdk-readonly.token.d.ts +2 -0
- package/utils/directives/readonly/index.d.ts +9 -0
- package/utils/directives/readonly/readonly-behavior.directive.d.ts +32 -0
- package/utils/directives/readonly/readonly-behavior.interface.d.ts +7 -0
- package/utils/directives/readonly/readonly-behavior.module.d.ts +7 -0
- package/utils/directives/readonly/readonly-view-modifier.interface.d.ts +3 -0
- package/utils/directives/readonly/readonly.observer.d.ts +18 -0
- package/utils/directives/readonly/set-readonly-state.d.ts +4 -0
- package/utils/directives/repeat/repeat.directive.d.ts +28 -0
- package/utils/directives/repeat/repeat.module.d.ts +7 -0
- package/utils/directives/resize/resize-handle.directive.d.ts +14 -0
- package/utils/directives/resize/resize.directive.d.ts +57 -0
- package/utils/directives/resize/resize.module.d.ts +8 -0
- package/utils/directives/selectable-list/index.d.ts +7 -0
- package/utils/directives/selectable-list/select-component-root.token.d.ts +10 -0
- package/utils/directives/selectable-list/selectable-item.directive.d.ts +47 -0
- package/utils/directives/selectable-list/selectable-item.token.d.ts +11 -0
- package/utils/directives/selectable-list/selectable-list.directive.d.ts +33 -0
- package/utils/directives/selectable-list/selectable-list.module.d.ts +8 -0
- package/utils/directives/selectable-list/selectable-list.tokens.d.ts +2 -0
- package/utils/directives/selectable-list/selection.service.d.ts +65 -0
- package/utils/directives/template/template.directive.d.ts +18 -0
- package/utils/directives/template/template.module.d.ts +7 -0
- package/utils/directives/truncate/truncate.directive.d.ts +51 -0
- package/utils/directives/truncate/truncate.module.d.ts +7 -0
- package/utils/drag-and-drop/dnd-item/dnd-item.directive.d.ts +86 -0
- package/utils/drag-and-drop/dnd-keyboard-group/dnd-keyboard-group.directive.d.ts +32 -0
- package/utils/drag-and-drop/dnd-keyboard-item/dnd-keyboard-item.directive.d.ts +61 -0
- package/utils/drag-and-drop/dnd-list/dnd-list.directive.d.ts +65 -0
- package/utils/drag-and-drop/dnd.interfaces.d.ts +33 -0
- package/utils/drag-and-drop/drag-and-drop.module.d.ts +12 -0
- package/utils/drag-and-drop/index.d.ts +7 -0
- package/utils/drag-and-drop/tokens.d.ts +3 -0
- package/utils/dynamic-component/dynamic-component-config.d.ts +6 -0
- package/utils/dynamic-component/dynamic-component-container.d.ts +19 -0
- package/utils/dynamic-component/dynamic-component-injector.d.ts +13 -0
- package/utils/dynamic-component/dynamic-component.service.d.ts +46 -0
- package/utils/dynamic-component/index.d.ts +4 -0
- package/utils/functions/consumer-provider-factory.d.ts +5 -0
- package/utils/functions/element-size.d.ts +12 -0
- package/utils/functions/get-document-font-size.d.ts +2 -0
- package/utils/functions/index.d.ts +12 -0
- package/utils/functions/intersection-observable.d.ts +8 -0
- package/utils/functions/is-compact-density.d.ts +7 -0
- package/utils/functions/key-util.d.ts +16 -0
- package/utils/functions/module-deprecations-provider.d.ts +5 -0
- package/utils/functions/parser-file-size.d.ts +2 -0
- package/utils/functions/random-color-accent.d.ts +3 -0
- package/utils/functions/resize-observable.d.ts +8 -0
- package/utils/functions/scroll.d.ts +7 -0
- package/utils/functions/uuidv4-generator.d.ts +2 -0
- package/utils/helpers/get-native-element.d.ts +13 -0
- package/utils/helpers/index.d.ts +2 -0
- package/utils/helpers/range-selector.d.ts +84 -0
- package/utils/index.d.ts +18 -0
- package/utils/interfaces/content-density.d.ts +1 -0
- package/utils/interfaces/css-class-builder.interface.d.ts +6 -0
- package/utils/interfaces/css-style-builder.interface.d.ts +5 -0
- package/utils/interfaces/has-element-ref.interface.d.ts +5 -0
- package/utils/interfaces/index.d.ts +7 -0
- package/utils/interfaces/keyboard-support-item.interface.d.ts +6 -0
- package/utils/interfaces/module-deprecation.interface.d.ts +8 -0
- package/utils/interfaces/require.interface.d.ts +6 -0
- package/utils/list-item/list-item-utils.d.ts +7 -0
- package/utils/models/nullable.d.ts +6 -0
- package/utils/pipes/displayFn.pipe.d.ts +8 -0
- package/utils/pipes/filter-strings.pipe.d.ts +16 -0
- package/utils/pipes/index.d.ts +9 -0
- package/utils/pipes/is-compact.pipe.d.ts +9 -0
- package/utils/pipes/pipe.module.d.ts +14 -0
- package/utils/pipes/safe.pipe.d.ts +12 -0
- package/utils/pipes/search-highlight.pipe.d.ts +8 -0
- package/utils/pipes/truncate.pipe.d.ts +8 -0
- package/utils/pipes/two-digits.pipe.d.ts +8 -0
- package/utils/pipes/value-by-path.pipe.d.ts +8 -0
- package/utils/services/content-density.service.d.ts +19 -0
- package/utils/services/destroyed.service.d.ts +11 -0
- package/utils/services/focus-trap.service.d.ts +43 -0
- package/utils/services/index.d.ts +10 -0
- package/utils/services/keyboard-support/keyboard-support.service.d.ts +34 -0
- package/utils/services/local-storage.service.d.ts +13 -0
- package/utils/services/observers/attribute.observer.d.ts +26 -0
- package/utils/services/resize-observer.service.d.ts +34 -0
- package/utils/services/rtl.service.d.ts +12 -0
- package/utils/services/tabbable-element.service.d.ts +12 -0
- package/utils/services/themes.service.d.ts +43 -0
- package/utils/tokens/module-deprecations.token.d.ts +3 -0
- package/utils/typecheck.d.ts +47 -0
- package/utils/utils.module.d.ts +23 -0
package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.directive.mjs
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Directive, ElementRef, HostListener, Inject } from '@angular/core';
|
|
2
|
+
import { DOCUMENT } from '@angular/common';
|
|
3
|
+
import { IgnoreClickOnSelectionDirectiveToken } from './tokens';
|
|
4
|
+
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class DeprecatedIgnoreClickOnSelectionDirective extends DeprecatedSelector {
|
|
7
|
+
}
|
|
8
|
+
DeprecatedIgnoreClickOnSelectionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedIgnoreClickOnSelectionDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
+
DeprecatedIgnoreClickOnSelectionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: DeprecatedIgnoreClickOnSelectionDirective, isStandalone: true, selector: "[fdIgnoreClickOnSelection]", providers: [
|
|
10
|
+
{
|
|
11
|
+
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
12
|
+
useValue: getDeprecatedModel('[fdkIgnoreClickOnSelection]', '[fdIgnoreClickOnSelection]')
|
|
13
|
+
}
|
|
14
|
+
], usesInheritance: true, ngImport: i0 });
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedIgnoreClickOnSelectionDirective, decorators: [{
|
|
16
|
+
type: Directive,
|
|
17
|
+
args: [{
|
|
18
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
19
|
+
selector: '[fdIgnoreClickOnSelection]',
|
|
20
|
+
standalone: true,
|
|
21
|
+
providers: [
|
|
22
|
+
{
|
|
23
|
+
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
24
|
+
useValue: getDeprecatedModel('[fdkIgnoreClickOnSelection]', '[fdIgnoreClickOnSelection]')
|
|
25
|
+
}
|
|
26
|
+
]
|
|
27
|
+
}]
|
|
28
|
+
}] });
|
|
29
|
+
/**
|
|
30
|
+
* Directive will stop propagation and prevent default of click, if selected area is coming from
|
|
31
|
+
* directive's host element. This gives ability to not cancel all clicks on element, just the ones
|
|
32
|
+
* which include selection
|
|
33
|
+
*/
|
|
34
|
+
export class IgnoreClickOnSelectionDirective {
|
|
35
|
+
/** @hidden */
|
|
36
|
+
constructor(document, _elementRef) {
|
|
37
|
+
this.document = document;
|
|
38
|
+
this._elementRef = _elementRef;
|
|
39
|
+
}
|
|
40
|
+
/** Host click listener. Checks for selection existence and if finds one, checks anchor */
|
|
41
|
+
clicked($event) {
|
|
42
|
+
const selection = this.document.getSelection();
|
|
43
|
+
if (selection?.toString()) {
|
|
44
|
+
if (selection.anchorNode &&
|
|
45
|
+
(this._elementRef.nativeElement.isSameNode(selection.anchorNode) ||
|
|
46
|
+
this._elementRef.nativeElement.isSameNode(selection.anchorNode.parentElement))) {
|
|
47
|
+
$event.stopPropagation();
|
|
48
|
+
$event.preventDefault();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
IgnoreClickOnSelectionDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: IgnoreClickOnSelectionDirective, deps: [{ token: DOCUMENT }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
54
|
+
IgnoreClickOnSelectionDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: IgnoreClickOnSelectionDirective, isStandalone: true, selector: "[fdkIgnoreClickOnSelection], [fdIgnoreClickOnSelection]", host: { listeners: { "click": "clicked($event)" } }, providers: [
|
|
55
|
+
{
|
|
56
|
+
provide: IgnoreClickOnSelectionDirectiveToken,
|
|
57
|
+
useExisting: IgnoreClickOnSelectionDirective
|
|
58
|
+
}
|
|
59
|
+
], ngImport: i0 });
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: IgnoreClickOnSelectionDirective, decorators: [{
|
|
61
|
+
type: Directive,
|
|
62
|
+
args: [{
|
|
63
|
+
selector: '[fdkIgnoreClickOnSelection], [fdIgnoreClickOnSelection]',
|
|
64
|
+
standalone: true,
|
|
65
|
+
providers: [
|
|
66
|
+
{
|
|
67
|
+
provide: IgnoreClickOnSelectionDirectiveToken,
|
|
68
|
+
useExisting: IgnoreClickOnSelectionDirective
|
|
69
|
+
}
|
|
70
|
+
]
|
|
71
|
+
}]
|
|
72
|
+
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
73
|
+
type: Inject,
|
|
74
|
+
args: [DOCUMENT]
|
|
75
|
+
}] }, { type: i0.ElementRef }]; }, propDecorators: { clicked: [{
|
|
76
|
+
type: HostListener,
|
|
77
|
+
args: ['click', ['$event']]
|
|
78
|
+
}] } });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdub3JlLWNsaWNrLW9uLXNlbGVjdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvaWdub3JlLWNsaWNrLW9uLXNlbGVjdGlvbi9pZ25vcmUtY2xpY2stb24tc2VsZWN0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0NBQW9DLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDaEUsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7O0FBYXpDLE1BQU0sT0FBTyx5Q0FBMEMsU0FBUSxrQkFBa0I7O3NJQUFwRSx5Q0FBeUM7MEhBQXpDLHlDQUF5Qyx5RUFQdkM7UUFDUDtZQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLDZCQUE2QixFQUFFLDRCQUE0QixDQUFDO1NBQzVGO0tBQ0o7MkZBRVEseUNBQXlDO2tCQVhyRCxTQUFTO21CQUFDO29CQUNQLDhEQUE4RDtvQkFDOUQsUUFBUSxFQUFFLDRCQUE0QjtvQkFDdEMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsZ0NBQWdDOzRCQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsNkJBQTZCLEVBQUUsNEJBQTRCLENBQUM7eUJBQzVGO3FCQUNKO2lCQUNKOztBQUdEOzs7O0dBSUc7QUFXSCxNQUFNLE9BQU8sK0JBQStCO0lBQ3hDLGNBQWM7SUFDZCxZQUFzQyxRQUFrQixFQUFVLFdBQW9DO1FBQWhFLGFBQVEsR0FBUixRQUFRLENBQVU7UUFBVSxnQkFBVyxHQUFYLFdBQVcsQ0FBeUI7SUFBRyxDQUFDO0lBRTFHLDBGQUEwRjtJQUUxRixPQUFPLENBQUMsTUFBa0I7UUFDdEIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUMvQyxJQUFJLFNBQVMsRUFBRSxRQUFRLEVBQUUsRUFBRTtZQUN2QixJQUNJLFNBQVMsQ0FBQyxVQUFVO2dCQUNwQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDO29CQUM1RCxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUNwRjtnQkFDRSxNQUFNLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ3pCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQzthQUMzQjtTQUNKO0lBQ0wsQ0FBQzs7NEhBbEJRLCtCQUErQixrQkFFcEIsUUFBUTtnSEFGbkIsK0JBQStCLDJKQVA3QjtRQUNQO1lBQ0ksT0FBTyxFQUFFLG9DQUFvQztZQUM3QyxXQUFXLEVBQUUsK0JBQStCO1NBQy9DO0tBQ0o7MkZBRVEsK0JBQStCO2tCQVYzQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5REFBeUQ7b0JBQ25FLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLG9DQUFvQzs0QkFDN0MsV0FBVyxpQ0FBaUM7eUJBQy9DO3FCQUNKO2lCQUNKOzswQkFHZ0IsTUFBTTsyQkFBQyxRQUFRO3FFQUk1QixPQUFPO3NCQUROLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSWdub3JlQ2xpY2tPblNlbGVjdGlvbkRpcmVjdGl2ZVRva2VuIH0gZnJvbSAnLi90b2tlbnMnO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkSWdub3JlQ2xpY2tPblNlbGVjdGlvbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka0lnbm9yZUNsaWNrT25TZWxlY3Rpb25dJywgJ1tmZElnbm9yZUNsaWNrT25TZWxlY3Rpb25dJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZElnbm9yZUNsaWNrT25TZWxlY3Rpb25EaXJlY3RpdmUgZXh0ZW5kcyBEZXByZWNhdGVkU2VsZWN0b3Ige31cblxuLyoqXG4gKiBEaXJlY3RpdmUgd2lsbCBzdG9wIHByb3BhZ2F0aW9uIGFuZCBwcmV2ZW50IGRlZmF1bHQgb2YgY2xpY2ssIGlmIHNlbGVjdGVkIGFyZWEgaXMgY29taW5nIGZyb21cbiAqIGRpcmVjdGl2ZSdzIGhvc3QgZWxlbWVudC4gVGhpcyBnaXZlcyBhYmlsaXR5IHRvIG5vdCBjYW5jZWwgYWxsIGNsaWNrcyBvbiBlbGVtZW50LCBqdXN0IHRoZSBvbmVzXG4gKiB3aGljaCBpbmNsdWRlIHNlbGVjdGlvblxuICovXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtJZ25vcmVDbGlja09uU2VsZWN0aW9uXSwgW2ZkSWdub3JlQ2xpY2tPblNlbGVjdGlvbl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IElnbm9yZUNsaWNrT25TZWxlY3Rpb25EaXJlY3RpdmVUb2tlbixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBJZ25vcmVDbGlja09uU2VsZWN0aW9uRGlyZWN0aXZlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIElnbm9yZUNsaWNrT25TZWxlY3Rpb25EaXJlY3RpdmUge1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsIHByaXZhdGUgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KSB7fVxuXG4gICAgLyoqIEhvc3QgY2xpY2sgbGlzdGVuZXIuIENoZWNrcyBmb3Igc2VsZWN0aW9uIGV4aXN0ZW5jZSBhbmQgaWYgZmluZHMgb25lLCBjaGVja3MgYW5jaG9yICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIGNsaWNrZWQoJGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGlvbiA9IHRoaXMuZG9jdW1lbnQuZ2V0U2VsZWN0aW9uKCk7XG4gICAgICAgIGlmIChzZWxlY3Rpb24/LnRvU3RyaW5nKCkpIHtcbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBzZWxlY3Rpb24uYW5jaG9yTm9kZSAmJlxuICAgICAgICAgICAgICAgICh0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaXNTYW1lTm9kZShzZWxlY3Rpb24uYW5jaG9yTm9kZSkgfHxcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoc2VsZWN0aW9uLmFuY2hvck5vZGUucGFyZW50RWxlbWVudCkpXG4gICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
package/esm2020/utils/directives/ignore-click-on-selection/ignore-click-on-selection.module.mjs
ADDED
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { IgnoreClickOnSelectionDirective, DeprecatedIgnoreClickOnSelectionDirective } from './ignore-click-on-selection.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class IgnoreClickOnSelectionModule {
|
|
5
|
+
}
|
|
6
|
+
IgnoreClickOnSelectionModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: IgnoreClickOnSelectionModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
IgnoreClickOnSelectionModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: IgnoreClickOnSelectionModule, imports: [IgnoreClickOnSelectionDirective, DeprecatedIgnoreClickOnSelectionDirective], exports: [IgnoreClickOnSelectionDirective, DeprecatedIgnoreClickOnSelectionDirective] });
|
|
8
|
+
IgnoreClickOnSelectionModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: IgnoreClickOnSelectionModule });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: IgnoreClickOnSelectionModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
imports: [IgnoreClickOnSelectionDirective, DeprecatedIgnoreClickOnSelectionDirective],
|
|
13
|
+
exports: [IgnoreClickOnSelectionDirective, DeprecatedIgnoreClickOnSelectionDirective]
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWdub3JlLWNsaWNrLW9uLXNlbGVjdGlvbi5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvaWdub3JlLWNsaWNrLW9uLXNlbGVjdGlvbi9pZ25vcmUtY2xpY2stb24tc2VsZWN0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFDSCwrQkFBK0IsRUFDL0IseUNBQXlDLEVBQzVDLE1BQU0sdUNBQXVDLENBQUM7O0FBTS9DLE1BQU0sT0FBTyw0QkFBNEI7O3lIQUE1Qiw0QkFBNEI7MEhBQTVCLDRCQUE0QixZQUgzQiwrQkFBK0IsRUFBRSx5Q0FBeUMsYUFDMUUsK0JBQStCLEVBQUUseUNBQXlDOzBIQUUzRSw0QkFBNEI7MkZBQTVCLDRCQUE0QjtrQkFKeEMsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsQ0FBQywrQkFBK0IsRUFBRSx5Q0FBeUMsQ0FBQztvQkFDckYsT0FBTyxFQUFFLENBQUMsK0JBQStCLEVBQUUseUNBQXlDLENBQUM7aUJBQ3hGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgSWdub3JlQ2xpY2tPblNlbGVjdGlvbkRpcmVjdGl2ZSxcbiAgICBEZXByZWNhdGVkSWdub3JlQ2xpY2tPblNlbGVjdGlvbkRpcmVjdGl2ZVxufSBmcm9tICcuL2lnbm9yZS1jbGljay1vbi1zZWxlY3Rpb24uZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbSWdub3JlQ2xpY2tPblNlbGVjdGlvbkRpcmVjdGl2ZSwgRGVwcmVjYXRlZElnbm9yZUNsaWNrT25TZWxlY3Rpb25EaXJlY3RpdmVdLFxuICAgIGV4cG9ydHM6IFtJZ25vcmVDbGlja09uU2VsZWN0aW9uRGlyZWN0aXZlLCBEZXByZWNhdGVkSWdub3JlQ2xpY2tPblNlbGVjdGlvbkRpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgSWdub3JlQ2xpY2tPblNlbGVjdGlvbk1vZHVsZSB7fVxuIl19
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
export const IgnoreClickOnSelectionDirectiveToken = new InjectionToken('Ignore click on selection directive');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi91dGlscy9kaXJlY3RpdmVzL2lnbm9yZS1jbGljay1vbi1zZWxlY3Rpb24vdG9rZW5zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFL0MsTUFBTSxDQUFDLE1BQU0sb0NBQW9DLEdBQUcsSUFBSSxjQUFjLENBQUMscUNBQXFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjb25zdCBJZ25vcmVDbGlja09uU2VsZWN0aW9uRGlyZWN0aXZlVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW4oJ0lnbm9yZSBjbGljayBvbiBzZWxlY3Rpb24gZGlyZWN0aXZlJyk7XG4iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
export * from './auto-complete/auto-complete.directive';
|
|
2
|
+
export * from './auto-complete/auto-complete.module';
|
|
3
|
+
export * from './focus-key-manager';
|
|
4
|
+
export * from './ignore-click-on-selection/ignore-click-on-selection.directive';
|
|
5
|
+
export * from './ignore-click-on-selection/ignore-click-on-selection.module';
|
|
6
|
+
export * from './ignore-click-on-selection/tokens';
|
|
7
|
+
export * from './initial-focus/initial-focus.directive';
|
|
8
|
+
export * from './initial-focus/initial-focus.module';
|
|
9
|
+
export * from './line-clamp/line-clamp.directive';
|
|
10
|
+
export * from './line-clamp/line-clamp.module';
|
|
11
|
+
export * from './only-digits/only-digits.directive';
|
|
12
|
+
export * from './only-digits/only-digits.module';
|
|
13
|
+
export * from './overflow-list/overflow-list-item.directive';
|
|
14
|
+
export * from './overflow-list/overflow-list.directive';
|
|
15
|
+
export * from './overflow-list/overflow-list.module';
|
|
16
|
+
export * from './repeat/repeat.directive';
|
|
17
|
+
export * from './repeat/repeat.module';
|
|
18
|
+
export * from './resize/resize-handle.directive';
|
|
19
|
+
export * from './resize/resize.module';
|
|
20
|
+
export * from './resize/resize.directive';
|
|
21
|
+
export * from './template/template.directive';
|
|
22
|
+
export * from './template/template.module';
|
|
23
|
+
export * from './truncate/truncate.directive';
|
|
24
|
+
export * from './truncate/truncate.module';
|
|
25
|
+
export * from './focusable-item';
|
|
26
|
+
export * from './focusable-list';
|
|
27
|
+
export * from './readonly';
|
|
28
|
+
export * from './disabled';
|
|
29
|
+
export * from './clicked';
|
|
30
|
+
export * from './selectable-list';
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyw0QkFBNEIsQ0FBQztBQUMzQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNEJBQTRCLENBQUM7QUFDM0MsY0FBYyxrQkFBa0IsQ0FBQztBQUNqQyxjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsWUFBWSxDQUFDO0FBQzNCLGNBQWMsV0FBVyxDQUFDO0FBQzFCLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2F1dG8tY29tcGxldGUvYXV0by1jb21wbGV0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9hdXRvLWNvbXBsZXRlL2F1dG8tY29tcGxldGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZm9jdXMta2V5LW1hbmFnZXInO1xuZXhwb3J0ICogZnJvbSAnLi9pZ25vcmUtY2xpY2stb24tc2VsZWN0aW9uL2lnbm9yZS1jbGljay1vbi1zZWxlY3Rpb24uZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vaWdub3JlLWNsaWNrLW9uLXNlbGVjdGlvbi9pZ25vcmUtY2xpY2stb24tc2VsZWN0aW9uLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2lnbm9yZS1jbGljay1vbi1zZWxlY3Rpb24vdG9rZW5zJztcbmV4cG9ydCAqIGZyb20gJy4vaW5pdGlhbC1mb2N1cy9pbml0aWFsLWZvY3VzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2luaXRpYWwtZm9jdXMvaW5pdGlhbC1mb2N1cy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saW5lLWNsYW1wL2xpbmUtY2xhbXAuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vbGluZS1jbGFtcC9saW5lLWNsYW1wLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL29ubHktZGlnaXRzL29ubHktZGlnaXRzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL29ubHktZGlnaXRzL29ubHktZGlnaXRzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJmbG93LWxpc3Qvb3ZlcmZsb3ctbGlzdC1pdGVtLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL292ZXJmbG93LWxpc3Qvb3ZlcmZsb3ctbGlzdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9vdmVyZmxvdy1saXN0L292ZXJmbG93LWxpc3QubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVwZWF0L3JlcGVhdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9yZXBlYXQvcmVwZWF0Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc2l6ZS9yZXNpemUtaGFuZGxlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3Jlc2l6ZS9yZXNpemUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzaXplL3Jlc2l6ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90ZW1wbGF0ZS90ZW1wbGF0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90ZW1wbGF0ZS90ZW1wbGF0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi90cnVuY2F0ZS90cnVuY2F0ZS5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi90cnVuY2F0ZS90cnVuY2F0ZS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9mb2N1c2FibGUtaXRlbSc7XG5leHBvcnQgKiBmcm9tICcuL2ZvY3VzYWJsZS1saXN0JztcbmV4cG9ydCAqIGZyb20gJy4vcmVhZG9ubHknO1xuZXhwb3J0ICogZnJvbSAnLi9kaXNhYmxlZCc7XG5leHBvcnQgKiBmcm9tICcuL2NsaWNrZWQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWxlY3RhYmxlLWxpc3QnO1xuIl19
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import { Directive, ElementRef, Input, NgZone } from '@angular/core';
|
|
2
|
+
import { take } from 'rxjs/operators';
|
|
3
|
+
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
4
|
+
import { TabbableElementService } from '../../services/tabbable-element.service';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "../../services/tabbable-element.service";
|
|
7
|
+
export class DeprecatedInitialFocusDirective extends DeprecatedSelector {
|
|
8
|
+
}
|
|
9
|
+
DeprecatedInitialFocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedInitialFocusDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
10
|
+
DeprecatedInitialFocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: DeprecatedInitialFocusDirective, isStandalone: true, selector: "[fdInitialFocus], [fd-initial-focus]", providers: [
|
|
11
|
+
{
|
|
12
|
+
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
13
|
+
useValue: getDeprecatedModel('[fdkInitialFocus]', '[fdInitialFocus], [fd-initial-focus]')
|
|
14
|
+
}
|
|
15
|
+
], usesInheritance: true, ngImport: i0 });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedInitialFocusDirective, decorators: [{
|
|
17
|
+
type: Directive,
|
|
18
|
+
args: [{
|
|
19
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
20
|
+
selector: '[fdInitialFocus], [fd-initial-focus]',
|
|
21
|
+
standalone: true,
|
|
22
|
+
providers: [
|
|
23
|
+
{
|
|
24
|
+
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
25
|
+
useValue: getDeprecatedModel('[fdkInitialFocus]', '[fdInitialFocus], [fd-initial-focus]')
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
|
+
export class InitialFocusDirective {
|
|
31
|
+
/** @hidden */
|
|
32
|
+
constructor(_elmRef, _ngZone, _tabbableService) {
|
|
33
|
+
this._elmRef = _elmRef;
|
|
34
|
+
this._ngZone = _ngZone;
|
|
35
|
+
this._tabbableService = _tabbableService;
|
|
36
|
+
/**
|
|
37
|
+
* CSS selector of element that should be focused.
|
|
38
|
+
*/
|
|
39
|
+
this.focusableItem = '.fd-initial-focus-item';
|
|
40
|
+
/**
|
|
41
|
+
* Whether initial focus enabled for current element.
|
|
42
|
+
*/
|
|
43
|
+
this.enabled = true;
|
|
44
|
+
/**
|
|
45
|
+
* Whether to focus last element in found array of elements.
|
|
46
|
+
*/
|
|
47
|
+
this.focusLastElement = false;
|
|
48
|
+
}
|
|
49
|
+
/** @hidden */
|
|
50
|
+
ngAfterViewInit() {
|
|
51
|
+
this._executeOnStable(() => this._focus());
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* @hidden
|
|
55
|
+
* Executes a function when the zone is stable.
|
|
56
|
+
*/
|
|
57
|
+
_executeOnStable(fn) {
|
|
58
|
+
if (this._ngZone.isStable) {
|
|
59
|
+
fn();
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
this._ngZone.onStable.pipe(take(1)).subscribe(fn);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @hidden
|
|
67
|
+
* Searches for appropriate focusable element
|
|
68
|
+
*/
|
|
69
|
+
_getFocusableElement() {
|
|
70
|
+
if (!this.focusableItem) {
|
|
71
|
+
return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);
|
|
72
|
+
}
|
|
73
|
+
const autoFocusableItems = this._elmRef.nativeElement.querySelectorAll(this.focusableItem);
|
|
74
|
+
if (autoFocusableItems.length > 0) {
|
|
75
|
+
return !this.focusLastElement ? autoFocusableItems[0] : autoFocusableItems[autoFocusableItems.length - 1];
|
|
76
|
+
}
|
|
77
|
+
// If no elements found, fallback to first tabbable element.
|
|
78
|
+
return this._tabbableService.getTabbableElement(this._elmRef.nativeElement, this.focusLastElement);
|
|
79
|
+
}
|
|
80
|
+
/** @hidden */
|
|
81
|
+
_focus() {
|
|
82
|
+
if (!this.enabled) {
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
this._getFocusableElement()?.focus();
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
InitialFocusDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: InitialFocusDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i1.TabbableElementService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
89
|
+
InitialFocusDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: InitialFocusDirective, isStandalone: true, selector: "[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]", inputs: { focusableItem: ["fd-initial-focus", "focusableItem"], enabled: "enabled", focusLastElement: "focusLastElement" }, providers: [
|
|
90
|
+
TabbableElementService,
|
|
91
|
+
{
|
|
92
|
+
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
93
|
+
useValue: getDeprecatedModel('[fdkInitialFocus]', '[fdInitialFocus], [fd-initial-focus]')
|
|
94
|
+
}
|
|
95
|
+
], ngImport: i0 });
|
|
96
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: InitialFocusDirective, decorators: [{
|
|
97
|
+
type: Directive,
|
|
98
|
+
args: [{
|
|
99
|
+
selector: '[fdkInitialFocus], [fdInitialFocus], [fd-initial-focus]',
|
|
100
|
+
standalone: true,
|
|
101
|
+
providers: [
|
|
102
|
+
TabbableElementService,
|
|
103
|
+
{
|
|
104
|
+
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
105
|
+
useValue: getDeprecatedModel('[fdkInitialFocus]', '[fdInitialFocus], [fd-initial-focus]')
|
|
106
|
+
}
|
|
107
|
+
]
|
|
108
|
+
}]
|
|
109
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i1.TabbableElementService }]; }, propDecorators: { focusableItem: [{
|
|
110
|
+
type: Input,
|
|
111
|
+
args: ['fd-initial-focus']
|
|
112
|
+
}], enabled: [{
|
|
113
|
+
type: Input
|
|
114
|
+
}], focusLastElement: [{
|
|
115
|
+
type: Input
|
|
116
|
+
}] } });
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC1mb2N1cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvaW5pdGlhbC1mb2N1cy9pbml0aWFsLWZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUNILGtCQUFrQixFQUNsQixnQ0FBZ0MsRUFDaEMsa0JBQWtCLEVBQ3JCLE1BQU0saUNBQWlDLENBQUM7QUFDekMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0seUNBQXlDLENBQUM7OztBQWFqRixNQUFNLE9BQU8sK0JBQWdDLFNBQVEsa0JBQWtCOzs0SEFBMUQsK0JBQStCO2dIQUEvQiwrQkFBK0IsbUZBUDdCO1FBQ1A7WUFDSSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxzQ0FBc0MsQ0FBQztTQUM1RjtLQUNKOzJGQUVRLCtCQUErQjtrQkFYM0MsU0FBUzttQkFBQztvQkFDUCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxzQ0FBc0M7b0JBQ2hELFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1A7NEJBQ0ksT0FBTyxFQUFFLGdDQUFnQzs0QkFDekMsUUFBUSxFQUFFLGtCQUFrQixDQUFDLG1CQUFtQixFQUFFLHNDQUFzQyxDQUFDO3lCQUM1RjtxQkFDSjtpQkFDSjs7QUFjRCxNQUFNLE9BQU8scUJBQXFCO0lBbUI5QixjQUFjO0lBQ2QsWUFDWSxPQUFnQyxFQUNoQyxPQUFlLEVBQ04sZ0JBQXdDO1FBRmpELFlBQU8sR0FBUCxPQUFPLENBQXlCO1FBQ2hDLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDTixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQXdCO1FBdEI3RDs7V0FFRztRQUVILGtCQUFhLEdBQUcsd0JBQXdCLENBQUM7UUFFekM7O1dBRUc7UUFFSCxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBRWY7O1dBRUc7UUFFSCxxQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFPdEIsQ0FBQztJQUVKLGNBQWM7SUFDZCxlQUFlO1FBQ1gsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7O09BR0c7SUFDSyxnQkFBZ0IsQ0FBQyxFQUFhO1FBQ2xDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUU7WUFDdkIsRUFBRSxFQUFFLENBQUM7U0FDUjthQUFNO1lBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNyRDtJQUNMLENBQUM7SUFFRDs7O09BR0c7SUFDSyxvQkFBb0I7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDckIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7U0FDdEc7UUFFRCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUNsRSxJQUFJLENBQUMsYUFBYSxDQUNNLENBQUM7UUFFN0IsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDN0c7UUFFRCw0REFBNEQ7UUFDNUQsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUVELGNBQWM7SUFDTixNQUFNO1FBQ1YsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDZixPQUFPO1NBQ1Y7UUFDRCxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQztJQUN6QyxDQUFDOztrSEF0RVEscUJBQXFCO3NHQUFyQixxQkFBcUIsa09BUm5CO1FBQ1Asc0JBQXNCO1FBQ3RCO1lBQ0ksT0FBTyxFQUFFLGdDQUFnQztZQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsbUJBQW1CLEVBQUUsc0NBQXNDLENBQUM7U0FDNUY7S0FDSjsyRkFFUSxxQkFBcUI7a0JBWGpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHlEQUF5RDtvQkFDbkUsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRTt3QkFDUCxzQkFBc0I7d0JBQ3RCOzRCQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxtQkFBbUIsRUFBRSxzQ0FBc0MsQ0FBQzt5QkFDNUY7cUJBQ0o7aUJBQ0o7MkpBTUcsYUFBYTtzQkFEWixLQUFLO3VCQUFDLGtCQUFrQjtnQkFPekIsT0FBTztzQkFETixLQUFLO2dCQU9OLGdCQUFnQjtzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtcbiAgICBEZXByZWNhdGVkU2VsZWN0b3IsXG4gICAgRkRfREVQUkVDQVRFRF9ESVJFQ1RJVkVfU0VMRUNUT1IsXG4gICAgZ2V0RGVwcmVjYXRlZE1vZGVsXG59IGZyb20gJy4uLy4uL2RlcHJlY2F0ZWQtc2VsZWN0b3IuY2xhc3MnO1xuaW1wb3J0IHsgVGFiYmFibGVFbGVtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RhYmJhYmxlLWVsZW1lbnQuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRJbml0aWFsRm9jdXNdLCBbZmQtaW5pdGlhbC1mb2N1c10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka0luaXRpYWxGb2N1c10nLCAnW2ZkSW5pdGlhbEZvY3VzXSwgW2ZkLWluaXRpYWwtZm9jdXNdJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZEluaXRpYWxGb2N1c0RpcmVjdGl2ZSBleHRlbmRzIERlcHJlY2F0ZWRTZWxlY3RvciB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tmZGtJbml0aWFsRm9jdXNdLCBbZmRJbml0aWFsRm9jdXNdLCBbZmQtaW5pdGlhbC1mb2N1c10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIFRhYmJhYmxlRWxlbWVudFNlcnZpY2UsXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka0luaXRpYWxGb2N1c10nLCAnW2ZkSW5pdGlhbEZvY3VzXSwgW2ZkLWluaXRpYWwtZm9jdXNdJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSW5pdGlhbEZvY3VzRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgLyoqXG4gICAgICogQ1NTIHNlbGVjdG9yIG9mIGVsZW1lbnQgdGhhdCBzaG91bGQgYmUgZm9jdXNlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoJ2ZkLWluaXRpYWwtZm9jdXMnKVxuICAgIGZvY3VzYWJsZUl0ZW0gPSAnLmZkLWluaXRpYWwtZm9jdXMtaXRlbSc7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIGluaXRpYWwgZm9jdXMgZW5hYmxlZCBmb3IgY3VycmVudCBlbGVtZW50LlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZW5hYmxlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRvIGZvY3VzIGxhc3QgZWxlbWVudCBpbiBmb3VuZCBhcnJheSBvZiBlbGVtZW50cy5cbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIGZvY3VzTGFzdEVsZW1lbnQgPSBmYWxzZTtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgX2VsbVJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sXG4gICAgICAgIHByaXZhdGUgX25nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IF90YWJiYWJsZVNlcnZpY2U6IFRhYmJhYmxlRWxlbWVudFNlcnZpY2VcbiAgICApIHt9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZXhlY3V0ZU9uU3RhYmxlKCgpID0+IHRoaXMuX2ZvY3VzKCkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKiBFeGVjdXRlcyBhIGZ1bmN0aW9uIHdoZW4gdGhlIHpvbmUgaXMgc3RhYmxlLlxuICAgICAqL1xuICAgIHByaXZhdGUgX2V4ZWN1dGVPblN0YWJsZShmbjogKCkgPT4gYW55KTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9uZ1pvbmUuaXNTdGFibGUpIHtcbiAgICAgICAgICAgIGZuKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoZm4pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqIFNlYXJjaGVzIGZvciBhcHByb3ByaWF0ZSBmb2N1c2FibGUgZWxlbWVudFxuICAgICAqL1xuICAgIHByaXZhdGUgX2dldEZvY3VzYWJsZUVsZW1lbnQoKTogSFRNTEVsZW1lbnQgfCBudWxsIHtcbiAgICAgICAgaWYgKCF0aGlzLmZvY3VzYWJsZUl0ZW0pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90YWJiYWJsZVNlcnZpY2UuZ2V0VGFiYmFibGVFbGVtZW50KHRoaXMuX2VsbVJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmZvY3VzTGFzdEVsZW1lbnQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgYXV0b0ZvY3VzYWJsZUl0ZW1zID0gdGhpcy5fZWxtUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgIHRoaXMuZm9jdXNhYmxlSXRlbVxuICAgICAgICApIGFzIE5vZGVMaXN0T2Y8SFRNTEVsZW1lbnQ+O1xuXG4gICAgICAgIGlmIChhdXRvRm9jdXNhYmxlSXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmZvY3VzTGFzdEVsZW1lbnQgPyBhdXRvRm9jdXNhYmxlSXRlbXNbMF0gOiBhdXRvRm9jdXNhYmxlSXRlbXNbYXV0b0ZvY3VzYWJsZUl0ZW1zLmxlbmd0aCAtIDFdO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gSWYgbm8gZWxlbWVudHMgZm91bmQsIGZhbGxiYWNrIHRvIGZpcnN0IHRhYmJhYmxlIGVsZW1lbnQuXG4gICAgICAgIHJldHVybiB0aGlzLl90YWJiYWJsZVNlcnZpY2UuZ2V0VGFiYmFibGVFbGVtZW50KHRoaXMuX2VsbVJlZi5uYXRpdmVFbGVtZW50LCB0aGlzLmZvY3VzTGFzdEVsZW1lbnQpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5lbmFibGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fZ2V0Rm9jdXNhYmxlRWxlbWVudCgpPy5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { InitialFocusDirective, DeprecatedInitialFocusDirective } from './initial-focus.directive';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class InitialFocusModule {
|
|
5
|
+
}
|
|
6
|
+
InitialFocusModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: InitialFocusModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
7
|
+
InitialFocusModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.2", ngImport: i0, type: InitialFocusModule, imports: [InitialFocusDirective, DeprecatedInitialFocusDirective], exports: [InitialFocusDirective, DeprecatedInitialFocusDirective] });
|
|
8
|
+
InitialFocusModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: InitialFocusModule });
|
|
9
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: InitialFocusModule, decorators: [{
|
|
10
|
+
type: NgModule,
|
|
11
|
+
args: [{
|
|
12
|
+
imports: [InitialFocusDirective, DeprecatedInitialFocusDirective],
|
|
13
|
+
exports: [InitialFocusDirective, DeprecatedInitialFocusDirective]
|
|
14
|
+
}]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5pdGlhbC1mb2N1cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvaW5pdGlhbC1mb2N1cy9pbml0aWFsLWZvY3VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQU1uRyxNQUFNLE9BQU8sa0JBQWtCOzsrR0FBbEIsa0JBQWtCO2dIQUFsQixrQkFBa0IsWUFIakIscUJBQXFCLEVBQUUsK0JBQStCLGFBQ3RELHFCQUFxQixFQUFFLCtCQUErQjtnSEFFdkQsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSjlCLFFBQVE7bUJBQUM7b0JBQ04sT0FBTyxFQUFFLENBQUMscUJBQXFCLEVBQUUsK0JBQStCLENBQUM7b0JBQ2pFLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixFQUFFLCtCQUErQixDQUFDO2lCQUNwRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbml0aWFsRm9jdXNEaXJlY3RpdmUsIERlcHJlY2F0ZWRJbml0aWFsRm9jdXNEaXJlY3RpdmUgfSBmcm9tICcuL2luaXRpYWwtZm9jdXMuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbSW5pdGlhbEZvY3VzRGlyZWN0aXZlLCBEZXByZWNhdGVkSW5pdGlhbEZvY3VzRGlyZWN0aXZlXSxcbiAgICBleHBvcnRzOiBbSW5pdGlhbEZvY3VzRGlyZWN0aXZlLCBEZXByZWNhdGVkSW5pdGlhbEZvY3VzRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBJbml0aWFsRm9jdXNNb2R1bGUge31cbiJdfQ==
|
|
@@ -0,0 +1,263 @@
|
|
|
1
|
+
import { coerceNumberProperty } from '@angular/cdk/coercion';
|
|
2
|
+
import { Directive, ElementRef, EventEmitter, Input, Output, Renderer2, ChangeDetectorRef } from '@angular/core';
|
|
3
|
+
import { fromEvent } from 'rxjs';
|
|
4
|
+
import { debounceTime, distinctUntilChanged } from 'rxjs/operators';
|
|
5
|
+
import { DeprecatedSelector, FD_DEPRECATED_DIRECTIVE_SELECTOR, getDeprecatedModel } from '../../deprecated-selector.class';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class DeprecatedLineClampTargetDirective extends DeprecatedSelector {
|
|
8
|
+
}
|
|
9
|
+
DeprecatedLineClampTargetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedLineClampTargetDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
10
|
+
DeprecatedLineClampTargetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: DeprecatedLineClampTargetDirective, isStandalone: true, selector: "[fdLineClampTarget], [fd-lineclamp-target]", providers: [
|
|
11
|
+
{
|
|
12
|
+
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
13
|
+
useValue: getDeprecatedModel('[fdkLineClampTarget]', '[fdLineClampTarget], [fd-lineclamp-target]')
|
|
14
|
+
}
|
|
15
|
+
], usesInheritance: true, ngImport: i0 });
|
|
16
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedLineClampTargetDirective, decorators: [{
|
|
17
|
+
type: Directive,
|
|
18
|
+
args: [{
|
|
19
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
20
|
+
selector: '[fdLineClampTarget], [fd-lineclamp-target]',
|
|
21
|
+
standalone: true,
|
|
22
|
+
providers: [
|
|
23
|
+
{
|
|
24
|
+
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
25
|
+
useValue: getDeprecatedModel('[fdkLineClampTarget]', '[fdLineClampTarget], [fd-lineclamp-target]')
|
|
26
|
+
}
|
|
27
|
+
]
|
|
28
|
+
}]
|
|
29
|
+
}] });
|
|
30
|
+
export class DeprecatedLineClampDirective extends DeprecatedSelector {
|
|
31
|
+
}
|
|
32
|
+
DeprecatedLineClampDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedLineClampDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
33
|
+
DeprecatedLineClampDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: DeprecatedLineClampDirective, isStandalone: true, selector: "[fdLineClamp], [fd-lineclamp]", providers: [
|
|
34
|
+
{
|
|
35
|
+
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
36
|
+
useValue: getDeprecatedModel('[fdkLineClampTarget]', '[fdLineClamp], [fd-lineclamp]')
|
|
37
|
+
}
|
|
38
|
+
], usesInheritance: true, ngImport: i0 });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: DeprecatedLineClampDirective, decorators: [{
|
|
40
|
+
type: Directive,
|
|
41
|
+
args: [{
|
|
42
|
+
// eslint-disable-next-line @angular-eslint/directive-selector
|
|
43
|
+
selector: '[fdLineClamp], [fd-lineclamp]',
|
|
44
|
+
standalone: true,
|
|
45
|
+
providers: [
|
|
46
|
+
{
|
|
47
|
+
provide: FD_DEPRECATED_DIRECTIVE_SELECTOR,
|
|
48
|
+
useValue: getDeprecatedModel('[fdkLineClampTarget]', '[fdLineClamp], [fd-lineclamp]')
|
|
49
|
+
}
|
|
50
|
+
]
|
|
51
|
+
}]
|
|
52
|
+
}] });
|
|
53
|
+
export class LineClampTargetDirective {
|
|
54
|
+
/** @hidden */
|
|
55
|
+
constructor(_elementRef) {
|
|
56
|
+
this._elementRef = _elementRef;
|
|
57
|
+
/**
|
|
58
|
+
* Event with target instance for clamping
|
|
59
|
+
*/
|
|
60
|
+
this.update = new EventEmitter();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Native element of clamping target
|
|
64
|
+
*/
|
|
65
|
+
get targetElement() {
|
|
66
|
+
return this._elementRef.nativeElement;
|
|
67
|
+
}
|
|
68
|
+
/** @hidden */
|
|
69
|
+
ngOnChanges() {
|
|
70
|
+
this.update.emit(this);
|
|
71
|
+
}
|
|
72
|
+
/** @hidden */
|
|
73
|
+
ngAfterViewInit() {
|
|
74
|
+
this.update.emit(this);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
LineClampTargetDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LineClampTargetDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
78
|
+
LineClampTargetDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: LineClampTargetDirective, isStandalone: true, selector: "[fdkLineClampTarget], [fdLineClampTarget], [fd-lineclamp-target]", inputs: { fdLineClampTargetText: "fdLineClampTargetText" }, outputs: { update: "update" }, exportAs: ["fdLineClampTarget"], usesOnChanges: true, ngImport: i0 });
|
|
79
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LineClampTargetDirective, decorators: [{
|
|
80
|
+
type: Directive,
|
|
81
|
+
args: [{
|
|
82
|
+
selector: '[fdkLineClampTarget], [fdLineClampTarget], [fd-lineclamp-target]',
|
|
83
|
+
exportAs: 'fdLineClampTarget',
|
|
84
|
+
standalone: true
|
|
85
|
+
}]
|
|
86
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }]; }, propDecorators: { fdLineClampTargetText: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], update: [{
|
|
89
|
+
type: Output
|
|
90
|
+
}] } });
|
|
91
|
+
export class LineClampDirective {
|
|
92
|
+
/** @hidden */
|
|
93
|
+
constructor(_elementRef, _renderer, _cdRef) {
|
|
94
|
+
this._elementRef = _elementRef;
|
|
95
|
+
this._renderer = _renderer;
|
|
96
|
+
this._cdRef = _cdRef;
|
|
97
|
+
/**
|
|
98
|
+
* Clamping state
|
|
99
|
+
*/
|
|
100
|
+
this.fdLineclampState = false;
|
|
101
|
+
/**
|
|
102
|
+
* Event return count of lines from the target
|
|
103
|
+
*/
|
|
104
|
+
this.lineCountUpdate = new EventEmitter();
|
|
105
|
+
/** @hidden */
|
|
106
|
+
this._isNativeSupport = true;
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Count lines for clamping
|
|
110
|
+
*/
|
|
111
|
+
set fdLineClampLines(value) {
|
|
112
|
+
this._lineCount = coerceNumberProperty(value);
|
|
113
|
+
}
|
|
114
|
+
/** @hidden */
|
|
115
|
+
/**
|
|
116
|
+
* Root native element of clamping box
|
|
117
|
+
*/
|
|
118
|
+
get rootElement() {
|
|
119
|
+
return this._elementRef.nativeElement;
|
|
120
|
+
}
|
|
121
|
+
/** @hidden */
|
|
122
|
+
ngAfterViewInit() {
|
|
123
|
+
this._isNativeSupport = typeof this.rootElement.style.webkitLineClamp !== 'undefined';
|
|
124
|
+
// need to use setTimeout to force recheck of parent elements
|
|
125
|
+
setTimeout(() => {
|
|
126
|
+
this._checkLineCount();
|
|
127
|
+
});
|
|
128
|
+
this.windowResize$ = fromEvent(window, 'resize')
|
|
129
|
+
.pipe(distinctUntilChanged(), debounceTime(200))
|
|
130
|
+
.subscribe({
|
|
131
|
+
next: () => this._checkLineCount()
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
/** @hidden */
|
|
135
|
+
ngOnDestroy() {
|
|
136
|
+
if (this.windowResize$) {
|
|
137
|
+
this.windowResize$.unsubscribe();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** @hidden */
|
|
141
|
+
ngOnChanges() {
|
|
142
|
+
this.reset();
|
|
143
|
+
this.refreshClamp();
|
|
144
|
+
}
|
|
145
|
+
/** @hidden */
|
|
146
|
+
reset() {
|
|
147
|
+
if (this._lineClampTarget && this._originalText) {
|
|
148
|
+
this._lineClampTarget.textContent = this._originalText;
|
|
149
|
+
}
|
|
150
|
+
if (this._isNativeSupport) {
|
|
151
|
+
this._resetNative();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
/** @hidden */
|
|
155
|
+
refreshTarget(event) {
|
|
156
|
+
this._lineClampTarget = event.targetElement;
|
|
157
|
+
this._originalText = event.fdLineClampTargetText;
|
|
158
|
+
this.reset();
|
|
159
|
+
this.refreshClamp();
|
|
160
|
+
}
|
|
161
|
+
/** @hidden */
|
|
162
|
+
refreshClamp() {
|
|
163
|
+
if (this.fdLineclampState && this._lineCount) {
|
|
164
|
+
this.native();
|
|
165
|
+
if (!this._isNativeSupport) {
|
|
166
|
+
this._truncate();
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
/** @hidden
|
|
171
|
+
* Truncate text in the target box, if browser not support lineclamp style
|
|
172
|
+
*/
|
|
173
|
+
_truncate() {
|
|
174
|
+
if (!this._lineClampTarget) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
const lineClampHeight = Math.ceil(this.getLineHeight() * this._lineCount);
|
|
178
|
+
const ellipsisTextArray = this._originalText.split(' ');
|
|
179
|
+
const ellipsisText = () => {
|
|
180
|
+
if (this.rootElement.scrollHeight > lineClampHeight) {
|
|
181
|
+
ellipsisTextArray.pop();
|
|
182
|
+
this._lineClampTarget.textContent = ellipsisTextArray.join(' ') + '...';
|
|
183
|
+
ellipsisText.call(this);
|
|
184
|
+
}
|
|
185
|
+
};
|
|
186
|
+
ellipsisText();
|
|
187
|
+
}
|
|
188
|
+
/** @hidden
|
|
189
|
+
* Get lineheight for rootelement, if browser not support lineclamp style
|
|
190
|
+
*/
|
|
191
|
+
getLineHeight() {
|
|
192
|
+
const lineHeight = window.getComputedStyle(this.rootElement, null).getPropertyValue('line-height');
|
|
193
|
+
if (lineHeight === 'normal') {
|
|
194
|
+
return parseInt(window.getComputedStyle(this.rootElement, null).getPropertyValue('font-size'), 10) * 1.25;
|
|
195
|
+
}
|
|
196
|
+
return parseFloat(lineHeight);
|
|
197
|
+
}
|
|
198
|
+
/** @hidden
|
|
199
|
+
* Setup native styles for lineclamp text
|
|
200
|
+
*/
|
|
201
|
+
native() {
|
|
202
|
+
if (this._isNativeSupport) {
|
|
203
|
+
this._renderer.setStyle(this.rootElement, 'display', '-webkit-box');
|
|
204
|
+
this._renderer.setStyle(this.rootElement, 'overflow', 'hidden');
|
|
205
|
+
this._renderer.setStyle(this.rootElement, 'text-overflow', 'ellipsis');
|
|
206
|
+
this._renderer.setStyle(this.rootElement, '-webkit-box-orient', 'vertical');
|
|
207
|
+
this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', `${this._lineCount}`);
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
/** @hidden
|
|
211
|
+
* Reset native styles for lineclamp text
|
|
212
|
+
*/
|
|
213
|
+
_resetNative() {
|
|
214
|
+
if (this._isNativeSupport) {
|
|
215
|
+
this._renderer.setStyle(this.rootElement, 'display', '');
|
|
216
|
+
this._renderer.setStyle(this.rootElement, 'overflow', '');
|
|
217
|
+
this._renderer.setStyle(this.rootElement, 'text-overflow', '');
|
|
218
|
+
this._renderer.setStyle(this.rootElement, '-webkit-box-orient', '');
|
|
219
|
+
this._renderer.setStyle(this.rootElement, '-webkit-line-clamp', '');
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
/** @hidden */
|
|
223
|
+
_checkLineCount() {
|
|
224
|
+
if (!this.rootElement) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
const style = window.getComputedStyle(this.rootElement, null);
|
|
228
|
+
this.reset();
|
|
229
|
+
const fontSize = parseInt(style.getPropertyValue('font-size'), 10);
|
|
230
|
+
const boxSizing = style.getPropertyValue('box-sizing');
|
|
231
|
+
let height = parseInt(style.getPropertyValue('height'), 10);
|
|
232
|
+
let lineHeight = parseFloat(style.getPropertyValue('line-height'));
|
|
233
|
+
if (isNaN(lineHeight)) {
|
|
234
|
+
lineHeight = fontSize * 1.2;
|
|
235
|
+
}
|
|
236
|
+
if (boxSizing === 'border-box') {
|
|
237
|
+
const padding_top = parseInt(style.getPropertyValue('padding-top'), 10);
|
|
238
|
+
const padding_bottom = parseInt(style.getPropertyValue('padding-bottom'), 10);
|
|
239
|
+
const border_top = parseInt(style.getPropertyValue('border-top-width'), 10);
|
|
240
|
+
const border_bottom = parseInt(style.getPropertyValue('border-bottom-width'), 10);
|
|
241
|
+
height = height - padding_top - padding_bottom - border_top - border_bottom;
|
|
242
|
+
}
|
|
243
|
+
this.refreshClamp();
|
|
244
|
+
this.lineCountUpdate.emit(Math.ceil(height / lineHeight));
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
LineClampDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LineClampDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
248
|
+
LineClampDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.0.2", type: LineClampDirective, isStandalone: true, selector: "[fdkLineClamp], [fdLineClamp], [fd-lineclamp]", inputs: { fdLineClampLines: "fdLineClampLines", fdLineclampState: "fdLineclampState" }, outputs: { lineCountUpdate: "lineCountUpdate" }, exportAs: ["fdLineClamp"], usesOnChanges: true, ngImport: i0 });
|
|
249
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.2", ngImport: i0, type: LineClampDirective, decorators: [{
|
|
250
|
+
type: Directive,
|
|
251
|
+
args: [{
|
|
252
|
+
selector: '[fdkLineClamp], [fdLineClamp], [fd-lineclamp]',
|
|
253
|
+
exportAs: 'fdLineClamp',
|
|
254
|
+
standalone: true
|
|
255
|
+
}]
|
|
256
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { fdLineClampLines: [{
|
|
257
|
+
type: Input
|
|
258
|
+
}], fdLineclampState: [{
|
|
259
|
+
type: Input
|
|
260
|
+
}], lineCountUpdate: [{
|
|
261
|
+
type: Output
|
|
262
|
+
}] } });
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluZS1jbGFtcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL3V0aWxzL2RpcmVjdGl2ZXMvbGluZS1jbGFtcC9saW5lLWNsYW1wLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0gsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUlMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVwRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGdDQUFnQyxFQUNoQyxrQkFBa0IsRUFDckIsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFhekMsTUFBTSxPQUFPLGtDQUFtQyxTQUFRLGtCQUFrQjs7K0hBQTdELGtDQUFrQzttSEFBbEMsa0NBQWtDLHlGQVBoQztRQUNQO1lBQ0ksT0FBTyxFQUFFLGdDQUFnQztZQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsc0JBQXNCLEVBQUUsNENBQTRDLENBQUM7U0FDckc7S0FDSjsyRkFFUSxrQ0FBa0M7a0JBWDlDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsNENBQTRDO29CQUN0RCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxzQkFBc0IsRUFBRSw0Q0FBNEMsQ0FBQzt5QkFDckc7cUJBQ0o7aUJBQ0o7O0FBY0QsTUFBTSxPQUFPLDRCQUE2QixTQUFRLGtCQUFrQjs7eUhBQXZELDRCQUE0Qjs2R0FBNUIsNEJBQTRCLDRFQVAxQjtRQUNQO1lBQ0ksT0FBTyxFQUFFLGdDQUFnQztZQUN6QyxRQUFRLEVBQUUsa0JBQWtCLENBQUMsc0JBQXNCLEVBQUUsK0JBQStCLENBQUM7U0FDeEY7S0FDSjsyRkFFUSw0QkFBNEI7a0JBWHhDLFNBQVM7bUJBQUM7b0JBQ1AsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsK0JBQStCO29CQUN6QyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFO3dCQUNQOzRCQUNJLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLFFBQVEsRUFBRSxrQkFBa0IsQ0FBQyxzQkFBc0IsRUFBRSwrQkFBK0IsQ0FBQzt5QkFDeEY7cUJBQ0o7aUJBQ0o7O0FBUUQsTUFBTSxPQUFPLHdCQUF3QjtJQVlqQyxjQUFjO0lBQ2QsWUFBNkIsV0FBdUI7UUFBdkIsZ0JBQVcsR0FBWCxXQUFXLENBQVk7UUFOcEQ7O1dBRUc7UUFDTyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7SUFHVCxDQUFDO0lBRXhEOztPQUVHO0lBQ0gsSUFBSSxhQUFhO1FBQ2IsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQztJQUMxQyxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBRUQsY0FBYztJQUNkLGVBQWU7UUFDWCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQixDQUFDOztxSEE5QlEsd0JBQXdCO3lHQUF4Qix3QkFBd0I7MkZBQXhCLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0VBQWtFO29CQUM1RSxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7aUdBTUcscUJBQXFCO3NCQURwQixLQUFLO2dCQU1JLE1BQU07c0JBQWYsTUFBTTs7QUE0QlgsTUFBTSxPQUFPLGtCQUFrQjtJQXdDM0IsY0FBYztJQUNkLFlBQ3FCLFdBQXVCLEVBQ3ZCLFNBQW9CLEVBQ3BCLE1BQXlCO1FBRnpCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFuQzlDOztXQUVHO1FBRUgscUJBQWdCLEdBQUcsS0FBSyxDQUFDO1FBRXpCOztXQUVHO1FBRUgsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBUTdDLGNBQWM7UUFDTixxQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFpQjdCLENBQUM7SUE1Q0o7O09BRUc7SUFDSCxJQUNJLGdCQUFnQixDQUFDLEtBQXVCO1FBQ3hDLElBQUksQ0FBQyxVQUFVLEdBQUcsb0JBQW9CLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQXlCRCxjQUFjO0lBQ2Q7O09BRUc7SUFDSCxJQUFJLFdBQVc7UUFDWCxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO0lBQzFDLENBQUM7SUFTRCxjQUFjO0lBQ2QsZUFBZTtRQUNYLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGVBQWUsS0FBSyxXQUFXLENBQUM7UUFFdEYsNkRBQTZEO1FBQzdELFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDWixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsYUFBYSxHQUFHLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO2FBQzNDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMvQyxTQUFTLENBQUM7WUFDUCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRTtTQUNyQyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsY0FBYztJQUNkLFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDcEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxXQUFXLEVBQUUsQ0FBQztTQUNwQztJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsV0FBVztRQUNQLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYztJQUNkLEtBQUs7UUFDRCxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsYUFBYSxFQUFFO1lBQzdDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztTQUMxRDtRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztTQUN2QjtJQUNMLENBQUM7SUFFRCxjQUFjO0lBQ2QsYUFBYSxDQUFDLEtBQStCO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLHFCQUFxQixDQUFDO1FBQ2pELElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNiLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsY0FBYztJQUNkLFlBQVk7UUFDUixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQzFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQzthQUNwQjtTQUNKO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssU0FBUztRQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7WUFDeEIsT0FBTztTQUNWO1FBQ0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzFFLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEQsTUFBTSxZQUFZLEdBQUcsR0FBUyxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEdBQUcsZUFBZSxFQUFFO2dCQUNqRCxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQztnQkFDeEIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO2dCQUN4RSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzNCO1FBQ0wsQ0FBQyxDQUFDO1FBQ0YsWUFBWSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYTtRQUNqQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNuRyxJQUFJLFVBQVUsS0FBSyxRQUFRLEVBQUU7WUFDekIsT0FBTyxRQUFRLENBQUMsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1NBQzdHO1FBRUQsT0FBTyxVQUFVLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ssTUFBTTtRQUNWLElBQUksSUFBSSxDQUFDLGdCQUFnQixFQUFFO1lBQ3ZCLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1lBQ2hFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsVUFBVSxDQUFDLENBQUM7WUFDNUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1NBQ3pGO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0ssWUFBWTtRQUNoQixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtZQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLG9CQUFvQixFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsb0JBQW9CLEVBQUUsRUFBRSxDQUFDLENBQUM7U0FDdkU7SUFDTCxDQUFDO0lBRUQsY0FBYztJQUNOLGVBQWU7UUFDbkIsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUU7WUFDbkIsT0FBTztTQUNWO1FBQ0QsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFOUQsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRWIsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNuRSxNQUFNLFNBQVMsR0FBRyxLQUFLLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkQsSUFBSSxNQUFNLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUFJLFVBQVUsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDbkUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLEVBQUU7WUFDbkIsVUFBVSxHQUFHLFFBQVEsR0FBRyxHQUFHLENBQUM7U0FDL0I7UUFDRCxJQUFJLFNBQVMsS0FBSyxZQUFZLEVBQUU7WUFDNUIsTUFBTSxXQUFXLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN4RSxNQUFNLGNBQWMsR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLGdCQUFnQixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDOUUsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQyxrQkFBa0IsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQzVFLE1BQU0sYUFBYSxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUNsRixNQUFNLEdBQUcsTUFBTSxHQUFHLFdBQVcsR0FBRyxjQUFjLEdBQUcsVUFBVSxHQUFHLGFBQWEsQ0FBQztTQUMvRTtRQUNELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7OytHQTFMUSxrQkFBa0I7bUdBQWxCLGtCQUFrQjsyRkFBbEIsa0JBQWtCO2tCQUw5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSwrQ0FBK0M7b0JBQ3pELFFBQVEsRUFBRSxhQUFhO29CQUN2QixVQUFVLEVBQUUsSUFBSTtpQkFDbkI7eUpBTU8sZ0JBQWdCO3NCQURuQixLQUFLO2dCQVNOLGdCQUFnQjtzQkFEZixLQUFLO2dCQU9OLGVBQWU7c0JBRGQsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIEFmdGVyVmlld0luaXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPdXRwdXQsXG4gICAgUmVuZGVyZXIyLFxuICAgIENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZnJvbUV2ZW50LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBOdWxsYWJsZSB9IGZyb20gJy4uLy4uL21vZGVscy9udWxsYWJsZSc7XG5pbXBvcnQge1xuICAgIERlcHJlY2F0ZWRTZWxlY3RvcixcbiAgICBGRF9ERVBSRUNBVEVEX0RJUkVDVElWRV9TRUxFQ1RPUixcbiAgICBnZXREZXByZWNhdGVkTW9kZWxcbn0gZnJvbSAnLi4vLi4vZGVwcmVjYXRlZC1zZWxlY3Rvci5jbGFzcyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gICAgc2VsZWN0b3I6ICdbZmRMaW5lQ2xhbXBUYXJnZXRdLCBbZmQtbGluZWNsYW1wLXRhcmdldF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka0xpbmVDbGFtcFRhcmdldF0nLCAnW2ZkTGluZUNsYW1wVGFyZ2V0XSwgW2ZkLWxpbmVjbGFtcC10YXJnZXRdJylcbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgRGVwcmVjYXRlZExpbmVDbGFtcFRhcmdldERpcmVjdGl2ZSBleHRlbmRzIERlcHJlY2F0ZWRTZWxlY3RvciB7fVxuXG5ARGlyZWN0aXZlKHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICAgIHNlbGVjdG9yOiAnW2ZkTGluZUNsYW1wXSwgW2ZkLWxpbmVjbGFtcF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZEX0RFUFJFQ0FURURfRElSRUNUSVZFX1NFTEVDVE9SLFxuICAgICAgICAgICAgdXNlVmFsdWU6IGdldERlcHJlY2F0ZWRNb2RlbCgnW2Zka0xpbmVDbGFtcFRhcmdldF0nLCAnW2ZkTGluZUNsYW1wXSwgW2ZkLWxpbmVjbGFtcF0nKVxuICAgICAgICB9XG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBEZXByZWNhdGVkTGluZUNsYW1wRGlyZWN0aXZlIGV4dGVuZHMgRGVwcmVjYXRlZFNlbGVjdG9yIHt9XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0xpbmVDbGFtcFRhcmdldF0sIFtmZExpbmVDbGFtcFRhcmdldF0sIFtmZC1saW5lY2xhbXAtdGFyZ2V0XScsXG4gICAgZXhwb3J0QXM6ICdmZExpbmVDbGFtcFRhcmdldCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBMaW5lQ2xhbXBUYXJnZXREaXJlY3RpdmUgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyVmlld0luaXQge1xuICAgIC8qKlxuICAgICAqIFRhcmdldCB0ZXh0IGZvciBjbGFtcGluZ1xuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmRMaW5lQ2xhbXBUYXJnZXRUZXh0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCB3aXRoIHRhcmdldCBpbnN0YW5jZSBmb3IgY2xhbXBpbmdcbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgdXBkYXRlID0gbmV3IEV2ZW50RW1pdHRlcjxMaW5lQ2xhbXBUYXJnZXREaXJlY3RpdmU+KCk7XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHt9XG5cbiAgICAvKipcbiAgICAgKiBOYXRpdmUgZWxlbWVudCBvZiBjbGFtcGluZyB0YXJnZXRcbiAgICAgKi9cbiAgICBnZXQgdGFyZ2V0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uQ2hhbmdlcygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGUuZW1pdCh0aGlzKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGUuZW1pdCh0aGlzKTtcbiAgICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2Zka0xpbmVDbGFtcF0sIFtmZExpbmVDbGFtcF0sIFtmZC1saW5lY2xhbXBdJyxcbiAgICBleHBvcnRBczogJ2ZkTGluZUNsYW1wJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIExpbmVDbGFtcERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBDb3VudCBsaW5lcyBmb3IgY2xhbXBpbmdcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHNldCBmZExpbmVDbGFtcExpbmVzKHZhbHVlOiBOdWxsYWJsZTxudW1iZXI+KSB7XG4gICAgICAgIHRoaXMuX2xpbmVDb3VudCA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDbGFtcGluZyBzdGF0ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZmRMaW5lY2xhbXBTdGF0ZSA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRXZlbnQgcmV0dXJuIGNvdW50IG9mIGxpbmVzIGZyb20gdGhlIHRhcmdldFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIGxpbmVDb3VudFVwZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saW5lQ2xhbXBUYXJnZXQ6IEhUTUxFbGVtZW50O1xuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfb3JpZ2luYWxUZXh0OiBzdHJpbmc7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIHdpbmRvd1Jlc2l6ZSQ6IFN1YnNjcmlwdGlvbjtcbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIHByaXZhdGUgX2lzTmF0aXZlU3VwcG9ydCA9IHRydWU7XG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBwcml2YXRlIF9saW5lQ291bnQ6IG51bWJlcjtcblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgLyoqXG4gICAgICogUm9vdCBuYXRpdmUgZWxlbWVudCBvZiBjbGFtcGluZyBib3hcbiAgICAgKi9cbiAgICBnZXQgcm9vdEVsZW1lbnQoKTogSFRNTEVsZW1lbnQge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX3JlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgX2NkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICAgICkge31cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLl9pc05hdGl2ZVN1cHBvcnQgPSB0eXBlb2YgdGhpcy5yb290RWxlbWVudC5zdHlsZS53ZWJraXRMaW5lQ2xhbXAgIT09ICd1bmRlZmluZWQnO1xuXG4gICAgICAgIC8vIG5lZWQgdG8gdXNlIHNldFRpbWVvdXQgdG8gZm9yY2UgcmVjaGVjayBvZiBwYXJlbnQgZWxlbWVudHNcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLl9jaGVja0xpbmVDb3VudCgpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLndpbmRvd1Jlc2l6ZSQgPSBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcbiAgICAgICAgICAgIC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksIGRlYm91bmNlVGltZSgyMDApKVxuICAgICAgICAgICAgLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogKCkgPT4gdGhpcy5fY2hlY2tMaW5lQ291bnQoKVxuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMud2luZG93UmVzaXplJCkge1xuICAgICAgICAgICAgdGhpcy53aW5kb3dSZXNpemUkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiAqL1xuICAgIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIHRoaXMucmVmcmVzaENsYW1wKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZXNldCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuX2xpbmVDbGFtcFRhcmdldCAmJiB0aGlzLl9vcmlnaW5hbFRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuX2xpbmVDbGFtcFRhcmdldC50ZXh0Q29udGVudCA9IHRoaXMuX29yaWdpbmFsVGV4dDtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5faXNOYXRpdmVTdXBwb3J0KSB7XG4gICAgICAgICAgICB0aGlzLl9yZXNldE5hdGl2ZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWZyZXNoVGFyZ2V0KGV2ZW50OiBMaW5lQ2xhbXBUYXJnZXREaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fbGluZUNsYW1wVGFyZ2V0ID0gZXZlbnQudGFyZ2V0RWxlbWVudDtcbiAgICAgICAgdGhpcy5fb3JpZ2luYWxUZXh0ID0gZXZlbnQuZmRMaW5lQ2xhbXBUYXJnZXRUZXh0O1xuICAgICAgICB0aGlzLnJlc2V0KCk7XG4gICAgICAgIHRoaXMucmVmcmVzaENsYW1wKCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gKi9cbiAgICByZWZyZXNoQ2xhbXAoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZkTGluZWNsYW1wU3RhdGUgJiYgdGhpcy5fbGluZUNvdW50KSB7XG4gICAgICAgICAgICB0aGlzLm5hdGl2ZSgpO1xuICAgICAgICAgICAgaWYgKCF0aGlzLl9pc05hdGl2ZVN1cHBvcnQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl90cnVuY2F0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBUcnVuY2F0ZSB0ZXh0IGluIHRoZSB0YXJnZXQgYm94LCBpZiBicm93c2VyIG5vdCBzdXBwb3J0IGxpbmVjbGFtcCBzdHlsZVxuICAgICAqL1xuICAgIHByaXZhdGUgX3RydW5jYXRlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuX2xpbmVDbGFtcFRhcmdldCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGxpbmVDbGFtcEhlaWdodCA9IE1hdGguY2VpbCh0aGlzLmdldExpbmVIZWlnaHQoKSAqIHRoaXMuX2xpbmVDb3VudCk7XG4gICAgICAgIGNvbnN0IGVsbGlwc2lzVGV4dEFycmF5ID0gdGhpcy5fb3JpZ2luYWxUZXh0LnNwbGl0KCcgJyk7XG4gICAgICAgIGNvbnN0IGVsbGlwc2lzVGV4dCA9ICgpOiB2b2lkID0+IHtcbiAgICAgICAgICAgIGlmICh0aGlzLnJvb3RFbGVtZW50LnNjcm9sbEhlaWdodCA+IGxpbmVDbGFtcEhlaWdodCkge1xuICAgICAgICAgICAgICAgIGVsbGlwc2lzVGV4dEFycmF5LnBvcCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2xpbmVDbGFtcFRhcmdldC50ZXh0Q29udGVudCA9IGVsbGlwc2lzVGV4dEFycmF5LmpvaW4oJyAnKSArICcuLi4nO1xuICAgICAgICAgICAgICAgIGVsbGlwc2lzVGV4dC5jYWxsKHRoaXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBlbGxpcHNpc1RleHQoKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIEdldCBsaW5laGVpZ2h0IGZvciByb290ZWxlbWVudCwgaWYgYnJvd3NlciBub3Qgc3VwcG9ydCBsaW5lY2xhbXAgc3R5bGVcbiAgICAgKi9cbiAgICBwcml2YXRlIGdldExpbmVIZWlnaHQoKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbGluZUhlaWdodCA9IHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucm9vdEVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVpZ2h0Jyk7XG4gICAgICAgIGlmIChsaW5lSGVpZ2h0ID09PSAnbm9ybWFsJykge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMucm9vdEVsZW1lbnQsIG51bGwpLmdldFByb3BlcnR5VmFsdWUoJ2ZvbnQtc2l6ZScpLCAxMCkgKiAxLjI1O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHBhcnNlRmxvYXQobGluZUhlaWdodCk7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW5cbiAgICAgKiBTZXR1cCBuYXRpdmUgc3R5bGVzIGZvciBsaW5lY2xhbXAgdGV4dFxuICAgICAqL1xuICAgIHByaXZhdGUgbmF0aXZlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5faXNOYXRpdmVTdXBwb3J0KSB7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnJvb3RFbGVtZW50LCAnZGlzcGxheScsICctd2Via2l0LWJveCcpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yb290RWxlbWVudCwgJ292ZXJmbG93JywgJ2hpZGRlbicpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yb290RWxlbWVudCwgJ3RleHQtb3ZlcmZsb3cnLCAnZWxsaXBzaXMnKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMucm9vdEVsZW1lbnQsICctd2Via2l0LWJveC1vcmllbnQnLCAndmVydGljYWwnKTtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMucm9vdEVsZW1lbnQsICctd2Via2l0LWxpbmUtY2xhbXAnLCBgJHt0aGlzLl9saW5lQ291bnR9YCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlblxuICAgICAqIFJlc2V0IG5hdGl2ZSBzdHlsZXMgZm9yIGxpbmVjbGFtcCB0ZXh0XG4gICAgICovXG4gICAgcHJpdmF0ZSBfcmVzZXROYXRpdmUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLl9pc05hdGl2ZVN1cHBvcnQpIHtcbiAgICAgICAgICAgIHRoaXMuX3JlbmRlcmVyLnNldFN0eWxlKHRoaXMucm9vdEVsZW1lbnQsICdkaXNwbGF5JywgJycpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yb290RWxlbWVudCwgJ292ZXJmbG93JywgJycpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yb290RWxlbWVudCwgJ3RleHQtb3ZlcmZsb3cnLCAnJyk7XG4gICAgICAgICAgICB0aGlzLl9yZW5kZXJlci5zZXRTdHlsZSh0aGlzLnJvb3RFbGVtZW50LCAnLXdlYmtpdC1ib3gtb3JpZW50JywgJycpO1xuICAgICAgICAgICAgdGhpcy5fcmVuZGVyZXIuc2V0U3R5bGUodGhpcy5yb290RWxlbWVudCwgJy13ZWJraXQtbGluZS1jbGFtcCcsICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuICovXG4gICAgcHJpdmF0ZSBfY2hlY2tMaW5lQ291bnQoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5yb290RWxlbWVudCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHN0eWxlID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5yb290RWxlbWVudCwgbnVsbCk7XG5cbiAgICAgICAgdGhpcy5yZXNldCgpO1xuXG4gICAgICAgIGNvbnN0IGZvbnRTaXplID0gcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnZm9udC1zaXplJyksIDEwKTtcbiAgICAgICAgY29uc3QgYm94U2l6aW5nID0gc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm94LXNpemluZycpO1xuICAgICAgICBsZXQgaGVpZ2h0ID0gcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnaGVpZ2h0JyksIDEwKTtcbiAgICAgICAgbGV0IGxpbmVIZWlnaHQgPSBwYXJzZUZsb2F0KHN0eWxlLmdldFByb3BlcnR5VmFsdWUoJ2xpbmUtaGVpZ2h0JykpO1xuICAgICAgICBpZiAoaXNOYU4obGluZUhlaWdodCkpIHtcbiAgICAgICAgICAgIGxpbmVIZWlnaHQgPSBmb250U2l6ZSAqIDEuMjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYm94U2l6aW5nID09PSAnYm9yZGVyLWJveCcpIHtcbiAgICAgICAgICAgIGNvbnN0IHBhZGRpbmdfdG9wID0gcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgncGFkZGluZy10b3AnKSwgMTApO1xuICAgICAgICAgICAgY29uc3QgcGFkZGluZ19ib3R0b20gPSBwYXJzZUludChzdHlsZS5nZXRQcm9wZXJ0eVZhbHVlKCdwYWRkaW5nLWJvdHRvbScpLCAxMCk7XG4gICAgICAgICAgICBjb25zdCBib3JkZXJfdG9wID0gcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLXRvcC13aWR0aCcpLCAxMCk7XG4gICAgICAgICAgICBjb25zdCBib3JkZXJfYm90dG9tID0gcGFyc2VJbnQoc3R5bGUuZ2V0UHJvcGVydHlWYWx1ZSgnYm9yZGVyLWJvdHRvbS13aWR0aCcpLCAxMCk7XG4gICAgICAgICAgICBoZWlnaHQgPSBoZWlnaHQgLSBwYWRkaW5nX3RvcCAtIHBhZGRpbmdfYm90dG9tIC0gYm9yZGVyX3RvcCAtIGJvcmRlcl9ib3R0b207XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5yZWZyZXNoQ2xhbXAoKTtcbiAgICAgICAgdGhpcy5saW5lQ291bnRVcGRhdGUuZW1pdChNYXRoLmNlaWwoaGVpZ2h0IC8gbGluZUhlaWdodCkpO1xuICAgIH1cbn1cbiJdfQ==
|