@skyux/tabs 11.31.0 → 12.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (45) hide show
  1. package/documentation.json +778 -770
  2. package/fesm2022/skyux-tabs.mjs +83 -82
  3. package/fesm2022/skyux-tabs.mjs.map +1 -1
  4. package/package.json +16 -20
  5. package/esm2022/index.mjs +0 -20
  6. package/esm2022/lib/modules/sectioned-form/sectioned-form-section.component.mjs +0 -65
  7. package/esm2022/lib/modules/sectioned-form/sectioned-form.component.mjs +0 -187
  8. package/esm2022/lib/modules/sectioned-form/sectioned-form.module.mjs +0 -33
  9. package/esm2022/lib/modules/sectioned-form/sectioned-form.service.mjs +0 -35
  10. package/esm2022/lib/modules/sectioned-form/types/sectioned-form-message-type.mjs +0 -5
  11. package/esm2022/lib/modules/sectioned-form/types/sectioned-form-message.mjs +0 -2
  12. package/esm2022/lib/modules/shared/sky-tabs-resources.module.mjs +0 -44
  13. package/esm2022/lib/modules/shared/tab-id.service.mjs +0 -50
  14. package/esm2022/lib/modules/tabs/tab-button-adapter.service.mjs +0 -16
  15. package/esm2022/lib/modules/tabs/tab-button-view-model.mjs +0 -2
  16. package/esm2022/lib/modules/tabs/tab-button.component.mjs +0 -163
  17. package/esm2022/lib/modules/tabs/tab-index.mjs +0 -2
  18. package/esm2022/lib/modules/tabs/tab-layout-type.mjs +0 -2
  19. package/esm2022/lib/modules/tabs/tab.component.mjs +0 -199
  20. package/esm2022/lib/modules/tabs/tabs.module.mjs +0 -56
  21. package/esm2022/lib/modules/tabs/tabset-active-tab-change-args.mjs +0 -2
  22. package/esm2022/lib/modules/tabs/tabset-active-tab-unregistered-args.mjs +0 -2
  23. package/esm2022/lib/modules/tabs/tabset-adapter.service.mjs +0 -68
  24. package/esm2022/lib/modules/tabs/tabset-buttons-display-mode.mjs +0 -2
  25. package/esm2022/lib/modules/tabs/tabset-nav-button-disabled.pipe.mjs +0 -22
  26. package/esm2022/lib/modules/tabs/tabset-nav-button-type.mjs +0 -2
  27. package/esm2022/lib/modules/tabs/tabset-nav-button.component.mjs +0 -149
  28. package/esm2022/lib/modules/tabs/tabset-permalink.service.mjs +0 -132
  29. package/esm2022/lib/modules/tabs/tabset-style.mjs +0 -2
  30. package/esm2022/lib/modules/tabs/tabset-tab-indexes-change.mjs +0 -2
  31. package/esm2022/lib/modules/tabs/tabset.component.mjs +0 -479
  32. package/esm2022/lib/modules/tabs/tabset.service.mjs +0 -193
  33. package/esm2022/lib/modules/vertical-tabset/vertical-tab.component.mjs +0 -183
  34. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +0 -67
  35. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-group-message.mjs +0 -2
  36. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +0 -152
  37. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-group.service.mjs +0 -17
  38. package/esm2022/lib/modules/vertical-tabset/vertical-tabset.component.mjs +0 -173
  39. package/esm2022/lib/modules/vertical-tabset/vertical-tabset.module.mjs +0 -61
  40. package/esm2022/lib/modules/vertical-tabset/vertical-tabset.service.mjs +0 -200
  41. package/esm2022/skyux-tabs.mjs +0 -5
  42. package/esm2022/testing/legacy/tabs/tab-fixture-tab.mjs +0 -2
  43. package/esm2022/testing/legacy/tabs/tabset-fixture.mjs +0 -129
  44. package/esm2022/testing/public-api.mjs +0 -2
  45. package/esm2022/testing/skyux-tabs-testing.mjs +0 -5
@@ -1,22 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class SkyTabsetNavButtonDisabledPipe {
4
- transform(disabled, buttonType, tabToSelectExists, tabToSelectIsDisabled) {
5
- if (disabled !== undefined) {
6
- return disabled;
7
- }
8
- else if (buttonType === 'finish') {
9
- return false;
10
- }
11
- return !tabToSelectExists || !!tabToSelectIsDisabled;
12
- }
13
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
14
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, name: "skyTabsetNavButtonDisabled" }); }
15
- }
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyTabsetNavButtonDisabledPipe, decorators: [{
17
- type: Pipe,
18
- args: [{
19
- name: 'skyTabsetNavButtonDisabled',
20
- }]
21
- }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LW5hdi1idXR0b24tZGlzYWJsZWQucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy90YWJzL3RhYnNldC1uYXYtYnV0dG9uLWRpc2FibGVkLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBT3BELE1BQU0sT0FBTyw4QkFBOEI7SUFDbEMsU0FBUyxDQUNkLFFBQTZCLEVBQzdCLFVBQTRDLEVBQzVDLGlCQUEyQixFQUMzQixxQkFBK0I7UUFFL0IsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDM0IsT0FBTyxRQUFRLENBQUM7UUFDbEIsQ0FBQzthQUFNLElBQUksVUFBVSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ25DLE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQztRQUVELE9BQU8sQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLENBQUMscUJBQXFCLENBQUM7SUFDdkQsQ0FBQzsrR0FkVSw4QkFBOEI7NkdBQTlCLDhCQUE4Qjs7NEZBQTlCLDhCQUE4QjtrQkFIMUMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsNEJBQTRCO2lCQUNuQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5VGFic2V0TmF2QnV0dG9uVHlwZSB9IGZyb20gJy4vdGFic2V0LW5hdi1idXR0b24tdHlwZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3NreVRhYnNldE5hdkJ1dHRvbkRpc2FibGVkJyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5VGFic2V0TmF2QnV0dG9uRGlzYWJsZWRQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHB1YmxpYyB0cmFuc2Zvcm0oXG4gICAgZGlzYWJsZWQ6IGJvb2xlYW4gfCB1bmRlZmluZWQsXG4gICAgYnV0dG9uVHlwZT86IFNreVRhYnNldE5hdkJ1dHRvblR5cGUgfCBzdHJpbmcsXG4gICAgdGFiVG9TZWxlY3RFeGlzdHM/OiBib29sZWFuLFxuICAgIHRhYlRvU2VsZWN0SXNEaXNhYmxlZD86IGJvb2xlYW4sXG4gICk6IGJvb2xlYW4ge1xuICAgIGlmIChkaXNhYmxlZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZGlzYWJsZWQ7XG4gICAgfSBlbHNlIGlmIChidXR0b25UeXBlID09PSAnZmluaXNoJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIHJldHVybiAhdGFiVG9TZWxlY3RFeGlzdHMgfHwgISF0YWJUb1NlbGVjdElzRGlzYWJsZWQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LW5hdi1idXR0b24tdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy90YWJzL3RhYnNldC1uYXYtYnV0dG9uLXR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIG5hdiBidXR0b24gdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgU2t5VGFic2V0TmF2QnV0dG9uVHlwZSA9ICdwcmV2aW91cycgfCAnbmV4dCcgfCAnZmluaXNoJztcbiJdfQ==
@@ -1,149 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import { Subject } from 'rxjs';
3
- import { distinctUntilChanged, takeUntil } from 'rxjs/operators';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@skyux/core";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "@skyux/i18n";
8
- import * as i4 from "./tabset-nav-button-disabled.pipe";
9
- const buttonTypeNext = 'next';
10
- const buttonTypePrevious = 'previous';
11
- const buttonTypeFinish = 'finish';
12
- export class SkyTabsetNavButtonComponent {
13
- /**
14
- * The tabset wizard component to associate with the nav button.
15
- * @required
16
- */
17
- get tabset() {
18
- return this.#_tabset;
19
- }
20
- set tabset(value) {
21
- this.#_tabset = value;
22
- if (this.#currentTabsetSub) {
23
- this.#currentTabsetSub.unsubscribe();
24
- }
25
- if (value) {
26
- this.#currentTabsetSub = value.activeChange
27
- .pipe(distinctUntilChanged(), takeUntil(this.#ngUnsubscribe))
28
- .subscribe((index) => {
29
- this.#activeSkyTabIndex = index;
30
- this.#tabCount = this.#_tabset?.tabs?.length;
31
- this.#updateTabToSelect();
32
- this.#updateButtonVisibility();
33
- this.#updateButtonProperties();
34
- });
35
- }
36
- else {
37
- this.#logger.error('The SkyTabsetNavButtonComponent requires a reference to the SkyTabsetComponent it controls.');
38
- }
39
- }
40
- /**
41
- * The type of nav button to include.
42
- * @required
43
- */
44
- get buttonType() {
45
- return this.#_buttonType;
46
- }
47
- set buttonType(value) {
48
- this.#_buttonType = value;
49
- this.#updateTabToSelect();
50
- this.#updateButtonProperties();
51
- this.#updateButtonVisibility();
52
- if (value === buttonTypeFinish) {
53
- this.type = 'submit';
54
- }
55
- else {
56
- this.type = 'button';
57
- }
58
- }
59
- /**
60
- * Whether to disable the nav button.
61
- * Defaults to the disabled state of the next tab for `next`, the existence of a previous tab for `previous`,
62
- * and false for `finish`.
63
- */
64
- set disabled(value) {
65
- this.#_disabled = value;
66
- }
67
- get disabled() {
68
- return this.#_disabled;
69
- }
70
- #_buttonType;
71
- #_disabled;
72
- #_tabset;
73
- #activeIndexNumber;
74
- #activeSkyTabIndex;
75
- #currentTabsetSub;
76
- #logger;
77
- #tabCount;
78
- #ngUnsubscribe;
79
- constructor(logger) {
80
- this.isVisible = false;
81
- this.type = 'submit';
82
- this.#ngUnsubscribe = new Subject();
83
- this.#logger = logger;
84
- }
85
- ngOnDestroy() {
86
- this.#ngUnsubscribe.next();
87
- this.#ngUnsubscribe.complete();
88
- }
89
- buttonClick() {
90
- /* istanbul ignore else */
91
- if (this.tabToSelect && !this.tabToSelect.disabled && this.tabset) {
92
- this.tabset.active = this.tabToSelect.tabIndexValue;
93
- }
94
- }
95
- #updateButtonVisibility() {
96
- const isLastStep = !!this.#tabCount && this.#activeIndexNumber === this.#tabCount - 1;
97
- if (this.buttonType === buttonTypeFinish) {
98
- this.isVisible = isLastStep;
99
- }
100
- else if (this.buttonType === buttonTypeNext) {
101
- this.isVisible = !isLastStep;
102
- }
103
- else {
104
- this.isVisible = true;
105
- }
106
- }
107
- #updateButtonProperties() {
108
- if (this.buttonType === buttonTypeNext ||
109
- this.buttonType === buttonTypeFinish) {
110
- this.buttonClassName = 'sky-btn-primary';
111
- }
112
- else {
113
- this.buttonClassName = 'sky-btn-default';
114
- }
115
- this.ariaControls = this.tabToSelect?.tabPanelId;
116
- }
117
- #updateTabToSelect() {
118
- if (this.tabset?.tabs) {
119
- const tabs = this.tabset.tabs.toArray();
120
- this.tabToSelect = undefined;
121
- // tab index can be a number or a string, but we need the actual number index
122
- this.#activeIndexNumber = tabs.findIndex((tab) => tab.tabIndexValue === this.#activeSkyTabIndex);
123
- /* istanbul ignore else */
124
- if (this.#activeIndexNumber !== undefined) {
125
- if (this.buttonType === buttonTypeNext) {
126
- this.tabToSelect = tabs[this.#activeIndexNumber + 1];
127
- }
128
- else if (this.buttonType === buttonTypePrevious) {
129
- this.tabToSelect = tabs[this.#activeIndexNumber - 1];
130
- }
131
- }
132
- }
133
- }
134
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyTabsetNavButtonComponent, deps: [{ token: i1.SkyLogService }], target: i0.ɵɵFactoryTarget.Component }); }
135
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SkyTabsetNavButtonComponent, selector: "sky-tabset-nav-button", inputs: { tabset: "tabset", buttonType: "buttonType", buttonText: "buttonText", disabled: "disabled" }, ngImport: i0, template: "@if (isVisible) {\n <button\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"\n disabled\n | skyTabsetNavButtonDisabled\n : buttonType\n : !!tabToSelect\n : tabToSelect?.disabled\n \"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n >\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n </button>\n}\n", dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i3.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "pipe", type: i4.SkyTabsetNavButtonDisabledPipe, name: "skyTabsetNavButtonDisabled" }] }); }
136
- }
137
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyTabsetNavButtonComponent, decorators: [{
138
- type: Component,
139
- args: [{ selector: 'sky-tabset-nav-button', template: "@if (isVisible) {\n <button\n class=\"sky-btn sky-margin-inline-sm\"\n [attr.aria-controls]=\"ariaControls\"\n [disabled]=\"\n disabled\n | skyTabsetNavButtonDisabled\n : buttonType\n : !!tabToSelect\n : tabToSelect?.disabled\n \"\n [ngClass]=\"buttonClassName\"\n [type]=\"type\"\n (click)=\"buttonType === 'finish' ? null : buttonClick()\"\n >\n {{ buttonText || ('skyux_tabs_navigator_' + buttonType | skyLibResources) }}\n </button>\n}\n" }]
140
- }], ctorParameters: () => [{ type: i1.SkyLogService }], propDecorators: { tabset: [{
141
- type: Input
142
- }], buttonType: [{
143
- type: Input
144
- }], buttonText: [{
145
- type: Input
146
- }], disabled: [{
147
- type: Input
148
- }] } });
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LW5hdi1idXR0b24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHNUQsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFPakUsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDO0FBQzlCLE1BQU0sa0JBQWtCLEdBQUcsVUFBVSxDQUFDO0FBQ3RDLE1BQU0sZ0JBQWdCLEdBQUcsUUFBUSxDQUFDO0FBTWxDLE1BQU0sT0FBTywyQkFBMkI7SUFDdEM7OztPQUdHO0lBQ0gsSUFDVyxNQUFNO1FBQ2YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFXLE1BQU0sQ0FBQyxLQUFxQztRQUNyRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUV0QixJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxDQUFDO1FBRUQsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNWLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsWUFBWTtpQkFDeEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUs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RUFBRSxDQUFDO29CQUNsRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsQ0FBQyxDQUFDLENBQUM7Z0JBQ3ZELENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0dBM0pVLDJCQUEyQjttR0FBM0IsMkJBQTJCLHFLQ25CeEMsNmZBa0JBOzs0RkRDYSwyQkFBMkI7a0JBSnZDLFNBQVM7K0JBQ0UsdUJBQXVCO2tGQVN0QixNQUFNO3NCQURoQixLQUFLO2dCQWtDSyxVQUFVO3NCQURwQixLQUFLO2dCQXVCQyxVQUFVO3NCQURoQixLQUFLO2dCQVNLLFFBQVE7c0JBRGxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3kgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNreUxvZ1NlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGFiSW5kZXggfSBmcm9tICcuL3RhYi1pbmRleCc7XG5pbXBvcnQgeyBTa3lUYWJDb21wb25lbnQgfSBmcm9tICcuL3RhYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5VGFic2V0TmF2QnV0dG9uVHlwZSB9IGZyb20gJy4vdGFic2V0LW5hdi1idXR0b24tdHlwZSc7XG5pbXBvcnQgeyBTa3lUYWJzZXRDb21wb25lbnQgfSBmcm9tICcuL3RhYnNldC5jb21wb25lbnQnO1xuXG5jb25zdCBidXR0b25UeXBlTmV4dCA9ICduZXh0JztcbmNvbnN0IGJ1dHRvblR5cGVQcmV2aW91cyA9ICdwcmV2aW91cyc7XG5jb25zdCBidXR0b25UeXBlRmluaXNoID0gJ2ZpbmlzaCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS10YWJzZXQtbmF2LWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJzZXQtbmF2LWJ1dHRvbi5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIFNreVRhYnNldE5hdkJ1dHRvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIC8qKlxuICAgKiBUaGUgdGFic2V0IHdpemFyZCBjb21wb25lbnQgdG8gYXNzb2NpYXRlIHdpdGggdGhlIG5hdiBidXR0b24uXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCB0YWJzZXQoKTogU2t5VGFic2V0Q29tcG9uZW50IHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX3RhYnNldDtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgdGFic2V0KHZhbHVlOiBTa3lUYWJzZXRDb21wb25lbnQgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfdGFic2V0ID0gdmFsdWU7XG5cbiAgICBpZiAodGhpcy4jY3VycmVudFRhYnNldFN1Yikge1xuICAgICAgdGhpcy4jY3VycmVudFRhYnNldFN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jY3VycmVudFRhYnNldFN1YiA9IHZhbHVlLmFjdGl2ZUNoYW5nZVxuICAgICAgICAucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLCB0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKGluZGV4OiBTa3lUYWJJbmRleCkgPT4ge1xuICAgICAgICAgIHRoaXMuI2FjdGl2ZVNreVRhYkluZGV4ID0gaW5kZXg7XG4gICAgICAgICAgdGhpcy4jdGFiQ291bnQgPSB0aGlzLiNfdGFic2V0Py50YWJzPy5sZW5ndGg7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlVGFiVG9TZWxlY3QoKTtcbiAgICAgICAgICB0aGlzLiN1cGRhdGVCdXR0b25WaXNpYmlsaXR5KCk7XG4gICAgICAgICAgdGhpcy4jdXBkYXRlQnV0dG9uUHJvcGVydGllcygpO1xuICAgICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jbG9nZ2VyLmVycm9yKFxuICAgICAgICAnVGhlIFNreVRhYnNldE5hdkJ1dHRvbkNvbXBvbmVudCByZXF1aXJlcyBhIHJlZmVyZW5jZSB0byB0aGUgU2t5VGFic2V0Q29tcG9uZW50IGl0IGNvbnRyb2xzLicsXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgdHlwZSBvZiBuYXYgYnV0dG9uIHRvIGluY2x1ZGUuXG4gICAqIEByZXF1aXJlZFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBidXR0b25UeXBlKCk6IFNreVRhYnNldE5hdkJ1dHRvblR5cGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfYnV0dG9uVHlwZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXQgYnV0dG9uVHlwZSh2YWx1ZTogU2t5VGFic2V0TmF2QnV0dG9uVHlwZSB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19idXR0b25UeXBlID0gdmFsdWU7XG4gICAgdGhpcy4jdXBkYXRlVGFiVG9TZWxlY3QoKTtcbiAgICB0aGlzLiN1cGRhdGVCdXR0b25Qcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy4jdXBkYXRlQnV0dG9uVmlzaWJpbGl0eSgpO1xuXG4gICAgaWYgKHZhbHVlID09PSBidXR0b25UeXBlRmluaXNoKSB7XG4gICAgICB0aGlzLnR5cGUgPSAnc3VibWl0JztcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy50eXBlID0gJ2J1dHRvbic7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBsYWJlbCB0byBkaXNwbGF5IG9uIHRoZSBuYXYgYnV0dG9uLiBUaGUgZm9sbG93aW5nIGFyZSB0aGUgZGVmYXVsdHMgZm9yIGVhY2ggYGJ1dHRvblR5cGVgOlxuICAgKiBgbmV4dGAgPSBcIk5leHRcIiwgYHByZXZpb3VzYCA9IFwiUHJldmlvdXNcIiwgYGZpbmlzaGAgPSBcIkZpbmlzaFwiXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgYnV0dG9uVGV4dD86IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICAvKipcbiAgICogV2hldGhlciB0byBkaXNhYmxlIHRoZSBuYXYgYnV0dG9uLlxuICAgKiBEZWZhdWx0cyB0byB0aGUgZGlzYWJsZWQgc3RhdGUgb2YgdGhlIG5leHQgdGFiIGZvciBgbmV4dGAsIHRoZSBleGlzdGVuY2Ugb2YgYSBwcmV2aW91cyB0YWIgZm9yIGBwcmV2aW91c2AsXG4gICAqIGFuZCBmYWxzZSBmb3IgYGZpbmlzaGAuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy4jX2Rpc2FibGVkID0gdmFsdWU7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLiNfZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgYnV0dG9uQ2xhc3NOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHB1YmxpYyBpc1Zpc2libGUgPSBmYWxzZTtcbiAgcHVibGljIHR5cGU6ICdzdWJtaXQnIHwgJ2J1dHRvbicgPSAnc3VibWl0JztcbiAgcHVibGljIGFyaWFDb250cm9sczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHByb3RlY3RlZCB0YWJUb1NlbGVjdDogU2t5VGFiQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gICNfYnV0dG9uVHlwZTogU2t5VGFic2V0TmF2QnV0dG9uVHlwZSB8IHVuZGVmaW5lZDtcbiAgI19kaXNhYmxlZDogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgI190YWJzZXQ6IFNreVRhYnNldENvbXBvbmVudCB8IHVuZGVmaW5lZDtcbiAgI2FjdGl2ZUluZGV4TnVtYmVyOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICNhY3RpdmVTa3lUYWJJbmRleDogU2t5VGFiSW5kZXggfCB1bmRlZmluZWQ7XG4gICNjdXJyZW50VGFic2V0U3ViOiBTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ7XG4gICNsb2dnZXI6IFNreUxvZ1NlcnZpY2U7XG4gICN0YWJDb3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgY29uc3RydWN0b3IobG9nZ2VyOiBTa3lMb2dTZXJ2aWNlKSB7XG4gICAgdGhpcy4jbG9nZ2VyID0gbG9nZ2VyO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBidXR0b25DbGljaygpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh0aGlzLnRhYlRvU2VsZWN0ICYmICF0aGlzLnRhYlRvU2VsZWN0LmRpc2FibGVkICYmIHRoaXMudGFic2V0KSB7XG4gICAgICB0aGlzLnRhYnNldC5hY3RpdmUgPSB0aGlzLnRhYlRvU2VsZWN0LnRhYkluZGV4VmFsdWU7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUJ1dHRvblZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgY29uc3QgaXNMYXN0U3RlcCA9XG4gICAgICAhIXRoaXMuI3RhYkNvdW50ICYmIHRoaXMuI2FjdGl2ZUluZGV4TnVtYmVyID09PSB0aGlzLiN0YWJDb3VudCAtIDE7XG5cbiAgICBpZiAodGhpcy5idXR0b25UeXBlID09PSBidXR0b25UeXBlRmluaXNoKSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZSA9IGlzTGFzdFN0ZXA7XG4gICAgfSBlbHNlIGlmICh0aGlzLmJ1dHRvblR5cGUgPT09IGJ1dHRvblR5cGVOZXh0KSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZSA9ICFpc0xhc3RTdGVwO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmlzVmlzaWJsZSA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgI3VwZGF0ZUJ1dHRvblByb3BlcnRpZXMoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5idXR0b25UeXBlID09PSBidXR0b25UeXBlTmV4dCB8fFxuICAgICAgdGhpcy5idXR0b25UeXBlID09PSBidXR0b25UeXBlRmluaXNoXG4gICAgKSB7XG4gICAgICB0aGlzLmJ1dHRvbkNsYXNzTmFtZSA9ICdza3ktYnRuLXByaW1hcnknO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmJ1dHRvbkNsYXNzTmFtZSA9ICdza3ktYnRuLWRlZmF1bHQnO1xuICAgIH1cblxuICAgIHRoaXMuYXJpYUNvbnRyb2xzID0gdGhpcy50YWJUb1NlbGVjdD8udGFiUGFuZWxJZDtcbiAgfVxuXG4gICN1cGRhdGVUYWJUb1NlbGVjdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy50YWJzZXQ/LnRhYnMpIHtcbiAgICAgIGNvbnN0IHRhYnMgPSB0aGlzLnRhYnNldC50YWJzLnRvQXJyYXkoKTtcbiAgICAgIHRoaXMudGFiVG9TZWxlY3QgPSB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIHRhYiBpbmRleCBjYW4gYmUgYSBudW1iZXIgb3IgYSBzdHJpbmcsIGJ1dCB3ZSBuZWVkIHRoZSBhY3R1YWwgbnVtYmVyIGluZGV4XG4gICAgICB0aGlzLiNhY3RpdmVJbmRleE51bWJlciA9IHRhYnMuZmluZEluZGV4KFxuICAgICAgICAodGFiKSA9PiB0YWIudGFiSW5kZXhWYWx1ZSA9PT0gdGhpcy4jYWN0aXZlU2t5VGFiSW5kZXgsXG4gICAgICApO1xuXG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKHRoaXMuI2FjdGl2ZUluZGV4TnVtYmVyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHRoaXMuYnV0dG9uVHlwZSA9PT0gYnV0dG9uVHlwZU5leHQpIHtcbiAgICAgICAgICB0aGlzLnRhYlRvU2VsZWN0ID0gdGFic1t0aGlzLiNhY3RpdmVJbmRleE51bWJlciArIDFdO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuYnV0dG9uVHlwZSA9PT0gYnV0dG9uVHlwZVByZXZpb3VzKSB7XG4gICAgICAgICAgdGhpcy50YWJUb1NlbGVjdCA9IHRhYnNbdGhpcy4jYWN0aXZlSW5kZXhOdW1iZXIgLSAxXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIiwiQGlmIChpc1Zpc2libGUpIHtcbiAgPGJ1dHRvblxuICAgIGNsYXNzPVwic2t5LWJ0biBza3ktbWFyZ2luLWlubGluZS1zbVwiXG4gICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJhcmlhQ29udHJvbHNcIlxuICAgIFtkaXNhYmxlZF09XCJcbiAgICAgIGRpc2FibGVkXG4gICAgICAgIHwgc2t5VGFic2V0TmF2QnV0dG9uRGlzYWJsZWRcbiAgICAgICAgICA6IGJ1dHRvblR5cGVcbiAgICAgICAgICA6ICEhdGFiVG9TZWxlY3RcbiAgICAgICAgICA6IHRhYlRvU2VsZWN0Py5kaXNhYmxlZFxuICAgIFwiXG4gICAgW25nQ2xhc3NdPVwiYnV0dG9uQ2xhc3NOYW1lXCJcbiAgICBbdHlwZV09XCJ0eXBlXCJcbiAgICAoY2xpY2spPVwiYnV0dG9uVHlwZSA9PT0gJ2ZpbmlzaCcgPyBudWxsIDogYnV0dG9uQ2xpY2soKVwiXG4gID5cbiAgICB7eyBidXR0b25UZXh0IHx8ICgnc2t5dXhfdGFic19uYXZpZ2F0b3JfJyArIGJ1dHRvblR5cGUgfCBza3lMaWJSZXNvdXJjZXMpIH19XG4gIDwvYnV0dG9uPlxufVxuIl19
@@ -1,132 +0,0 @@
1
- import { Location } from '@angular/common';
2
- import { Injectable, inject } from '@angular/core';
3
- import { ActivatedRoute, Router } from '@angular/router';
4
- import { Subject } from 'rxjs';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * @internal
8
- */
9
- export class SkyTabsetPermalinkService {
10
- get popStateChange() {
11
- return this.#popStateChange;
12
- }
13
- #popStateChange = new Subject();
14
- #subscription;
15
- #activatedRoute = inject(ActivatedRoute);
16
- #location = inject(Location);
17
- #router = inject(Router);
18
- ngOnDestroy() {
19
- this.#subscription?.unsubscribe();
20
- this.#popStateChange.complete();
21
- }
22
- init() {
23
- this.#subscription = this.#location.subscribe(() => {
24
- this.#popStateChange.next();
25
- });
26
- }
27
- /**
28
- * Returns the value of a URL query param.
29
- */
30
- getParam(name) {
31
- return this.#getParams()[name];
32
- }
33
- /**
34
- * Sets the value of a URL query param.
35
- */
36
- setParam(name, value, initial) {
37
- const params = this.#getParams();
38
- if (value === null) {
39
- delete params[name];
40
- }
41
- else {
42
- params[name] = value;
43
- }
44
- // Uses replace so that values can be deleted.
45
- const url = this.#router
46
- .createUrlTree([], {
47
- relativeTo: this.#activatedRoute,
48
- queryParams: params,
49
- queryParamsHandling: 'replace',
50
- })
51
- .toString();
52
- // Abort redirect if the current URL is equal to the new URL.
53
- if (this.#location.isCurrentPathEqualTo(url)) {
54
- return;
55
- }
56
- // Navigate via the Angular router to update the URL and broadcast the
57
- // change. Use `replaceUrl` on the initial navigation so an extra history
58
- // item isn't added to the browser's back stack.
59
- void this.#router.navigate([], {
60
- relativeTo: this.#activatedRoute,
61
- queryParams: params,
62
- queryParamsHandling: 'replace',
63
- replaceUrl: initial,
64
- });
65
- }
66
- /**
67
- * Removes the provided query param from the URL.
68
- */
69
- clearParam(name) {
70
- // Don't overwrite the URL while the Angular router is in the process
71
- // of navigating (e.g. when the tabset is destroyed due to navigating
72
- // away from the current page).
73
- if (!this.#router.getCurrentNavigation()) {
74
- this.setParam(name, null);
75
- }
76
- }
77
- /**
78
- * Returns a relative URL that includes the provided query parameter. The value is intended to be
79
- * used by an HTML anchor element.
80
- */
81
- getParamHref(name, value) {
82
- if (!name) {
83
- return null;
84
- }
85
- const params = this.#getParams();
86
- params[name] = value;
87
- const baseUrl = this.#location.path().split('?')[0];
88
- const paramString = Object.keys(params)
89
- .map((k) => `${k}=${params[k]}`)
90
- .join('&');
91
- return this.#location.prepareExternalUrl(`${baseUrl}?${paramString}`);
92
- }
93
- /**
94
- * Converts the provided string into a value that can be safely used in a URL.
95
- */
96
- urlify(value) {
97
- if (!value) {
98
- return '';
99
- }
100
- const sanitized = value
101
- .toLowerCase()
102
- // Remove special characters.
103
- .replace(/[_~`@!#$%^&*()[\]{};:'/\\<>,.?=+|"]/g, '')
104
- // Replace space characters with a dash.
105
- .replace(/\s/g, '-')
106
- // Remove any double-dashes.
107
- .replace(/--/g, '-');
108
- return sanitized;
109
- }
110
- /**
111
- * Returns all query params that exist in the current URL.
112
- */
113
- #getParams() {
114
- const params = {};
115
- const path = this.#location.path();
116
- if (path.indexOf('?') === -1) {
117
- return params;
118
- }
119
- const existingParamPairs = path.split('?')[1].split('&');
120
- existingParamPairs.forEach((pair) => {
121
- const fragments = pair.split('=');
122
- params[fragments[0]] = decodeURIComponent(fragments[1]);
123
- });
124
- return params;
125
- }
126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyTabsetPermalinkService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
127
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyTabsetPermalinkService }); }
128
- }
129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SkyTabsetPermalinkService, decorators: [{
130
- type: Injectable
131
- }] });
132
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LXBlcm1hbGluay5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LXBlcm1hbGluay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRXpELE9BQU8sRUFBYyxPQUFPLEVBQW9CLE1BQU0sTUFBTSxDQUFDOztBQU83RDs7R0FFRztBQUVILE1BQU0sT0FBTyx5QkFBeUI7SUFDcEMsSUFBVyxjQUFjO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUM5QixDQUFDO0lBRUQsZUFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFFdEMsYUFBYSxDQUErQjtJQUVuQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3pDLFNBQVMsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDN0IsT0FBTyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUUzQixXQUFXO1FBQ2hCLElBQUksQ0FBQyxhQUFhLEVBQUUsV0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU0sSUFBSTtRQUNULElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2pELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDOUIsQ0FBQyxDQUFDLENBQUM7SUFDTCxD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QztZQUVwQiw0QkFBNEI7YUFDM0IsT0FBTyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztRQUV2QixPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVO1FBQ1IsTUFBTSxNQUFNLEdBQW9CLEVBQUUsQ0FBQztRQUVuQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQzdCLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxNQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3pELGtCQUFrQixDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbEMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLGtCQUFrQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQzFELENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzsrR0E3SVUseUJBQXlCO21IQUF6Qix5QkFBeUI7OzRGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBPbkRlc3Ryb3ksIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbkxpa2UgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xudHlwZSBQZXJtYWxpbmtQYXJhbXMgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5VGFic2V0UGVybWFsaW5rU2VydmljZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBnZXQgcG9wU3RhdGVDaGFuZ2UoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuI3BvcFN0YXRlQ2hhbmdlO1xuICB9XG5cbiAgI3BvcFN0YXRlQ2hhbmdlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb25MaWtlIHwgdW5kZWZpbmVkO1xuXG4gIHJlYWRvbmx5ICNhY3RpdmF0ZWRSb3V0ZSA9IGluamVjdChBY3RpdmF0ZWRSb3V0ZSk7XG4gIHJlYWRvbmx5ICNsb2NhdGlvbiA9IGluamVjdChMb2NhdGlvbik7XG4gIHJlYWRvbmx5ICNyb3V0ZXIgPSBpbmplY3QoUm91dGVyKTtcblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy4jc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuI3BvcFN0YXRlQ2hhbmdlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgaW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24gPSB0aGlzLiNsb2NhdGlvbi5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy4jcG9wU3RhdGVDaGFuZ2UubmV4dCgpO1xuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIHZhbHVlIG9mIGEgVVJMIHF1ZXJ5IHBhcmFtLlxuICAgKi9cbiAgcHVibGljIGdldFBhcmFtKG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuI2dldFBhcmFtcygpW25hbWVdO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIHZhbHVlIG9mIGEgVVJMIHF1ZXJ5IHBhcmFtLlxuICAgKi9cbiAgcHVibGljIHNldFBhcmFtKG5hbWU6IHN0cmluZywgdmFsdWU6IHN0cmluZyB8IG51bGwsIGluaXRpYWw/OiBib29sZWFuKTogdm9pZCB7XG4gICAgY29uc3QgcGFyYW1zID0gdGhpcy4jZ2V0UGFyYW1zKCk7XG5cbiAgICBpZiAodmFsdWUgPT09IG51bGwpIHtcbiAgICAgIGRlbGV0ZSBwYXJhbXNbbmFtZV07XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmFtc1tuYW1lXSA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8vIFVzZXMgcmVwbGFjZSBzbyB0aGF0IHZhbHVlcyBjYW4gYmUgZGVsZXRlZC5cbiAgICBjb25zdCB1cmwgPSB0aGlzLiNyb3V0ZXJcbiAgICAgIC5jcmVhdGVVcmxUcmVlKFtdLCB7XG4gICAgICAgIHJlbGF0aXZlVG86IHRoaXMuI2FjdGl2YXRlZFJvdXRlLFxuICAgICAgICBxdWVyeVBhcmFtczogcGFyYW1zLFxuICAgICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAncmVwbGFjZScsXG4gICAgICB9KVxuICAgICAgLnRvU3RyaW5nKCk7XG5cbiAgICAvLyBBYm9ydCByZWRpcmVjdCBpZiB0aGUgY3VycmVudCBVUkwgaXMgZXF1YWwgdG8gdGhlIG5ldyBVUkwuXG4gICAgaWYgKHRoaXMuI2xvY2F0aW9uLmlzQ3VycmVudFBhdGhFcXVhbFRvKHVybCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvLyBOYXZpZ2F0ZSB2aWEgdGhlIEFuZ3VsYXIgcm91dGVyIHRvIHVwZGF0ZSB0aGUgVVJMIGFuZCBicm9hZGNhc3QgdGhlXG4gICAgLy8gY2hhbmdlLiBVc2UgYHJlcGxhY2VVcmxgIG9uIHRoZSBpbml0aWFsIG5hdmlnYXRpb24gc28gYW4gZXh0cmEgaGlzdG9yeVxuICAgIC8vIGl0ZW0gaXNuJ3QgYWRkZWQgdG8gdGhlIGJyb3dzZXIncyBiYWNrIHN0YWNrLlxuICAgIHZvaWQgdGhpcy4jcm91dGVyLm5hdmlnYXRlKFtdLCB7XG4gICAgICByZWxhdGl2ZVRvOiB0aGlzLiNhY3RpdmF0ZWRSb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiBwYXJhbXMsXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiAncmVwbGFjZScsXG4gICAgICByZXBsYWNlVXJsOiBpbml0aWFsLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZXMgdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtIGZyb20gdGhlIFVSTC5cbiAgICovXG4gIHB1YmxpYyBjbGVhclBhcmFtKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIC8vIERvbid0IG92ZXJ3cml0ZSB0aGUgVVJMIHdoaWxlIHRoZSBBbmd1bGFyIHJvdXRlciBpcyBpbiB0aGUgcHJvY2Vzc1xuICAgIC8vIG9mIG5hdmlnYXRpbmcgKGUuZy4gd2hlbiB0aGUgdGFic2V0IGlzIGRlc3Ryb3llZCBkdWUgdG8gbmF2aWdhdGluZ1xuICAgIC8vIGF3YXkgZnJvbSB0aGUgY3VycmVudCBwYWdlKS5cbiAgICBpZiAoIXRoaXMuI3JvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpKSB7XG4gICAgICB0aGlzLnNldFBhcmFtKG5hbWUsIG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgcmVsYXRpdmUgVVJMIHRoYXQgaW5jbHVkZXMgdGhlIHByb3ZpZGVkIHF1ZXJ5IHBhcmFtZXRlci4gVGhlIHZhbHVlIGlzIGludGVuZGVkIHRvIGJlXG4gICAqIHVzZWQgYnkgYW4gSFRNTCBhbmNob3IgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBnZXRQYXJhbUhyZWYobmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLCB2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFuYW1lKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLiNnZXRQYXJhbXMoKTtcbiAgICBwYXJhbXNbbmFtZV0gPSB2YWx1ZTtcblxuICAgIGNvbnN0IGJhc2VVcmwgPSB0aGlzLiNsb2NhdGlvbi5wYXRoKCkuc3BsaXQoJz8nKVswXTtcbiAgICBjb25zdCBwYXJhbVN0cmluZyA9IE9iamVjdC5rZXlzKHBhcmFtcylcbiAgICAgIC5tYXAoKGspID0+IGAke2t9PSR7cGFyYW1zW2tdfWApXG4gICAgICAuam9pbignJicpO1xuXG4gICAgcmV0dXJuIHRoaXMuI2xvY2F0aW9uLnByZXBhcmVFeHRlcm5hbFVybChgJHtiYXNlVXJsfT8ke3BhcmFtU3RyaW5nfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbnZlcnRzIHRoZSBwcm92aWRlZCBzdHJpbmcgaW50byBhIHZhbHVlIHRoYXQgY2FuIGJlIHNhZmVseSB1c2VkIGluIGEgVVJMLlxuICAgKi9cbiAgcHVibGljIHVybGlmeSh2YWx1ZTogc3RyaW5nIHwgdW5kZWZpbmVkKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICByZXR1cm4gJyc7XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkID0gdmFsdWVcbiAgICAgIC50b0xvd2VyQ2FzZSgpXG5cbiAgICAgIC8vIFJlbW92ZSBzcGVjaWFsIGNoYXJhY3RlcnMuXG4gICAgICAucmVwbGFjZSgvW19+YEAhIyQlXiYqKClbXFxde307OicvXFxcXDw+LC4/PSt8XCJdL2csICcnKVxuXG4gICAgICAvLyBSZXBsYWNlIHNwYWNlIGNoYXJhY3RlcnMgd2l0aCBhIGRhc2guXG4gICAgICAucmVwbGFjZSgvXFxzL2csICctJylcblxuICAgICAgLy8gUmVtb3ZlIGFueSBkb3VibGUtZGFzaGVzLlxuICAgICAgLnJlcGxhY2UoLy0tL2csICctJyk7XG5cbiAgICByZXR1cm4gc2FuaXRpemVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgYWxsIHF1ZXJ5IHBhcmFtcyB0aGF0IGV4aXN0IGluIHRoZSBjdXJyZW50IFVSTC5cbiAgICovXG4gICNnZXRQYXJhbXMoKTogUGVybWFsaW5rUGFyYW1zIHtcbiAgICBjb25zdCBwYXJhbXM6IFBlcm1hbGlua1BhcmFtcyA9IHt9O1xuXG4gICAgY29uc3QgcGF0aCA9IHRoaXMuI2xvY2F0aW9uLnBhdGgoKTtcbiAgICBpZiAocGF0aC5pbmRleE9mKCc/JykgPT09IC0xKSB7XG4gICAgICByZXR1cm4gcGFyYW1zO1xuICAgIH1cblxuICAgIGNvbnN0IGV4aXN0aW5nUGFyYW1QYWlycyA9IHBhdGguc3BsaXQoJz8nKVsxXS5zcGxpdCgnJicpO1xuICAgIGV4aXN0aW5nUGFyYW1QYWlycy5mb3JFYWNoKChwYWlyKSA9PiB7XG4gICAgICBjb25zdCBmcmFnbWVudHMgPSBwYWlyLnNwbGl0KCc9Jyk7XG4gICAgICBwYXJhbXNbZnJhZ21lbnRzWzBdXSA9IGRlY29kZVVSSUNvbXBvbmVudChmcmFnbWVudHNbMV0pO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIHBhcmFtcztcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LXN0eWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3RhYnMvdGFic2V0LXN0eWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBTa3lUYWJzZXRTdHlsZSA9ICd0YWJzJyB8ICd3aXphcmQnO1xuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFic2V0LXRhYi1pbmRleGVzLWNoYW5nZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy90YWJzL3RhYnNldC10YWItaW5kZXhlcy1jaGFuZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNreVRhYkluZGV4IH0gZnJvbSAnLi90YWItaW5kZXgnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNreVRhYnNldFRhYkluZGV4ZXNDaGFuZ2Uge1xuICB0YWJzPzoge1xuICAgIHRhYkhlYWRpbmc/OiBzdHJpbmc7XG5cbiAgICB0YWJJbmRleD86IFNreVRhYkluZGV4O1xuICB9W107XG59XG4iXX0=