@theseam/ui-common 0.4.22 → 0.4.24-beta.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 (154) hide show
  1. package/breadcrumbs/breadcrumbs/breadcrumbs.component.scss +1 -1
  2. package/datatable/datatable/datatable.component.d.ts +10 -1
  3. package/datatable/models/action-item-column-position.d.ts +13 -0
  4. package/datatable/services/columns-manager.service.d.ts +7 -0
  5. package/datatable/utils/create-action-menu-column.d.ts +1 -1
  6. package/esm2020/breadcrumbs/breadcrumbs/breadcrumbs.component.mjs +2 -2
  7. package/esm2020/datatable/datatable/datatable.component.mjs +20 -4
  8. package/esm2020/datatable/datatable-action-menu/datatable-action-menu.component.mjs +2 -2
  9. package/esm2020/datatable/datatable-column-preferences-button/datatable-column-preferences-button.component.mjs +1 -1
  10. package/esm2020/datatable/datatable-export-button/datatable-export-button.component.mjs +1 -1
  11. package/esm2020/datatable/models/action-item-column-position.mjs +5 -0
  12. package/esm2020/datatable/services/columns-manager.service.mjs +27 -2
  13. package/esm2020/datatable/utils/create-action-menu-column.mjs +4 -3
  14. package/esm2020/datatable-dynamic/datatable-dynamic-action-menu/datatable-dynamic-action-menu.component.mjs +1 -1
  15. package/esm2020/datatable-dynamic/datatable-dynamic.component.mjs +1 -1
  16. package/esm2020/form-field/form-field-required-indicator.component.mjs +22 -7
  17. package/esm2020/form-field/input.directive.mjs +19 -16
  18. package/esm2020/form-field/testing/form-field.harness.mjs +45 -0
  19. package/esm2020/form-field/testing/index.mjs +2 -1
  20. package/esm2020/framework/base-layout/base-layout.component.mjs +14 -4
  21. package/esm2020/framework/base-layout/base-layout.module.mjs +6 -1
  22. package/esm2020/framework/base-layout/directives/base-layout-nav-toggle.directive.mjs +21 -5
  23. package/esm2020/framework/base-layout/directives/base-layout-side-bar-header.directive.mjs +16 -0
  24. package/esm2020/framework/base-layout/index.mjs +2 -1
  25. package/esm2020/framework/nav/horizontal-nav/horizontal-nav.component.mjs +55 -0
  26. package/esm2020/framework/nav/index.mjs +6 -0
  27. package/esm2020/framework/nav/nav-item/nav-item.component.mjs +227 -0
  28. package/esm2020/framework/nav/nav-utils.mjs +107 -0
  29. package/esm2020/framework/nav/nav.models.mjs +2 -0
  30. package/esm2020/framework/nav/nav.module.mjs +67 -0
  31. package/esm2020/framework/nav/nav.service.mjs +204 -0
  32. package/esm2020/framework/public-api.mjs +2 -1
  33. package/esm2020/framework/schema-form-controls/schema-form-submit-split/schema-form-submit-split.component.mjs +2 -2
  34. package/esm2020/framework/side-nav/side-nav-item/side-nav-item.component.mjs +28 -67
  35. package/esm2020/framework/side-nav/side-nav-toggle/side-nav-toggle.component.mjs +12 -5
  36. package/esm2020/framework/side-nav/side-nav.component.mjs +116 -38
  37. package/esm2020/framework/side-nav/side-nav.models.mjs +1 -1
  38. package/esm2020/framework/side-nav/side-nav.module.mjs +9 -39
  39. package/esm2020/framework/side-nav/side-nav.service.mjs +1 -1
  40. package/esm2020/framework/top-bar/index.mjs +3 -1
  41. package/esm2020/framework/top-bar/top-bar-compact-menu-btn-detail.directive.mjs +16 -0
  42. package/esm2020/framework/top-bar/top-bar-item.directive.mjs +10 -4
  43. package/esm2020/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.mjs +6 -4
  44. package/esm2020/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.mjs +16 -0
  45. package/esm2020/framework/top-bar/top-bar.component.mjs +55 -11
  46. package/esm2020/framework/top-bar/top-bar.module.mjs +15 -5
  47. package/esm2020/google-maps/google-maps-places-autocomplete/google-maps-places-autocomplete.component.mjs +3 -3
  48. package/esm2020/layout/layout.service.mjs +12 -2
  49. package/esm2020/menu/menu-toggle.directive.mjs +7 -2
  50. package/esm2020/story-helpers/story-modal-container.component.mjs +3 -3
  51. package/esm2020/tabbed/tabbed.component.mjs +25 -18
  52. package/esm2020/table-cell-types/table-cell-type-string/table-cell-type-string.component.mjs +4 -2
  53. package/esm2020/utils/geo-json/coerce-feature-collection.mjs +1 -1
  54. package/esm2020/utils/geo-json/is-feature-collection.validator.mjs +1 -1
  55. package/esm2020/utils/geo-json/is-only-geometry-types.mjs +1 -1
  56. package/esm2020/utils/geo-json/merge-polygons.mjs +1 -1
  57. package/esm2020/utils/geo-json/no-inner-rings.validator.mjs +1 -1
  58. package/esm2020/utils/geo-json/split-multi-polygons.mjs +1 -1
  59. package/fesm2015/theseam-ui-common-breadcrumbs.mjs +2 -2
  60. package/fesm2015/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  61. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs +2 -2
  62. package/fesm2015/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  63. package/fesm2015/theseam-ui-common-datatable.mjs +56 -10
  64. package/fesm2015/theseam-ui-common-datatable.mjs.map +1 -1
  65. package/fesm2015/theseam-ui-common-form-field.mjs +92 -27
  66. package/fesm2015/theseam-ui-common-form-field.mjs.map +1 -1
  67. package/fesm2015/theseam-ui-common-framework.mjs +905 -156
  68. package/fesm2015/theseam-ui-common-framework.mjs.map +1 -1
  69. package/fesm2015/theseam-ui-common-google-maps.mjs +2 -2
  70. package/fesm2015/theseam-ui-common-google-maps.mjs.map +1 -1
  71. package/fesm2015/theseam-ui-common-layout.mjs +11 -2
  72. package/fesm2015/theseam-ui-common-layout.mjs.map +1 -1
  73. package/fesm2015/theseam-ui-common-menu.mjs +6 -1
  74. package/fesm2015/theseam-ui-common-menu.mjs.map +1 -1
  75. package/fesm2015/theseam-ui-common-story-helpers.mjs +2 -2
  76. package/fesm2015/theseam-ui-common-story-helpers.mjs.map +1 -1
  77. package/fesm2015/theseam-ui-common-tabbed.mjs +26 -19
  78. package/fesm2015/theseam-ui-common-tabbed.mjs.map +1 -1
  79. package/fesm2015/theseam-ui-common-table-cell-types.mjs +3 -1
  80. package/fesm2015/theseam-ui-common-table-cell-types.mjs.map +1 -1
  81. package/fesm2015/theseam-ui-common-utils.mjs.map +1 -1
  82. package/fesm2020/theseam-ui-common-breadcrumbs.mjs +2 -2
  83. package/fesm2020/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  84. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs +2 -2
  85. package/fesm2020/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  86. package/fesm2020/theseam-ui-common-datatable.mjs +56 -10
  87. package/fesm2020/theseam-ui-common-datatable.mjs.map +1 -1
  88. package/fesm2020/theseam-ui-common-form-field.mjs +88 -27
  89. package/fesm2020/theseam-ui-common-form-field.mjs.map +1 -1
  90. package/fesm2020/theseam-ui-common-framework.mjs +907 -156
  91. package/fesm2020/theseam-ui-common-framework.mjs.map +1 -1
  92. package/fesm2020/theseam-ui-common-google-maps.mjs +2 -2
  93. package/fesm2020/theseam-ui-common-google-maps.mjs.map +1 -1
  94. package/fesm2020/theseam-ui-common-layout.mjs +11 -2
  95. package/fesm2020/theseam-ui-common-layout.mjs.map +1 -1
  96. package/fesm2020/theseam-ui-common-menu.mjs +6 -1
  97. package/fesm2020/theseam-ui-common-menu.mjs.map +1 -1
  98. package/fesm2020/theseam-ui-common-story-helpers.mjs +2 -2
  99. package/fesm2020/theseam-ui-common-story-helpers.mjs.map +1 -1
  100. package/fesm2020/theseam-ui-common-tabbed.mjs +24 -17
  101. package/fesm2020/theseam-ui-common-tabbed.mjs.map +1 -1
  102. package/fesm2020/theseam-ui-common-table-cell-types.mjs +3 -1
  103. package/fesm2020/theseam-ui-common-table-cell-types.mjs.map +1 -1
  104. package/fesm2020/theseam-ui-common-utils.mjs.map +1 -1
  105. package/form-field/form-field-required-indicator.component.d.ts +6 -1
  106. package/form-field/input.directive.d.ts +9 -15
  107. package/form-field/testing/form-field.harness.d.ts +14 -0
  108. package/form-field/testing/index.d.ts +1 -0
  109. package/framework/base-layout/base-layout.component.d.ts +4 -2
  110. package/framework/base-layout/base-layout.component.scss +18 -10
  111. package/framework/base-layout/base-layout.module.d.ts +11 -10
  112. package/framework/base-layout/directives/base-layout-nav-toggle.directive.d.ts +8 -3
  113. package/framework/base-layout/directives/base-layout-side-bar-header.directive.d.ts +9 -0
  114. package/framework/base-layout/index.d.ts +1 -0
  115. package/framework/base-layout/styles/_variables.scss +21 -0
  116. package/framework/nav/_nav-theme.scss +4 -0
  117. package/framework/nav/horizontal-nav/horizontal-nav.component.d.ts +25 -0
  118. package/framework/nav/horizontal-nav/horizontal-nav.component.scss +50 -0
  119. package/framework/nav/index.d.ts +5 -0
  120. package/framework/nav/nav-item/nav-item.component.d.ts +74 -0
  121. package/framework/nav/nav-item/nav-item.component.scss +203 -0
  122. package/framework/nav/nav-utils.d.ts +20 -0
  123. package/framework/nav/nav.models.d.ts +77 -0
  124. package/framework/nav/nav.module.d.ts +17 -0
  125. package/framework/nav/nav.service.d.ts +27 -0
  126. package/framework/nav/styles/_themes/light/_variables.scss +56 -0
  127. package/framework/nav/styles/_themes/primary/_variables.scss +56 -0
  128. package/framework/nav/styles/_utilities.scss +3 -0
  129. package/framework/nav/styles/_variables.scss +2 -0
  130. package/framework/public-api.d.ts +1 -0
  131. package/framework/side-nav/side-nav-item/side-nav-item.component.d.ts +7 -14
  132. package/framework/side-nav/side-nav-item/side-nav-item.component.scss +7 -5
  133. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.d.ts +5 -3
  134. package/framework/side-nav/side-nav-toggle/side-nav-toggle.component.scss +3 -6
  135. package/framework/side-nav/side-nav.component.d.ts +13 -1
  136. package/framework/side-nav/side-nav.component.scss +0 -1
  137. package/framework/side-nav/side-nav.models.d.ts +7 -1
  138. package/framework/side-nav/side-nav.module.d.ts +1 -9
  139. package/framework/side-nav/styles/_themes/light/_variables.scss +24 -14
  140. package/framework/side-nav/styles/_themes/primary/_variables.scss +8 -0
  141. package/framework/top-bar/index.d.ts +2 -0
  142. package/framework/top-bar/top-bar-compact-menu-btn-detail.directive.d.ts +8 -0
  143. package/framework/top-bar/top-bar-item.directive.d.ts +4 -1
  144. package/framework/top-bar/top-bar-menu-button/top-bar-menu-button.component.d.ts +5 -2
  145. package/framework/top-bar/top-bar-nav-toggle-btn-detail.directive.d.ts +8 -0
  146. package/framework/top-bar/top-bar.component.d.ts +25 -3
  147. package/framework/top-bar/top-bar.component.scss +7 -2
  148. package/framework/top-bar/top-bar.module.d.ts +10 -8
  149. package/layout/layout.service.d.ts +9 -1
  150. package/menu/menu-toggle.directive.d.ts +2 -1
  151. package/package.json +2 -2
  152. package/styles/vendor/ngx-datatable/_ngx-datatable.scss +57 -14
  153. package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +33 -5
  154. package/tabbed/tabbed.component.d.ts +9 -4
@@ -0,0 +1,204 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { NavigationEnd } from '@angular/router';
3
+ import { BehaviorSubject, defer, Observable, Subject } from 'rxjs';
4
+ import { distinctUntilChanged, filter, map, shareReplay, startWith, switchMap } from 'rxjs/operators';
5
+ import { hasProperty, notNullOrUndefined } from '@theseam/ui-common/utils';
6
+ import { areSameHorizontalNavItem, getHorizontalNavItemStateProp, horizontalNavItemCanExpand, horizontalNavItemHasActiveChild, horizontalNavItemHasChildren, horizontalNavItemHasExpandedChild, isHorizontalNavItemActive, isHorizontalNavItemType, setDefaultHorizontalNavItemState, setHorizontalNavItemStateProp } from './nav-utils';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "@angular/router";
9
+ export class TheSeamNavService {
10
+ constructor(_router) {
11
+ this._router = _router;
12
+ this._updatingCount = new BehaviorSubject(0);
13
+ this.itemChanged = new Subject();
14
+ this.loading$ = this._updatingCount.pipe(map(count => count > 0), distinctUntilChanged(), shareReplay({ bufferSize: 1, refCount: true }));
15
+ }
16
+ createItemsObservable(items) {
17
+ return defer(() => {
18
+ this.updateItemsStates(items);
19
+ this.updateRouterFocusedItem(items);
20
+ return new Observable((subscriber) => {
21
+ const stateChangeSub = this.itemChanged.pipe(switchMap(change => {
22
+ if (change.prop === 'focused' && change.newValue) {
23
+ this.updateFocusedItem(items, change.item);
24
+ }
25
+ return this.loading$.pipe(filter(loading => !loading));
26
+ })).subscribe(() => {
27
+ subscriber.next(items);
28
+ });
29
+ try {
30
+ this.updateItemsStates(items);
31
+ }
32
+ catch (err) {
33
+ subscriber.error(err);
34
+ }
35
+ const routeChangeSub = this._router.events.pipe(filter(event => event instanceof NavigationEnd)).subscribe(event => {
36
+ try {
37
+ this.updateItemsStates(items);
38
+ this.updateRouterFocusedItem(items);
39
+ }
40
+ catch (err) {
41
+ subscriber.error(err);
42
+ }
43
+ });
44
+ return () => {
45
+ stateChangeSub.unsubscribe();
46
+ routeChangeSub.unsubscribe();
47
+ };
48
+ }).pipe(startWith(items));
49
+ });
50
+ }
51
+ _incUpdatingCount() {
52
+ this._updatingCount.next(this._updatingCount.value + 1);
53
+ }
54
+ _decrUpdatingCount() {
55
+ this._updatingCount.next(this._updatingCount.value - 1);
56
+ }
57
+ updateItemsStates(items) {
58
+ this._incUpdatingCount();
59
+ try {
60
+ for (const item of items) {
61
+ if (horizontalNavItemHasChildren(item)) {
62
+ this.updateItemsStates(item.children);
63
+ }
64
+ this.updateItemState(item);
65
+ }
66
+ this._decrUpdatingCount();
67
+ }
68
+ catch (err) {
69
+ this._decrUpdatingCount();
70
+ throw err;
71
+ }
72
+ }
73
+ updateItemState(item) {
74
+ this._incUpdatingCount();
75
+ try {
76
+ setDefaultHorizontalNavItemState(item);
77
+ this.setItemStateProp(item, 'active', this.horizontalNavLinkActive(item));
78
+ // TODO: Implement this in a more optimized way. Unless our apps start
79
+ // having large navs constantly updating their state, this shouldn't
80
+ // have much impact on performance.
81
+ this._updateItemExpandedState(item);
82
+ this._decrUpdatingCount();
83
+ }
84
+ catch (err) {
85
+ this._decrUpdatingCount();
86
+ throw err;
87
+ }
88
+ }
89
+ horizontalNavLinkActive(item) {
90
+ if (isHorizontalNavItemType(item, 'link')) {
91
+ const url = this._getUrl(item);
92
+ if (notNullOrUndefined(url)) {
93
+ const opts = this._getMatchOptions(item);
94
+ return this._router.isActive(url, opts);
95
+ }
96
+ }
97
+ return false;
98
+ }
99
+ _updateItemsExpandedState(items) {
100
+ for (const item of items) {
101
+ if (horizontalNavItemHasChildren(item)) {
102
+ this._updateItemsExpandedState(item.children);
103
+ }
104
+ this._updateItemExpandedState(item);
105
+ }
106
+ }
107
+ _updateItemExpandedState(item) {
108
+ if (!horizontalNavItemCanExpand(item)) {
109
+ if (getHorizontalNavItemStateProp(item, 'expanded')) {
110
+ this.setItemStateProp(item, 'expanded', false);
111
+ }
112
+ return;
113
+ }
114
+ if (horizontalNavItemHasChildren(item)) {
115
+ this._updateItemsExpandedState(item.children);
116
+ }
117
+ if (horizontalNavItemHasActiveChild(item) || horizontalNavItemHasExpandedChild(item)) {
118
+ if (!getHorizontalNavItemStateProp(item, 'expanded')) {
119
+ this.setItemStateProp(item, 'expanded', true);
120
+ }
121
+ }
122
+ else {
123
+ if (getHorizontalNavItemStateProp(item, 'expanded')) {
124
+ this.setItemStateProp(item, 'expanded', false);
125
+ }
126
+ }
127
+ }
128
+ updateRouterFocusedItem(items) {
129
+ const focusedItem = items.find(i => isHorizontalNavItemActive(i)) || items.find(i => horizontalNavItemHasActiveChild(i));
130
+ if (notNullOrUndefined(focusedItem)) {
131
+ this.updateFocusedItem(items, focusedItem);
132
+ }
133
+ }
134
+ updateFocusedItem(items, focusedItem) {
135
+ for (const item of items) {
136
+ if (areSameHorizontalNavItem(item, focusedItem)) {
137
+ setHorizontalNavItemStateProp(item, 'focused', true);
138
+ }
139
+ else {
140
+ setHorizontalNavItemStateProp(item, 'focused', false);
141
+ }
142
+ }
143
+ }
144
+ _getNavExtras(item) {
145
+ const navigationExtras = {};
146
+ if (hasProperty(item, 'queryParams')) {
147
+ navigationExtras.queryParams = item.queryParams;
148
+ }
149
+ if (hasProperty(item, 'fragment')) {
150
+ navigationExtras.fragment = item.fragment;
151
+ }
152
+ if (hasProperty(item, 'queryParamsHandling')) {
153
+ navigationExtras.queryParamsHandling = item.queryParamsHandling;
154
+ }
155
+ if (hasProperty(item, 'preserveFragment')) {
156
+ navigationExtras.preserveFragment = item.preserveFragment;
157
+ }
158
+ return navigationExtras;
159
+ }
160
+ _getUrl(item) {
161
+ const link = item.link;
162
+ if (typeof link === 'string') {
163
+ return this._router.createUrlTree([link], this._getNavExtras(item)).toString();
164
+ }
165
+ else if (Array.isArray(link)) {
166
+ return this._router.createUrlTree(link, this._getNavExtras(item)).toString();
167
+ }
168
+ return null;
169
+ }
170
+ _getMatchOptions(item) {
171
+ const defaultMatchOpts = {
172
+ paths: 'subset',
173
+ queryParams: 'subset',
174
+ fragment: 'ignored',
175
+ matrixParams: 'ignored'
176
+ };
177
+ if (hasProperty(item, 'matchOptions')) {
178
+ return {
179
+ ...defaultMatchOpts,
180
+ ...item.matchOptions
181
+ };
182
+ }
183
+ return defaultMatchOpts;
184
+ }
185
+ setItemStateProp(item, prop, value) {
186
+ const currentValue = getHorizontalNavItemStateProp(item, prop);
187
+ if (currentValue !== value) {
188
+ setHorizontalNavItemStateProp(item, prop, value);
189
+ const changed = {
190
+ item,
191
+ prop,
192
+ prevValue: currentValue,
193
+ newValue: value
194
+ };
195
+ this.itemChanged.next(changed);
196
+ }
197
+ }
198
+ }
199
+ TheSeamNavService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavService, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Injectable });
200
+ TheSeamNavService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavService });
201
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamNavService, decorators: [{
202
+ type: Injectable
203
+ }], ctorParameters: function () { return [{ type: i1.Router }]; } });
204
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL25hdi9uYXYuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFBO0FBQzFDLE9BQU8sRUFBd0IsYUFBYSxFQUE4QixNQUFNLGlCQUFpQixDQUFBO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQWMsTUFBTSxNQUFNLENBQUE7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUVyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFMUUsT0FBTyxFQUNMLHdCQUF3QixFQUN4Qiw2QkFBNkIsRUFDN0IsMEJBQTBCLEVBQzFCLCtCQUErQixFQUMvQiw0QkFBNEIsRUFDNUIsaUNBQWlDLEVBQ2pDLHlCQUF5QixFQUN6Qix1QkFBdUIsRUFDdkIsZ0NBQWdDLEVBQ2hDLDZCQUE2QixFQUM5QixNQUFNLGFBQWEsQ0FBQTs7O0FBSXBCLE1BQU0sT0FBTyxpQkFBaUI7SUFRNUIsWUFDbUIsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7UUFQakIsbUJBQWMsR0FBRyxJQUFJLGVBQWUsQ0FBUyxDQUFDLENBQUMsQ0FBQTtRQUloRCxnQkFBVyxHQUFHLElBQUksT0FBTyxFQUF1QixDQUFBO1FBSzlELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQ3RDLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsRUFDdkIsb0JBQW9CLEVBQUUsRUFD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SSxFQUFFLElBQUksRUFBRSxLQUFLLENBQUMsQ0FBQTtZQUVoRCxNQUFNLE9BQU8sR0FBd0I7Z0JBQ25DLElBQUk7Z0JBQ0osSUFBSTtnQkFDSixTQUFTLEVBQUUsWUFBWTtnQkFDdkIsUUFBUSxFQUFFLEtBQUs7YUFDaEIsQ0FBQTtZQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1NBQy9CO0lBQ0gsQ0FBQzs7OEdBbE9VLGlCQUFpQjtrSEFBakIsaUJBQWlCOzJGQUFqQixpQkFBaUI7a0JBRDdCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IElzQWN0aXZlTWF0Y2hPcHRpb25zLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFVybENyZWF0aW9uT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcidcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgZGVmZXIsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmliZXIgfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzaGFyZVJlcGxheSwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgaGFzUHJvcGVydHksIG5vdE51bGxPclVuZGVmaW5lZCB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi91dGlscydcblxuaW1wb3J0IHtcbiAgYXJlU2FtZUhvcml6b250YWxOYXZJdGVtLFxuICBnZXRIb3Jpem9udGFsTmF2SXRlbVN0YXRlUHJvcCxcbiAgaG9yaXpvbnRhbE5hdkl0ZW1DYW5FeHBhbmQsXG4gIGhvcml6b250YWxOYXZJdGVtSGFzQWN0aXZlQ2hpbGQsXG4gIGhvcml6b250YWxOYXZJdGVtSGFzQ2hpbGRyZW4sXG4gIGhvcml6b250YWxOYXZJdGVtSGFzRXhwYW5kZWRDaGlsZCxcbiAgaXNIb3Jpem9udGFsTmF2SXRlbUFjdGl2ZSxcbiAgaXNIb3Jpem9udGFsTmF2SXRlbVR5cGUsXG4gIHNldERlZmF1bHRIb3Jpem9udGFsTmF2SXRlbVN0YXRlLFxuICBzZXRIb3Jpem9udGFsTmF2SXRlbVN0YXRlUHJvcFxufSBmcm9tICcuL25hdi11dGlscydcbmltcG9ydCB7IElOYXZJdGVtLCBJTmF2SXRlbVN0YXRlLCBJTmF2TGluaywgTmF2SXRlbVN0YXRlQ2hhbmdlZCB9IGZyb20gJy4vbmF2Lm1vZGVscydcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFRoZVNlYW1OYXZTZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IF91cGRhdGluZ0NvdW50ID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApXG5cbiAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmckOiBPYnNlcnZhYmxlPGJvb2xlYW4+XG5cbiAgcHVibGljIHJlYWRvbmx5IGl0ZW1DaGFuZ2VkID0gbmV3IFN1YmplY3Q8TmF2SXRlbVN0YXRlQ2hhbmdlZD4oKVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX3JvdXRlcjogUm91dGVyXG4gICkge1xuICAgIHRoaXMubG9hZGluZyQgPSB0aGlzLl91cGRhdGluZ0NvdW50LnBpcGUoXG4gICAgICBtYXAoY291bnQgPT4gY291bnQgPiAwKSxcbiAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICBzaGFyZVJlcGxheSh7IGJ1ZmZlclNpemU6IDEsIHJlZkNvdW50OiB0cnVlIH0pXG4gICAgKVxuICB9XG5cbiAgcHVibGljIGNyZWF0ZUl0ZW1zT2JzZXJ2YWJsZShpdGVtczogSU5hdkl0ZW1bXSk6IE9ic2VydmFibGU8SU5hdkl0ZW1bXT4ge1xuICAgIHJldHVybiBkZWZlcigoKSA9PiB7XG4gICAgICB0aGlzLnVwZGF0ZUl0ZW1zU3RhdGVzKGl0ZW1zKVxuICAgICAgdGhpcy51cGRhdGVSb3V0ZXJGb2N1c2VkSXRlbShpdGVtcylcbiAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZSgoc3Vic2NyaWJlcjogU3Vic2NyaWJlcjxJTmF2SXRlbVtdPikgPT4ge1xuICAgICAgICBjb25zdCBzdGF0ZUNoYW5nZVN1YiA9IHRoaXMuaXRlbUNoYW5nZWQucGlwZShcbiAgICAgICAgICBzd2l0Y2hNYXAoY2hhbmdlID0+IHtcbiAgICAgICAgICAgIGlmIChjaGFuZ2UucHJvcCA9PT0gJ2ZvY3VzZWQnICYmIGNoYW5nZS5uZXdWYWx1ZSkge1xuICAgICAgICAgICAgICB0aGlzLnVwZGF0ZUZvY3VzZWRJdGVtKGl0ZW1zLCBjaGFuZ2UuaXRlbSlcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0aGlzLmxvYWRpbmckLnBpcGUoZmlsdGVyKGxvYWRpbmcgPT4gIWxvYWRpbmcpKVxuICAgICAgICAgIH0pXG4gICAgICAgICkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICBzdWJzY3JpYmVyLm5leHQoaXRlbXMpXG4gICAgICAgIH0pXG5cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUl0ZW1zU3RhdGVzKGl0ZW1zKVxuICAgICAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgICAgICBzdWJzY3JpYmVyLmVycm9yKGVycilcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHJvdXRlQ2hhbmdlU3ViID0gdGhpcy5fcm91dGVyLmV2ZW50cy5waXBlKFxuICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpLFxuICAgICAgICApLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlSXRlbXNTdGF0ZXMoaXRlbXMpXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVJvdXRlckZvY3VzZWRJdGVtKGl0ZW1zKVxuICAgICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgICAgc3Vic2NyaWJlci5lcnJvcihlcnIpXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgc3RhdGVDaGFuZ2VTdWIudW5zdWJzY3JpYmUoKVxuICAgICAgICAgIHJvdXRlQ2hhbmdlU3ViLnVuc3Vic2NyaWJlKClcbiAgICAgICAgfVxuICAgICAgfSkucGlwZShzdGFydFdpdGgoaXRlbXMpKVxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIF9pbmNVcGRhdGluZ0NvdW50KCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0aW5nQ291bnQubmV4dCh0aGlzLl91cGRhdGluZ0NvdW50LnZhbHVlICsgMSlcbiAgfVxuXG4gIHByaXZhdGUgX2RlY3JVcGRhdGluZ0NvdW50KCk6IHZvaWQge1xuICAgIHRoaXMuX3VwZGF0aW5nQ291bnQubmV4dCh0aGlzLl91cGRhdGluZ0NvdW50LnZhbHVlIC0gMSlcbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVJdGVtc1N0YXRlcyhpdGVtczogSU5hdkl0ZW1bXSk6IHZvaWQge1xuICAgIHRoaXMuX2luY1VwZGF0aW5nQ291bnQoKVxuXG4gICAgdHJ5IHtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBpdGVtcykge1xuICAgICAgICBpZiAoaG9yaXpvbnRhbE5hdkl0ZW1IYXNDaGlsZHJlbihpdGVtKSkge1xuICAgICAgICAgIHRoaXMudXBkYXRlSXRlbXNTdGF0ZXMoaXRlbS5jaGlsZHJlbilcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudXBkYXRlSXRlbVN0YXRlKGl0ZW0pXG4gICAgICB9XG5cbiAgICAgIHRoaXMuX2RlY3JVcGRhdGluZ0NvdW50KClcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRoaXMuX2RlY3JVcGRhdGluZ0NvdW50KClcbiAgICAgIHRocm93IGVyclxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyB1cGRhdGVJdGVtU3RhdGUoaXRlbTogSU5hdkl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLl9pbmNVcGRhdGluZ0NvdW50KClcblxuICAgIHRyeSB7XG4gICAgICBzZXREZWZhdWx0SG9yaXpvbnRhbE5hdkl0ZW1TdGF0ZShpdGVtKVxuXG4gICAgICB0aGlzLnNldEl0ZW1TdGF0ZVByb3AoaXRlbSwgJ2FjdGl2ZScsIHRoaXMuaG9yaXpvbnRhbE5hdkxpbmtBY3RpdmUoaXRlbSkpXG5cbiAgICAgIC8vIFRPRE86IEltcGxlbWVudCB0aGlzIGluIGEgbW9yZSBvcHRpbWl6ZWQgd2F5LiBVbmxlc3Mgb3VyIGFwcHMgc3RhcnRcbiAgICAgIC8vIGhhdmluZyBsYXJnZSBuYXZzIGNvbnN0YW50bHkgdXBkYXRpbmcgdGhlaXIgc3RhdGUsIHRoaXMgc2hvdWxkbid0XG4gICAgICAvLyBoYXZlIG11Y2ggaW1wYWN0IG9uIHBlcmZvcm1hbmNlLlxuICAgICAgdGhpcy5fdXBkYXRlSXRlbUV4cGFuZGVkU3RhdGUoaXRlbSlcblxuICAgICAgdGhpcy5fZGVjclVwZGF0aW5nQ291bnQoKVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhpcy5fZGVjclVwZGF0aW5nQ291bnQoKVxuICAgICAgdGhyb3cgZXJyXG4gICAgfVxuICB9XG5cbiAgcHVibGljIGhvcml6b250YWxOYXZMaW5rQWN0aXZlKGl0ZW06IElOYXZJdGVtKTogYm9vbGVhbiB7XG4gICAgaWYgKGlzSG9yaXpvbnRhbE5hdkl0ZW1UeXBlKGl0ZW0sICdsaW5rJykpIHtcbiAgICAgIGNvbnN0IHVybCA9IHRoaXMuX2dldFVybChpdGVtKVxuICAgICAgaWYgKG5vdE51bGxPclVuZGVmaW5lZCh1cmwpKSB7XG4gICAgICAgIGNvbnN0IG9wdHMgPSB0aGlzLl9nZXRNYXRjaE9wdGlvbnMoaXRlbSlcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlci5pc0FjdGl2ZSh1cmwsIG9wdHMpXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlSXRlbXNFeHBhbmRlZFN0YXRlKGl0ZW1zOiBJTmF2SXRlbVtdKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGl0ZW1zKSB7XG4gICAgICBpZiAoaG9yaXpvbnRhbE5hdkl0ZW1IYXNDaGlsZHJlbihpdGVtKSkge1xuICAgICAgICB0aGlzLl91cGRhdGVJdGVtc0V4cGFuZGVkU3RhdGUoaXRlbS5jaGlsZHJlbilcbiAgICAgIH1cbiAgICAgIHRoaXMuX3VwZGF0ZUl0ZW1FeHBhbmRlZFN0YXRlKGl0ZW0pXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlSXRlbUV4cGFuZGVkU3RhdGUoaXRlbTogSU5hdkl0ZW0pOiB2b2lkIHtcbiAgICBpZiAoIWhvcml6b250YWxOYXZJdGVtQ2FuRXhwYW5kKGl0ZW0pKSB7XG4gICAgICBpZiAoZ2V0SG9yaXpvbnRhbE5hdkl0ZW1TdGF0ZVByb3AoaXRlbSwgJ2V4cGFuZGVkJykpIHtcbiAgICAgICAgdGhpcy5zZXRJdGVtU3RhdGVQcm9wKGl0ZW0sICdleHBhbmRlZCcsIGZhbHNlKVxuICAgICAgfVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGhvcml6b250YWxOYXZJdGVtSGFzQ2hpbGRyZW4oaXRlbSkpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUl0ZW1zRXhwYW5kZWRTdGF0ZShpdGVtLmNoaWxkcmVuKVxuICAgIH1cblxuICAgIGlmIChob3Jpem9udGFsTmF2SXRlbUhhc0FjdGl2ZUNoaWxkKGl0ZW0pIHx8IGhvcml6b250YWxOYXZJdGVtSGFzRXhwYW5kZWRDaGlsZChpdGVtKSkge1xuICAgICAgaWYgKCFnZXRIb3Jpem9udGFsTmF2SXRlbVN0YXRlUHJvcChpdGVtLCAnZXhwYW5kZWQnKSkge1xuICAgICAgICB0aGlzLnNldEl0ZW1TdGF0ZVByb3AoaXRlbSwgJ2V4cGFuZGVkJywgdHJ1ZSlcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGdldEhvcml6b250YWxOYXZJdGVtU3RhdGVQcm9wKGl0ZW0sICdleHBhbmRlZCcpKSB7XG4gICAgICAgIHRoaXMuc2V0SXRlbVN0YXRlUHJvcChpdGVtLCAnZXhwYW5kZWQnLCBmYWxzZSlcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdXBkYXRlUm91dGVyRm9jdXNlZEl0ZW0oaXRlbXM6IElOYXZJdGVtW10pIHtcbiAgICBjb25zdCBmb2N1c2VkSXRlbSA9IGl0ZW1zLmZpbmQoaSA9PiBpc0hvcml6b250YWxOYXZJdGVtQWN0aXZlKGkpKSB8fCBpdGVtcy5maW5kKGkgPT4gaG9yaXpvbnRhbE5hdkl0ZW1IYXNBY3RpdmVDaGlsZChpKSlcbiAgICBpZiAobm90TnVsbE9yVW5kZWZpbmVkKGZvY3VzZWRJdGVtKSkge1xuICAgICAgdGhpcy51cGRhdGVGb2N1c2VkSXRlbShpdGVtcywgZm9jdXNlZEl0ZW0pXG4gICAgfVxuICB9XG5cbiAgcHVibGljIHVwZGF0ZUZvY3VzZWRJdGVtKGl0ZW1zOiBJTmF2SXRlbVtdLCBmb2N1c2VkSXRlbTogSU5hdkl0ZW0gfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGlmIChhcmVTYW1lSG9yaXpvbnRhbE5hdkl0ZW0oaXRlbSwgZm9jdXNlZEl0ZW0pKSB7XG4gICAgICAgIHNldEhvcml6b250YWxOYXZJdGVtU3RhdGVQcm9wKGl0ZW0sICdmb2N1c2VkJywgdHJ1ZSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNldEhvcml6b250YWxOYXZJdGVtU3RhdGVQcm9wKGl0ZW0sICdmb2N1c2VkJywgZmFsc2UpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0TmF2RXh0cmFzKGl0ZW06IElOYXZMaW5rKTogVXJsQ3JlYXRpb25PcHRpb25zIHtcbiAgICBjb25zdCBuYXZpZ2F0aW9uRXh0cmFzOiBVcmxDcmVhdGlvbk9wdGlvbnMgPSB7IH1cbiAgICBpZiAoaGFzUHJvcGVydHkoaXRlbSwgJ3F1ZXJ5UGFyYW1zJykpIHtcbiAgICAgIG5hdmlnYXRpb25FeHRyYXMucXVlcnlQYXJhbXMgPSBpdGVtLnF1ZXJ5UGFyYW1zXG4gICAgfVxuICAgIGlmIChoYXNQcm9wZXJ0eShpdGVtLCAnZnJhZ21lbnQnKSkge1xuICAgICAgbmF2aWdhdGlvbkV4dHJhcy5mcmFnbWVudCA9IGl0ZW0uZnJhZ21lbnRcbiAgICB9XG4gICAgaWYgKGhhc1Byb3BlcnR5KGl0ZW0sICdxdWVyeVBhcmFtc0hhbmRsaW5nJykpIHtcbiAgICAgIG5hdmlnYXRpb25FeHRyYXMucXVlcnlQYXJhbXNIYW5kbGluZyA9IGl0ZW0ucXVlcnlQYXJhbXNIYW5kbGluZ1xuICAgIH1cbiAgICBpZiAoaGFzUHJvcGVydHkoaXRlbSwgJ3ByZXNlcnZlRnJhZ21lbnQnKSkge1xuICAgICAgbmF2aWdhdGlvbkV4dHJhcy5wcmVzZXJ2ZUZyYWdtZW50ID0gaXRlbS5wcmVzZXJ2ZUZyYWdtZW50XG4gICAgfVxuICAgIHJldHVybiBuYXZpZ2F0aW9uRXh0cmFzXG4gIH1cblxuICBwcml2YXRlIF9nZXRVcmwoaXRlbTogSU5hdkxpbmspOiBzdHJpbmcgfCBudWxsIHtcbiAgICBjb25zdCBsaW5rID0gaXRlbS5saW5rXG5cbiAgICBpZiAodHlwZW9mIGxpbmsgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5fcm91dGVyLmNyZWF0ZVVybFRyZWUoWyBsaW5rIF0sIHRoaXMuX2dldE5hdkV4dHJhcyhpdGVtKSkudG9TdHJpbmcoKVxuICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShsaW5rKSkge1xuICAgICAgcmV0dXJuIHRoaXMuX3JvdXRlci5jcmVhdGVVcmxUcmVlKGxpbmssIHRoaXMuX2dldE5hdkV4dHJhcyhpdGVtKSkudG9TdHJpbmcoKVxuICAgIH1cblxuICAgIHJldHVybiBudWxsXG4gIH1cblxuICBwcml2YXRlIF9nZXRNYXRjaE9wdGlvbnMoaXRlbTogSU5hdkxpbmspOiBJc0FjdGl2ZU1hdGNoT3B0aW9ucyB7XG4gICAgY29uc3QgZGVmYXVsdE1hdGNoT3B0czogSXNBY3RpdmVNYXRjaE9wdGlvbnMgPSB7XG4gICAgICBwYXRoczogJ3N1YnNldCcsXG4gICAgICBxdWVyeVBhcmFtczogJ3N1YnNldCcsXG4gICAgICBmcmFnbWVudDogJ2lnbm9yZWQnLFxuICAgICAgbWF0cml4UGFyYW1zOiAnaWdub3JlZCdcbiAgICB9XG5cbiAgICBpZiAoaGFzUHJvcGVydHkoaXRlbSwgJ21hdGNoT3B0aW9ucycpKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5kZWZhdWx0TWF0Y2hPcHRzLFxuICAgICAgICAuLi5pdGVtLm1hdGNoT3B0aW9uc1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkZWZhdWx0TWF0Y2hPcHRzXG4gIH1cblxuICBwdWJsaWMgc2V0SXRlbVN0YXRlUHJvcDxLIGV4dGVuZHMga2V5b2YgSU5hdkl0ZW1TdGF0ZT4oaXRlbTogSU5hdkl0ZW0sIHByb3A6IEssIHZhbHVlOiBJTmF2SXRlbVN0YXRlW0tdKTogdm9pZCB7XG4gICAgY29uc3QgY3VycmVudFZhbHVlID0gZ2V0SG9yaXpvbnRhbE5hdkl0ZW1TdGF0ZVByb3AoaXRlbSwgcHJvcClcbiAgICBpZiAoY3VycmVudFZhbHVlICE9PSB2YWx1ZSkge1xuICAgICAgc2V0SG9yaXpvbnRhbE5hdkl0ZW1TdGF0ZVByb3AoaXRlbSwgcHJvcCwgdmFsdWUpXG5cbiAgICAgIGNvbnN0IGNoYW5nZWQ6IE5hdkl0ZW1TdGF0ZUNoYW5nZWQgPSB7XG4gICAgICAgIGl0ZW0sXG4gICAgICAgIHByb3AsXG4gICAgICAgIHByZXZWYWx1ZTogY3VycmVudFZhbHVlLFxuICAgICAgICBuZXdWYWx1ZTogdmFsdWVcbiAgICAgIH1cbiAgICAgIHRoaXMuaXRlbUNoYW5nZWQubmV4dChjaGFuZ2VkKVxuICAgIH1cbiAgfVxufVxuIl19
@@ -4,4 +4,5 @@ export * from './side-nav/index';
4
4
  export * from './top-bar/index';
5
5
  export * from './dynamic-router/index';
6
6
  export * from './schema-form/index';
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZS1sYXlvdXQvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC9pbmRleCdcbmV4cG9ydCAqIGZyb20gJy4vc2lkZS1uYXYvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL3RvcC1iYXIvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtcm91dGVyL2luZGV4J1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlbWEtZm9ybS9pbmRleCdcbiJdfQ==
7
+ export * from './nav/index';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFBO0FBQ25DLGNBQWMsbUJBQW1CLENBQUE7QUFDakMsY0FBYyxrQkFBa0IsQ0FBQTtBQUNoQyxjQUFjLGlCQUFpQixDQUFBO0FBQy9CLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyxxQkFBcUIsQ0FBQTtBQUNuQyxjQUFjLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYmFzZS1sYXlvdXQvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL2Rhc2hib2FyZC9pbmRleCdcbmV4cG9ydCAqIGZyb20gJy4vc2lkZS1uYXYvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL3RvcC1iYXIvaW5kZXgnXG5leHBvcnQgKiBmcm9tICcuL2R5bmFtaWMtcm91dGVyL2luZGV4J1xuZXhwb3J0ICogZnJvbSAnLi9zY2hlbWEtZm9ybS9pbmRleCdcbmV4cG9ydCAqIGZyb20gJy4vbmF2L2luZGV4J1xuIl19
@@ -135,7 +135,7 @@ export class TheSeamSchemaFormSubmitSplitComponent {
135
135
  }
136
136
  }
137
137
  TheSeamSchemaFormSubmitSplitComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormSubmitSplitComponent, deps: [{ token: i1.JsonSchemaFormService }], target: i0.ɵɵFactoryTarget.Component });
138
- TheSeamSchemaFormSubmitSplitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormSubmitSplitComponent, isStandalone: true, selector: "seam-schema-form-submit-split", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<div\n [class]=\"options?.htmlClass || ''\">\n <div [class.btn-group]=\"_dropdownObj\">\n <button seamButton theme=\"primary\" type=\"submit\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [class]=\"'btn btn-primary ' + (options?.fieldHtmlClass || '')\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [value]=\"controlValue\"\n (click)=\"updateValue($event)\">\n {{ _buttonLabel }}\n <span *ngIf=\"_selectedItem\">\n [{{ _selectedItem.name }}]\n </span>\n </button>\n <ng-container *ngIf=\"_dropdownObj\">\n <button\n [seamMenuToggle]=\"menu\" seamButton theme=\"primary\"\n class=\"dropdown-toggle dropdown-toggle-split\"\n [disabled]=\"_dropdownDisabled\">\n <span class=\"sr-only\">Toggle Dropdown</span>\n </button>\n <seam-menu #menu>\n <ng-container *ngFor=\"let item of _selectList\">\n <button seamMenuItem\n [class.active]=\"item.checked\"\n (click)=\"_setDropdownValue(item.value)\">\n {{ item.name }}\n </button>\n </ng-container>\n </seam-menu>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: JsonSchemaFormModule }, { kind: "ngmodule", type: TheSeamFormFieldModule }, { kind: "ngmodule", type: TheSeamMenuModule }, { kind: "component", type: i3.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i3.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i3.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "ngmodule", type: TheSeamButtonsModule }, { kind: "component", type: i4.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }] });
138
+ TheSeamSchemaFormSubmitSplitComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: TheSeamSchemaFormSubmitSplitComponent, isStandalone: true, selector: "seam-schema-form-submit-split", inputs: { layoutNode: "layoutNode", layoutIndex: "layoutIndex", dataIndex: "dataIndex" }, ngImport: i0, template: "<div\n [class]=\"options?.htmlClass || ''\">\n <div [class.btn-group]=\"_dropdownObj\">\n <button seamButton theme=\"primary\" type=\"submit\"\n [attr.aria-describedby]=\"'control' + layoutNode?._id + 'Status'\"\n [attr.readonly]=\"options?.readonly ? 'readonly' : null\"\n [attr.required]=\"options?.required\"\n [class]=\"'btn btn-primary ' + (options?.fieldHtmlClass || '')\"\n [disabled]=\"controlDisabled\"\n [id]=\"'control' + layoutNode?._id\"\n [name]=\"controlName\"\n [value]=\"controlValue\"\n (click)=\"updateValue($event)\">\n {{ _buttonLabel }}\n <span *ngIf=\"_selectedItem\">\n [{{ _selectedItem.name }}]\n </span>\n </button>\n <ng-container *ngIf=\"_dropdownObj\">\n <button\n [seamMenuToggle]=\"menu\" seamButton theme=\"primary\"\n class=\"dropdown-toggle dropdown-toggle-split\"\n [disabled]=\"_dropdownDisabled\">\n <span class=\"sr-only\">Toggle Dropdown</span>\n </button>\n <seam-menu #menu>\n <ng-container *ngFor=\"let item of _selectList\">\n <button seamMenuItem\n [class.active]=\"item.checked\"\n (click)=\"_setDropdownValue(item.value)\">\n {{ item.name }}\n </button>\n </ng-container>\n </seam-menu>\n </ng-container>\n </div>\n</div>\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: JsonSchemaFormModule }, { kind: "ngmodule", type: TheSeamFormFieldModule }, { kind: "ngmodule", type: TheSeamMenuModule }, { kind: "component", type: i3.MenuComponent, selector: "seam-menu", inputs: ["menuClass", "baseWidth", "animationType"], outputs: ["closed"], exportAs: ["seamMenu"] }, { kind: "directive", type: i3.MenuToggleDirective, selector: "[seamMenuToggle]", inputs: ["seamMenuToggle", "positions", "seamMenuTogglePositionsOffsetY"], outputs: ["menuToggle", "menuOpened", "menuClosed"], exportAs: ["seamMenuToggle"] }, { kind: "component", type: i3.MenuItemComponent, selector: "[seamMenuItem]", inputs: ["disabled", "role", "icon", "iconClass", "sublevelIcon", "subLevelIconClass", "badgeText", "badgeTheme"], exportAs: ["seamMenuItem"] }, { kind: "ngmodule", type: TheSeamButtonsModule }, { kind: "component", type: i4.TheSeamButtonComponent, selector: "button[seamButton]", inputs: ["disabled", "theme", "size", "type"], exportAs: ["seamButton"] }] });
139
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: TheSeamSchemaFormSubmitSplitComponent, decorators: [{
140
140
  type: Component,
141
141
  args: [{ selector: 'seam-schema-form-submit-split', standalone: true, imports: [
@@ -153,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
153
153
  }], dataIndex: [{
154
154
  type: Input
155
155
  }] } });
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0L3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC9zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFtQixtQkFBbUIsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBdUMsTUFBTSxZQUFZLENBQUE7QUFDN0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7Ozs7OztBQU1qRSw0RUFBNEU7QUFDNUUsMEVBQTBF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Z0JBQWdCO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDOUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM5QixDQUFDOztrSUE5SlUscUNBQXFDO3NIQUFyQyxxQ0FBcUMsbUxDdENsRCx1MUNBcUNBLCtFRFBJLFlBQVksK1BBQ1osbUJBQW1CLDhCQUNuQixvQkFBb0IsOEJBQ3BCLHNCQUFzQiw4QkFDdEIsaUJBQWlCLHVvQkFDakIsb0JBQW9COzJGQUdYLHFDQUFxQztrQkFmakQsU0FBUzsrQkFDRSwrQkFBK0IsY0FJN0IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixvQkFBb0I7cUJBQ3JCOzRHQWNRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgaXNEZXZNb2RlLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgYnVpbGRUaXRsZU1hcCwgaGFzT3duLCBKc29uU2NoZW1hRm9ybU1vZHVsZSwgSnNvblNjaGVtYUZvcm1TZXJ2aWNlLCBUaXRsZU1hcEl0ZW0gfSBmcm9tICdAYWpzZi9jb3JlJ1xuaW1wb3J0IHsgb2JzZXJ2ZUNvbnRyb2xTdGF0dXMsIG9ic2VydmVDb250cm9sVmFsdWUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybUNvbnRyb2xXaWRnZXQsIFRoZVNlYW1TY2hlbWFGb3JtV2lkZ2V0TGF5b3V0Tm9kZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9zY2hlbWEtZm9ybSdcbmltcG9ydCB7IFRoZVNlYW1Gb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZm9ybS1maWVsZCdcbmltcG9ydCB7IFRoZVNlYW1NZW51TW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL21lbnUnXG5pbXBvcnQgeyBUaGVTZWFtQnV0dG9uc01vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9idXR0b25zJ1xuXG4vLyBOT1RFOiBUaGlzIGlzIGFsaWFzaW5nIFRpdGxlTWFwSXRlbSwgYmVjYXVzZSB3ZSBtYXkgd2FudCB0byBleHRlbmQgaXQnc1xuLy8gb3B0aW9ucy4gRm9yIHNpbXBsaWNpdHksIEkgYW0gbGV0dGluZyB0aGlzIHdvcmsgc2ltaWxhciB0byBhICdzZWxlY3QnIHdpZGdldC5cbmV4cG9ydCB0eXBlIFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRJdGVtID0gVGl0bGVNYXBJdGVtXG5cbi8vIE5PVEU6IFRoaXMgY29tcG9uZW50IGlzIGEgbGl0dGxlIGhhY2t5LCBiZWNhdXNlIEkgYW0gYmFzaWNhbGx5IGNyZWF0aW5nIGFcbi8vIGRhdGEgd2lkZ2V0IHRoYXQgYWN0cyBsaWtlIGEgZGF0YSBhbmQgJ3N1Ym1pdCcgd2lkZ2V0IGF0IHRoZSBzYW1lIHRpbWUuXG4vL1xuLy8gVE9ETzogVHJ5IGFuZCB0aGluayBvZiBhIG5pY2VyIHdheSB0byBpbXBsZW1lbnQgdGhpcywgYnV0IHN0aWxsIG1ha2Ugc2Vuc2Vcbi8vIGZyb20gYSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhlIGxpYnJhcnkgbWF5IG5lZWQgdG8gbWUgZm9ya2VkIHRvIGFjdHVhbGx5XG4vLyBzdXBwb3J0IHRoaXMgaW4gdGhlIHdheSBJIGV4cGVjdCwgYnV0IG1heWJlIHRoZXJlIGlzIGFub3RoZXIgd2F5LlxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSnNvblNjaGVtYUZvcm1Nb2R1bGUsXG4gICAgVGhlU2VhbUZvcm1GaWVsZE1vZHVsZSxcbiAgICBUaGVTZWFtTWVudU1vZHVsZSxcbiAgICBUaGVTZWFtQnV0dG9uc01vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBUaGVTZWFtU2NoZW1hRm9ybUNvbnRyb2xXaWRnZXQge1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgZm9ybUNvbnRyb2w/OiBBYnN0cmFjdENvbnRyb2xcbiAgY29udHJvbE5hbWU/OiBzdHJpbmdcbiAgY29udHJvbFZhbHVlPzogYW55XG4gIGNvbnRyb2xEaXNhYmxlZCA9IGZhbHNlXG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlXG4gIG9wdGlvbnM/OiBUaGVTZWFtU2NoZW1hRm9ybVdpZGdldExheW91dE5vZGVPcHRpb25zXG5cbiAgQElucHV0KCkgbGF5b3V0Tm9kZTogVGhlU2VhbVNjaGVtYUZvcm1Db250cm9sV2lkZ2V0WydsYXlvdXROb2RlJ11cbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IFRoZVNlYW1TY2hlbWFGb3JtQ29udHJvbFdpZGdldFsnbGF5b3V0SW5kZXgnXVxuICBASW5wdXQoKSBkYXRhSW5kZXg6IFRoZVNlYW1TY2hlbWFGb3JtQ29udHJvbFdpZGdldFsnZGF0YUluZGV4J11cblxuICBfYnV0dG9uTGFiZWwgPSAnJ1xuXG4gIF9kcm9wZG93bk9iajogYW55XG4gIF9kcm9wZG93bkRpc2FibGVkID0gZmFsc2VcbiAgX3NlbGVjdExpc3Q6IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRJdGVtW10gPSBbXVxuICBfc2VsZWN0ZWRJdGVtPzogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdEl0ZW1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9qc2Y6IEpzb25TY2hlbWFGb3JtU2VydmljZVxuICApIHsgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZT8ub3B0aW9ucyB8fCB7fSBhcyBUaGVTZWFtU2NoZW1hRm9ybVdpZGdldExheW91dE5vZGVPcHRpb25zXG4gICAgdGhpcy5fanNmLmluaXRpYWxpemVDb250cm9sKHRoaXMpXG5cbiAgICAvLyBOT1RFOiBUaGlzIGlzIGNvbW1lbnRlZCBvdXQsIGJlY2F1c2UgdGhlcmUgaXMgYSBidWcgd2l0aCBzdWJtaXQgd2lkZ2V0c1xuICAgIC8vIG1hbnVhbGx5IGRlZmluZWQgaW4gbGF5b3V0LiBBbGwgbm9kZXMgaW5pdGlhbGl6ZWQgZnJvbSB0aGUgcHJvdmlkZWRcbiAgICAvLyBsYXlvdXQgaGF2ZSB0aGVpciBvcHRpb25zIHBvcHVsYXRlZCBmcm9tIHRoZSBkZWZhdWx0cyBhbmQgJ2Rpc2FibGVkJyBpc1xuICAgIC8vIG9uIG9mIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMsIHNvIHRoZSAnZGlzYWJsZUludmFsaWRTdWJtaXQnIGNvbmRpdGlvblxuICAgIC8vIG5ldmVyIGdldHMgcmVhY2hlZC5cbiAgICAvL1xuICAgIC8vIE15IGluaXRpYWwgaWRlYSBmb3IgZml4aW5nIHdvdWxkIGJlIHRvIGNoZWNrIGlmIHRoZSBkaXNhYmxlZCBwcm9wZXJ0eVxuICAgIC8vIGV4aXN0cyBhbmQgaXMgYSBib29sZWFuLCBvciBwb3NzaWJseSBhbnl0aGluZyBkZWZpbmVkIHRoYXQgY2FuIGNvZXJjZVxuICAgIC8vIGludG8gYSBib29sZWFuLiBJIGNhbid0IHRoaW5rIG9mIGEgcmVhc29uIGRpc2FibGVkIHNob3VsZCBiZSBhbnl0aGluZ1xuICAgIC8vIGVsc2UsIHNvIHRoYXQgbWF5IGJlIGFuIGFjY2VwdGFibGUgZml4LCBidXQgSSBkb24ndCB3YW50IHRvIGVuYWJsZSB0aGF0XG4gICAgLy8geWV0LlxuICAgIC8vXG4gICAgLy8gaWYgKGhhc093bih0aGlzLm9wdGlvbnMsICdkaXNhYmxlZCcpKSB7XG4gICAgLy8gICBjb25zb2xlLmxvZygnW1RoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRDb21wb25lbnRdIGhhc0Rpc2FibGVkJywgdGhpcy5vcHRpb25zLmRpc2FibGVkKVxuICAgIC8vICAgdGhpcy5jb250cm9sRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuZGlzYWJsZWRcbiAgICAvLyB9IGVsc2VcbiAgICBpZiAodGhpcy5fanNmLmZvcm1PcHRpb25zLmRpc2FibGVJbnZhbGlkU3VibWl0KSB7XG4gICAgICB0aGlzLmNvbnRyb2xEaXNhYmxlZCA9ICF0aGlzLl9qc2YuaXNWYWxpZFxuICAgICAgdGhpcy5fanNmLmlzVmFsaWRDaGFuZ2VzLnN1YnNjcmliZShpc1ZhbGlkID0+IHRoaXMuY29udHJvbERpc2FibGVkID0gIWlzVmFsaWQpXG4gICAgfVxuICAgIGlmICh0aGlzLmNvbnRyb2xWYWx1ZSA9PT0gbnVsbCB8fCB0aGlzLmNvbnRyb2xWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvbnRyb2xWYWx1ZSA9IHRoaXMub3B0aW9ucy50aXRsZVxuICAgIH1cblxuICAgIGlmIChoYXNPd24odGhpcy5vcHRpb25zLCAndGl0bGUnKSkge1xuICAgICAgdGhpcy5fYnV0dG9uTGFiZWwgPSB0aGlzLm9wdGlvbnMudGl0bGVcbiAgICB9XG5cbiAgICB0aGlzLl9pbml0RHJvcGRvd24oKVxuXG4gICAgLy8gY29uc29sZS5sb2coJ3RoaXMnLCB0aGlzKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KHVuZGVmaW5lZClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucz8ub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5vcHRpb25zLm9uQ2xpY2soZXZlbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2pzZi51cGRhdGVWYWx1ZSh0aGlzLCBldmVudC50YXJnZXQudmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdERyb3Bkb3duKCk6IHZvaWQge1xuICAgIGlmICghaGFzT3duKHRoaXMubGF5b3V0Tm9kZSwgJ2l0ZW1zJykgfHwgISh0aGlzLmxheW91dE5vZGU/Lml0ZW1zIHx8IFtdKS5sZW5ndGgpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgaWYgKHRoaXMubGF5b3V0Tm9kZT8uaXRlbXMgJiYgdGhpcy5sYXlvdXROb2RlPy5pdGVtcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdENvbXBvbmVudCBvbmx5IHN1cHBvcnRzIG9uZSBpdGVtLmAgK1xuICAgICAgICAgIGAgaXRlbXMgYWZ0ZXIgaW5kZXggMCB3aWxsIGJlIGlnbm9yZWQuYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaWR4ID0gMFxuICAgIGNvbnN0IGl0ZW0gPSAodGhpcy5sYXlvdXROb2RlPy5pdGVtcyBhcyBhbnkpW2lkeF0gfHwge31cbiAgICB0aGlzLl9kcm9wZG93bk9iaiA9IHtcbiAgICAgIGxheW91dE5vZGU6IGl0ZW0sXG4gICAgICBsYXlvdXRJbmRleDogKHRoaXMubGF5b3V0SW5kZXggfHwgW10pLmNvbmNhdChpZHgpLFxuICAgICAgZGF0YUluZGV4OiB0aGlzLmxheW91dE5vZGU/LmRhdGFUeXBlID09PSAnYXJyYXknID8gKHRoaXMuZGF0YUluZGV4IHx8IFtdKS5jb25jYXQoaWR4KSA6IHRoaXMuZGF0YUluZGV4LFxuXG4gICAgICBvcHRpb25zOiBpdGVtLm9wdGlvbnMgfHwge31cbiAgICB9XG5cbiAgICB0aGlzLl9qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcy5fZHJvcGRvd25PYmopXG5cbiAgICBjb25zdCBpdGVtcyA9IGJ1aWxkVGl0bGVNYXAoXG4gICAgICB0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLnRpdGxlTWFwIHx8IHRoaXMuX2Ryb3Bkb3duT2JqLm9wdGlvbnMuZW51bU5hbWVzLFxuICAgICAgdGhpcy5fZHJvcGRvd25PYmoub3B0aW9ucy5lbnVtLFxuICAgICAgISF0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLnJlcXVpcmVkLFxuICAgICAgISF0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLmZsYXRMaXN0XG4gICAgKVxuXG4gICAgdGhpcy5fc2VsZWN0TGlzdCA9IGl0ZW1zXG5cbiAgICAvLyBUT0RPOiBTaG91bGQgdGhpcyBiZSBjaGVja2luZyBpZiB0aGUgY29udHJvbCBpcyBib3VuZD9cbiAgICBjb25zdCBkcm9wZG93bkNvbnRyb2wgPSB0aGlzLl9nZXREcm9wZG93bkNvbnRyb2woKVxuICAgIGlmICghZHJvcGRvd25Db250cm9sKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBvYnNlcnZlQ29udHJvbFZhbHVlKGRyb3Bkb3duQ29udHJvbCkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuX3NldFNlbGVjdExpc3RDaGVja2VkUHJvcCh2YWx1ZSlcbiAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbSA9IHRoaXMuX2dldFNlbGVjdGVkSXRlbSgpXG4gICAgfSlcblxuICAgIG9ic2VydmVDb250cm9sU3RhdHVzKGRyb3Bkb3duQ29udHJvbCkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuX2Ryb3Bkb3duRGlzYWJsZWQgPSBkcm9wZG93bkNvbnRyb2wuZGlzYWJsZWRcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RHJvcGRvd25Db250cm9sKCk6IFVudHlwZWRGb3JtQ29udHJvbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Ryb3Bkb3duT2JqLmZvcm1Db250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbFxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0U2VsZWN0TGlzdENoZWNrZWRQcm9wKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuX3NlbGVjdExpc3RcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGlmIChpdGVtLnZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICBpdGVtLmNoZWNrZWQgPSB0cnVlXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uY2hlY2tlZCkge1xuICAgICAgICBpdGVtLmNoZWNrZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9zZWxlY3RMaXN0ID0gWyAuLi5pdGVtcyBdXG4gIH1cblxuICBwcml2YXRlIF9nZXRTZWxlY3RlZEl0ZW0oKTogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdEl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAodGhpcy5fc2VsZWN0TGlzdCB8fCBbXSkuZmluZCh4ID0+IHguY2hlY2tlZCA9PT0gdHJ1ZSlcbiAgfVxuXG4gIF9zZXREcm9wZG93blZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuX2dldERyb3Bkb3duQ29udHJvbCgpXG4gICAgZm9ybUNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKVxuICB9XG5cbn1cbiIsIjxkaXZcbiAgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiPlxuICA8ZGl2IFtjbGFzcy5idG4tZ3JvdXBdPVwiX2Ryb3Bkb3duT2JqXCI+XG4gICAgPGJ1dHRvbiBzZWFtQnV0dG9uIHRoZW1lPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlPy5faWQgKyAnU3RhdHVzJ1wiXG4gICAgICBbYXR0ci5yZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcbiAgICAgIFthdHRyLnJlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcbiAgICAgIFtjbGFzc109XCInYnRuIGJ0bi1wcmltYXJ5ICcgKyAob3B0aW9ucz8uZmllbGRIdG1sQ2xhc3MgfHwgJycpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWRcIlxuICAgICAgW2lkXT1cIidjb250cm9sJyArIGxheW91dE5vZGU/Ll9pZFwiXG4gICAgICBbbmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICBbdmFsdWVdPVwiY29udHJvbFZhbHVlXCJcbiAgICAgIChjbGljayk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICB7eyBfYnV0dG9uTGFiZWwgfX1cbiAgICAgIDxzcGFuICpuZ0lmPVwiX3NlbGVjdGVkSXRlbVwiPlxuICAgICAgICBbe3sgX3NlbGVjdGVkSXRlbS5uYW1lIH19XVxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZHJvcGRvd25PYmpcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW3NlYW1NZW51VG9nZ2xlXT1cIm1lbnVcIiBzZWFtQnV0dG9uIHRoZW1lPVwicHJpbWFyeVwiXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlIGRyb3Bkb3duLXRvZ2dsZS1zcGxpdFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJfZHJvcGRvd25EaXNhYmxlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5Ub2dnbGUgRHJvcGRvd248L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxzZWFtLW1lbnUgI21lbnU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX3NlbGVjdExpc3RcIj5cbiAgICAgICAgICA8YnV0dG9uIHNlYW1NZW51SXRlbVxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLmNoZWNrZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zZXREcm9wZG93blZhbHVlKGl0ZW0udmFsdWUpXCI+XG4gICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3NlYW0tbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLWNvbW1vbi9mcmFtZXdvcmsvc2NoZW1hLWZvcm0tY29udHJvbHMvc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0L3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1jb21tb24vZnJhbWV3b3JrL3NjaGVtYS1mb3JtLWNvbnRyb2xzL3NjaGVtYS1mb3JtLXN1Ym1pdC1zcGxpdC9zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQTtBQUM5RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUE7QUFDOUMsT0FBTyxFQUFtQixtQkFBbUIsRUFBc0IsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN6RixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFBO0FBQzlCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUUxQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxvQkFBb0IsRUFBdUMsTUFBTSxZQUFZLENBQUE7QUFDN0csT0FBTyxFQUFFLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUE7QUFFcEYsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sK0JBQStCLENBQUE7QUFDdEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDM0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNEJBQTRCLENBQUE7Ozs7OztBQU1qRSw0RUFBNEU7QUFDNUUsMEVBQTBF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Z0JBQWdCO1FBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUFDLENBQUE7SUFDL0QsQ0FBQztJQUVELGlCQUFpQixDQUFDLEtBQVU7UUFDMUIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUE7UUFDOUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtJQUM5QixDQUFDOztrSUE5SlUscUNBQXFDO3NIQUFyQyxxQ0FBcUMsbUxDdENsRCx1MUNBcUNBLCtFRFBJLFlBQVksK1BBQ1osbUJBQW1CLDhCQUNuQixvQkFBb0IsOEJBQ3BCLHNCQUFzQiw4QkFDdEIsaUJBQWlCLHFwQkFDakIsb0JBQW9COzJGQUdYLHFDQUFxQztrQkFmakQsU0FBUzsrQkFDRSwrQkFBK0IsY0FJN0IsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixvQkFBb0I7d0JBQ3BCLHNCQUFzQjt3QkFDdEIsaUJBQWlCO3dCQUNqQixvQkFBb0I7cUJBQ3JCOzRHQWNRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgaXNEZXZNb2RlLCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycydcblxuaW1wb3J0IHsgYnVpbGRUaXRsZU1hcCwgaGFzT3duLCBKc29uU2NoZW1hRm9ybU1vZHVsZSwgSnNvblNjaGVtYUZvcm1TZXJ2aWNlLCBUaXRsZU1hcEl0ZW0gfSBmcm9tICdAYWpzZi9jb3JlJ1xuaW1wb3J0IHsgb2JzZXJ2ZUNvbnRyb2xTdGF0dXMsIG9ic2VydmVDb250cm9sVmFsdWUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vdXRpbHMnXG5pbXBvcnQgeyBUaGVTZWFtU2NoZW1hRm9ybUNvbnRyb2xXaWRnZXQsIFRoZVNlYW1TY2hlbWFGb3JtV2lkZ2V0TGF5b3V0Tm9kZU9wdGlvbnMgfSBmcm9tICcuLi8uLi9zY2hlbWEtZm9ybSdcbmltcG9ydCB7IFRoZVNlYW1Gb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAdGhlc2VhbS91aS1jb21tb24vZm9ybS1maWVsZCdcbmltcG9ydCB7IFRoZVNlYW1NZW51TW9kdWxlIH0gZnJvbSAnQHRoZXNlYW0vdWktY29tbW9uL21lbnUnXG5pbXBvcnQgeyBUaGVTZWFtQnV0dG9uc01vZHVsZSB9IGZyb20gJ0B0aGVzZWFtL3VpLWNvbW1vbi9idXR0b25zJ1xuXG4vLyBOT1RFOiBUaGlzIGlzIGFsaWFzaW5nIFRpdGxlTWFwSXRlbSwgYmVjYXVzZSB3ZSBtYXkgd2FudCB0byBleHRlbmQgaXQnc1xuLy8gb3B0aW9ucy4gRm9yIHNpbXBsaWNpdHksIEkgYW0gbGV0dGluZyB0aGlzIHdvcmsgc2ltaWxhciB0byBhICdzZWxlY3QnIHdpZGdldC5cbmV4cG9ydCB0eXBlIFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRJdGVtID0gVGl0bGVNYXBJdGVtXG5cbi8vIE5PVEU6IFRoaXMgY29tcG9uZW50IGlzIGEgbGl0dGxlIGhhY2t5LCBiZWNhdXNlIEkgYW0gYmFzaWNhbGx5IGNyZWF0aW5nIGFcbi8vIGRhdGEgd2lkZ2V0IHRoYXQgYWN0cyBsaWtlIGEgZGF0YSBhbmQgJ3N1Ym1pdCcgd2lkZ2V0IGF0IHRoZSBzYW1lIHRpbWUuXG4vL1xuLy8gVE9ETzogVHJ5IGFuZCB0aGluayBvZiBhIG5pY2VyIHdheSB0byBpbXBsZW1lbnQgdGhpcywgYnV0IHN0aWxsIG1ha2Ugc2Vuc2Vcbi8vIGZyb20gYSBzY2hlbWEgZGVmaW5pdGlvbi4gVGhlIGxpYnJhcnkgbWF5IG5lZWQgdG8gbWUgZm9ya2VkIHRvIGFjdHVhbGx5XG4vLyBzdXBwb3J0IHRoaXMgaW4gdGhlIHdheSBJIGV4cGVjdCwgYnV0IG1heWJlIHRoZXJlIGlzIGFub3RoZXIgd2F5LlxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2VhbS1zY2hlbWEtZm9ybS1zdWJtaXQtc3BsaXQnLFxuICB0ZW1wbGF0ZVVybDogJy4vc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2NoZW1hLWZvcm0tc3VibWl0LXNwbGl0LmNvbXBvbmVudC5zY3NzJ10sXG4gIC8vIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgSnNvblNjaGVtYUZvcm1Nb2R1bGUsXG4gICAgVGhlU2VhbUZvcm1GaWVsZE1vZHVsZSxcbiAgICBUaGVTZWFtTWVudU1vZHVsZSxcbiAgICBUaGVTZWFtQnV0dG9uc01vZHVsZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBUaGVTZWFtU2NoZW1hRm9ybUNvbnRyb2xXaWRnZXQge1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgcmVhZG9ubHkgX25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpXG5cbiAgZm9ybUNvbnRyb2w/OiBBYnN0cmFjdENvbnRyb2xcbiAgY29udHJvbE5hbWU/OiBzdHJpbmdcbiAgY29udHJvbFZhbHVlPzogYW55XG4gIGNvbnRyb2xEaXNhYmxlZCA9IGZhbHNlXG4gIGJvdW5kQ29udHJvbCA9IGZhbHNlXG4gIG9wdGlvbnM/OiBUaGVTZWFtU2NoZW1hRm9ybVdpZGdldExheW91dE5vZGVPcHRpb25zXG5cbiAgQElucHV0KCkgbGF5b3V0Tm9kZTogVGhlU2VhbVNjaGVtYUZvcm1Db250cm9sV2lkZ2V0WydsYXlvdXROb2RlJ11cbiAgQElucHV0KCkgbGF5b3V0SW5kZXg6IFRoZVNlYW1TY2hlbWFGb3JtQ29udHJvbFdpZGdldFsnbGF5b3V0SW5kZXgnXVxuICBASW5wdXQoKSBkYXRhSW5kZXg6IFRoZVNlYW1TY2hlbWFGb3JtQ29udHJvbFdpZGdldFsnZGF0YUluZGV4J11cblxuICBfYnV0dG9uTGFiZWwgPSAnJ1xuXG4gIF9kcm9wZG93bk9iajogYW55XG4gIF9kcm9wZG93bkRpc2FibGVkID0gZmFsc2VcbiAgX3NlbGVjdExpc3Q6IFRoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRJdGVtW10gPSBbXVxuICBfc2VsZWN0ZWRJdGVtPzogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdEl0ZW1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IF9qc2Y6IEpzb25TY2hlbWFGb3JtU2VydmljZVxuICApIHsgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMub3B0aW9ucyA9IHRoaXMubGF5b3V0Tm9kZT8ub3B0aW9ucyB8fCB7fSBhcyBUaGVTZWFtU2NoZW1hRm9ybVdpZGdldExheW91dE5vZGVPcHRpb25zXG4gICAgdGhpcy5fanNmLmluaXRpYWxpemVDb250cm9sKHRoaXMpXG5cbiAgICAvLyBOT1RFOiBUaGlzIGlzIGNvbW1lbnRlZCBvdXQsIGJlY2F1c2UgdGhlcmUgaXMgYSBidWcgd2l0aCBzdWJtaXQgd2lkZ2V0c1xuICAgIC8vIG1hbnVhbGx5IGRlZmluZWQgaW4gbGF5b3V0LiBBbGwgbm9kZXMgaW5pdGlhbGl6ZWQgZnJvbSB0aGUgcHJvdmlkZWRcbiAgICAvLyBsYXlvdXQgaGF2ZSB0aGVpciBvcHRpb25zIHBvcHVsYXRlZCBmcm9tIHRoZSBkZWZhdWx0cyBhbmQgJ2Rpc2FibGVkJyBpc1xuICAgIC8vIG9uIG9mIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMsIHNvIHRoZSAnZGlzYWJsZUludmFsaWRTdWJtaXQnIGNvbmRpdGlvblxuICAgIC8vIG5ldmVyIGdldHMgcmVhY2hlZC5cbiAgICAvL1xuICAgIC8vIE15IGluaXRpYWwgaWRlYSBmb3IgZml4aW5nIHdvdWxkIGJlIHRvIGNoZWNrIGlmIHRoZSBkaXNhYmxlZCBwcm9wZXJ0eVxuICAgIC8vIGV4aXN0cyBhbmQgaXMgYSBib29sZWFuLCBvciBwb3NzaWJseSBhbnl0aGluZyBkZWZpbmVkIHRoYXQgY2FuIGNvZXJjZVxuICAgIC8vIGludG8gYSBib29sZWFuLiBJIGNhbid0IHRoaW5rIG9mIGEgcmVhc29uIGRpc2FibGVkIHNob3VsZCBiZSBhbnl0aGluZ1xuICAgIC8vIGVsc2UsIHNvIHRoYXQgbWF5IGJlIGFuIGFjY2VwdGFibGUgZml4LCBidXQgSSBkb24ndCB3YW50IHRvIGVuYWJsZSB0aGF0XG4gICAgLy8geWV0LlxuICAgIC8vXG4gICAgLy8gaWYgKGhhc093bih0aGlzLm9wdGlvbnMsICdkaXNhYmxlZCcpKSB7XG4gICAgLy8gICBjb25zb2xlLmxvZygnW1RoZVNlYW1TY2hlbWFGb3JtU3VibWl0U3BsaXRDb21wb25lbnRdIGhhc0Rpc2FibGVkJywgdGhpcy5vcHRpb25zLmRpc2FibGVkKVxuICAgIC8vICAgdGhpcy5jb250cm9sRGlzYWJsZWQgPSB0aGlzLm9wdGlvbnMuZGlzYWJsZWRcbiAgICAvLyB9IGVsc2VcbiAgICBpZiAodGhpcy5fanNmLmZvcm1PcHRpb25zLmRpc2FibGVJbnZhbGlkU3VibWl0KSB7XG4gICAgICB0aGlzLmNvbnRyb2xEaXNhYmxlZCA9ICF0aGlzLl9qc2YuaXNWYWxpZFxuICAgICAgdGhpcy5fanNmLmlzVmFsaWRDaGFuZ2VzLnN1YnNjcmliZShpc1ZhbGlkID0+IHRoaXMuY29udHJvbERpc2FibGVkID0gIWlzVmFsaWQpXG4gICAgfVxuICAgIGlmICh0aGlzLmNvbnRyb2xWYWx1ZSA9PT0gbnVsbCB8fCB0aGlzLmNvbnRyb2xWYWx1ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmNvbnRyb2xWYWx1ZSA9IHRoaXMub3B0aW9ucy50aXRsZVxuICAgIH1cblxuICAgIGlmIChoYXNPd24odGhpcy5vcHRpb25zLCAndGl0bGUnKSkge1xuICAgICAgdGhpcy5fYnV0dG9uTGFiZWwgPSB0aGlzLm9wdGlvbnMudGl0bGVcbiAgICB9XG5cbiAgICB0aGlzLl9pbml0RHJvcGRvd24oKVxuXG4gICAgLy8gY29uc29sZS5sb2coJ3RoaXMnLCB0aGlzKVxuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fbmdVbnN1YnNjcmliZS5uZXh0KHVuZGVmaW5lZClcbiAgICB0aGlzLl9uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKClcbiAgfVxuXG4gIHVwZGF0ZVZhbHVlKGV2ZW50OiBhbnkpIHtcbiAgICBpZiAodHlwZW9mIHRoaXMub3B0aW9ucz8ub25DbGljayA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdGhpcy5vcHRpb25zLm9uQ2xpY2soZXZlbnQpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2pzZi51cGRhdGVWYWx1ZSh0aGlzLCBldmVudC50YXJnZXQudmFsdWUpXG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdERyb3Bkb3duKCk6IHZvaWQge1xuICAgIGlmICghaGFzT3duKHRoaXMubGF5b3V0Tm9kZSwgJ2l0ZW1zJykgfHwgISh0aGlzLmxheW91dE5vZGU/Lml0ZW1zIHx8IFtdKS5sZW5ndGgpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGlmIChpc0Rldk1vZGUoKSkge1xuICAgICAgaWYgKHRoaXMubGF5b3V0Tm9kZT8uaXRlbXMgJiYgdGhpcy5sYXlvdXROb2RlPy5pdGVtcy5sZW5ndGggPiAxKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICBgVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdENvbXBvbmVudCBvbmx5IHN1cHBvcnRzIG9uZSBpdGVtLmAgK1xuICAgICAgICAgIGAgaXRlbXMgYWZ0ZXIgaW5kZXggMCB3aWxsIGJlIGlnbm9yZWQuYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaWR4ID0gMFxuICAgIGNvbnN0IGl0ZW0gPSAodGhpcy5sYXlvdXROb2RlPy5pdGVtcyBhcyBhbnkpW2lkeF0gfHwge31cbiAgICB0aGlzLl9kcm9wZG93bk9iaiA9IHtcbiAgICAgIGxheW91dE5vZGU6IGl0ZW0sXG4gICAgICBsYXlvdXRJbmRleDogKHRoaXMubGF5b3V0SW5kZXggfHwgW10pLmNvbmNhdChpZHgpLFxuICAgICAgZGF0YUluZGV4OiB0aGlzLmxheW91dE5vZGU/LmRhdGFUeXBlID09PSAnYXJyYXknID8gKHRoaXMuZGF0YUluZGV4IHx8IFtdKS5jb25jYXQoaWR4KSA6IHRoaXMuZGF0YUluZGV4LFxuXG4gICAgICBvcHRpb25zOiBpdGVtLm9wdGlvbnMgfHwge31cbiAgICB9XG5cbiAgICB0aGlzLl9qc2YuaW5pdGlhbGl6ZUNvbnRyb2wodGhpcy5fZHJvcGRvd25PYmopXG5cbiAgICBjb25zdCBpdGVtcyA9IGJ1aWxkVGl0bGVNYXAoXG4gICAgICB0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLnRpdGxlTWFwIHx8IHRoaXMuX2Ryb3Bkb3duT2JqLm9wdGlvbnMuZW51bU5hbWVzLFxuICAgICAgdGhpcy5fZHJvcGRvd25PYmoub3B0aW9ucy5lbnVtLFxuICAgICAgISF0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLnJlcXVpcmVkLFxuICAgICAgISF0aGlzLl9kcm9wZG93bk9iai5vcHRpb25zLmZsYXRMaXN0XG4gICAgKVxuXG4gICAgdGhpcy5fc2VsZWN0TGlzdCA9IGl0ZW1zXG5cbiAgICAvLyBUT0RPOiBTaG91bGQgdGhpcyBiZSBjaGVja2luZyBpZiB0aGUgY29udHJvbCBpcyBib3VuZD9cbiAgICBjb25zdCBkcm9wZG93bkNvbnRyb2wgPSB0aGlzLl9nZXREcm9wZG93bkNvbnRyb2woKVxuICAgIGlmICghZHJvcGRvd25Db250cm9sKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBvYnNlcnZlQ29udHJvbFZhbHVlKGRyb3Bkb3duQ29udHJvbCkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuX3NldFNlbGVjdExpc3RDaGVja2VkUHJvcCh2YWx1ZSlcbiAgICAgIHRoaXMuX3NlbGVjdGVkSXRlbSA9IHRoaXMuX2dldFNlbGVjdGVkSXRlbSgpXG4gICAgfSlcblxuICAgIG9ic2VydmVDb250cm9sU3RhdHVzKGRyb3Bkb3duQ29udHJvbCkucGlwZShcbiAgICAgIHRha2VVbnRpbCh0aGlzLl9uZ1Vuc3Vic2NyaWJlKVxuICAgICkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIHRoaXMuX2Ryb3Bkb3duRGlzYWJsZWQgPSBkcm9wZG93bkNvbnRyb2wuZGlzYWJsZWRcbiAgICB9KVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0RHJvcGRvd25Db250cm9sKCk6IFVudHlwZWRGb3JtQ29udHJvbCB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuX2Ryb3Bkb3duT2JqLmZvcm1Db250cm9sIGFzIFVudHlwZWRGb3JtQ29udHJvbFxuICB9XG5cbiAgcHJpdmF0ZSBfc2V0U2VsZWN0TGlzdENoZWNrZWRQcm9wKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBpdGVtcyA9IHRoaXMuX3NlbGVjdExpc3RcbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgaXRlbXMpIHtcbiAgICAgIGlmIChpdGVtLnZhbHVlID09PSB2YWx1ZSkge1xuICAgICAgICBpdGVtLmNoZWNrZWQgPSB0cnVlXG4gICAgICB9IGVsc2UgaWYgKGl0ZW0uY2hlY2tlZCkge1xuICAgICAgICBpdGVtLmNoZWNrZWQgPSBmYWxzZVxuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLl9zZWxlY3RMaXN0ID0gWyAuLi5pdGVtcyBdXG4gIH1cblxuICBwcml2YXRlIF9nZXRTZWxlY3RlZEl0ZW0oKTogVGhlU2VhbVNjaGVtYUZvcm1TdWJtaXRTcGxpdEl0ZW0gfCB1bmRlZmluZWQge1xuICAgIHJldHVybiAodGhpcy5fc2VsZWN0TGlzdCB8fCBbXSkuZmluZCh4ID0+IHguY2hlY2tlZCA9PT0gdHJ1ZSlcbiAgfVxuXG4gIF9zZXREcm9wZG93blZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBmb3JtQ29udHJvbCA9IHRoaXMuX2dldERyb3Bkb3duQ29udHJvbCgpXG4gICAgZm9ybUNvbnRyb2w/LnNldFZhbHVlKHZhbHVlKVxuICB9XG5cbn1cbiIsIjxkaXZcbiAgW2NsYXNzXT1cIm9wdGlvbnM/Lmh0bWxDbGFzcyB8fCAnJ1wiPlxuICA8ZGl2IFtjbGFzcy5idG4tZ3JvdXBdPVwiX2Ryb3Bkb3duT2JqXCI+XG4gICAgPGJ1dHRvbiBzZWFtQnV0dG9uIHRoZW1lPVwicHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgW2F0dHIuYXJpYS1kZXNjcmliZWRieV09XCInY29udHJvbCcgKyBsYXlvdXROb2RlPy5faWQgKyAnU3RhdHVzJ1wiXG4gICAgICBbYXR0ci5yZWFkb25seV09XCJvcHRpb25zPy5yZWFkb25seSA/ICdyZWFkb25seScgOiBudWxsXCJcbiAgICAgIFthdHRyLnJlcXVpcmVkXT1cIm9wdGlvbnM/LnJlcXVpcmVkXCJcbiAgICAgIFtjbGFzc109XCInYnRuIGJ0bi1wcmltYXJ5ICcgKyAob3B0aW9ucz8uZmllbGRIdG1sQ2xhc3MgfHwgJycpXCJcbiAgICAgIFtkaXNhYmxlZF09XCJjb250cm9sRGlzYWJsZWRcIlxuICAgICAgW2lkXT1cIidjb250cm9sJyArIGxheW91dE5vZGU/Ll9pZFwiXG4gICAgICBbbmFtZV09XCJjb250cm9sTmFtZVwiXG4gICAgICBbdmFsdWVdPVwiY29udHJvbFZhbHVlXCJcbiAgICAgIChjbGljayk9XCJ1cGRhdGVWYWx1ZSgkZXZlbnQpXCI+XG4gICAgICB7eyBfYnV0dG9uTGFiZWwgfX1cbiAgICAgIDxzcGFuICpuZ0lmPVwiX3NlbGVjdGVkSXRlbVwiPlxuICAgICAgICBbe3sgX3NlbGVjdGVkSXRlbS5uYW1lIH19XVxuICAgICAgPC9zcGFuPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJfZHJvcGRvd25PYmpcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW3NlYW1NZW51VG9nZ2xlXT1cIm1lbnVcIiBzZWFtQnV0dG9uIHRoZW1lPVwicHJpbWFyeVwiXG4gICAgICAgIGNsYXNzPVwiZHJvcGRvd24tdG9nZ2xlIGRyb3Bkb3duLXRvZ2dsZS1zcGxpdFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJfZHJvcGRvd25EaXNhYmxlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInNyLW9ubHlcIj5Ub2dnbGUgRHJvcGRvd248L3NwYW4+XG4gICAgICA8L2J1dHRvbj5cbiAgICAgIDxzZWFtLW1lbnUgI21lbnU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgX3NlbGVjdExpc3RcIj5cbiAgICAgICAgICA8YnV0dG9uIHNlYW1NZW51SXRlbVxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJpdGVtLmNoZWNrZWRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIl9zZXREcm9wZG93blZhbHVlKGl0ZW0udmFsdWUpXCI+XG4gICAgICAgICAgICB7eyBpdGVtLm5hbWUgfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L3NlYW0tbWVudT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==