@skyux/tabs 8.7.0 → 9.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 (77) hide show
  1. package/esm2022/lib/modules/sectioned-form/sectioned-form-section.component.mjs +65 -0
  2. package/esm2022/lib/modules/sectioned-form/sectioned-form.component.mjs +187 -0
  3. package/{esm2020 → esm2022}/lib/modules/sectioned-form/sectioned-form.module.mjs +11 -11
  4. package/{esm2020 → esm2022}/lib/modules/sectioned-form/sectioned-form.service.mjs +4 -4
  5. package/esm2022/lib/modules/shared/sky-tabs-resources.module.mjs +61 -0
  6. package/esm2022/lib/modules/shared/tab-id.service.mjs +50 -0
  7. package/{esm2020 → esm2022}/lib/modules/tabs/tab-button-adapter.service.mjs +4 -4
  8. package/esm2022/lib/modules/tabs/tab-button.component.mjs +162 -0
  9. package/esm2022/lib/modules/tabs/tab.component.mjs +197 -0
  10. package/{esm2020 → esm2022}/lib/modules/tabs/tabs.module.mjs +21 -21
  11. package/esm2022/lib/modules/tabs/tabset-adapter.service.mjs +68 -0
  12. package/{esm2020 → esm2022}/lib/modules/tabs/tabset-nav-button-disabled.pipe.mjs +4 -4
  13. package/esm2022/lib/modules/tabs/tabset-nav-button.component.mjs +149 -0
  14. package/esm2022/lib/modules/tabs/tabset-permalink.service.mjs +128 -0
  15. package/esm2022/lib/modules/tabs/tabset.component.mjs +466 -0
  16. package/esm2022/lib/modules/tabs/tabset.service.mjs +198 -0
  17. package/esm2022/lib/modules/vertical-tabset/vertical-tab-media-query.service.mjs +68 -0
  18. package/esm2022/lib/modules/vertical-tabset/vertical-tab.component.mjs +217 -0
  19. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +48 -0
  20. package/esm2022/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +108 -0
  21. package/esm2022/lib/modules/vertical-tabset/vertical-tabset.component.mjs +158 -0
  22. package/{esm2020 → esm2022}/lib/modules/vertical-tabset/vertical-tabset.module.mjs +21 -21
  23. package/esm2022/lib/modules/vertical-tabset/vertical-tabset.service.mjs +169 -0
  24. package/esm2022/testing/tabs/tabset-fixture.mjs +129 -0
  25. package/fesm2022/skyux-tabs-testing.mjs +136 -0
  26. package/{fesm2020 → fesm2022}/skyux-tabs-testing.mjs.map +1 -1
  27. package/fesm2022/skyux-tabs.mjs +2586 -0
  28. package/{fesm2020 → fesm2022}/skyux-tabs.mjs.map +1 -1
  29. package/lib/modules/sectioned-form/sectioned-form-section.component.d.ts +1 -1
  30. package/lib/modules/sectioned-form/sectioned-form.component.d.ts +1 -1
  31. package/lib/modules/tabs/tab-button.component.d.ts +1 -1
  32. package/lib/modules/tabs/tab.component.d.ts +1 -1
  33. package/lib/modules/tabs/tabset-nav-button.component.d.ts +1 -1
  34. package/lib/modules/tabs/tabset.component.d.ts +1 -1
  35. package/lib/modules/vertical-tabset/vertical-tab.component.d.ts +1 -1
  36. package/lib/modules/vertical-tabset/vertical-tabset-group.component.d.ts +1 -1
  37. package/lib/modules/vertical-tabset/vertical-tabset.component.d.ts +1 -1
  38. package/package.json +21 -29
  39. package/esm2020/lib/modules/sectioned-form/sectioned-form-section.component.mjs +0 -67
  40. package/esm2020/lib/modules/sectioned-form/sectioned-form.component.mjs +0 -187
  41. package/esm2020/lib/modules/shared/sky-tabs-resources.module.mjs +0 -61
  42. package/esm2020/lib/modules/shared/tab-id.service.mjs +0 -53
  43. package/esm2020/lib/modules/tabs/tab-button.component.mjs +0 -162
  44. package/esm2020/lib/modules/tabs/tab.component.mjs +0 -198
  45. package/esm2020/lib/modules/tabs/tabset-adapter.service.mjs +0 -68
  46. package/esm2020/lib/modules/tabs/tabset-nav-button.component.mjs +0 -149
  47. package/esm2020/lib/modules/tabs/tabset-permalink.service.mjs +0 -128
  48. package/esm2020/lib/modules/tabs/tabset.component.mjs +0 -429
  49. package/esm2020/lib/modules/tabs/tabset.service.mjs +0 -196
  50. package/esm2020/lib/modules/vertical-tabset/vertical-tab-media-query.service.mjs +0 -71
  51. package/esm2020/lib/modules/vertical-tabset/vertical-tab.component.mjs +0 -216
  52. package/esm2020/lib/modules/vertical-tabset/vertical-tabset-adapter.service.mjs +0 -51
  53. package/esm2020/lib/modules/vertical-tabset/vertical-tabset-group.component.mjs +0 -110
  54. package/esm2020/lib/modules/vertical-tabset/vertical-tabset.component.mjs +0 -159
  55. package/esm2020/lib/modules/vertical-tabset/vertical-tabset.service.mjs +0 -167
  56. package/esm2020/testing/tabs/tabset-fixture.mjs +0 -128
  57. package/fesm2015/skyux-tabs-testing.mjs +0 -147
  58. package/fesm2015/skyux-tabs-testing.mjs.map +0 -1
  59. package/fesm2015/skyux-tabs.mjs +0 -2560
  60. package/fesm2015/skyux-tabs.mjs.map +0 -1
  61. package/fesm2020/skyux-tabs-testing.mjs +0 -135
  62. package/fesm2020/skyux-tabs.mjs +0 -2544
  63. /package/{esm2020 → esm2022}/index.mjs +0 -0
  64. /package/{esm2020 → esm2022}/lib/modules/sectioned-form/types/sectioned-form-message-type.mjs +0 -0
  65. /package/{esm2020 → esm2022}/lib/modules/sectioned-form/types/sectioned-form-message.mjs +0 -0
  66. /package/{esm2020 → esm2022}/lib/modules/tabs/tab-button-view-model.mjs +0 -0
  67. /package/{esm2020 → esm2022}/lib/modules/tabs/tab-index.mjs +0 -0
  68. /package/{esm2020 → esm2022}/lib/modules/tabs/tab-layout-type.mjs +0 -0
  69. /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-active-tab-unregistered-args.mjs +0 -0
  70. /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-buttons-display-mode.mjs +0 -0
  71. /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-nav-button-type.mjs +0 -0
  72. /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-style.mjs +0 -0
  73. /package/{esm2020 → esm2022}/lib/modules/tabs/tabset-tab-indexes-change.mjs +0 -0
  74. /package/{esm2020 → esm2022}/skyux-tabs.mjs +0 -0
  75. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  76. /package/{esm2020 → esm2022}/testing/skyux-tabs-testing.mjs +0 -0
  77. /package/{esm2020 → esm2022}/testing/tabs/tab-fixture-tab.mjs +0 -0
@@ -31,5 +31,5 @@ export declare class SkySectionedFormSectionComponent implements OnInit, OnDestr
31
31
  ngOnInit(): void;
32
32
  ngOnDestroy(): void;
33
33
  static ɵfac: i0.ɵɵFactoryDeclaration<SkySectionedFormSectionComponent, never>;
34
- static ɵcmp: i0.ɵɵComponentDeclaration<SkySectionedFormSectionComponent, "sky-sectioned-form-section", never, { "heading": "heading"; "itemCount": "itemCount"; "active": "active"; }, {}, never, ["*"], false, never>;
34
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkySectionedFormSectionComponent, "sky-sectioned-form-section", never, { "heading": { "alias": "heading"; "required": false; }; "itemCount": { "alias": "itemCount"; "required": false; }; "active": { "alias": "active"; "required": false; }; }, {}, never, ["*"], false, never>;
35
35
  }
@@ -44,5 +44,5 @@ export declare class SkySectionedFormComponent implements OnInit, OnDestroy, Aft
44
44
  */
45
45
  showTabs(): void;
46
46
  static ɵfac: i0.ɵɵFactoryDeclaration<SkySectionedFormComponent, never>;
47
- static ɵcmp: i0.ɵɵComponentDeclaration<SkySectionedFormComponent, "sky-sectioned-form", never, { "maintainSectionContent": "maintainSectionContent"; "messageStream": "messageStream"; }, { "indexChanged": "indexChanged"; "tabsVisibleChanged": "tabsVisibleChanged"; }, never, ["*"], false, never>;
47
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkySectionedFormComponent, "sky-sectioned-form", never, { "maintainSectionContent": { "alias": "maintainSectionContent"; "required": false; }; "messageStream": { "alias": "messageStream"; "required": false; }; }, { "indexChanged": "indexChanged"; "tabsVisibleChanged": "tabsVisibleChanged"; }, never, ["*"], false, never>;
48
48
  }
@@ -38,6 +38,6 @@ export declare class SkyTabButtonComponent implements AfterViewInit, OnDestroy {
38
38
  focusBtn(): void;
39
39
  onFocus(): void;
40
40
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyTabButtonComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyTabButtonComponent, "sky-tab-button", never, { "active": "active"; "ariaControls": "ariaControls"; "buttonHref": "buttonHref"; "buttonId": "buttonId"; "buttonText": "buttonText"; "buttonTextCount": "buttonTextCount"; "closeable": "closeable"; "disabled": "disabled"; "tabIndex": "tabIndex"; "tabNumber": "tabNumber"; "totalTabsCount": "totalTabsCount"; "tabStyle": "tabStyle"; }, { "buttonClick": "buttonClick"; "closeClick": "closeClick"; }, never, never, false, never>;
41
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyTabButtonComponent, "sky-tab-button", never, { "active": { "alias": "active"; "required": false; }; "ariaControls": { "alias": "ariaControls"; "required": false; }; "buttonHref": { "alias": "buttonHref"; "required": false; }; "buttonId": { "alias": "buttonId"; "required": false; }; "buttonText": { "alias": "buttonText"; "required": false; }; "buttonTextCount": { "alias": "buttonTextCount"; "required": false; }; "closeable": { "alias": "closeable"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "tabNumber": { "alias": "tabNumber"; "required": false; }; "totalTabsCount": { "alias": "totalTabsCount"; "required": false; }; "tabStyle": { "alias": "tabStyle"; "required": false; }; }, { "buttonClick": "buttonClick"; "closeClick": "closeClick"; }, never, never, false, never>;
42
42
  }
43
43
  export {};
@@ -85,5 +85,5 @@ export declare class SkyTabComponent implements OnChanges, OnDestroy {
85
85
  deactivate(): void;
86
86
  isCloseable(): boolean;
87
87
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyTabComponent, never>;
88
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyTabComponent, "sky-tab", never, { "active": "active"; "disabled": "disabled"; "permalinkValue": "permalinkValue"; "tabHeaderCount": "tabHeaderCount"; "tabHeading": "tabHeading"; "tabIndex": "tabIndex"; "layout": "layout"; }, { "close": "close"; }, never, ["*"], false, never>;
88
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyTabComponent, "sky-tab", never, { "active": { "alias": "active"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "permalinkValue": { "alias": "permalinkValue"; "required": false; }; "tabHeaderCount": { "alias": "tabHeaderCount"; "required": false; }; "tabHeading": { "alias": "tabHeading"; "required": false; }; "tabIndex": { "alias": "tabIndex"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, { "close": "close"; }, never, ["*"], false, never>;
89
89
  }
@@ -39,5 +39,5 @@ export declare class SkyTabsetNavButtonComponent implements OnDestroy {
39
39
  ngOnDestroy(): void;
40
40
  buttonClick(): void;
41
41
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyTabsetNavButtonComponent, never>;
42
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyTabsetNavButtonComponent, "sky-tabset-nav-button", never, { "tabset": "tabset"; "buttonType": "buttonType"; "buttonText": "buttonText"; "disabled": "disabled"; }, {}, never, never, false, never>;
42
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyTabsetNavButtonComponent, "sky-tabset-nav-button", never, { "tabset": { "alias": "tabset"; "required": false; }; "buttonType": { "alias": "buttonType"; "required": false; }; "buttonText": { "alias": "buttonText"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, false, never>;
43
43
  }
@@ -92,5 +92,5 @@ export declare class SkyTabsetComponent implements AfterViewInit, OnDestroy {
92
92
  onHomeKeyDown(): void;
93
93
  onEndKeyDown(): void;
94
94
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyTabsetComponent, never>;
95
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyTabsetComponent, "sky-tabset", never, { "active": "active"; "ariaLabel": "ariaLabel"; "ariaLabelledBy": "ariaLabelledBy"; "permalinkId": "permalinkId"; "tabStyle": "tabStyle"; }, { "activeChange": "activeChange"; "newTab": "newTab"; "openTab": "openTab"; "tabIndexesChange": "tabIndexesChange"; }, ["tabs"], ["*"], false, never>;
95
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyTabsetComponent, "sky-tabset", never, { "active": { "alias": "active"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "permalinkId": { "alias": "permalinkId"; "required": false; }; "tabStyle": { "alias": "tabStyle"; "required": false; }; }, { "activeChange": "activeChange"; "newTab": "newTab"; "openTab": "openTab"; "tabIndexesChange": "tabIndexesChange"; }, ["tabs"], ["*"], false, never>;
96
96
  }
@@ -73,5 +73,5 @@ export declare class SkyVerticalTabComponent implements OnInit, OnDestroy {
73
73
  onWindowResize(): void;
74
74
  tabDeactivated(): void;
75
75
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyVerticalTabComponent, [null, null, null, null, { optional: true; }]>;
76
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyVerticalTabComponent, "sky-vertical-tab", never, { "active": "active"; "ariaControls": "ariaControls"; "ariaRole": "ariaRole"; "disabled": "disabled"; "errorIndicator": "errorIndicator"; "tabHeaderCount": "tabHeaderCount"; "tabHeading": "tabHeading"; "showTabRightArrow": "showTabRightArrow"; "tabId": "tabId"; }, {}, never, ["*"], false, never>;
76
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyVerticalTabComponent, "sky-vertical-tab", never, { "active": { "alias": "active"; "required": false; }; "ariaControls": { "alias": "ariaControls"; "required": false; }; "ariaRole": { "alias": "ariaRole"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "errorIndicator": { "alias": "errorIndicator"; "required": false; }; "tabHeaderCount": { "alias": "tabHeaderCount"; "required": false; }; "tabHeading": { "alias": "tabHeading"; "required": false; }; "showTabRightArrow": { "alias": "showTabRightArrow"; "required": false; }; "tabId": { "alias": "tabId"; "required": false; }; }, {}, never, ["*"], false, never>;
77
77
  }
@@ -33,5 +33,5 @@ export declare class SkyVerticalTabsetGroupComponent implements OnInit, OnDestro
33
33
  tabsHidden: () => void;
34
34
  tabsShown: () => void;
35
35
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyVerticalTabsetGroupComponent, never>;
36
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyVerticalTabsetGroupComponent, "sky-vertical-tabset-group", never, { "disabled": "disabled"; "groupHeading": "groupHeading"; "open": "open"; }, {}, ["tabs"], ["*"], false, never>;
36
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyVerticalTabsetGroupComponent, "sky-vertical-tabset-group", never, { "disabled": { "alias": "disabled"; "required": false; }; "groupHeading": { "alias": "groupHeading"; "required": false; }; "open": { "alias": "open"; "required": false; }; }, {}, ["tabs"], ["*"], false, never>;
37
37
  }
@@ -60,5 +60,5 @@ export declare class SkyVerticalTabsetComponent implements OnInit, AfterViewChec
60
60
  ngAfterViewChecked(): void;
61
61
  ngOnDestroy(): void;
62
62
  static ɵfac: i0.ɵɵFactoryDeclaration<SkyVerticalTabsetComponent, never>;
63
- static ɵcmp: i0.ɵɵComponentDeclaration<SkyVerticalTabsetComponent, "sky-vertical-tabset", never, { "showTabsText": "showTabsText"; "ariaLabel": "ariaLabel"; "ariaLabelledBy": "ariaLabelledBy"; "ariaRole": "ariaRole"; "maintainTabContent": "maintainTabContent"; }, { "activeChange": "activeChange"; }, never, ["*"], false, never>;
63
+ static ɵcmp: i0.ɵɵComponentDeclaration<SkyVerticalTabsetComponent, "sky-vertical-tabset", never, { "showTabsText": { "alias": "showTabsText"; "required": false; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; }; "ariaLabelledBy": { "alias": "ariaLabelledBy"; "required": false; }; "ariaRole": { "alias": "ariaRole"; "required": false; }; "maintainTabContent": { "alias": "maintainTabContent"; "required": false; }; }, { "activeChange": "activeChange"; }, never, ["*"], false, never>;
64
64
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/tabs",
3
- "version": "8.7.0",
3
+ "version": "9.0.0-alpha.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -21,47 +21,39 @@
21
21
  },
22
22
  ".": {
23
23
  "types": "./index.d.ts",
24
- "esm2020": "./esm2020/skyux-tabs.mjs",
25
- "es2020": "./fesm2020/skyux-tabs.mjs",
26
- "es2015": "./fesm2015/skyux-tabs.mjs",
27
- "node": "./fesm2015/skyux-tabs.mjs",
28
- "default": "./fesm2020/skyux-tabs.mjs"
24
+ "esm2022": "./esm2022/skyux-tabs.mjs",
25
+ "esm": "./esm2022/skyux-tabs.mjs",
26
+ "default": "./fesm2022/skyux-tabs.mjs"
29
27
  },
30
28
  "./testing": {
31
29
  "types": "./testing/index.d.ts",
32
- "esm2020": "./esm2020/testing/skyux-tabs-testing.mjs",
33
- "es2020": "./fesm2020/skyux-tabs-testing.mjs",
34
- "es2015": "./fesm2015/skyux-tabs-testing.mjs",
35
- "node": "./fesm2015/skyux-tabs-testing.mjs",
36
- "default": "./fesm2020/skyux-tabs-testing.mjs"
30
+ "esm2022": "./esm2022/testing/skyux-tabs-testing.mjs",
31
+ "esm": "./esm2022/testing/skyux-tabs-testing.mjs",
32
+ "default": "./fesm2022/skyux-tabs-testing.mjs"
37
33
  },
38
34
  "./documentation.json": {
39
35
  "default": "./documentation.json"
40
36
  }
41
37
  },
42
38
  "peerDependencies": {
43
- "@angular/animations": "^15.2.9",
44
- "@angular/common": "^15.2.9",
45
- "@angular/core": "^15.2.9",
46
- "@angular/platform-browser": "^15.2.9",
47
- "@angular/router": "^15.2.9",
48
- "@skyux-sdk/testing": "8.7.0",
49
- "@skyux/animations": "8.7.0",
50
- "@skyux/core": "8.7.0",
51
- "@skyux/forms": "8.7.0",
52
- "@skyux/i18n": "8.7.0",
53
- "@skyux/indicators": "8.7.0",
54
- "@skyux/popovers": "8.7.0",
55
- "@skyux/theme": "8.7.0"
39
+ "@angular/animations": "^16.1.7",
40
+ "@angular/common": "^16.1.7",
41
+ "@angular/core": "^16.1.7",
42
+ "@angular/platform-browser": "^16.1.7",
43
+ "@angular/router": "^16.1.7",
44
+ "@skyux-sdk/testing": "9.0.0-alpha.0",
45
+ "@skyux/animations": "9.0.0-alpha.0",
46
+ "@skyux/core": "9.0.0-alpha.0",
47
+ "@skyux/forms": "9.0.0-alpha.0",
48
+ "@skyux/i18n": "9.0.0-alpha.0",
49
+ "@skyux/indicators": "9.0.0-alpha.0",
50
+ "@skyux/popovers": "9.0.0-alpha.0",
51
+ "@skyux/theme": "9.0.0-alpha.0"
56
52
  },
57
53
  "dependencies": {
58
54
  "tslib": "^2.5.0"
59
55
  },
60
- "module": "fesm2015/skyux-tabs.mjs",
61
- "es2020": "fesm2020/skyux-tabs.mjs",
62
- "esm2020": "esm2020/skyux-tabs.mjs",
63
- "fesm2020": "fesm2020/skyux-tabs.mjs",
64
- "fesm2015": "fesm2015/skyux-tabs.mjs",
56
+ "module": "fesm2022/skyux-tabs.mjs",
65
57
  "typings": "index.d.ts",
66
58
  "sideEffects": false
67
59
  }
@@ -1,67 +0,0 @@
1
- var _SkySectionedFormSectionComponent_ngUnsubscribe, _SkySectionedFormSectionComponent_sectionedFormService, _SkySectionedFormSectionComponent_tabsetService, _SkySectionedFormSectionComponent_changeRef;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { Component, Input, ViewChild, } from '@angular/core';
4
- import { Subject } from 'rxjs';
5
- import { takeUntil } from 'rxjs/operators';
6
- import { SkyVerticalTabComponent } from './../vertical-tabset/vertical-tab.component';
7
- import { SkySectionedFormService } from './sectioned-form.service';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "./sectioned-form.service";
10
- import * as i2 from "../vertical-tabset/vertical-tabset.service";
11
- import * as i3 from "@angular/common";
12
- import * as i4 from "../vertical-tabset/vertical-tab.component";
13
- let nextId = 0;
14
- /**
15
- * Creates an individual form to display as a section within the sectioned form.
16
- */
17
- export class SkySectionedFormSectionComponent {
18
- constructor(sectionedFormService, tabsetService, changeRef) {
19
- this.sectionTabId = `sky-sectioned-form-tab-${++nextId}`;
20
- this.sectionContentId = `sky-sectioned-form-section-${++nextId}`;
21
- /**
22
- * Whether the section is active when the form loads.
23
- * @default false
24
- */
25
- this.active = false;
26
- _SkySectionedFormSectionComponent_ngUnsubscribe.set(this, new Subject());
27
- _SkySectionedFormSectionComponent_sectionedFormService.set(this, void 0);
28
- _SkySectionedFormSectionComponent_tabsetService.set(this, void 0);
29
- _SkySectionedFormSectionComponent_changeRef.set(this, void 0);
30
- __classPrivateFieldSet(this, _SkySectionedFormSectionComponent_sectionedFormService, sectionedFormService, "f");
31
- __classPrivateFieldSet(this, _SkySectionedFormSectionComponent_tabsetService, tabsetService, "f");
32
- __classPrivateFieldSet(this, _SkySectionedFormSectionComponent_changeRef, changeRef, "f");
33
- }
34
- ngOnInit() {
35
- __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_changeRef, "f").detectChanges();
36
- __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_tabsetService, "f").switchingMobile.subscribe((mobile) => {
37
- __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_changeRef, "f").detectChanges();
38
- });
39
- __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_sectionedFormService, "f").requiredChange
40
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f")))
41
- .subscribe((required) => (this.fieldRequired = required));
42
- __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_sectionedFormService, "f").invalidChange
43
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f")))
44
- .subscribe((invalid) => (this.fieldInvalid = invalid));
45
- }
46
- ngOnDestroy() {
47
- __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f").next();
48
- __classPrivateFieldGet(this, _SkySectionedFormSectionComponent_ngUnsubscribe, "f").complete();
49
- }
50
- }
51
- _SkySectionedFormSectionComponent_ngUnsubscribe = new WeakMap(), _SkySectionedFormSectionComponent_sectionedFormService = new WeakMap(), _SkySectionedFormSectionComponent_tabsetService = new WeakMap(), _SkySectionedFormSectionComponent_changeRef = new WeakMap();
52
- SkySectionedFormSectionComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormSectionComponent, deps: [{ token: i1.SkySectionedFormService }, { token: i2.SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
53
- SkySectionedFormSectionComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkySectionedFormSectionComponent, selector: "sky-sectioned-form-section", inputs: { heading: "heading", itemCount: "itemCount", active: "active" }, providers: [SkySectionedFormService], viewQueries: [{ propertyName: "tab", first: true, predicate: SkyVerticalTabComponent, descendants: true }], ngImport: i0, template: "<sky-vertical-tab\n [active]=\"active\"\n [errorIndicator]=\"fieldInvalid\"\n [ngClass]=\"{\n 'sky-tab-field-required': fieldRequired\n }\"\n [showTabRightArrow]=\"true\"\n [tabHeaderCount]=\"itemCount\"\n [tabHeading]=\"heading\"\n [tabId]=\"sectionTabId\"\n>\n <ng-content></ng-content>\n</sky-vertical-tab>\n", styles: [":host .sky-tab-field-required ::ng-deep .sky-vertical-tab-heading:after{content:\"*\";color:var(--sky-highlight-color-danger);padding-left:5px}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i4.SkyVerticalTabComponent, selector: "sky-vertical-tab", inputs: ["active", "ariaControls", "ariaRole", "disabled", "errorIndicator", "tabHeaderCount", "tabHeading", "showTabRightArrow", "tabId"] }] });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormSectionComponent, decorators: [{
55
- type: Component,
56
- args: [{ selector: 'sky-sectioned-form-section', providers: [SkySectionedFormService], template: "<sky-vertical-tab\n [active]=\"active\"\n [errorIndicator]=\"fieldInvalid\"\n [ngClass]=\"{\n 'sky-tab-field-required': fieldRequired\n }\"\n [showTabRightArrow]=\"true\"\n [tabHeaderCount]=\"itemCount\"\n [tabHeading]=\"heading\"\n [tabId]=\"sectionTabId\"\n>\n <ng-content></ng-content>\n</sky-vertical-tab>\n", styles: [":host .sky-tab-field-required ::ng-deep .sky-vertical-tab-heading:after{content:\"*\";color:var(--sky-highlight-color-danger);padding-left:5px}\n"] }]
57
- }], ctorParameters: function () { return [{ type: i1.SkySectionedFormService }, { type: i2.SkyVerticalTabsetService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { heading: [{
58
- type: Input
59
- }], itemCount: [{
60
- type: Input
61
- }], active: [{
62
- type: Input
63
- }], tab: [{
64
- type: ViewChild,
65
- args: [SkyVerticalTabComponent]
66
- }] } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbmVkLWZvcm0tc2VjdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvc2VjdGlvbmVkLWZvcm0vc2VjdGlvbmVkLWZvcm0tc2VjdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL21vZHVsZXMvc2VjdGlvbmVkLWZvcm0vc2VjdGlvbmVkLWZvcm0tc2VjdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFFTCxTQUFTLEVBQ1QsS0FBSyxFQUdMLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUkzQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN0RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7O0FBRW5FLElBQUksTUFBTSxHQUFHLENBQUMsQ0FBQztBQUVmOztHQUVHO0FBT0gsTUFBTSxPQUFPLGdDQUFnQztJQW9DM0MsWUFDRSxvQkFBNkMsRUFDN0MsYUFBdUMsRUFDdkMsU0FBNEI7UUF0Q3ZCLGlCQUFZLEdBQUcsMEJBQTBCLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDcEQscUJBQWdCLEdBQUcsOEJBQThCLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFlbkU7OztXQUdHO1FBRUksV0FBTSxHQUF3QixLQUFLLENBQUM7UUFRM0MsMERBQWlCLElBQUksT0FBTyxFQUFRLEVBQUM7UUFFckMseUVBQStDO1FBQy9DLGtFQUF5QztRQUN6Qyw4REFBOEI7UUFPNUIsdUJBQUEsSUFBSSwwREFBeUIsb0JBQW9CLE1BQUEsQ0FBQztRQUNsRCx1QkFBQSxJQUFJLG1EQUFrQixhQUFhLE1BQUEsQ0FBQztRQUNwQyx1QkFBQSxJQUFJLCtDQUFjLFNBQVMsTUFBQSxDQUFDO0lBQzlCLENBQUM7SUFFTSxRQUFRO1FBQ2IsdUJBQUEsSUFBSSxtREFBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRWhDLHVCQUFBLElBQUksdURBQWUsQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBZSxFQUFFLEVBQUU7WUFDaEUsdUJBQUEsSUFBSSxtREFBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FBQyxDQUFDO1FBRUgsdUJBQUEsSUFBSSw4REFBc0IsQ0FBQyxjQUFjO2FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQUEsSUFBSSx1REFBZSxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUNSLENBQUMsUUFBNkIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxHQUFHLFFBQVEsQ0FBQyxDQUNuRSxDQUFDO1FBRUosdUJBQUEsSUFBSSw4REFBc0IsQ0FBQyxhQUFhO2FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsdUJBQUEsSUFBSSx1REFBZSxDQUFDLENBQUM7YUFDcEMsU0FBUyxDQUNSLENBQUMsT0FBNEIsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLE9BQU8sQ0FBQyxDQUNoRSxDQUFDO0lBQ04sQ0FBQztJQUVNLFdBQVc7UUFDaEIsdUJBQUEsSUFBSSx1REFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzNCLHVCQUFBLElBQUksdURBQWUsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNqQyxDQUFDOzs7NkhBckVVLGdDQUFnQztpSEFBaEMsZ0NBQWdDLCtIQUhoQyxDQUFDLHVCQUF1QixDQUFDLCtEQThCekIsdUJBQXVCLGdEQ3ZEcEMscVVBYUE7MkZEZWEsZ0NBQWdDO2tCQU41QyxTQUFTOytCQUNFLDRCQUE0QixhQUUzQixDQUFDLHVCQUF1QixDQUFDO3FMQVk3QixPQUFPO3NCQURiLEtBQUs7Z0JBT0MsU0FBUztzQkFEZixLQUFLO2dCQVFDLE1BQU07c0JBRFosS0FBSztnQkFPQyxHQUFHO3NCQURULFNBQVM7dUJBQUMsdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7IFNreVZlcnRpY2FsVGFic2V0U2VydmljZSB9IGZyb20gJy4uL3ZlcnRpY2FsLXRhYnNldC92ZXJ0aWNhbC10YWJzZXQuc2VydmljZSc7XG5cbmltcG9ydCB7IFNreVZlcnRpY2FsVGFiQ29tcG9uZW50IH0gZnJvbSAnLi8uLi92ZXJ0aWNhbC10YWJzZXQvdmVydGljYWwtdGFiLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lTZWN0aW9uZWRGb3JtU2VydmljZSB9IGZyb20gJy4vc2VjdGlvbmVkLWZvcm0uc2VydmljZSc7XG5cbmxldCBuZXh0SWQgPSAwO1xuXG4vKipcbiAqIENyZWF0ZXMgYW4gaW5kaXZpZHVhbCBmb3JtIHRvIGRpc3BsYXkgYXMgYSBzZWN0aW9uIHdpdGhpbiB0aGUgc2VjdGlvbmVkIGZvcm0uXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1zZWN0aW9uZWQtZm9ybS1zZWN0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlY3Rpb25lZC1mb3JtLXNlY3Rpb24uY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtTa3lTZWN0aW9uZWRGb3JtU2VydmljZV0sXG4gIHN0eWxlVXJsczogWycuL3NlY3Rpb25lZC1mb3JtLXNlY3Rpb24uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U2VjdGlvbmVkRm9ybVNlY3Rpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBzZWN0aW9uVGFiSWQgPSBgc2t5LXNlY3Rpb25lZC1mb3JtLXRhYi0keysrbmV4dElkfWA7XG4gIHB1YmxpYyBzZWN0aW9uQ29udGVudElkID0gYHNreS1zZWN0aW9uZWQtZm9ybS1zZWN0aW9uLSR7KytuZXh0SWR9YDtcblxuICAvKipcbiAgICogVGhlIHNlY3Rpb24gaGVhZGVyLlxuICAgKiBAcmVxdWlyZWRcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBoZWFkaW5nOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgaXRlbXMgd2l0aGluIHRoZSBzZWN0aW9uLiBBIGNvdW50ZXIgYXBwZWFycyBiZXNpZGUgdGhlIHNlY3Rpb24gaGVhZGVyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGl0ZW1Db3VudDogbnVtYmVyIHwgdW5kZWZpbmVkO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBzZWN0aW9uIGlzIGFjdGl2ZSB3aGVuIHRoZSBmb3JtIGxvYWRzLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGFjdGl2ZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBmaWVsZFJlcXVpcmVkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuICBwdWJsaWMgZmllbGRJbnZhbGlkOiBib29sZWFuIHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoU2t5VmVydGljYWxUYWJDb21wb25lbnQpXG4gIHB1YmxpYyB0YWI6IFNreVZlcnRpY2FsVGFiQ29tcG9uZW50IHwgdW5kZWZpbmVkO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjc2VjdGlvbmVkRm9ybVNlcnZpY2U6IFNreVNlY3Rpb25lZEZvcm1TZXJ2aWNlO1xuICAjdGFic2V0U2VydmljZTogU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlO1xuICAjY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzZWN0aW9uZWRGb3JtU2VydmljZTogU2t5U2VjdGlvbmVkRm9ybVNlcnZpY2UsXG4gICAgdGFic2V0U2VydmljZTogU2t5VmVydGljYWxUYWJzZXRTZXJ2aWNlLFxuICAgIGNoYW5nZVJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gICAgdGhpcy4jc2VjdGlvbmVkRm9ybVNlcnZpY2UgPSBzZWN0aW9uZWRGb3JtU2VydmljZTtcbiAgICB0aGlzLiN0YWJzZXRTZXJ2aWNlID0gdGFic2V0U2VydmljZTtcbiAgICB0aGlzLiNjaGFuZ2VSZWYgPSBjaGFuZ2VSZWY7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy4jY2hhbmdlUmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMuI3RhYnNldFNlcnZpY2Uuc3dpdGNoaW5nTW9iaWxlLnN1YnNjcmliZSgobW9iaWxlOiBib29sZWFuKSA9PiB7XG4gICAgICB0aGlzLiNjaGFuZ2VSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy4jc2VjdGlvbmVkRm9ybVNlcnZpY2UucmVxdWlyZWRDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChyZXF1aXJlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCkgPT4gKHRoaXMuZmllbGRSZXF1aXJlZCA9IHJlcXVpcmVkKVxuICAgICAgKTtcblxuICAgIHRoaXMuI3NlY3Rpb25lZEZvcm1TZXJ2aWNlLmludmFsaWRDaGFuZ2VcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoXG4gICAgICAgIChpbnZhbGlkOiBib29sZWFuIHwgdW5kZWZpbmVkKSA9PiAodGhpcy5maWVsZEludmFsaWQgPSBpbnZhbGlkKVxuICAgICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiIsIjxza3ktdmVydGljYWwtdGFiXG4gIFthY3RpdmVdPVwiYWN0aXZlXCJcbiAgW2Vycm9ySW5kaWNhdG9yXT1cImZpZWxkSW52YWxpZFwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnc2t5LXRhYi1maWVsZC1yZXF1aXJlZCc6IGZpZWxkUmVxdWlyZWRcbiAgfVwiXG4gIFtzaG93VGFiUmlnaHRBcnJvd109XCJ0cnVlXCJcbiAgW3RhYkhlYWRlckNvdW50XT1cIml0ZW1Db3VudFwiXG4gIFt0YWJIZWFkaW5nXT1cImhlYWRpbmdcIlxuICBbdGFiSWRdPVwic2VjdGlvblRhYklkXCJcbj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9za3ktdmVydGljYWwtdGFiPlxuIl19
@@ -1,187 +0,0 @@
1
- var _SkySectionedFormComponent_instances, _SkySectionedFormComponent_ngUnsubscribe, _SkySectionedFormComponent_messageStreamSub, _SkySectionedFormComponent_changeRef, _SkySectionedFormComponent_tabIdSvc, _SkySectionedFormComponent_logger, _SkySectionedFormComponent__messageStream, _SkySectionedFormComponent_showTabs, _SkySectionedFormComponent_initMessageStream;
2
- import { __classPrivateFieldGet, __classPrivateFieldSet } from "tslib";
3
- import { animate, style, transition, trigger } from '@angular/animations';
4
- import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
5
- import { Subject } from 'rxjs';
6
- import { takeUntil } from 'rxjs/operators';
7
- import { SkyTabIdService } from '../shared/tab-id.service';
8
- import { HIDDEN_STATE, SkyVerticalTabsetService, VISIBLE_STATE, } from './../vertical-tabset/vertical-tabset.service';
9
- import { SkySectionedFormMessageType } from './types/sectioned-form-message-type';
10
- import * as i0 from "@angular/core";
11
- import * as i1 from "./../vertical-tabset/vertical-tabset.service";
12
- import * as i2 from "../shared/tab-id.service";
13
- import * as i3 from "@skyux/core";
14
- import * as i4 from "@angular/common";
15
- /**
16
- * Creates a container for the sectioned forms.
17
- */
18
- export class SkySectionedFormComponent {
19
- set messageStream(value) {
20
- __classPrivateFieldSet(this, _SkySectionedFormComponent__messageStream, value || new Subject(), "f");
21
- __classPrivateFieldGet(this, _SkySectionedFormComponent_instances, "m", _SkySectionedFormComponent_initMessageStream).call(this);
22
- }
23
- get messageStream() {
24
- return __classPrivateFieldGet(this, _SkySectionedFormComponent__messageStream, "f");
25
- }
26
- constructor(tabService, changeRef, tabIdSvc, logger) {
27
- this.tabService = tabService;
28
- _SkySectionedFormComponent_instances.add(this);
29
- /**
30
- * Whether the sectioned form loads section content during initialization so that it
31
- * displays content without moving around elements in the content container.
32
- * @default false
33
- */
34
- this.maintainSectionContent = false;
35
- /**
36
- * Fires when the active tab changes and emits the index of the active
37
- * section. The index is based on the section's position when the form loads.
38
- */
39
- this.indexChanged = new EventEmitter();
40
- /**
41
- * Fires when the sectioned form tabs are shown or hidden.
42
- */
43
- this.tabsVisibleChanged = new EventEmitter();
44
- this.ariaRole = 'tablist';
45
- _SkySectionedFormComponent_ngUnsubscribe.set(this, new Subject());
46
- _SkySectionedFormComponent_messageStreamSub.set(this, void 0);
47
- _SkySectionedFormComponent_changeRef.set(this, void 0);
48
- _SkySectionedFormComponent_tabIdSvc.set(this, void 0);
49
- _SkySectionedFormComponent_logger.set(this, void 0);
50
- _SkySectionedFormComponent__messageStream.set(this, new Subject());
51
- __classPrivateFieldSet(this, _SkySectionedFormComponent_changeRef, changeRef, "f");
52
- __classPrivateFieldSet(this, _SkySectionedFormComponent_tabIdSvc, tabIdSvc, "f");
53
- __classPrivateFieldSet(this, _SkySectionedFormComponent_logger, logger, "f");
54
- __classPrivateFieldGet(this, _SkySectionedFormComponent_instances, "m", _SkySectionedFormComponent_initMessageStream).call(this);
55
- __classPrivateFieldGet(this, _SkySectionedFormComponent_tabIdSvc, "f").ids.pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f"))).subscribe((ids) => {
56
- this.ariaOwns = ids.join(' ') || undefined;
57
- __classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
58
- });
59
- }
60
- ngOnInit() {
61
- this.tabService.maintainTabContent = this.maintainSectionContent;
62
- this.tabService.indexChanged
63
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
64
- .subscribe((index) => {
65
- this.indexChanged.emit(index);
66
- __classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
67
- });
68
- this.tabService.switchingMobile
69
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
70
- .subscribe((mobile) => {
71
- if (!mobile) {
72
- this.ariaRole = 'tablist';
73
- }
74
- else {
75
- this.ariaRole = undefined;
76
- }
77
- __classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
78
- });
79
- this.tabService.hidingTabs
80
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
81
- .subscribe(() => {
82
- this.tabsVisibleChanged.emit(false);
83
- });
84
- this.tabService.showingTabs
85
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
86
- .subscribe(() => {
87
- this.tabsVisibleChanged.emit(true);
88
- });
89
- if (this.tabService.isMobile()) {
90
- this.ariaRole = undefined;
91
- this.tabService.animationContentVisibleState = VISIBLE_STATE;
92
- __classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
93
- }
94
- }
95
- ngAfterViewChecked() {
96
- this.tabService.content = this.content;
97
- this.tabService.updateContent();
98
- }
99
- ngOnDestroy() {
100
- __classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f").next();
101
- __classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f").complete();
102
- }
103
- /**
104
- * @deprecated Use the `tabsVisibleChanged` output to listen for tab visibility changes.
105
- */
106
- tabsVisible() {
107
- __classPrivateFieldGet(this, _SkySectionedFormComponent_logger, "f").deprecated('SectionedFormComponent.tabsVisible()', {
108
- deprecationMajorVersion: 8,
109
- moreInfoUrl: 'https://developer.blackbaud.com/skyux/components/sectioned-form',
110
- replacementRecommendation: 'Use the `tabsVisibleChanged` output to listen for tab visibility changes.',
111
- });
112
- __classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
113
- return this.tabService.tabsVisible();
114
- }
115
- /**
116
- * @deprecated Use the `messageStream` input and push a `ShowTabs` message to the message stream instead.
117
- */
118
- showTabs() {
119
- __classPrivateFieldGet(this, _SkySectionedFormComponent_logger, "f").deprecated('SectionedFormComponent.showTabs()', {
120
- deprecationMajorVersion: 8,
121
- moreInfoUrl: 'https://developer.blackbaud.com/skyux/components/sectioned-form',
122
- replacementRecommendation: 'Use the `messageStream` input and push a `ShowTabs` message to the message stream instead.',
123
- });
124
- __classPrivateFieldGet(this, _SkySectionedFormComponent_instances, "m", _SkySectionedFormComponent_showTabs).call(this);
125
- }
126
- }
127
- _SkySectionedFormComponent_ngUnsubscribe = new WeakMap(), _SkySectionedFormComponent_messageStreamSub = new WeakMap(), _SkySectionedFormComponent_changeRef = new WeakMap(), _SkySectionedFormComponent_tabIdSvc = new WeakMap(), _SkySectionedFormComponent_logger = new WeakMap(), _SkySectionedFormComponent__messageStream = new WeakMap(), _SkySectionedFormComponent_instances = new WeakSet(), _SkySectionedFormComponent_showTabs = function _SkySectionedFormComponent_showTabs() {
128
- this.tabService.showTabs();
129
- __classPrivateFieldGet(this, _SkySectionedFormComponent_changeRef, "f").markForCheck();
130
- }, _SkySectionedFormComponent_initMessageStream = function _SkySectionedFormComponent_initMessageStream() {
131
- if (__classPrivateFieldGet(this, _SkySectionedFormComponent_messageStreamSub, "f")) {
132
- __classPrivateFieldGet(this, _SkySectionedFormComponent_messageStreamSub, "f").unsubscribe();
133
- }
134
- __classPrivateFieldSet(this, _SkySectionedFormComponent_messageStreamSub, this.messageStream
135
- .pipe(takeUntil(__classPrivateFieldGet(this, _SkySectionedFormComponent_ngUnsubscribe, "f")))
136
- .subscribe((message) => {
137
- switch (message.type) {
138
- case SkySectionedFormMessageType.ShowTabs:
139
- __classPrivateFieldGet(this, _SkySectionedFormComponent_instances, "m", _SkySectionedFormComponent_showTabs).call(this);
140
- break;
141
- }
142
- }), "f");
143
- };
144
- SkySectionedFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormComponent, deps: [{ token: i1.SkyVerticalTabsetService }, { token: i0.ChangeDetectorRef }, { token: i2.SkyTabIdService }, { token: i3.SkyLogService }], target: i0.ɵɵFactoryTarget.Component });
145
- SkySectionedFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkySectionedFormComponent, selector: "sky-sectioned-form", inputs: { maintainSectionContent: "maintainSectionContent", messageStream: "messageStream" }, outputs: { indexChanged: "indexChanged", tabsVisibleChanged: "tabsVisibleChanged" }, providers: [SkyTabIdService, SkyVerticalTabsetService], viewQueries: [{ propertyName: "content", first: true, predicate: ["skySectionSideContent"], descendants: true }], ngImport: i0, template: "<div class=\"sky-sectioned-form\" (window:resize)=\"tabService.updateContent()\">\n <!--\n ARIA rules do not allow tabpanel elements to be children of a tablist element.\n However, the markup for each sky-vertical-tab component includes both the tab button\n and its panel, making the panel element a child of its tablist. Moreover, our\n sky-vertical-tab components can be grouped within collapsible containers, which also\n violates accessibility rules because only tab buttons can be children of a tablist.\n To address this, we create an empty tablist element with an aria-owns attribute,\n pointing to each tab element individually. That way, we don't have to worry about the\n structure for each sky-vertical-tab component in order to satisfy accessibility\n guidelines.\n -->\n <span\n aria-orientation=\"vertical\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRole\"\n ></span>\n <div\n *ngIf=\"maintainSectionContent || tabsVisible()\"\n class=\"sky-sectioned-form-tabs\"\n [ngClass]=\"{ 'sky-sectioned-form-tabs-hidden': !tabsVisible() }\"\n [@tabEnter]=\"tabService.animationTabsVisibleState\"\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainSectionContent || tabService.contentVisible()\"\n class=\"sky-sectioned-form-content\"\n [ngClass]=\"{\n 'sky-sectioned-form-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #skySectionSideContent\n ></div>\n</div>\n", styles: [":host .sky-sectioned-form{display:block;max-height:none}:host .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;border-right:1px solid #e2e3e4}:host-context(.sky-responsive-container-xs) .sky-sectioned-form,:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:block;max-height:none}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;border-right:1px solid #e2e3e4}@media (min-width: 768px){:host .sky-sectioned-form{display:flex;max-height:100%}:host .sky-sectioned-form-content{flex-basis:70%;padding:15px;overflow-y:auto}:host .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}}:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:flex;max-height:100%}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:70%;padding:15px;overflow-y:auto}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}.sky-sectioned-form-tabs-hidden,.sky-sectioned-form-content-hidden{display:none}:host-context(.sky-theme-modern) .sky-sectioned-form-content{padding:15px}:host-context(.sky-theme-modern) .sky-sectioned-form-tabs{border-right:1px solid #d2d2d2}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-sectioned-form-content{margin:20px 30px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{margin:20px 30px}.sky-theme-modern .sky-sectioned-form-content{padding:15px}.sky-theme-modern .sky-sectioned-form-tabs{border-right:1px solid #d2d2d2}@media (min-width: 768px){.sky-theme-modern :host .sky-sectioned-form-content{margin:20px 30px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-sectioned-form-content,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{margin:20px 30px}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], animations: [
146
- trigger('tabEnter', [
147
- transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
148
- style({ transform: 'translate(-100%)' }),
149
- animate('150ms ease-in'),
150
- ]),
151
- ]),
152
- trigger('contentEnter', [
153
- transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
154
- style({ transform: 'translate(100%)' }),
155
- animate('150ms ease-in'),
156
- ]),
157
- ]),
158
- ], changeDetection: i0.ChangeDetectionStrategy.OnPush });
159
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkySectionedFormComponent, decorators: [{
160
- type: Component,
161
- args: [{ selector: 'sky-sectioned-form', providers: [SkyTabIdService, SkyVerticalTabsetService], changeDetection: ChangeDetectionStrategy.OnPush, animations: [
162
- trigger('tabEnter', [
163
- transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
164
- style({ transform: 'translate(-100%)' }),
165
- animate('150ms ease-in'),
166
- ]),
167
- ]),
168
- trigger('contentEnter', [
169
- transition(`${HIDDEN_STATE} => ${VISIBLE_STATE}`, [
170
- style({ transform: 'translate(100%)' }),
171
- animate('150ms ease-in'),
172
- ]),
173
- ]),
174
- ], template: "<div class=\"sky-sectioned-form\" (window:resize)=\"tabService.updateContent()\">\n <!--\n ARIA rules do not allow tabpanel elements to be children of a tablist element.\n However, the markup for each sky-vertical-tab component includes both the tab button\n and its panel, making the panel element a child of its tablist. Moreover, our\n sky-vertical-tab components can be grouped within collapsible containers, which also\n violates accessibility rules because only tab buttons can be children of a tablist.\n To address this, we create an empty tablist element with an aria-owns attribute,\n pointing to each tab element individually. That way, we don't have to worry about the\n structure for each sky-vertical-tab component in order to satisfy accessibility\n guidelines.\n -->\n <span\n aria-orientation=\"vertical\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRole\"\n ></span>\n <div\n *ngIf=\"maintainSectionContent || tabsVisible()\"\n class=\"sky-sectioned-form-tabs\"\n [ngClass]=\"{ 'sky-sectioned-form-tabs-hidden': !tabsVisible() }\"\n [@tabEnter]=\"tabService.animationTabsVisibleState\"\n >\n <ng-content></ng-content>\n </div>\n <div\n *ngIf=\"maintainSectionContent || tabService.contentVisible()\"\n class=\"sky-sectioned-form-content\"\n [ngClass]=\"{\n 'sky-sectioned-form-content-hidden': !tabService.contentVisible()\n }\"\n [@contentEnter]=\"tabService.animationContentVisibleState\"\n #skySectionSideContent\n ></div>\n</div>\n", styles: [":host .sky-sectioned-form{display:block;max-height:none}:host .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;border-right:1px solid #e2e3e4}:host-context(.sky-responsive-container-xs) .sky-sectioned-form,:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:block;max-height:none}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-content,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:auto;overflow-y:visible}:host-context(.sky-responsive-container-xs) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:auto;overflow-y:visible;border-right:1px solid #e2e3e4}@media (min-width: 768px){:host .sky-sectioned-form{display:flex;max-height:100%}:host .sky-sectioned-form-content{flex-basis:70%;padding:15px;overflow-y:auto}:host .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}}:host-context(.sky-responsive-container-sm) .sky-sectioned-form,:host-context(.sky-responsive-container-md) .sky-sectioned-form,:host-context(.sky-responsive-container-lg) .sky-sectioned-form{display:flex;max-height:100%}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{flex-basis:70%;padding:15px;overflow-y:auto}:host-context(.sky-responsive-container-sm) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-md) .sky-sectioned-form-tabs,:host-context(.sky-responsive-container-lg) .sky-sectioned-form-tabs{flex-basis:30%;overflow-y:auto}.sky-sectioned-form-tabs-hidden,.sky-sectioned-form-content-hidden{display:none}:host-context(.sky-theme-modern) .sky-sectioned-form-content{padding:15px}:host-context(.sky-theme-modern) .sky-sectioned-form-tabs{border-right:1px solid #d2d2d2}@media (min-width: 768px){:host-context(.sky-theme-modern) :host .sky-sectioned-form-content{margin:20px 30px}}:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-md) .sky-sectioned-form-content,:host-context(.sky-theme-modern) :host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{margin:20px 30px}.sky-theme-modern .sky-sectioned-form-content{padding:15px}.sky-theme-modern .sky-sectioned-form-tabs{border-right:1px solid #d2d2d2}@media (min-width: 768px){.sky-theme-modern :host .sky-sectioned-form-content{margin:20px 30px}}.sky-theme-modern :host-context(.sky-responsive-container-sm) .sky-sectioned-form-content,.sky-theme-modern :host-context(.sky-responsive-container-md) .sky-sectioned-form-content,.sky-theme-modern :host-context(.sky-responsive-container-lg) .sky-sectioned-form-content{margin:20px 30px}\n"] }]
175
- }], ctorParameters: function () { return [{ type: i1.SkyVerticalTabsetService }, { type: i0.ChangeDetectorRef }, { type: i2.SkyTabIdService }, { type: i3.SkyLogService }]; }, propDecorators: { maintainSectionContent: [{
176
- type: Input
177
- }], messageStream: [{
178
- type: Input
179
- }], indexChanged: [{
180
- type: Output
181
- }], tabsVisibleChanged: [{
182
- type: Output
183
- }], content: [{
184
- type: ViewChild,
185
- args: ['skySectionSideContent']
186
- }] } });
187
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdGlvbmVkLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3RhYnMvc3JjL2xpYi9tb2R1bGVzL3NlY3Rpb25lZC1mb3JtL3NlY3Rpb25lZC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy9zZWN0aW9uZWQtZm9ybS9zZWN0aW9uZWQtZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFDTixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFDN0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUUzRCxPQUFPLEVBQ0wsWUFBWSxFQUNaLHdCQUF3QixFQUN4QixhQUFhLEdBQ2QsTUFBTSw4Q0FBOEMsQ0FBQztBQUV0RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7Ozs7O0FBRWxGOztHQUVHO0FBc0JILE1BQU0sT0FBTyx5QkFBeUI7SUFXcEMsSUFDVyxhQUFhLENBQ3RCLEtBQW1EO1FBRW5ELHVCQUFBLElBQUksNkNBQW1CLEtBQUssSUFBSSxJQUFJLE9BQU8sRUFBMkIsTUFBQSxDQUFDO1FBQ3ZFLHVCQUFBLElBQUksMEZBQW1CLE1BQXZCLElBQUksQ0FBcUIsQ0FBQztJQUM1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QUVVLHlCQUF5QjtrQkFyQnJDLFNBQVM7K0JBQ0Usb0JBQW9CLGFBR25CLENBQUMsZUFBZSxFQUFFLHdCQUF3QixDQUFDLG1CQUNyQyx1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DO3dCQUNWLE9BQU8sQ0FBQyxVQUFVLEVBQUU7NEJBQ2xCLFVBQVUsQ0FBQyxHQUFHLFlBQVksT0FBTyxhQUFhLEVBQUUsRUFBRTtnQ0FDaEQsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLENBQUM7Z0NBQ3hDLE9BQU8sQ0FBQyxlQUFlLENBQUM7NkJBQ3pCLENBQUM7eUJBQ0gsQ0FBQzt3QkFDRixPQUFPLENBQUMsY0FBYyxFQUFFOzRCQUN0QixVQUFVLENBQUMsR0FBRyxZQUFZLE9BQU8sYUFBYSxFQUFFLEVBQUU7Z0NBQ2hELEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO2dDQUN2QyxPQUFPLENBQUMsZUFBZSxDQUFDOzZCQUN6QixDQUFDO3lCQUNILENBQUM7cUJBQ0g7eU1BV00sc0JBQXNCO3NCQUQ1QixLQUFLO2dCQUlLLGFBQWE7c0JBRHZCLEtBQUs7Z0JBaUJDLFlBQVk7c0JBRGxCLE1BQU07Z0JBT0Esa0JBQWtCO3NCQUR4QixNQUFNO2dCQVFBLE9BQU87c0JBRGIsU0FBUzt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3Q2hlY2tlZCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lMb2dTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5VGFiSWRTZXJ2aWNlIH0gZnJvbSAnLi4vc2hhcmVkL3RhYi1pZC5zZXJ2aWNlJztcblxuaW1wb3J0IHtcbiAgSElEREVOX1NUQVRFLFxuICBTa3lWZXJ0aWNhbFRhYnNldFNlcnZpY2UsXG4gIFZJU0lCTEVfU1RBVEUsXG59IGZyb20gJy4vLi4vdmVydGljYWwtdGFic2V0L3ZlcnRpY2FsLXRhYnNldC5zZXJ2aWNlJztcbmltcG9ydCB7IFNreVNlY3Rpb25lZEZvcm1NZXNzYWdlIH0gZnJvbSAnLi90eXBlcy9zZWN0aW9uZWQtZm9ybS1tZXNzYWdlJztcbmltcG9ydCB7IFNreVNlY3Rpb25lZEZvcm1NZXNzYWdlVHlwZSB9IGZyb20gJy4vdHlwZXMvc2VjdGlvbmVkLWZvcm0tbWVzc2FnZS10eXBlJztcblxuLyoqXG4gKiBDcmVhdGVzIGEgY29udGFpbmVyIGZvciB0aGUgc2VjdGlvbmVkIGZvcm1zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktc2VjdGlvbmVkLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vc2VjdGlvbmVkLWZvcm0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWN0aW9uZWQtZm9ybS5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtTa3lUYWJJZFNlcnZpY2UsIFNreVZlcnRpY2FsVGFic2V0U2VydmljZV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBhbmltYXRpb25zOiBbXG4gICAgdHJpZ2dlcigndGFiRW50ZXInLCBbXG4gICAgICB0cmFuc2l0aW9uKGAke0hJRERFTl9TVEFURX0gPT4gJHtWSVNJQkxFX1NUQVRFfWAsIFtcbiAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGUoLTEwMCUpJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMTUwbXMgZWFzZS1pbicpLFxuICAgICAgXSksXG4gICAgXSksXG4gICAgdHJpZ2dlcignY29udGVudEVudGVyJywgW1xuICAgICAgdHJhbnNpdGlvbihgJHtISURERU5fU1RBVEV9ID0+ICR7VklTSUJMRV9TVEFURX1gLCBbXG4gICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlKDEwMCUpJyB9KSxcbiAgICAgICAgYW5pbWF0ZSgnMTUwbXMgZWFzZS1pbicpLFxuICAgICAgXSksXG4gICAgXSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVNlY3Rpb25lZEZvcm1Db21wb25lbnRcbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3Q2hlY2tlZFxue1xuICAvKipcbiAgICogV2hldGhlciB0aGUgc2VjdGlvbmVkIGZvcm0gbG9hZHMgc2VjdGlvbiBjb250ZW50IGR1cmluZyBpbml0aWFsaXphdGlvbiBzbyB0aGF0IGl0XG4gICAqIGRpc3BsYXlzIGNvbnRlbnQgd2l0aG91dCBtb3ZpbmcgYXJvdW5kIGVsZW1lbnRzIGluIHRoZSBjb250ZW50IGNvbnRhaW5lci5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBtYWludGFpblNlY3Rpb25Db250ZW50OiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBtZXNzYWdlU3RyZWFtKFxuICAgIHZhbHVlOiBTdWJqZWN0PFNreVNlY3Rpb25lZEZvcm1NZXNzYWdlPiB8IHVuZGVmaW5lZFxuICApIHtcbiAgICB0aGlzLiNfbWVzc2FnZVN0cmVhbSA9IHZhbHVlIHx8IG5ldyBTdWJqZWN0PFNreVNlY3Rpb25lZEZvcm1NZXNzYWdlPigpO1xuICAgIHRoaXMuI2luaXRNZXNzYWdlU3RyZWFtKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0IG1lc3NhZ2VTdHJlYW0oKTogU3ViamVjdDxTa3lTZWN0aW9uZWRGb3JtTWVzc2FnZT4ge1xuICAgIHJldHVybiB0aGlzLiNfbWVzc2FnZVN0cmVhbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaXJlcyB3aGVuIHRoZSBhY3RpdmUgdGFiIGNoYW5nZXMgYW5kIGVtaXRzIHRoZSBpbmRleCBvZiB0aGUgYWN0aXZlXG4gICAqIHNlY3Rpb24uIFRoZSBpbmRleCBpcyBiYXNlZCBvbiB0aGUgc2VjdGlvbidzIHBvc2l0aW9uIHdoZW4gdGhlIGZvcm0gbG9hZHMuXG4gICAqL1xuICBAT3V0cHV0KClcbiAgcHVibGljIGluZGV4Q2hhbmdlZDogRXZlbnRFbWl0dGVyPG51bWJlcj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgLyoqXG4gICAqIEZpcmVzIHdoZW4gdGhlIHNlY3Rpb25lZCBmb3JtIHRhYnMgYXJlIHNob3duIG9yIGhpZGRlbi5cbiAgICovXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgdGFic1Zpc2libGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gIHB1YmxpYyBhcmlhT3duczogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBhcmlhUm9sZTogc3RyaW5nIHwgdW5kZWZpbmVkID0gJ3RhYmxpc3QnO1xuXG4gIEBWaWV3Q2hpbGQoJ3NreVNlY3Rpb25TaWRlQ29udGVudCcpXG4gIHB1YmxpYyBjb250ZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAjbWVzc2FnZVN0cmVhbVN1YjogU3Vic2NyaXB0aW9uIHwgdW5kZWZpbmVkO1xuICAjY2hhbmdlUmVmOiBDaGFuZ2VEZXRlY3RvclJlZjtcbiAgI3RhYklkU3ZjOiBTa3lUYWJJZFNlcnZpY2U7XG4gICNsb2dnZXI6IFNreUxvZ1NlcnZpY2U7XG5cbiAgI19tZXNzYWdlU3RyZWFtID0gbmV3IFN1YmplY3Q8U2t5U2VjdGlvbmVkRm9ybU1lc3NhZ2U+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHRhYlNlcnZpY2U6IFNreVZlcnRpY2FsVGFic2V0U2VydmljZSxcbiAgICBjaGFuZ2VSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHRhYklkU3ZjOiBTa3lUYWJJZFNlcnZpY2UsXG4gICAgbG9nZ2VyOiBTa3lMb2dTZXJ2aWNlXG4gICkge1xuICAgIHRoaXMuI2NoYW5nZVJlZiA9IGNoYW5nZVJlZjtcbiAgICB0aGlzLiN0YWJJZFN2YyA9IHRhYklkU3ZjO1xuICAgIHRoaXMuI2xvZ2dlciA9IGxvZ2dlcjtcblxuICAgIHRoaXMuI2luaXRNZXNzYWdlU3RyZWFtKCk7XG5cbiAgICB0aGlzLiN0YWJJZFN2Yy5pZHMucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpLnN1YnNjcmliZSgoaWRzKSA9PiB7XG4gICAgICB0aGlzLmFyaWFPd25zID0gaWRzLmpvaW4oJyAnKSB8fCB1bmRlZmluZWQ7XG4gICAgICB0aGlzLiNjaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJTZXJ2aWNlLm1haW50YWluVGFiQ29udGVudCA9IHRoaXMubWFpbnRhaW5TZWN0aW9uQ29udGVudDtcblxuICAgIHRoaXMudGFiU2VydmljZS5pbmRleENoYW5nZWRcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKGluZGV4KSA9PiB7XG4gICAgICAgIHRoaXMuaW5kZXhDaGFuZ2VkLmVtaXQoaW5kZXgpO1xuICAgICAgICB0aGlzLiNjaGFuZ2VSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudGFiU2VydmljZS5zd2l0Y2hpbmdNb2JpbGVcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG1vYmlsZTogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAoIW1vYmlsZSkge1xuICAgICAgICAgIHRoaXMuYXJpYVJvbGUgPSAndGFibGlzdCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5hcmlhUm9sZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuI2NoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy50YWJTZXJ2aWNlLmhpZGluZ1RhYnNcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnRhYnNWaXNpYmxlQ2hhbmdlZC5lbWl0KGZhbHNlKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy50YWJTZXJ2aWNlLnNob3dpbmdUYWJzXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy4jbmdVbnN1YnNjcmliZSkpXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy50YWJzVmlzaWJsZUNoYW5nZWQuZW1pdCh0cnVlKTtcbiAgICAgIH0pO1xuXG4gICAgaWYgKHRoaXMudGFiU2VydmljZS5pc01vYmlsZSgpKSB7XG4gICAgICB0aGlzLmFyaWFSb2xlID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy50YWJTZXJ2aWNlLmFuaW1hdGlvbkNvbnRlbnRWaXNpYmxlU3RhdGUgPSBWSVNJQkxFX1NUQVRFO1xuICAgICAgdGhpcy4jY2hhbmdlUmVmLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ0FmdGVyVmlld0NoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy50YWJTZXJ2aWNlLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG4gICAgdGhpcy50YWJTZXJ2aWNlLnVwZGF0ZUNvbnRlbnQoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBgdGFic1Zpc2libGVDaGFuZ2VkYCBvdXRwdXQgdG8gbGlzdGVuIGZvciB0YWIgdmlzaWJpbGl0eSBjaGFuZ2VzLlxuICAgKi9cbiAgcHVibGljIHRhYnNWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHRoaXMuI2xvZ2dlci5kZXByZWNhdGVkKCdTZWN0aW9uZWRGb3JtQ29tcG9uZW50LnRhYnNWaXNpYmxlKCknLCB7XG4gICAgICBkZXByZWNhdGlvbk1ham9yVmVyc2lvbjogOCxcbiAgICAgIG1vcmVJbmZvVXJsOlxuICAgICAgICAnaHR0cHM6Ly9kZXZlbG9wZXIuYmxhY2tiYXVkLmNvbS9za3l1eC9jb21wb25lbnRzL3NlY3Rpb25lZC1mb3JtJyxcbiAgICAgIHJlcGxhY2VtZW50UmVjb21tZW5kYXRpb246XG4gICAgICAgICdVc2UgdGhlIGB0YWJzVmlzaWJsZUNoYW5nZWRgIG91dHB1dCB0byBsaXN0ZW4gZm9yIHRhYiB2aXNpYmlsaXR5IGNoYW5nZXMuJyxcbiAgICB9KTtcblxuICAgIHRoaXMuI2NoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICByZXR1cm4gdGhpcy50YWJTZXJ2aWNlLnRhYnNWaXNpYmxlKCk7XG4gIH1cblxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIHRoZSBgbWVzc2FnZVN0cmVhbWAgaW5wdXQgYW5kIHB1c2ggYSBgU2hvd1RhYnNgIG1lc3NhZ2UgdG8gdGhlIG1lc3NhZ2Ugc3RyZWFtIGluc3RlYWQuXG4gICAqL1xuICBwdWJsaWMgc2hvd1RhYnMoKTogdm9pZCB7XG4gICAgdGhpcy4jbG9nZ2VyLmRlcHJlY2F0ZWQoJ1NlY3Rpb25lZEZvcm1Db21wb25lbnQuc2hvd1RhYnMoKScsIHtcbiAgICAgIGRlcHJlY2F0aW9uTWFqb3JWZXJzaW9uOiA4LFxuICAgICAgbW9yZUluZm9Vcmw6XG4gICAgICAgICdodHRwczovL2RldmVsb3Blci5ibGFja2JhdWQuY29tL3NreXV4L2NvbXBvbmVudHMvc2VjdGlvbmVkLWZvcm0nLFxuICAgICAgcmVwbGFjZW1lbnRSZWNvbW1lbmRhdGlvbjpcbiAgICAgICAgJ1VzZSB0aGUgYG1lc3NhZ2VTdHJlYW1gIGlucHV0IGFuZCBwdXNoIGEgYFNob3dUYWJzYCBtZXNzYWdlIHRvIHRoZSBtZXNzYWdlIHN0cmVhbSBpbnN0ZWFkLicsXG4gICAgfSk7XG5cbiAgICB0aGlzLiNzaG93VGFicygpO1xuICB9XG5cbiAgI3Nob3dUYWJzKCk6IHZvaWQge1xuICAgIHRoaXMudGFiU2VydmljZS5zaG93VGFicygpO1xuICAgIHRoaXMuI2NoYW5nZVJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gICNpbml0TWVzc2FnZVN0cmVhbSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy4jbWVzc2FnZVN0cmVhbVN1Yikge1xuICAgICAgdGhpcy4jbWVzc2FnZVN0cmVhbVN1Yi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHRoaXMuI21lc3NhZ2VTdHJlYW1TdWIgPSB0aGlzLm1lc3NhZ2VTdHJlYW1cbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLiNuZ1Vuc3Vic2NyaWJlKSlcbiAgICAgIC5zdWJzY3JpYmUoKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgc3dpdGNoIChtZXNzYWdlLnR5cGUpIHtcbiAgICAgICAgICBjYXNlIFNreVNlY3Rpb25lZEZvcm1NZXNzYWdlVHlwZS5TaG93VGFiczpcbiAgICAgICAgICAgIHRoaXMuI3Nob3dUYWJzKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJza3ktc2VjdGlvbmVkLWZvcm1cIiAod2luZG93OnJlc2l6ZSk9XCJ0YWJTZXJ2aWNlLnVwZGF0ZUNvbnRlbnQoKVwiPlxuICA8IS0tXG4gICAgQVJJQSBydWxlcyBkbyBub3QgYWxsb3cgdGFicGFuZWwgZWxlbWVudHMgdG8gYmUgY2hpbGRyZW4gb2YgYSB0YWJsaXN0IGVsZW1lbnQuXG4gICAgSG93ZXZlciwgdGhlIG1hcmt1cCBmb3IgZWFjaCBza3ktdmVydGljYWwtdGFiIGNvbXBvbmVudCBpbmNsdWRlcyBib3RoIHRoZSB0YWIgYnV0dG9uXG4gICAgYW5kIGl0cyBwYW5lbCwgbWFraW5nIHRoZSBwYW5lbCBlbGVtZW50IGEgY2hpbGQgb2YgaXRzIHRhYmxpc3QuIE1vcmVvdmVyLCBvdXJcbiAgICBza3ktdmVydGljYWwtdGFiIGNvbXBvbmVudHMgY2FuIGJlIGdyb3VwZWQgd2l0aGluIGNvbGxhcHNpYmxlIGNvbnRhaW5lcnMsIHdoaWNoIGFsc29cbiAgICB2aW9sYXRlcyBhY2Nlc3NpYmlsaXR5IHJ1bGVzIGJlY2F1c2Ugb25seSB0YWIgYnV0dG9ucyBjYW4gYmUgY2hpbGRyZW4gb2YgYSB0YWJsaXN0LlxuICAgIFRvIGFkZHJlc3MgdGhpcywgd2UgY3JlYXRlIGFuIGVtcHR5IHRhYmxpc3QgZWxlbWVudCB3aXRoIGFuIGFyaWEtb3ducyBhdHRyaWJ1dGUsXG4gICAgcG9pbnRpbmcgdG8gZWFjaCB0YWIgZWxlbWVudCBpbmRpdmlkdWFsbHkuIFRoYXQgd2F5LCB3ZSBkb24ndCBoYXZlIHRvIHdvcnJ5IGFib3V0IHRoZVxuICAgIHN0cnVjdHVyZSBmb3IgZWFjaCBza3ktdmVydGljYWwtdGFiIGNvbXBvbmVudCBpbiBvcmRlciB0byBzYXRpc2Z5IGFjY2Vzc2liaWxpdHlcbiAgICBndWlkZWxpbmVzLlxuICAtLT5cbiAgPHNwYW5cbiAgICBhcmlhLW9yaWVudGF0aW9uPVwidmVydGljYWxcIlxuICAgIFthdHRyLmFyaWEtb3duc109XCJhcmlhT3duc1wiXG4gICAgW2F0dHIucm9sZV09XCJhcmlhUm9sZVwiXG4gID48L3NwYW4+XG4gIDxkaXZcbiAgICAqbmdJZj1cIm1haW50YWluU2VjdGlvbkNvbnRlbnQgfHwgdGFic1Zpc2libGUoKVwiXG4gICAgY2xhc3M9XCJza3ktc2VjdGlvbmVkLWZvcm0tdGFic1wiXG4gICAgW25nQ2xhc3NdPVwieyAnc2t5LXNlY3Rpb25lZC1mb3JtLXRhYnMtaGlkZGVuJzogIXRhYnNWaXNpYmxlKCkgfVwiXG4gICAgW0B0YWJFbnRlcl09XCJ0YWJTZXJ2aWNlLmFuaW1hdGlvblRhYnNWaXNpYmxlU3RhdGVcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbiAgPGRpdlxuICAgICpuZ0lmPVwibWFpbnRhaW5TZWN0aW9uQ29udGVudCB8fCB0YWJTZXJ2aWNlLmNvbnRlbnRWaXNpYmxlKClcIlxuICAgIGNsYXNzPVwic2t5LXNlY3Rpb25lZC1mb3JtLWNvbnRlbnRcIlxuICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICdza3ktc2VjdGlvbmVkLWZvcm0tY29udGVudC1oaWRkZW4nOiAhdGFiU2VydmljZS5jb250ZW50VmlzaWJsZSgpXG4gICAgfVwiXG4gICAgW0Bjb250ZW50RW50ZXJdPVwidGFiU2VydmljZS5hbmltYXRpb25Db250ZW50VmlzaWJsZVN0YXRlXCJcbiAgICAjc2t5U2VjdGlvblNpZGVDb250ZW50XG4gID48L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,61 +0,0 @@
1
- /**
2
- * NOTICE: DO NOT MODIFY THIS FILE!
3
- * The contents of this file were automatically generated by
4
- * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-tabs' schematic.
5
- * To update this file, simply rerun the command.
6
- */
7
- import { NgModule } from '@angular/core';
8
- import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
9
- import * as i0 from "@angular/core";
10
- const RESOURCES = {
11
- 'EN-US': {
12
- skyux_tab_add: { message: 'Add tab' },
13
- skyux_tab_close: { message: 'Close {0} tab' },
14
- skyux_tabs_navigator_finish: { message: 'Finish' },
15
- skyux_tabs_navigator_next: { message: 'Next' },
16
- skyux_tabs_navigator_previous: { message: 'Previous' },
17
- skyux_tab_open: { message: 'Open tab' },
18
- skyux_tabs_sr_tab_order: { message: 'Tab {0} of {1}: {2}' },
19
- skyux_vertical_tabs_show_tabs_text: { message: 'Tab list' },
20
- skyux_wizard_sr_step_current: { message: 'Step {0} of {1}, current: {2}' },
21
- skyux_wizard_sr_step_completed: {
22
- message: 'Step {0} of {1}, completed: {2}',
23
- },
24
- skyux_wizard_sr_step_unavailable: {
25
- message: 'Step {0} of {1}, unavailable: {2}',
26
- },
27
- },
28
- };
29
- export class SkyTabsResourcesProvider {
30
- getString(localeInfo, name) {
31
- return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
32
- }
33
- }
34
- /**
35
- * Import into any component library module that needs to use resource strings.
36
- */
37
- export class SkyTabsResourcesModule {
38
- }
39
- SkyTabsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
40
- SkyTabsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsResourcesModule, exports: [SkyI18nModule] });
41
- SkyTabsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsResourcesModule, providers: [
42
- {
43
- provide: SKY_LIB_RESOURCES_PROVIDERS,
44
- useClass: SkyTabsResourcesProvider,
45
- multi: true,
46
- },
47
- ], imports: [SkyI18nModule] });
48
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyTabsResourcesModule, decorators: [{
49
- type: NgModule,
50
- args: [{
51
- exports: [SkyI18nModule],
52
- providers: [
53
- {
54
- provide: SKY_LIB_RESOURCES_PROVIDERS,
55
- useClass: SkyTabsResourcesProvider,
56
- multi: true,
57
- },
58
- ],
59
- }]
60
- }] });
61
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LXRhYnMtcmVzb3VyY2VzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy90YWJzL3NyYy9saWIvbW9kdWxlcy9zaGFyZWQvc2t5LXRhYnMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1AsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRTtRQUNyQyxlQUFlLEVBQUUsRUFBRSxPQUFPLEVBQUUsZUFBZSxFQUFFO1FBQzdDLDJCQUEyQixFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRTtRQUNsRCx5QkFBeUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUU7UUFDOUMsNkJBQTZCLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQ3RELGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUU7UUFDdkMsdUJBQXVCLEVBQUUsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUU7UUFDM0Qsa0NBQWtDLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFO1FBQzNELDRCQUE0QixFQUFFLEVBQUUsT0FBTyxFQUFFLCtCQUErQixFQUFFO1FBQzFFLDhCQUE4QixFQUFFO1lBQzlCLE9BQU8sRUFBRSxpQ0FBaUM7U0FDM0M7UUFDRCxnQ0FBZ0MsRUFBRTtZQUNoQyxPQUFPLEVBQUUsbUNBQW1DO1NBQzdDO0tBQ0Y7Q0FDRixDQUFDO0FBRUYsTUFBTSxPQUFPLHdCQUF3QjtJQUM1QixTQUFTLENBQ2QsVUFBNEIsRUFDNUIsSUFBWTtRQUVaLE9BQU8scUJBQXFCLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkUsQ0FBQztDQUNGO0FBRUQ7O0dBRUc7QUFXSCxNQUFNLE9BQU8sc0JBQXNCOzttSEFBdEIsc0JBQXNCO29IQUF0QixzQkFBc0IsWUFUdkIsYUFBYTtvSEFTWixzQkFBc0IsYUFSdEI7UUFDVDtZQUNFLE9BQU8sRUFBRSwyQkFBMkI7WUFDcEMsUUFBUSxFQUFFLHdCQUF3QjtZQUNsQyxLQUFLLEVBQUUsSUFBSTtTQUNaO0tBQ0YsWUFQUyxhQUFhOzJGQVNaLHNCQUFzQjtrQkFWbEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxhQUFhLENBQUM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsMkJBQTJCOzRCQUNwQyxRQUFRLEVBQUUsd0JBQXdCOzRCQUNsQyxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogTk9USUNFOiBETyBOT1QgTU9ESUZZIFRISVMgRklMRSFcbiAqIFRoZSBjb250ZW50cyBvZiB0aGlzIGZpbGUgd2VyZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCBieVxuICogdGhlICduZyBnZW5lcmF0ZSBAc2t5dXgvaTE4bjpsaWItcmVzb3VyY2VzLW1vZHVsZSBsaWIvbW9kdWxlcy9zaGFyZWQvc2t5LXRhYnMnIHNjaGVtYXRpYy5cbiAqIFRvIHVwZGF0ZSB0aGlzIGZpbGUsIHNpbXBseSByZXJ1biB0aGUgY29tbWFuZC5cbiAqL1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIFNLWV9MSUJfUkVTT1VSQ0VTX1BST1ZJREVSUyxcbiAgU2t5QXBwTG9jYWxlSW5mbyxcbiAgU2t5STE4bk1vZHVsZSxcbiAgU2t5TGliUmVzb3VyY2VzLFxuICBTa3lMaWJSZXNvdXJjZXNQcm92aWRlcixcbiAgZ2V0TGliU3RyaW5nRm9yTG9jYWxlLFxufSBmcm9tICdAc2t5dXgvaTE4bic7XG5cbmNvbnN0IFJFU09VUkNFUzogeyBbbG9jYWxlOiBzdHJpbmddOiBTa3lMaWJSZXNvdXJjZXMgfSA9IHtcbiAgJ0VOLVVTJzoge1xuICAgIHNreXV4X3RhYl9hZGQ6IHsgbWVzc2FnZTogJ0FkZCB0YWInIH0sXG4gICAgc2t5dXhfdGFiX2Nsb3NlOiB7IG1lc3NhZ2U6ICdDbG9zZSB7MH0gdGFiJyB9LFxuICAgIHNreXV4X3RhYnNfbmF2aWdhdG9yX2ZpbmlzaDogeyBtZXNzYWdlOiAnRmluaXNoJyB9LFxuICAgIHNreXV4X3RhYnNfbmF2aWdhdG9yX25leHQ6IHsgbWVzc2FnZTogJ05leHQnIH0sXG4gICAgc2t5dXhfdGFic19uYXZpZ2F0b3JfcHJldmlvdXM6IHsgbWVzc2FnZTogJ1ByZXZpb3VzJyB9LFxuICAgIHNreXV4X3RhYl9vcGVuOiB7IG1lc3NhZ2U6ICdPcGVuIHRhYicgfSxcbiAgICBza3l1eF90YWJzX3NyX3RhYl9vcmRlcjogeyBtZXNzYWdlOiAnVGFiIHswfSBvZiB7MX06IHsyfScgfSxcbiAgICBza3l1eF92ZXJ0aWNhbF90YWJzX3Nob3dfdGFic190ZXh0OiB7IG1lc3NhZ2U6ICdUYWIgbGlzdCcgfSxcbiAgICBza3l1eF93aXphcmRfc3Jfc3RlcF9jdXJyZW50OiB7IG1lc3NhZ2U6ICdTdGVwIHswfSBvZiB7MX0sIGN1cnJlbnQ6IHsyfScgfSxcbiAgICBza3l1eF93aXphcmRfc3Jfc3RlcF9jb21wbGV0ZWQ6IHtcbiAgICAgIG1lc3NhZ2U6ICdTdGVwIHswfSBvZiB7MX0sIGNvbXBsZXRlZDogezJ9JyxcbiAgICB9LFxuICAgIHNreXV4X3dpemFyZF9zcl9zdGVwX3VuYXZhaWxhYmxlOiB7XG4gICAgICBtZXNzYWdlOiAnU3RlcCB7MH0gb2YgezF9LCB1bmF2YWlsYWJsZTogezJ9JyxcbiAgICB9LFxuICB9LFxufTtcblxuZXhwb3J0IGNsYXNzIFNreVRhYnNSZXNvdXJjZXNQcm92aWRlciBpbXBsZW1lbnRzIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyIHtcbiAgcHVibGljIGdldFN0cmluZyhcbiAgICBsb2NhbGVJbmZvOiBTa3lBcHBMb2NhbGVJbmZvLFxuICAgIG5hbWU6IHN0cmluZ1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRMaWJTdHJpbmdGb3JMb2NhbGUoUkVTT1VSQ0VTLCBsb2NhbGVJbmZvLmxvY2FsZSwgbmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICAgICAgdXNlQ2xhc3M6IFNreVRhYnNSZXNvdXJjZXNQcm92aWRlcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVRhYnNSZXNvdXJjZXNNb2R1bGUge31cbiJdfQ==