@leanix/components 0.4.531 → 0.4.532
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/leanix-components.mjs +365 -365
- package/fesm2022/leanix-components.mjs.map +1 -1
- package/lib/core-ui/tooltip/tooltip.directive.d.ts +1 -1
- package/lib/forms-ui/components/keyboard-select.directive.d.ts +1 -1
- package/lib/forms-ui/models/base-select.directive.d.ts +1 -1
- package/lib/tab-ui/components/tab-group/tab-group.component.d.ts +1 -1
- package/package.json +10 -14
- package/esm2022/index.mjs +0 -145
- package/esm2022/leanix-components.mjs +0 -5
- package/esm2022/lib/core-ui/components/avatar/avatar.component.mjs +0 -40
- package/esm2022/lib/core-ui/components/avatar/avatar.helpers.mjs +0 -49
- package/esm2022/lib/core-ui/components/avatar/avatar.model.mjs +0 -33
- package/esm2022/lib/core-ui/components/avatar-group/avatar-group.component.mjs +0 -75
- package/esm2022/lib/core-ui/components/badge/badge.component.mjs +0 -58
- package/esm2022/lib/core-ui/components/banner/banner.component.mjs +0 -68
- package/esm2022/lib/core-ui/components/banner/banner.models.mjs +0 -12
- package/esm2022/lib/core-ui/components/button/button.component.mjs +0 -179
- package/esm2022/lib/core-ui/components/button-group/button-group.component.mjs +0 -28
- package/esm2022/lib/core-ui/components/card/card.component.mjs +0 -26
- package/esm2022/lib/core-ui/components/collapsible/collapsible.component.mjs +0 -52
- package/esm2022/lib/core-ui/components/counter/counter.component.mjs +0 -30
- package/esm2022/lib/core-ui/components/ellipsis/ellipsis.component.mjs +0 -143
- package/esm2022/lib/core-ui/components/empty-state/empty-state.component.mjs +0 -41
- package/esm2022/lib/core-ui/components/icon-scale/icon-scale.component.mjs +0 -36
- package/esm2022/lib/core-ui/components/skeleton/skeleton.component.mjs +0 -44
- package/esm2022/lib/core-ui/components/spinner/spinner.component.mjs +0 -26
- package/esm2022/lib/core-ui/components/stepper/stepper.component.mjs +0 -70
- package/esm2022/lib/core-ui/components/table/table-header/table-header.component.mjs +0 -128
- package/esm2022/lib/core-ui/components/table/table.component.mjs +0 -77
- package/esm2022/lib/core-ui/components/tiny-spinner/tiny-spinner.component.mjs +0 -14
- package/esm2022/lib/core-ui/components/tokenizer/token/token.component.mjs +0 -20
- package/esm2022/lib/core-ui/components/tokenizer/tokenizer-overflow-popover/tokenizer-overflow-popover.component.mjs +0 -44
- package/esm2022/lib/core-ui/components/tokenizer/tokenizer.component.mjs +0 -149
- package/esm2022/lib/core-ui/core-ui.constants.mjs +0 -240
- package/esm2022/lib/core-ui/core-ui.module.mjs +0 -206
- package/esm2022/lib/core-ui/directives/after-view-init.directive.mjs +0 -33
- package/esm2022/lib/core-ui/directives/autoclose-group.service.mjs +0 -39
- package/esm2022/lib/core-ui/directives/autoclose.directive.mjs +0 -43
- package/esm2022/lib/core-ui/directives/autofocus.directive.mjs +0 -36
- package/esm2022/lib/core-ui/functions/core-css.helpers.mjs +0 -52
- package/esm2022/lib/core-ui/functions/highlight-text.function.mjs +0 -80
- package/esm2022/lib/core-ui/linkify/linkify.pipe.mjs +0 -146
- package/esm2022/lib/core-ui/linkify/unlinkify.pipe.mjs +0 -51
- package/esm2022/lib/core-ui/pipes/br.pipe.mjs +0 -24
- package/esm2022/lib/core-ui/pipes/contrast-color.pipe.mjs +0 -21
- package/esm2022/lib/core-ui/pipes/custom-date.pipe.mjs +0 -28
- package/esm2022/lib/core-ui/pipes/display-avatars.pipe.mjs +0 -37
- package/esm2022/lib/core-ui/pipes/highlight-range.pipe.mjs +0 -29
- package/esm2022/lib/core-ui/pipes/highlight-term.pipe.mjs +0 -57
- package/esm2022/lib/core-ui/pipes/lx-is-uuid.pipe.mjs +0 -22
- package/esm2022/lib/core-ui/pipes/lx-time-ago.pipe.mjs +0 -29
- package/esm2022/lib/core-ui/pipes/lx-translate.pipe.mjs +0 -50
- package/esm2022/lib/core-ui/pipes/markdown.pipe.mjs +0 -32
- package/esm2022/lib/core-ui/pipes/nbsp.pipe.mjs +0 -17
- package/esm2022/lib/core-ui/pipes/sort.pipe.mjs +0 -55
- package/esm2022/lib/core-ui/pipes/translation-after.pipe.mjs +0 -29
- package/esm2022/lib/core-ui/pipes/translation-before.pipe.mjs +0 -54
- package/esm2022/lib/core-ui/pipes/translation-between.pipe.mjs +0 -68
- package/esm2022/lib/core-ui/pipes/unescape-curly-braces.pipe.mjs +0 -17
- package/esm2022/lib/core-ui/services/resize-observer.service.mjs +0 -112
- package/esm2022/lib/core-ui/tooltip/to-cdk-position.function.mjs +0 -74
- package/esm2022/lib/core-ui/tooltip/tooltip-position.interface.mjs +0 -7
- package/esm2022/lib/core-ui/tooltip/tooltip.component.mjs +0 -26
- package/esm2022/lib/core-ui/tooltip/tooltip.directive.mjs +0 -117
- package/esm2022/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.mjs +0 -139
- package/esm2022/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.mjs +0 -38
- package/esm2022/lib/forms-ui/components/breadcrumb/breadcrumb.component.mjs +0 -55
- package/esm2022/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.mjs +0 -215
- package/esm2022/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.mjs +0 -135
- package/esm2022/lib/forms-ui/components/currency/currency-input.component.mjs +0 -159
- package/esm2022/lib/forms-ui/components/currency/currency-symbol-map.constant.mjs +0 -105
- package/esm2022/lib/forms-ui/components/currency/currency-symbol.component.mjs +0 -24
- package/esm2022/lib/forms-ui/components/date-input/date-input.component.mjs +0 -347
- package/esm2022/lib/forms-ui/components/date-picker-ui/date-formatter.mjs +0 -8
- package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker-inner.component.mjs +0 -312
- package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker-ui.module.mjs +0 -20
- package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker.component.mjs +0 -206
- package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker.config.mjs +0 -29
- package/esm2022/lib/forms-ui/components/date-picker-ui/daypicker.component.mjs +0 -319
- package/esm2022/lib/forms-ui/components/date-picker-ui/isBs3.mjs +0 -2
- package/esm2022/lib/forms-ui/components/date-picker-ui/monthpicker.component.mjs +0 -149
- package/esm2022/lib/forms-ui/components/date-picker-ui/yearpicker.component.mjs +0 -151
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/constants.mjs +0 -5
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.mjs +0 -49
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.mjs +0 -120
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.module.mjs +0 -39
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-item/keyboard-sortable-item.directive.mjs +0 -137
- package/esm2022/lib/forms-ui/components/drag-and-drop-list/keyboard-sortable-list/keyboard-sortable-list.directive.mjs +0 -38
- package/esm2022/lib/forms-ui/components/error-message/error-message.component.mjs +0 -16
- package/esm2022/lib/forms-ui/components/expanded-dropdown/expanded-dropdown.component.mjs +0 -26
- package/esm2022/lib/forms-ui/components/form-error/form-error.component.mjs +0 -44
- package/esm2022/lib/forms-ui/components/icon/icon.component.mjs +0 -45
- package/esm2022/lib/forms-ui/components/input/input.component.mjs +0 -48
- package/esm2022/lib/forms-ui/components/keyboard-select.directive.mjs +0 -126
- package/esm2022/lib/forms-ui/components/multi-select/multi-select-selection/multi-select-selection.component.mjs +0 -28
- package/esm2022/lib/forms-ui/components/multi-select/multi-select.component.mjs +0 -318
- package/esm2022/lib/forms-ui/components/option/option.component.mjs +0 -99
- package/esm2022/lib/forms-ui/components/option-group/option-group.component.mjs +0 -29
- package/esm2022/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.mjs +0 -123
- package/esm2022/lib/forms-ui/components/options-dropdown/options-dropdown.component.mjs +0 -297
- package/esm2022/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.mjs +0 -94
- package/esm2022/lib/forms-ui/components/picker/picker-trigger.directive.mjs +0 -47
- package/esm2022/lib/forms-ui/components/picker/picker.component.mjs +0 -218
- package/esm2022/lib/forms-ui/components/picker-option/picker-option.component.mjs +0 -118
- package/esm2022/lib/forms-ui/components/pill-item/pill-item.component.mjs +0 -33
- package/esm2022/lib/forms-ui/components/pill-list/pill-list.component.mjs +0 -58
- package/esm2022/lib/forms-ui/components/responsive-input/responsive-input.component.mjs +0 -101
- package/esm2022/lib/forms-ui/components/select-list/select-list.component.mjs +0 -178
- package/esm2022/lib/forms-ui/components/single-select/single-select.component.mjs +0 -290
- package/esm2022/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.mjs +0 -71
- package/esm2022/lib/forms-ui/components/sorting-dropdown-trigger/sorting-dropdown-trigger.component.mjs +0 -21
- package/esm2022/lib/forms-ui/components/switch/switch.component.mjs +0 -51
- package/esm2022/lib/forms-ui/directives/contenteditable.directive.mjs +0 -130
- package/esm2022/lib/forms-ui/directives/form-error.directive.mjs +0 -121
- package/esm2022/lib/forms-ui/directives/form-submit.directive.mjs +0 -29
- package/esm2022/lib/forms-ui/directives/keyboard-action-source.directive.mjs +0 -63
- package/esm2022/lib/forms-ui/directives/mark-invalid.directive.mjs +0 -39
- package/esm2022/lib/forms-ui/directives/max-length-counter.directive.mjs +0 -131
- package/esm2022/lib/forms-ui/directives/select-dropdown.directive.mjs +0 -32
- package/esm2022/lib/forms-ui/directives/selectable-item.directive.mjs +0 -34
- package/esm2022/lib/forms-ui/directives/selected-option.directive.mjs +0 -27
- package/esm2022/lib/forms-ui/forms-ui.module.mjs +0 -270
- package/esm2022/lib/forms-ui/helpers/key-codes.constants.mjs +0 -13
- package/esm2022/lib/forms-ui/helpers/keyboard-navigation.helpers.mjs +0 -38
- package/esm2022/lib/forms-ui/models/base-select.directive.mjs +0 -183
- package/esm2022/lib/forms-ui/models/dropdown-item.interface.mjs +0 -2
- package/esm2022/lib/forms-ui/models/single-select-padding.interface.mjs +0 -2
- package/esm2022/lib/forms-ui/models/sorting.interface.mjs +0 -7
- package/esm2022/lib/forms-ui/pipes/filter-selection.pipe.mjs +0 -33
- package/esm2022/lib/forms-ui/pipes/filter-term.pipe.mjs +0 -29
- package/esm2022/lib/forms-ui/pipes/format-number.pipe.mjs +0 -66
- package/esm2022/lib/forms-ui/validators/date-in-foreseeable-future.validator.mjs +0 -26
- package/esm2022/lib/forms-ui/validators/string-not-in-array.validator.mjs +0 -30
- package/esm2022/lib/modal-ui/components/modal/modal.component.mjs +0 -264
- package/esm2022/lib/modal-ui/components/modal-footer/modal-footer.component.mjs +0 -16
- package/esm2022/lib/modal-ui/components/modal-header/modal-header.component.mjs +0 -19
- package/esm2022/lib/modal-ui/directives/modal-content.directive.mjs +0 -14
- package/esm2022/lib/modal-ui/modal.constants.mjs +0 -18
- package/esm2022/lib/modal-ui/modal.module.mjs +0 -47
- package/esm2022/lib/popover-ui/components/popover/popover.component.mjs +0 -228
- package/esm2022/lib/popover-ui/directives/popover-click.directive.mjs +0 -52
- package/esm2022/lib/popover-ui/directives/popover-content.directive.mjs +0 -17
- package/esm2022/lib/popover-ui/directives/popover-hover.directive.mjs +0 -88
- package/esm2022/lib/popover-ui/popover-ui.module.mjs +0 -21
- package/esm2022/lib/shared/date-helpers.mjs +0 -35
- package/esm2022/lib/shared/html-helpers.function.mjs +0 -34
- package/esm2022/lib/shared/misc-helpers.mjs +0 -24
- package/esm2022/lib/shared/observe.mjs +0 -40
- package/esm2022/lib/tab-ui/components/tab/tab.component.mjs +0 -118
- package/esm2022/lib/tab-ui/components/tab-group/tab-group-key-codes.enum.mjs +0 -12
- package/esm2022/lib/tab-ui/components/tab-group/tab-group.component.mjs +0 -150
- package/esm2022/lib/tab-ui/tab-ui.module.mjs +0 -20
- package/esm2022/ui5/icons/lx-icons.json +0 -177
- package/esm2022/ui5/icons/register-icons.mjs +0 -14
- package/esm2022/ui5/index.mjs +0 -8
- package/esm2022/ui5/leanix-components-ui5.mjs +0 -5
- package/esm2022/ui5/ui5.provider.mjs +0 -29
@@ -1,40 +0,0 @@
|
|
1
|
-
import { BehaviorSubject } from 'rxjs';
|
2
|
-
import { map, skipWhile } from 'rxjs/operators';
|
3
|
-
/**
|
4
|
-
* Observe creates an Observable stream and notifies the changes from an observed property.
|
5
|
-
*
|
6
|
-
* @example
|
7
|
-
* Input() foo: string;
|
8
|
-
* @Observe('foo') foo$: Observable<string>;
|
9
|
-
*/
|
10
|
-
export function Observe(observedKey) {
|
11
|
-
// eslint-disable-next-line @typescript-eslint/no-wrapper-object-types
|
12
|
-
return (target, key) => {
|
13
|
-
const subjects = new WeakMap();
|
14
|
-
const getSubject = (instance) => {
|
15
|
-
if (!subjects.has(instance)) {
|
16
|
-
subjects.set(instance, new BehaviorSubject(undefined));
|
17
|
-
}
|
18
|
-
return subjects.get(instance) || new BehaviorSubject(undefined);
|
19
|
-
};
|
20
|
-
Object.defineProperty(target, key, {
|
21
|
-
get() {
|
22
|
-
return getSubject(this).pipe(
|
23
|
-
// An initial `undefined` value is triggered above when initializing the subject for a given instance.
|
24
|
-
// This skips the initial `undefined` values, until a defined value is provided. Then, no values
|
25
|
-
// are removed from the stream.
|
26
|
-
skipWhile((value) => value === undefined), map((value) => value) // required for TS null check
|
27
|
-
);
|
28
|
-
}
|
29
|
-
});
|
30
|
-
Object.defineProperty(target, observedKey, {
|
31
|
-
get() {
|
32
|
-
return getSubject(this).getValue();
|
33
|
-
},
|
34
|
-
set(instanceNewValue) {
|
35
|
-
getSubject(this).next(instanceNewValue);
|
36
|
-
}
|
37
|
-
});
|
38
|
-
};
|
39
|
-
}
|
40
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3NoYXJlZC9vYnNlcnZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkQsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsT0FBTyxDQUFJLFdBQW1CO0lBQzVDLHNFQUFzRTtJQUN0RSxPQUFPLENBQUMsTUFBYyxFQUFFLEdBQW9CLEVBQVEsRUFBRTtRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBMkQsQ0FBQztRQUV4RixNQUFNLFVBQVUsR0FBRyxDQUFDLFFBQWlDLEVBQUUsRUFBRTtZQUN2RCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO2dCQUM1QixRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLGVBQWUsQ0FBZ0IsU0FBUyxDQUFDLENBQUMsQ0FBQztZQUN4RSxDQUFDO1lBQ0QsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxJQUFJLElBQUksZUFBZSxDQUFnQixTQUFTLENBQUMsQ0FBQztRQUNqRixDQUFDLENBQUM7UUFFRixNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sRUFBRSxHQUFHLEVBQUU7WUFDakMsR0FBRztnQkFDRCxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJO2dCQUMxQixzR0FBc0c7Z0JBQ3RHLGdHQUFnRztnQkFDaEcsK0JBQStCO2dCQUMvQixTQUFTLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssS0FBSyxTQUFTLENBQUMsRUFDekMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFVLENBQUMsQ0FBQyw2QkFBNkI7aUJBQ3pELENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsV0FBVyxFQUFFO1lBQ3pDLEdBQUc7Z0JBQ0QsT0FBTyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckMsQ0FBQztZQUNELEdBQUcsQ0FBQyxnQkFBbUI7Z0JBQ3JCLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUMxQyxDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDO0FBQ0osQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBza2lwV2hpbGUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbi8qKlxuICogT2JzZXJ2ZSBjcmVhdGVzIGFuIE9ic2VydmFibGUgc3RyZWFtIGFuZCBub3RpZmllcyB0aGUgY2hhbmdlcyBmcm9tIGFuIG9ic2VydmVkIHByb3BlcnR5LlxuICpcbiAqIEBleGFtcGxlXG4gKiBJbnB1dCgpIGZvbzogc3RyaW5nO1xuICogQE9ic2VydmUoJ2ZvbycpIGZvbyQ6IE9ic2VydmFibGU8c3RyaW5nPjtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE9ic2VydmU8VD4ob2JzZXJ2ZWRLZXk6IHN0cmluZyk6IFByb3BlcnR5RGVjb3JhdG9yIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby13cmFwcGVyLW9iamVjdC10eXBlc1xuICByZXR1cm4gKHRhcmdldDogT2JqZWN0LCBrZXk6IHN0cmluZyB8IHN5bWJvbCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHN1YmplY3RzID0gbmV3IFdlYWtNYXA8UmVjb3JkPHN0cmluZywgdW5rbm93bj4sIEJlaGF2aW9yU3ViamVjdDxUIHwgdW5kZWZpbmVkPj4oKTtcblxuICAgIGNvbnN0IGdldFN1YmplY3QgPSAoaW5zdGFuY2U6IFJlY29yZDxzdHJpbmcsIHVua25vd24+KSA9PiB7XG4gICAgICBpZiAoIXN1YmplY3RzLmhhcyhpbnN0YW5jZSkpIHtcbiAgICAgICAgc3ViamVjdHMuc2V0KGluc3RhbmNlLCBuZXcgQmVoYXZpb3JTdWJqZWN0PFQgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCkpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHN1YmplY3RzLmdldChpbnN0YW5jZSkgfHwgbmV3IEJlaGF2aW9yU3ViamVjdDxUIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAgIH07XG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBrZXksIHtcbiAgICAgIGdldCgpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICAgICAgcmV0dXJuIGdldFN1YmplY3QodGhpcykucGlwZShcbiAgICAgICAgICAvLyBBbiBpbml0aWFsIGB1bmRlZmluZWRgIHZhbHVlIGlzIHRyaWdnZXJlZCBhYm92ZSB3aGVuIGluaXRpYWxpemluZyB0aGUgc3ViamVjdCBmb3IgYSBnaXZlbiBpbnN0YW5jZS5cbiAgICAgICAgICAvLyBUaGlzIHNraXBzIHRoZSBpbml0aWFsIGB1bmRlZmluZWRgIHZhbHVlcywgdW50aWwgYSBkZWZpbmVkIHZhbHVlIGlzIHByb3ZpZGVkLiBUaGVuLCBubyB2YWx1ZXNcbiAgICAgICAgICAvLyBhcmUgcmVtb3ZlZCBmcm9tIHRoZSBzdHJlYW0uXG4gICAgICAgICAgc2tpcFdoaWxlKCh2YWx1ZSkgPT4gdmFsdWUgPT09IHVuZGVmaW5lZCksXG4gICAgICAgICAgbWFwKCh2YWx1ZSkgPT4gdmFsdWUgYXMgVCkgLy8gcmVxdWlyZWQgZm9yIFRTIG51bGwgY2hlY2tcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0YXJnZXQsIG9ic2VydmVkS2V5LCB7XG4gICAgICBnZXQoKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIHJldHVybiBnZXRTdWJqZWN0KHRoaXMpLmdldFZhbHVlKCk7XG4gICAgICB9LFxuICAgICAgc2V0KGluc3RhbmNlTmV3VmFsdWU6IFQpOiB2b2lkIHtcbiAgICAgICAgZ2V0U3ViamVjdCh0aGlzKS5uZXh0KGluc3RhbmNlTmV3VmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9O1xufVxuIl19
|
@@ -1,118 +0,0 @@
|
|
1
|
-
import { __decorate } from "tslib";
|
2
|
-
import { PortalModule } from '@angular/cdk/portal';
|
3
|
-
import { NgTemplateOutlet } from '@angular/common';
|
4
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
5
|
-
import { RouterLink, RouterLinkActive } from '@angular/router';
|
6
|
-
import { uniqueId } from 'lodash/fp';
|
7
|
-
import { switchMap } from 'rxjs';
|
8
|
-
import { CounterComponent } from '../../../core-ui/components/counter/counter.component';
|
9
|
-
import { Observe } from '../../../shared/observe';
|
10
|
-
import { LxTabGroupKeyCode } from '../tab-group/tab-group-key-codes.enum';
|
11
|
-
import * as i0 from "@angular/core";
|
12
|
-
import * as i1 from "@angular/router";
|
13
|
-
import * as i2 from "@angular/cdk/portal";
|
14
|
-
export class TabComponent {
|
15
|
-
set isActive(value) {
|
16
|
-
this._isActive = value;
|
17
|
-
this.cd.markForCheck();
|
18
|
-
}
|
19
|
-
get isActive() {
|
20
|
-
if (this.routerLinkActive) {
|
21
|
-
return this.routerLinkActive.isActive;
|
22
|
-
}
|
23
|
-
return this._isActive;
|
24
|
-
}
|
25
|
-
constructor(cd, router, activatedRoute) {
|
26
|
-
this.cd = cd;
|
27
|
-
this.router = router;
|
28
|
-
this.activatedRoute = activatedRoute;
|
29
|
-
this.label = '';
|
30
|
-
this.routerLinkActiveOptions = { exact: true };
|
31
|
-
this.counterBadgeSize = 'default';
|
32
|
-
this.noMargin = false;
|
33
|
-
this.noLeftMarginForFirstTab = false;
|
34
|
-
this.background = 'white';
|
35
|
-
this.disabled = false;
|
36
|
-
this.switch = new EventEmitter();
|
37
|
-
this.keyDownAction = new EventEmitter();
|
38
|
-
this._isActive = false;
|
39
|
-
this.tabId = uniqueId('tab');
|
40
|
-
this.routerLinkActiveChange$ = this.routerLinkActive$.pipe(switchMap((routerLinkActive) => routerLinkActive.isActiveChange));
|
41
|
-
}
|
42
|
-
select() {
|
43
|
-
this.switch.emit();
|
44
|
-
}
|
45
|
-
setFocus() {
|
46
|
-
this.tabElement?.nativeElement?.focus();
|
47
|
-
}
|
48
|
-
handleKeyDown(event) {
|
49
|
-
if (Object.values(LxTabGroupKeyCode).includes(event.code)) {
|
50
|
-
// Send this KeyDown event up to our parent to be handled there
|
51
|
-
this.keyDownAction.emit(event);
|
52
|
-
return;
|
53
|
-
}
|
54
|
-
const isKeyCodeToSelectFocusedTab = event.code === 'Enter' || event.code === 'Space';
|
55
|
-
if (!isKeyCodeToSelectFocusedTab) {
|
56
|
-
return;
|
57
|
-
}
|
58
|
-
/**
|
59
|
-
* We are preventing the default browser behavior when the `SPACE` key is pressed, in which
|
60
|
-
* case the browser would scroll down the page.
|
61
|
-
*/
|
62
|
-
event.preventDefault();
|
63
|
-
if (this.tabLink) {
|
64
|
-
const formattedTabLink = typeof this.tabLink === 'string' ? [this.tabLink] : this.tabLink;
|
65
|
-
this.router.navigate(formattedTabLink, { relativeTo: this.activatedRoute }).then(() => {
|
66
|
-
this.select();
|
67
|
-
});
|
68
|
-
}
|
69
|
-
else {
|
70
|
-
this.select();
|
71
|
-
}
|
72
|
-
}
|
73
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.Router }, { token: i1.ActivatedRoute }], target: i0.ɵɵFactoryTarget.Component }); }
|
74
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.8", type: TabComponent, isStandalone: true, selector: "lx-tab", inputs: { icon: "icon", label: "label", title: "title", tabLink: "tabLink", counter: "counter", routerLinkActiveOptions: "routerLinkActiveOptions", counterBadgeSize: "counterBadgeSize", noMargin: "noMargin", noLeftMarginForFirstTab: "noLeftMarginForFirstTab", background: "background", disabled: "disabled" }, outputs: { switch: "switch", keyDownAction: "keyDownAction" }, viewQueries: [{ propertyName: "content", first: true, predicate: ["contentTemplate"], descendants: true, static: true }, { propertyName: "tabElement", first: true, predicate: ["tabElement"], descendants: true }, { propertyName: "routerLinkActive", first: true, predicate: RouterLinkActive, descendants: true }], ngImport: i0, template: "<li\n #tabElement\n class=\"tab\"\n [class.active]=\"isActive\"\n [class.withIcon]=\"icon\"\n [class.noMargin]=\"noMargin\"\n [class.noLeftMarginForFirstTab]=\"noLeftMarginForFirstTab\"\n [class.backgroundGray]=\"background === 'gray'\"\n [class.disabled]=\"disabled\"\n [class.portalTab]=\"!tabLink\"\n [class.routerLinkTab]=\"tabLink\"\n [attr.title]=\"title\"\n (click)=\"select()\"\n (keydown)=\"handleKeyDown($event)\"\n role=\"tab\"\n [attr.id]=\"tabId\"\n [attr.aria-selected]=\"isActive\"\n [attr.tabindex]=\"isActive ? '0' : '-1'\"\n>\n @if (tabLink) {\n <a tabindex=\"-1\" [routerLink]=\"tabLink\" routerLinkActive [routerLinkActiveOptions]=\"routerLinkActiveOptions\">\n <ng-container *ngTemplateOutlet=\"portalTab\" />\n </a>\n } @else {\n <ng-container *ngTemplateOutlet=\"portalTab\" />\n }\n <ng-template #portalTab>\n @if (icon) {\n <i class=\"icon {{ icon }}\"></i>\n }\n @if (label) {\n <span class=\"tabLabel\">{{ label }}</span>\n }\n @if (counter) {\n <lx-counter [size]=\"counterBadgeSize\" [content]=\"counter\" [color]=\"'gray'\" />\n }\n </ng-template>\n <ng-template cdkPortal #contentTemplate=\"cdkPortal\">\n @if (!tabLink) {\n <div class=\"content\" role=\"tabpanel\">\n <ng-content />\n </div>\n }\n </ng-template>\n</li>\n", styles: [":host{display:inline-block}.tab{position:relative;display:inline-block;margin:0 8px;text-align:center;transition:border-bottom .5s;cursor:pointer}.tab:after{position:absolute;content:\"\";left:0;right:0;bottom:-1px;height:2px;background-color:transparent}.tab:hover:after,.tab.active:after{transition:background-color .1s;background-color:var(--lx-primarybutton-backgroundcolor)}.tab.active{cursor:default}.tab.disabled{opacity:.3;cursor:default}.tab:hover .tabLabel,.tab.active .tabLabel{color:#2a303d;transition:color .1s}.portalTab,.routerLinkTab a{display:inline-block;padding:8px 8px 12px;line-height:20px}.portalTab.withIcon,.routerLinkTab a.withIcon{padding:10px 14px;line-height:16px}.routerLinkTab a:focus{outline:0}.routerLinkTab.active a,.routerLinkTab.disabled a{cursor:default}.icon{font-size:var(--lxFontLargeSize, 16px);opacity:.6}.noMargin{margin:0}.noLeftMarginForFirstTab{margin-left:0}.backgroundGray{background-color:#c2c9d6}.backgroundGray:not(.active):not(.disabled){background-color:#cfd5df}.tabLabel{color:#61779d;display:inline-block;font-size:14.5px;text-decoration:none}.content{height:100%}lx-counter{margin-left:8px}\n"], dependencies: [{ kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: CounterComponent, selector: "lx-counter", inputs: ["content", "size", "color"] }, { kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i2.CdkPortal, selector: "[cdkPortal]", exportAs: ["cdkPortal"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
75
|
-
}
|
76
|
-
__decorate([
|
77
|
-
Observe('routerLinkActive')
|
78
|
-
], TabComponent.prototype, "routerLinkActive$", void 0);
|
79
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabComponent, decorators: [{
|
80
|
-
type: Component,
|
81
|
-
args: [{ selector: 'lx-tab', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [RouterLinkActive, RouterLink, CounterComponent, PortalModule, NgTemplateOutlet], template: "<li\n #tabElement\n class=\"tab\"\n [class.active]=\"isActive\"\n [class.withIcon]=\"icon\"\n [class.noMargin]=\"noMargin\"\n [class.noLeftMarginForFirstTab]=\"noLeftMarginForFirstTab\"\n [class.backgroundGray]=\"background === 'gray'\"\n [class.disabled]=\"disabled\"\n [class.portalTab]=\"!tabLink\"\n [class.routerLinkTab]=\"tabLink\"\n [attr.title]=\"title\"\n (click)=\"select()\"\n (keydown)=\"handleKeyDown($event)\"\n role=\"tab\"\n [attr.id]=\"tabId\"\n [attr.aria-selected]=\"isActive\"\n [attr.tabindex]=\"isActive ? '0' : '-1'\"\n>\n @if (tabLink) {\n <a tabindex=\"-1\" [routerLink]=\"tabLink\" routerLinkActive [routerLinkActiveOptions]=\"routerLinkActiveOptions\">\n <ng-container *ngTemplateOutlet=\"portalTab\" />\n </a>\n } @else {\n <ng-container *ngTemplateOutlet=\"portalTab\" />\n }\n <ng-template #portalTab>\n @if (icon) {\n <i class=\"icon {{ icon }}\"></i>\n }\n @if (label) {\n <span class=\"tabLabel\">{{ label }}</span>\n }\n @if (counter) {\n <lx-counter [size]=\"counterBadgeSize\" [content]=\"counter\" [color]=\"'gray'\" />\n }\n </ng-template>\n <ng-template cdkPortal #contentTemplate=\"cdkPortal\">\n @if (!tabLink) {\n <div class=\"content\" role=\"tabpanel\">\n <ng-content />\n </div>\n }\n </ng-template>\n</li>\n", styles: [":host{display:inline-block}.tab{position:relative;display:inline-block;margin:0 8px;text-align:center;transition:border-bottom .5s;cursor:pointer}.tab:after{position:absolute;content:\"\";left:0;right:0;bottom:-1px;height:2px;background-color:transparent}.tab:hover:after,.tab.active:after{transition:background-color .1s;background-color:var(--lx-primarybutton-backgroundcolor)}.tab.active{cursor:default}.tab.disabled{opacity:.3;cursor:default}.tab:hover .tabLabel,.tab.active .tabLabel{color:#2a303d;transition:color .1s}.portalTab,.routerLinkTab a{display:inline-block;padding:8px 8px 12px;line-height:20px}.portalTab.withIcon,.routerLinkTab a.withIcon{padding:10px 14px;line-height:16px}.routerLinkTab a:focus{outline:0}.routerLinkTab.active a,.routerLinkTab.disabled a{cursor:default}.icon{font-size:var(--lxFontLargeSize, 16px);opacity:.6}.noMargin{margin:0}.noLeftMarginForFirstTab{margin-left:0}.backgroundGray{background-color:#c2c9d6}.backgroundGray:not(.active):not(.disabled){background-color:#cfd5df}.tabLabel{color:#61779d;display:inline-block;font-size:14.5px;text-decoration:none}.content{height:100%}lx-counter{margin-left:8px}\n"] }]
|
82
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.Router }, { type: i1.ActivatedRoute }], propDecorators: { icon: [{
|
83
|
-
type: Input
|
84
|
-
}], label: [{
|
85
|
-
type: Input
|
86
|
-
}], title: [{
|
87
|
-
type: Input
|
88
|
-
}], tabLink: [{
|
89
|
-
type: Input
|
90
|
-
}], counter: [{
|
91
|
-
type: Input
|
92
|
-
}], routerLinkActiveOptions: [{
|
93
|
-
type: Input
|
94
|
-
}], counterBadgeSize: [{
|
95
|
-
type: Input
|
96
|
-
}], noMargin: [{
|
97
|
-
type: Input
|
98
|
-
}], noLeftMarginForFirstTab: [{
|
99
|
-
type: Input
|
100
|
-
}], background: [{
|
101
|
-
type: Input
|
102
|
-
}], disabled: [{
|
103
|
-
type: Input
|
104
|
-
}], switch: [{
|
105
|
-
type: Output
|
106
|
-
}], keyDownAction: [{
|
107
|
-
type: Output
|
108
|
-
}], content: [{
|
109
|
-
type: ViewChild,
|
110
|
-
args: ['contentTemplate', { static: true }]
|
111
|
-
}], tabElement: [{
|
112
|
-
type: ViewChild,
|
113
|
-
args: ['tabElement']
|
114
|
-
}], routerLinkActive$: [], routerLinkActive: [{
|
115
|
-
type: ViewChild,
|
116
|
-
args: [RouterLinkActive]
|
117
|
-
}] } });
|
118
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS9jb21wb25lbnRzL3RhYi90YWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGFiLXVpL2NvbXBvbmVudHMvdGFiL3RhYi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUksT0FBTyxFQUEwQixVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN2RixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBYyxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDekYsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2xELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDOzs7O0FBVTFFLE1BQU0sT0FBTyxZQUFZO0lBd0N2QixJQUFJLFFBQVEsQ0FBQyxLQUFjO1FBQ3pCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLElBQUksSUFBSSxDQUFDLGdC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aENuRSxZQUFZO2tCQVJ4QixTQUFTOytCQUNFLFFBQVEsbUJBR0QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxnQkFBZ0IsRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLGdCQUFnQixDQUFDO3dJQU9oRixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUtQLE9BQU87c0JBRE4sU0FBUzt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBR3JCLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFFTSxpQkFBaUIsTUFDakIsZ0JBQWdCO3NCQUE1QyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvcnRhbE1vZHVsZSwgVGVtcGxhdGVQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBSb3V0ZXJMaW5rLCBSb3V0ZXJMaW5rQWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHVuaXF1ZUlkIH0gZnJvbSAnbG9kYXNoL2ZwJztcbmltcG9ydCB7IE9ic2VydmFibGUsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ291bnRlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUtdWkvY29tcG9uZW50cy9jb3VudGVyL2NvdW50ZXIuY29tcG9uZW50JztcbmltcG9ydCB7IE9ic2VydmUgfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvb2JzZXJ2ZSc7XG5pbXBvcnQgeyBMeFRhYkdyb3VwS2V5Q29kZSB9IGZyb20gJy4uL3RhYi1ncm91cC90YWItZ3JvdXAta2V5LWNvZGVzLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC10YWInLFxuICB0ZW1wbGF0ZVVybDogJ3RhYi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd0YWIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtSb3V0ZXJMaW5rQWN0aXZlLCBSb3V0ZXJMaW5rLCBDb3VudGVyQ29tcG9uZW50LCBQb3J0YWxNb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRhYkNvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBUaGUgaWNvbiBpbnB1dCB0YWtlcyBhIGZvbnQgYXdlc29tZSBzZWxlY3RvclxuICAgKiBXQVJOSU5HOiBDdXJyZW50bHkgdGhpcyBjb21wb25lbnQgZG9lcyBub3Qgc3VwcG9ydCB1c2luZyBhbiBpY29uIHRvZ2V0aGVyIHdpdGggYSBsYWJlbCBvciBjb3VudGVyLlxuICAgKi9cbiAgQElucHV0KCkgaWNvbj86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSB0aXRsZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEluIHNvbWUgcGFydHMgb2YgdGhlIGFwcGxpY2F0aW9uLCB3ZSBhcmUgcGFzc2luZyBhIHBsYWluIHN0cmluZyB0byB0aGUgdGFiTGluayBpbnB1dCwgd2hlcmVhcyBpblxuICAgKiBtb3N0IHBhcnRzLCB0aGUgaW5wdXQgaXMgcGFzc2VkIGFzIGFuIGFycmF5LiBUaGUgUm91dGVyTGluayBkaXJlY3RpdmUgYWxzbyBhY2NlcHRzIGJvdGggdHlwZXMsXG4gICAqIHRoZXJlZm9yZSB3ZSBhcmUgdXNpbmcgdHlwZSBvZiB0aGUgaW5wdXQgYXMgc3RyaW5nIHwgYW55W10uXG4gICAqL1xuICBASW5wdXQoKSB0YWJMaW5rPzogc3RyaW5nIHwgYW55W107XG4gIEBJbnB1dCgpIGNvdW50ZXI/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHJvdXRlckxpbmtBY3RpdmVPcHRpb25zOiB7IGV4YWN0OiBib29sZWFuIH0gPSB7IGV4YWN0OiB0cnVlIH07XG4gIEBJbnB1dCgpIGNvdW50ZXJCYWRnZVNpemU6ICdkZWZhdWx0JyB8ICdzbWFsbCcgPSAnZGVmYXVsdCc7XG4gIEBJbnB1dCgpIG5vTWFyZ2luOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIG5vTGVmdE1hcmdpbkZvckZpcnN0VGFiOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGJhY2tncm91bmQ6ICd3aGl0ZScgfCAnZ3JheScgPSAnd2hpdGUnO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBPdXRwdXQoKSBzd2l0Y2ggPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBrZXlEb3duQWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjxLZXlib2FyZEV2ZW50PigpO1xuXG4gIHRhYklkOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZCgnY29udGVudFRlbXBsYXRlJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgY29udGVudD86IFRlbXBsYXRlUG9ydGFsPGFueT47XG5cbiAgQFZpZXdDaGlsZCgndGFiRWxlbWVudCcpIHRhYkVsZW1lbnQ/OiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAT2JzZXJ2ZSgncm91dGVyTGlua0FjdGl2ZScpIHJvdXRlckxpbmtBY3RpdmUkITogT2JzZXJ2YWJsZTxSb3V0ZXJMaW5rQWN0aXZlPjtcbiAgQFZpZXdDaGlsZChSb3V0ZXJMaW5rQWN0aXZlKSByb3V0ZXJMaW5rQWN0aXZlPzogUm91dGVyTGlua0FjdGl2ZTtcbiAgLyoqXG4gICAqIFVzZWQgYnkgdGhlIGx4LXRhYi1ncm91cCB0byBiZSBub3RpZmllZCB3aGVuIGEgbHgtdGFiIHRoYXQgaXMgYSBsaW5rXG4gICAqIGlzIHNldCB0byBhY3RpdmUgYnkgdGhlIEFuZ3VsYXIgcm91dGVyLlxuICAgKi9cbiAgcm91dGVyTGlua0FjdGl2ZUNoYW5nZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG5cbiAgc2V0IGlzQWN0aXZlKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5faXNBY3RpdmUgPSB2YWx1ZTtcbiAgICB0aGlzLmNkLm1hcmtGb3JDaGVjaygpO1xuICB9XG4gIGdldCBpc0FjdGl2ZSgpIHtcbiAgICBpZiAodGhpcy5yb3V0ZXJMaW5rQWN0aXZlKSB7XG4gICAgICByZXR1cm4gdGhpcy5yb3V0ZXJMaW5rQWN0aXZlLmlzQWN0aXZlO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5faXNBY3RpdmU7XG4gIH1cbiAgcHJpdmF0ZSBfaXNBY3RpdmUgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgYWN0aXZhdGVkUm91dGU6IEFjdGl2YXRlZFJvdXRlXG4gICkge1xuICAgIHRoaXMudGFiSWQgPSB1bmlxdWVJZCgndGFiJyk7XG4gICAgdGhpcy5yb3V0ZXJMaW5rQWN0aXZlQ2hhbmdlJCA9IHRoaXMucm91dGVyTGlua0FjdGl2ZSQucGlwZShzd2l0Y2hNYXAoKHJvdXRlckxpbmtBY3RpdmUpID0+IHJvdXRlckxpbmtBY3RpdmUuaXNBY3RpdmVDaGFuZ2UpKTtcbiAgfVxuXG4gIHNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN3aXRjaC5lbWl0KCk7XG4gIH1cblxuICBzZXRGb2N1cygpOiB2b2lkIHtcbiAgICB0aGlzLnRhYkVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmZvY3VzKCk7XG4gIH1cblxuICBoYW5kbGVLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKE9iamVjdC52YWx1ZXM8c3RyaW5nPihMeFRhYkdyb3VwS2V5Q29kZSkuaW5jbHVkZXMoZXZlbnQuY29kZSkpIHtcbiAgICAgIC8vIFNlbmQgdGhpcyBLZXlEb3duIGV2ZW50IHVwIHRvIG91ciBwYXJlbnQgdG8gYmUgaGFuZGxlZCB0aGVyZVxuICAgICAgdGhpcy5rZXlEb3duQWN0aW9uLmVtaXQoZXZlbnQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGlzS2V5Q29kZVRvU2VsZWN0Rm9jdXNlZFRhYiA9IGV2ZW50LmNvZGUgPT09ICdFbnRlcicgfHwgZXZlbnQuY29kZSA9PT0gJ1NwYWNlJztcbiAgICBpZiAoIWlzS2V5Q29kZVRvU2VsZWN0Rm9jdXNlZFRhYikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFdlIGFyZSBwcmV2ZW50aW5nIHRoZSBkZWZhdWx0IGJyb3dzZXIgYmVoYXZpb3Igd2hlbiB0aGUgYFNQQUNFYCBrZXkgaXMgcHJlc3NlZCwgaW4gd2hpY2hcbiAgICAgKiBjYXNlIHRoZSBicm93c2VyIHdvdWxkIHNjcm9sbCBkb3duIHRoZSBwYWdlLlxuICAgICAqL1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMudGFiTGluaykge1xuICAgICAgY29uc3QgZm9ybWF0dGVkVGFiTGluayA9IHR5cGVvZiB0aGlzLnRhYkxpbmsgPT09ICdzdHJpbmcnID8gW3RoaXMudGFiTGlua10gOiB0aGlzLnRhYkxpbms7XG4gICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShmb3JtYXR0ZWRUYWJMaW5rLCB7IHJlbGF0aXZlVG86IHRoaXMuYWN0aXZhdGVkUm91dGUgfSkudGhlbigoKSA9PiB7XG4gICAgICAgIHRoaXMuc2VsZWN0KCk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZWxlY3QoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxsaVxuICAjdGFiRWxlbWVudFxuICBjbGFzcz1cInRhYlwiXG4gIFtjbGFzcy5hY3RpdmVdPVwiaXNBY3RpdmVcIlxuICBbY2xhc3Mud2l0aEljb25dPVwiaWNvblwiXG4gIFtjbGFzcy5ub01hcmdpbl09XCJub01hcmdpblwiXG4gIFtjbGFzcy5ub0xlZnRNYXJnaW5Gb3JGaXJzdFRhYl09XCJub0xlZnRNYXJnaW5Gb3JGaXJzdFRhYlwiXG4gIFtjbGFzcy5iYWNrZ3JvdW5kR3JheV09XCJiYWNrZ3JvdW5kID09PSAnZ3JheSdcIlxuICBbY2xhc3MuZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICBbY2xhc3MucG9ydGFsVGFiXT1cIiF0YWJMaW5rXCJcbiAgW2NsYXNzLnJvdXRlckxpbmtUYWJdPVwidGFiTGlua1wiXG4gIFthdHRyLnRpdGxlXT1cInRpdGxlXCJcbiAgKGNsaWNrKT1cInNlbGVjdCgpXCJcbiAgKGtleWRvd24pPVwiaGFuZGxlS2V5RG93bigkZXZlbnQpXCJcbiAgcm9sZT1cInRhYlwiXG4gIFthdHRyLmlkXT1cInRhYklkXCJcbiAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0FjdGl2ZVwiXG4gIFthdHRyLnRhYmluZGV4XT1cImlzQWN0aXZlID8gJzAnIDogJy0xJ1wiXG4+XG4gIEBpZiAodGFiTGluaykge1xuICAgIDxhIHRhYmluZGV4PVwiLTFcIiBbcm91dGVyTGlua109XCJ0YWJMaW5rXCIgcm91dGVyTGlua0FjdGl2ZSBbcm91dGVyTGlua0FjdGl2ZU9wdGlvbnNdPVwicm91dGVyTGlua0FjdGl2ZU9wdGlvbnNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwb3J0YWxUYWJcIiAvPlxuICAgIDwvYT5cbiAgfSBAZWxzZSB7XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInBvcnRhbFRhYlwiIC8+XG4gIH1cbiAgPG5nLXRlbXBsYXRlICNwb3J0YWxUYWI+XG4gICAgQGlmIChpY29uKSB7XG4gICAgICA8aSBjbGFzcz1cImljb24ge3sgaWNvbiB9fVwiPjwvaT5cbiAgICB9XG4gICAgQGlmIChsYWJlbCkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJ0YWJMYWJlbFwiPnt7IGxhYmVsIH19PC9zcGFuPlxuICAgIH1cbiAgICBAaWYgKGNvdW50ZXIpIHtcbiAgICAgIDxseC1jb3VudGVyIFtzaXplXT1cImNvdW50ZXJCYWRnZVNpemVcIiBbY29udGVudF09XCJjb3VudGVyXCIgW2NvbG9yXT1cIidncmF5J1wiIC8+XG4gICAgfVxuICA8L25nLXRlbXBsYXRlPlxuICA8bmctdGVtcGxhdGUgY2RrUG9ydGFsICNjb250ZW50VGVtcGxhdGU9XCJjZGtQb3J0YWxcIj5cbiAgICBAaWYgKCF0YWJMaW5rKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiIHJvbGU9XCJ0YWJwYW5lbFwiPlxuICAgICAgICA8bmctY29udGVudCAvPlxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L25nLXRlbXBsYXRlPlxuPC9saT5cbiJdfQ==
|
@@ -1,12 +0,0 @@
|
|
1
|
-
/**
|
2
|
-
* Key codes that we listen to for
|
3
|
-
* user action on our lx-tab-group
|
4
|
-
*/
|
5
|
-
export var LxTabGroupKeyCode;
|
6
|
-
(function (LxTabGroupKeyCode) {
|
7
|
-
LxTabGroupKeyCode["ArrowRight"] = "ArrowRight";
|
8
|
-
LxTabGroupKeyCode["ArrowLeft"] = "ArrowLeft";
|
9
|
-
LxTabGroupKeyCode["Home"] = "Home";
|
10
|
-
LxTabGroupKeyCode["End"] = "End";
|
11
|
-
})(LxTabGroupKeyCode || (LxTabGroupKeyCode = {}));
|
12
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLWtleS1jb2Rlcy5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGFiLXVpL2NvbXBvbmVudHMvdGFiLWdyb3VwL3RhYi1ncm91cC1rZXktY29kZXMuZW51bS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7O0dBR0c7QUFDSCxNQUFNLENBQU4sSUFBWSxpQkFLWDtBQUxELFdBQVksaUJBQWlCO0lBQzNCLDhDQUF5QixDQUFBO0lBQ3pCLDRDQUF1QixDQUFBO0lBQ3ZCLGtDQUFhLENBQUE7SUFDYixnQ0FBVyxDQUFBO0FBQ2IsQ0FBQyxFQUxXLGlCQUFpQixLQUFqQixpQkFBaUIsUUFLNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEtleSBjb2RlcyB0aGF0IHdlIGxpc3RlbiB0byBmb3JcbiAqIHVzZXIgYWN0aW9uIG9uIG91ciBseC10YWItZ3JvdXBcbiAqL1xuZXhwb3J0IGVudW0gTHhUYWJHcm91cEtleUNvZGUge1xuICBBcnJvd1JpZ2h0ID0gJ0Fycm93UmlnaHQnLFxuICBBcnJvd0xlZnQgPSAnQXJyb3dMZWZ0JyxcbiAgSG9tZSA9ICdIb21lJyxcbiAgRW5kID0gJ0VuZCdcbn1cbiJdfQ==
|
@@ -1,150 +0,0 @@
|
|
1
|
-
import { __decorate } from "tslib";
|
2
|
-
import { PortalModule } from '@angular/cdk/portal';
|
3
|
-
import { NgTemplateOutlet } from '@angular/common';
|
4
|
-
import { ChangeDetectionStrategy, Component, ContentChildren, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
5
|
-
import { Subject, merge } from 'rxjs';
|
6
|
-
import { first, map, startWith, switchMap, takeUntil } from 'rxjs/operators';
|
7
|
-
import { Observe } from '../../../shared/observe';
|
8
|
-
import { TabComponent } from '../tab/tab.component';
|
9
|
-
import { LxTabGroupKeyCode } from './tab-group-key-codes.enum';
|
10
|
-
import * as i0 from "@angular/core";
|
11
|
-
import * as i1 from "@angular/cdk/portal";
|
12
|
-
export class TabGroupComponent {
|
13
|
-
/** @internal */
|
14
|
-
get tabIds() {
|
15
|
-
return this.tabs.map((t) => t.tabId);
|
16
|
-
}
|
17
|
-
get tabs() {
|
18
|
-
return this.tabsQueryList?.toArray() || [];
|
19
|
-
}
|
20
|
-
/** @internal */
|
21
|
-
get activeTabPortal() {
|
22
|
-
return this.tabs[this.selectedIndex]?.content;
|
23
|
-
}
|
24
|
-
constructor(cd) {
|
25
|
-
this.cd = cd;
|
26
|
-
this.isCentered = false;
|
27
|
-
/**
|
28
|
-
* The tab whose content should be displayed.
|
29
|
-
*/
|
30
|
-
this.selectedIndex = 0;
|
31
|
-
this.indexChange = new EventEmitter();
|
32
|
-
/**
|
33
|
-
* The tab that is currently focused via keyboard.
|
34
|
-
* @internal
|
35
|
-
*/
|
36
|
-
this.focusedIndex = 0;
|
37
|
-
/** @internal */
|
38
|
-
this.destroyed$ = new Subject();
|
39
|
-
this.listenToFirstTabSelectByAngularRouterForTabLinks().subscribe((tab) => {
|
40
|
-
// synchonize the focusedIndex and selectedIndex state with the tab that is active through the current route.
|
41
|
-
this.switchTo(tab);
|
42
|
-
});
|
43
|
-
}
|
44
|
-
ngOnChanges(changes) {
|
45
|
-
const tab = this.tabs[this.selectedIndex];
|
46
|
-
if (changes['selectedIndex'] && !changes['selectedIndex'].isFirstChange() && tab) {
|
47
|
-
this.switchTo(tab);
|
48
|
-
}
|
49
|
-
}
|
50
|
-
ngAfterContentInit() {
|
51
|
-
if (this.tabs[0]) {
|
52
|
-
this.tabs[0].noLeftMarginForFirstTab = true;
|
53
|
-
}
|
54
|
-
const tab = this.tabs[this.selectedIndex];
|
55
|
-
if (tab && !tab.tabLink) {
|
56
|
-
this.switchTo(tab);
|
57
|
-
}
|
58
|
-
const listenToTabsSwitch = (tabs) => merge(...tabs.map((tab) => tab.switch.asObservable().pipe(map(() => tab))));
|
59
|
-
this.tabsQueryList?.changes
|
60
|
-
.pipe(startWith(null), switchMap(() => listenToTabsSwitch(this.tabs)), takeUntil(this.destroyed$))
|
61
|
-
.subscribe((tab) => {
|
62
|
-
this.switchTo(tab);
|
63
|
-
});
|
64
|
-
this.tabsQueryList?.changes
|
65
|
-
.pipe(startWith(null), switchMap(() => merge(...this.tabs.map((tab) => tab.keyDownAction))), takeUntil(this.destroyed$))
|
66
|
-
.subscribe((event) => {
|
67
|
-
this.handleKeyDown(event);
|
68
|
-
});
|
69
|
-
}
|
70
|
-
ngOnDestroy() {
|
71
|
-
this.destroyed$.next();
|
72
|
-
}
|
73
|
-
/** @internal */
|
74
|
-
onFocusOut(event) {
|
75
|
-
if (!this.tabListElement?.nativeElement?.contains(event.relatedTarget)) {
|
76
|
-
// resync focused index on selected index when leaving tabs
|
77
|
-
this.focusedIndex = this.selectedIndex;
|
78
|
-
}
|
79
|
-
}
|
80
|
-
/** @internal */
|
81
|
-
switchTo(tab) {
|
82
|
-
this.tabsQueryList?.forEach((t, index) => {
|
83
|
-
t.isActive = t === tab;
|
84
|
-
if (t.isActive) {
|
85
|
-
this.selectedIndex = index;
|
86
|
-
this.focusedIndex = index;
|
87
|
-
this.indexChange.emit(index);
|
88
|
-
}
|
89
|
-
});
|
90
|
-
this.cd.markForCheck();
|
91
|
-
}
|
92
|
-
/** @internal */
|
93
|
-
handleKeyDown(event) {
|
94
|
-
switch (event.code) {
|
95
|
-
case LxTabGroupKeyCode.ArrowRight:
|
96
|
-
const newTabIndex = (this.focusedIndex + 1) % this.tabs.length;
|
97
|
-
this.focusTab(newTabIndex);
|
98
|
-
break;
|
99
|
-
case LxTabGroupKeyCode.ArrowLeft:
|
100
|
-
const previousTabIndex = this.focusedIndex === 0 ? this.tabs.length - 1 : this.focusedIndex - 1;
|
101
|
-
this.focusTab(previousTabIndex);
|
102
|
-
break;
|
103
|
-
case LxTabGroupKeyCode.Home:
|
104
|
-
event.preventDefault();
|
105
|
-
this.focusTab(0);
|
106
|
-
break;
|
107
|
-
case LxTabGroupKeyCode.End:
|
108
|
-
event.preventDefault();
|
109
|
-
this.focusTab(this.tabs.length - 1);
|
110
|
-
break;
|
111
|
-
}
|
112
|
-
}
|
113
|
-
focusTab(tabIndex) {
|
114
|
-
const tab = this.tabs[tabIndex];
|
115
|
-
if (!tab) {
|
116
|
-
return;
|
117
|
-
}
|
118
|
-
tab.setFocus();
|
119
|
-
this.focusedIndex = tabIndex;
|
120
|
-
}
|
121
|
-
listenToFirstTabSelectByAngularRouterForTabLinks() {
|
122
|
-
return this.tabsQueryList$.pipe(switchMap(() => {
|
123
|
-
const tabLinks = this.tabs.filter((tab) => !!tab.tabLink);
|
124
|
-
return merge(...tabLinks.map((tab) => tab.routerLinkActiveChange$.pipe(map(() => tab))));
|
125
|
-
}), first(), takeUntil(this.destroyed$) // added in addition to first() here since for tab groups without links no single value will ever be emit.
|
126
|
-
);
|
127
|
-
}
|
128
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
129
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: TabGroupComponent, isStandalone: true, selector: "lx-tab-group", inputs: { isCentered: "isCentered", selectedIndex: "selectedIndex" }, outputs: { indexChange: "indexChange" }, queries: [{ propertyName: "tabsQueryList", predicate: TabComponent }], viewQueries: [{ propertyName: "tabListElement", first: true, predicate: ["tabListElement"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ul\n #tabListElement\n class=\"tabs\"\n role=\"tablist\"\n (focusout)=\"onFocusOut($event)\"\n [attr.aria-owns]=\"tabIds.join(' ')\"\n [class.centered]=\"isCentered\"\n>\n <ng-content />\n</ul>\n\n<ng-template [cdkPortalOutlet]=\"activeTabPortal\" />\n", styles: [":host{--tab-group-padding-y: 0}.tabs{display:inline-block;list-style:none;border-bottom:solid 1px #cfd5df;width:100%;margin:0;padding:0 var(--tab-group-padding-y);text-align:left}.tabs.centered{text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
130
|
-
}
|
131
|
-
__decorate([
|
132
|
-
Observe('tabsQueryList')
|
133
|
-
], TabGroupComponent.prototype, "tabsQueryList$", void 0);
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: TabGroupComponent, decorators: [{
|
135
|
-
type: Component,
|
136
|
-
args: [{ selector: 'lx-tab-group', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [PortalModule, NgTemplateOutlet], template: "<ul\n #tabListElement\n class=\"tabs\"\n role=\"tablist\"\n (focusout)=\"onFocusOut($event)\"\n [attr.aria-owns]=\"tabIds.join(' ')\"\n [class.centered]=\"isCentered\"\n>\n <ng-content />\n</ul>\n\n<ng-template [cdkPortalOutlet]=\"activeTabPortal\" />\n", styles: [":host{--tab-group-padding-y: 0}.tabs{display:inline-block;list-style:none;border-bottom:solid 1px #cfd5df;width:100%;margin:0;padding:0 var(--tab-group-padding-y);text-align:left}.tabs.centered{text-align:center}\n"] }]
|
137
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { isCentered: [{
|
138
|
-
type: Input
|
139
|
-
}], selectedIndex: [{
|
140
|
-
type: Input
|
141
|
-
}], indexChange: [{
|
142
|
-
type: Output
|
143
|
-
}], tabsQueryList$: [], tabsQueryList: [{
|
144
|
-
type: ContentChildren,
|
145
|
-
args: [TabComponent]
|
146
|
-
}], tabListElement: [{
|
147
|
-
type: ViewChild,
|
148
|
-
args: ['tabListElement']
|
149
|
-
}] } });
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS9jb21wb25lbnRzL3RhYi1ncm91cC90YWItZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvdGFiLXVpL2NvbXBvbmVudHMvdGFiLWdyb3VwL3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFjLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDbEQsT0FBTyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFVL0QsTUFBTSxPQUFPLGlCQUFpQjtJQXFCNUIsZ0JBQWdCO0lBQ2hCLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2QyxDQUFDO0lBQ0QsSUFBWSxJQUFJO1FBQ2QsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUM3QyxDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLE9BQU8sQ0FBQztJQUNoRCxDQUFDO0lBS0QsWUFBb0IsRUFBcUI7UUFBckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFwQ2hDLGVBQVUsR0FBWSxLQUFLLENBQUM7UUFDckM7O1dBRUc7UUFDTSxrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUN6QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFTbkQ7OztXQUdHO1FBQ0gsaUJBQVksR0FBVyxDQUFDLENBQUM7UUFlekIsZ0JBQWdCO1FBQ1AsZUFBVSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFHeEMsSUFBSSxDQUFDLGdEQUFnRCxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDeEUsNkdBQTZHO1lBQzdHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFDLElBQUksT0FBTyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDLGFBQWEsRUFBRSxJQUFJLEdBQUcsRUFBRSxDQUFDO1lBQ2pGLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQztJQUNILENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyx1QkFBdUIsR0FBRyxJQUFJLENBQUM7UUFDOUMsQ0FBQztRQUNELE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQztRQUVELE1BQU0sa0JBQWtCLEdBQUcsQ0FBQyxJQUFvQixFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFakksSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPO2FBQ3hCLElBQUksQ0FDSCxTQUFTLENBQUMsSUFBSSxDQUFDLEVBQ2YsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxFQUM5QyxTQUFTLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUMzQjthQUNBLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDckIsQ0FBQyxDQUFDLENBQUM7UUFFTCxJQUFJLENBQUMsYUFBYSxFQUFFLE9BQU87YUFDeEIsSUFBSSxDQUNILFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFDZixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQ3BFLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQzNCO2FBQ0EsU0FBUyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLFVBQVUsQ0FBQyxLQUFVO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLGFBQWEsRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7WUFDdkUsMkRBQTJEO1lBQzNELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUN6QyxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixRQUFRLENBQUMsR0FBaUI7UUFDeEIsSUFBSSxDQUFDLGFBQWEsRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUU7WUFDdkMsQ0FBQyxDQUFDLFFBQVEsR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDO2dCQUNmLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDO2dCQUMzQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztnQkFDMUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsZ0JBQWdCO0lBQ2hCLGFBQWEsQ0FBQyxLQUFvQjtRQUNoQyxRQUFRLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNuQixLQUFLLGlCQUFpQixDQUFDLFVBQVU7Z0JBQy9CLE1BQU0sV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQztnQkFDL0QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztnQkFDM0IsTUFBTTtZQUNSLEtBQUssaUJBQWlCLENBQUMsU0FBUztnQkFDOUIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztnQkFDaEcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNoQyxNQUFNO1lBQ1IsS0FBSyxpQkFBaUIsQ0FBQyxJQUFJO2dCQUN6QixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2pCLE1BQU07WUFDUixLQUFLLGlCQUFpQixDQUFDLEdBQUc7Z0JBQ3hCLEtBQUssQ0FBQyxjQUFjLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDcEMsTUFBTTtRQUNWLENBQUM7SUFDSCxDQUFDO0lBRU8sUUFBUSxDQUFDLFFBQWdCO1FBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsT0FBTztRQUNULENBQUM7UUFFRCxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDZixJQUFJLENBQUMsWUFBWSxHQUFHLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRU8sZ0RBQWdEO1FBQ3RELE9BQU8sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQzdCLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMxRCxPQUFPLEtBQUssQ0FBQyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzNGLENBQUMsQ0FBQyxFQUNGLEtBQUssRUFBRSxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsMEdBQTBHO1NBQ3RJLENBQUM7SUFDSixDQUFDOzhHQXJKVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixxTkFXWCxZQUFZLG9LQzNDL0Isc1FBWUEsK1FEa0JZLFlBQVk7O0FBV0k7SUFBekIsT0FBTyxDQUFDLGVBQWUsQ0FBQzt5REFBc0Q7MkZBVHBFLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxjQUFjLG1CQUdQLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGdCQUFnQixDQUFDO3NGQUdoQyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksV0FBVztzQkFBcEIsTUFBTTtnQkFHbUIsY0FBYyxNQUVULGFBQWE7c0JBQTNDLGVBQWU7dUJBQUMsWUFBWTtnQkFFQSxjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvcnRhbE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2ZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9vYnNlcnZlJztcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4uL3RhYi90YWIuY29tcG9uZW50JztcbmltcG9ydCB7IEx4VGFiR3JvdXBLZXlDb2RlIH0gZnJvbSAnLi90YWItZ3JvdXAta2V5LWNvZGVzLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC10YWItZ3JvdXAnLFxuICB0ZW1wbGF0ZVVybDogJ3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWyd0YWItZ3JvdXAuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtQb3J0YWxNb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXRdXG59KVxuZXhwb3J0IGNsYXNzIFRhYkdyb3VwQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSBpc0NlbnRlcmVkOiBib29sZWFuID0gZmFsc2U7XG4gIC8qKlxuICAgKiBUaGUgdGFiIHdob3NlIGNvbnRlbnQgc2hvdWxkIGJlIGRpc3BsYXllZC5cbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkSW5kZXg6IG51bWJlciA9IDA7XG4gIEBPdXRwdXQoKSBpbmRleENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQE9ic2VydmUoJ3RhYnNRdWVyeUxpc3QnKSB0YWJzUXVlcnlMaXN0JCE6IE9ic2VydmFibGU8UXVlcnlMaXN0PFRhYkNvbXBvbmVudD4+O1xuICAvKiogQGludGVybmFsICovXG4gIEBDb250ZW50Q2hpbGRyZW4oVGFiQ29tcG9uZW50KSB0YWJzUXVlcnlMaXN0PzogUXVlcnlMaXN0PFRhYkNvbXBvbmVudD47XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgQFZpZXdDaGlsZCgndGFiTGlzdEVsZW1lbnQnKSB0YWJMaXN0RWxlbWVudD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIC8qKlxuICAgKiBUaGUgdGFiIHRoYXQgaXMgY3VycmVudGx5IGZvY3VzZWQgdmlhIGtleWJvYXJkLlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIGZvY3VzZWRJbmRleDogbnVtYmVyID0gMDtcblxuICAvKiogQGludGVybmFsICovXG4gIGdldCB0YWJJZHMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLnRhYnMubWFwKCh0KSA9PiB0LnRhYklkKTtcbiAgfVxuICBwcml2YXRlIGdldCB0YWJzKCk6IFRhYkNvbXBvbmVudFtdIHtcbiAgICByZXR1cm4gdGhpcy50YWJzUXVlcnlMaXN0Py50b0FycmF5KCkgfHwgW107XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGdldCBhY3RpdmVUYWJQb3J0YWwoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFic1t0aGlzLnNlbGVjdGVkSW5kZXhdPy5jb250ZW50O1xuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZikge1xuICAgIHRoaXMubGlzdGVuVG9GaXJzdFRhYlNlbGVjdEJ5QW5ndWxhclJvdXRlckZvclRhYkxpbmtzKCkuc3Vic2NyaWJlKCh0YWIpID0+IHtcbiAgICAgIC8vIHN5bmNob25pemUgdGhlIGZvY3VzZWRJbmRleCBhbmQgc2VsZWN0ZWRJbmRleCBzdGF0ZSB3aXRoIHRoZSB0YWIgdGhhdCBpcyBhY3RpdmUgdGhyb3VnaCB0aGUgY3VycmVudCByb3V0ZS5cbiAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbdGhpcy5zZWxlY3RlZEluZGV4XTtcbiAgICBpZiAoY2hhbmdlc1snc2VsZWN0ZWRJbmRleCddICYmICFjaGFuZ2VzWydzZWxlY3RlZEluZGV4J10uaXNGaXJzdENoYW5nZSgpICYmIHRhYikge1xuICAgICAgdGhpcy5zd2l0Y2hUbyh0YWIpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICBpZiAodGhpcy50YWJzWzBdKSB7XG4gICAgICB0aGlzLnRhYnNbMF0ubm9MZWZ0TWFyZ2luRm9yRmlyc3RUYWIgPSB0cnVlO1xuICAgIH1cbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbdGhpcy5zZWxlY3RlZEluZGV4XTtcbiAgICBpZiAodGFiICYmICF0YWIudGFiTGluaykge1xuICAgICAgdGhpcy5zd2l0Y2hUbyh0YWIpO1xuICAgIH1cblxuICAgIGNvbnN0IGxpc3RlblRvVGFic1N3aXRjaCA9ICh0YWJzOiBUYWJDb21wb25lbnRbXSkgPT4gbWVyZ2UoLi4udGFicy5tYXAoKHRhYikgPT4gdGFiLnN3aXRjaC5hc09ic2VydmFibGUoKS5waXBlKG1hcCgoKSA9PiB0YWIpKSkpO1xuXG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbGlzdGVuVG9UYWJzU3dpdGNoKHRoaXMudGFicykpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodGFiKSA9PiB7XG4gICAgICAgIHRoaXMuc3dpdGNoVG8odGFiKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5jaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKG51bGwpLFxuICAgICAgICBzd2l0Y2hNYXAoKCkgPT4gbWVyZ2UoLi4udGhpcy50YWJzLm1hcCgodGFiKSA9PiB0YWIua2V5RG93bkFjdGlvbikpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlS2V5RG93bihldmVudCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZGVzdHJveWVkJC5uZXh0KCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIG9uRm9jdXNPdXQoZXZlbnQ6IGFueSkge1xuICAgIGlmICghdGhpcy50YWJMaXN0RWxlbWVudD8ubmF0aXZlRWxlbWVudD8uY29udGFpbnMoZXZlbnQucmVsYXRlZFRhcmdldCkpIHtcbiAgICAgIC8vIHJlc3luYyBmb2N1c2VkIGluZGV4IG9uIHNlbGVjdGVkIGluZGV4IHdoZW4gbGVhdmluZyB0YWJzXG4gICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleDtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHN3aXRjaFRvKHRhYjogVGFiQ29tcG9uZW50KSB7XG4gICAgdGhpcy50YWJzUXVlcnlMaXN0Py5mb3JFYWNoKCh0LCBpbmRleCkgPT4ge1xuICAgICAgdC5pc0FjdGl2ZSA9IHQgPT09IHRhYjtcbiAgICAgIGlmICh0LmlzQWN0aXZlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmZvY3VzZWRJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLmluZGV4Q2hhbmdlLmVtaXQoaW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIGhhbmRsZUtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmNvZGUpIHtcbiAgICAgIGNhc2UgTHhUYWJHcm91cEtleUNvZGUuQXJyb3dSaWdodDpcbiAgICAgICAgY29uc3QgbmV3VGFiSW5kZXggPSAodGhpcy5mb2N1c2VkSW5kZXggKyAxKSAlIHRoaXMudGFicy5sZW5ndGg7XG4gICAgICAgIHRoaXMuZm9jdXNUYWIobmV3VGFiSW5kZXgpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgTHhUYWJHcm91cEtleUNvZGUuQXJyb3dMZWZ0OlxuICAgICAgICBjb25zdCBwcmV2aW91c1RhYkluZGV4ID0gdGhpcy5mb2N1c2VkSW5kZXggPT09IDAgPyB0aGlzLnRhYnMubGVuZ3RoIC0gMSA6IHRoaXMuZm9jdXNlZEluZGV4IC0gMTtcbiAgICAgICAgdGhpcy5mb2N1c1RhYihwcmV2aW91c1RhYkluZGV4KTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlIEx4VGFiR3JvdXBLZXlDb2RlLkhvbWU6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNUYWIoMCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBMeFRhYkdyb3VwS2V5Q29kZS5FbmQ6XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuZm9jdXNUYWIodGhpcy50YWJzLmxlbmd0aCAtIDEpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZvY3VzVGFiKHRhYkluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBjb25zdCB0YWIgPSB0aGlzLnRhYnNbdGFiSW5kZXhdO1xuICAgIGlmICghdGFiKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGFiLnNldEZvY3VzKCk7XG4gICAgdGhpcy5mb2N1c2VkSW5kZXggPSB0YWJJbmRleDtcbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuVG9GaXJzdFRhYlNlbGVjdEJ5QW5ndWxhclJvdXRlckZvclRhYkxpbmtzKCkge1xuICAgIHJldHVybiB0aGlzLnRhYnNRdWVyeUxpc3QkLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4ge1xuICAgICAgICBjb25zdCB0YWJMaW5rcyA9IHRoaXMudGFicy5maWx0ZXIoKHRhYikgPT4gISF0YWIudGFiTGluayk7XG4gICAgICAgIHJldHVybiBtZXJnZSguLi50YWJMaW5rcy5tYXAoKHRhYikgPT4gdGFiLnJvdXRlckxpbmtBY3RpdmVDaGFuZ2UkLnBpcGUobWFwKCgpID0+IHRhYikpKSk7XG4gICAgICB9KSxcbiAgICAgIGZpcnN0KCksXG4gICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSAvLyBhZGRlZCBpbiBhZGRpdGlvbiB0byBmaXJzdCgpIGhlcmUgc2luY2UgZm9yIHRhYiBncm91cHMgd2l0aG91dCBsaW5rcyBubyBzaW5nbGUgdmFsdWUgd2lsbCBldmVyIGJlIGVtaXQuXG4gICAgKTtcbiAgfVxufVxuIiwiPHVsXG4gICN0YWJMaXN0RWxlbWVudFxuICBjbGFzcz1cInRhYnNcIlxuICByb2xlPVwidGFibGlzdFwiXG4gIChmb2N1c291dCk9XCJvbkZvY3VzT3V0KCRldmVudClcIlxuICBbYXR0ci5hcmlhLW93bnNdPVwidGFiSWRzLmpvaW4oJyAnKVwiXG4gIFtjbGFzcy5jZW50ZXJlZF09XCJpc0NlbnRlcmVkXCJcbj5cbiAgPG5nLWNvbnRlbnQgLz5cbjwvdWw+XG5cbjxuZy10ZW1wbGF0ZSBbY2RrUG9ydGFsT3V0bGV0XT1cImFjdGl2ZVRhYlBvcnRhbFwiIC8+XG4iXX0=
|
@@ -1,20 +0,0 @@
|
|
1
|
-
import { PortalModule } from '@angular/cdk/portal';
|
2
|
-
import { CommonModule } from '@angular/common';
|
3
|
-
import { NgModule } from '@angular/core';
|
4
|
-
import { RouterModule } from '@angular/router';
|
5
|
-
import { TabGroupComponent } from './components/tab-group/tab-group.component';
|
6
|
-
import { TabComponent } from './components/tab/tab.component';
|
7
|
-
import * as i0 from "@angular/core";
|
8
|
-
export class LxTabUiModule {
|
9
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LxTabUiModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
10
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: LxTabUiModule, imports: [PortalModule, CommonModule, RouterModule, TabGroupComponent, TabComponent], exports: [TabGroupComponent, TabComponent] }); }
|
11
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LxTabUiModule, imports: [PortalModule, CommonModule, RouterModule, TabGroupComponent, TabComponent] }); }
|
12
|
-
}
|
13
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: LxTabUiModule, decorators: [{
|
14
|
-
type: NgModule,
|
15
|
-
args: [{
|
16
|
-
imports: [PortalModule, CommonModule, RouterModule, TabGroupComponent, TabComponent],
|
17
|
-
exports: [TabGroupComponent, TabComponent]
|
18
|
-
}]
|
19
|
-
}] });
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLXVpLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL3RhYi11aS90YWItdWkubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQU05RCxNQUFNLE9BQU8sYUFBYTs4R0FBYixhQUFhOytHQUFiLGFBQWEsWUFIZCxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxZQUFZLGFBQ3pFLGlCQUFpQixFQUFFLFlBQVk7K0dBRTlCLGFBQWEsWUFIZCxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxZQUFZOzsyRkFHeEUsYUFBYTtrQkFKekIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxZQUFZLENBQUM7b0JBQ3BGLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixFQUFFLFlBQVksQ0FBQztpQkFDM0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3J0YWxNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRhYkdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RhYi1ncm91cC90YWItZ3JvdXAuY29tcG9uZW50JztcbmltcG9ydCB7IFRhYkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90YWIvdGFiLmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtQb3J0YWxNb2R1bGUsIENvbW1vbk1vZHVsZSwgUm91dGVyTW9kdWxlLCBUYWJHcm91cENvbXBvbmVudCwgVGFiQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1RhYkdyb3VwQ29tcG9uZW50LCBUYWJDb21wb25lbnRdXG59KVxuZXhwb3J0IGNsYXNzIEx4VGFiVWlNb2R1bGUge31cbiJdfQ==
|