@db-ux/ngx-core-components 1.0.0-test-13b991d

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 (211) hide show
  1. package/README.md +130 -0
  2. package/components/accordion/accordion.d.ts +31 -0
  3. package/components/accordion/index.d.ts +1 -0
  4. package/components/accordion/model.d.ts +41 -0
  5. package/components/accordion-item/accordion-item.d.ts +29 -0
  6. package/components/accordion-item/index.d.ts +1 -0
  7. package/components/accordion-item/model.d.ts +24 -0
  8. package/components/badge/badge.d.ts +28 -0
  9. package/components/badge/index.d.ts +1 -0
  10. package/components/badge/model.d.ts +16 -0
  11. package/components/brand/brand.d.ts +24 -0
  12. package/components/brand/index.d.ts +1 -0
  13. package/components/brand/model.d.ts +10 -0
  14. package/components/button/button.d.ts +39 -0
  15. package/components/button/index.d.ts +1 -0
  16. package/components/button/model.d.ts +52 -0
  17. package/components/card/card.d.ts +24 -0
  18. package/components/card/index.d.ts +1 -0
  19. package/components/card/model.d.ts +18 -0
  20. package/components/checkbox/checkbox.d.ts +64 -0
  21. package/components/checkbox/index.d.ts +1 -0
  22. package/components/checkbox/model.d.ts +10 -0
  23. package/components/divider/divider.d.ts +22 -0
  24. package/components/divider/index.d.ts +1 -0
  25. package/components/divider/model.d.ts +18 -0
  26. package/components/drawer/drawer.d.ts +34 -0
  27. package/components/drawer/index.d.ts +1 -0
  28. package/components/drawer/model.d.ts +41 -0
  29. package/components/header/MetaNavigation.directive.d.ts +5 -0
  30. package/components/header/Navigation.directive.d.ts +5 -0
  31. package/components/header/SecondaryAction.directive.d.ts +5 -0
  32. package/components/header/header.d.ts +34 -0
  33. package/components/header/index.d.ts +1 -0
  34. package/components/header/model.d.ts +44 -0
  35. package/components/icon/icon.d.ts +22 -0
  36. package/components/icon/index.d.ts +1 -0
  37. package/components/icon/model.d.ts +12 -0
  38. package/components/infotext/index.d.ts +1 -0
  39. package/components/infotext/infotext.d.ts +24 -0
  40. package/components/infotext/model.d.ts +5 -0
  41. package/components/input/index.d.ts +1 -0
  42. package/components/input/input.d.ts +87 -0
  43. package/components/input/model.d.ts +39 -0
  44. package/components/link/index.d.ts +1 -0
  45. package/components/link/link.d.ts +37 -0
  46. package/components/link/model.d.ts +24 -0
  47. package/components/navigation/index.d.ts +1 -0
  48. package/components/navigation/model.d.ts +5 -0
  49. package/components/navigation/navigation.d.ts +21 -0
  50. package/components/navigation-item/NavigationContent.directive.d.ts +5 -0
  51. package/components/navigation-item/index.d.ts +1 -0
  52. package/components/navigation-item/model.d.ts +34 -0
  53. package/components/navigation-item/navigation-item.d.ts +44 -0
  54. package/components/notification/index.d.ts +1 -0
  55. package/components/notification/model.d.ts +57 -0
  56. package/components/notification/notification.d.ts +38 -0
  57. package/components/page/index.d.ts +1 -0
  58. package/components/page/model.d.ts +32 -0
  59. package/components/page/page.d.ts +25 -0
  60. package/components/popover/index.d.ts +1 -0
  61. package/components/popover/model.d.ts +18 -0
  62. package/components/popover/popover.d.ts +33 -0
  63. package/components/radio/index.d.ts +1 -0
  64. package/components/radio/model.d.ts +7 -0
  65. package/components/radio/radio.d.ts +51 -0
  66. package/components/section/index.d.ts +1 -0
  67. package/components/section/model.d.ts +5 -0
  68. package/components/section/section.d.ts +22 -0
  69. package/components/select/index.d.ts +1 -0
  70. package/components/select/model.d.ts +43 -0
  71. package/components/select/select.d.ts +77 -0
  72. package/components/stack/index.d.ts +1 -0
  73. package/components/stack/model.d.ts +34 -0
  74. package/components/stack/stack.d.ts +25 -0
  75. package/components/switch/index.d.ts +1 -0
  76. package/components/switch/model.d.ts +12 -0
  77. package/components/switch/switch.d.ts +55 -0
  78. package/components/tab-item/index.d.ts +1 -0
  79. package/components/tab-item/model.d.ts +24 -0
  80. package/components/tab-item/tab-item.d.ts +44 -0
  81. package/components/tab-list/index.d.ts +1 -0
  82. package/components/tab-list/model.d.ts +5 -0
  83. package/components/tab-list/tab-list.d.ts +20 -0
  84. package/components/tab-panel/index.d.ts +1 -0
  85. package/components/tab-panel/model.d.ts +10 -0
  86. package/components/tab-panel/tab-panel.d.ts +21 -0
  87. package/components/tabs/index.d.ts +1 -0
  88. package/components/tabs/model.d.ts +47 -0
  89. package/components/tabs/tabs.d.ts +42 -0
  90. package/components/tag/index.d.ts +1 -0
  91. package/components/tag/model.d.ts +45 -0
  92. package/components/tag/tag.d.ts +37 -0
  93. package/components/textarea/index.d.ts +1 -0
  94. package/components/textarea/model.d.ts +30 -0
  95. package/components/textarea/textarea.d.ts +79 -0
  96. package/components/tooltip/index.d.ts +1 -0
  97. package/components/tooltip/model.d.ts +7 -0
  98. package/components/tooltip/tooltip.d.ts +32 -0
  99. package/esm2022/components/accordion/accordion.mjs +196 -0
  100. package/esm2022/components/accordion/index.mjs +2 -0
  101. package/esm2022/components/accordion/model.mjs +3 -0
  102. package/esm2022/components/accordion-item/accordion-item.mjs +136 -0
  103. package/esm2022/components/accordion-item/index.mjs +2 -0
  104. package/esm2022/components/accordion-item/model.mjs +2 -0
  105. package/esm2022/components/badge/badge.mjs +130 -0
  106. package/esm2022/components/badge/index.mjs +2 -0
  107. package/esm2022/components/badge/model.mjs +2 -0
  108. package/esm2022/components/brand/brand.mjs +99 -0
  109. package/esm2022/components/brand/index.mjs +2 -0
  110. package/esm2022/components/brand/model.mjs +2 -0
  111. package/esm2022/components/button/button.mjs +158 -0
  112. package/esm2022/components/button/index.mjs +2 -0
  113. package/esm2022/components/button/model.mjs +4 -0
  114. package/esm2022/components/card/card.mjs +107 -0
  115. package/esm2022/components/card/index.mjs +2 -0
  116. package/esm2022/components/card/model.mjs +3 -0
  117. package/esm2022/components/checkbox/checkbox.mjs +328 -0
  118. package/esm2022/components/checkbox/index.mjs +2 -0
  119. package/esm2022/components/checkbox/model.mjs +2 -0
  120. package/esm2022/components/divider/divider.mjs +93 -0
  121. package/esm2022/components/divider/index.mjs +2 -0
  122. package/esm2022/components/divider/model.mjs +3 -0
  123. package/esm2022/components/drawer/drawer.mjs +218 -0
  124. package/esm2022/components/drawer/index.mjs +2 -0
  125. package/esm2022/components/drawer/model.mjs +4 -0
  126. package/esm2022/components/header/MetaNavigation.directive.mjs +15 -0
  127. package/esm2022/components/header/Navigation.directive.mjs +15 -0
  128. package/esm2022/components/header/SecondaryAction.directive.mjs +15 -0
  129. package/esm2022/components/header/header.mjs +251 -0
  130. package/esm2022/components/header/index.mjs +2 -0
  131. package/esm2022/components/header/model.mjs +2 -0
  132. package/esm2022/components/icon/icon.mjs +100 -0
  133. package/esm2022/components/icon/index.mjs +2 -0
  134. package/esm2022/components/icon/model.mjs +3 -0
  135. package/esm2022/components/infotext/index.mjs +2 -0
  136. package/esm2022/components/infotext/infotext.mjs +103 -0
  137. package/esm2022/components/infotext/model.mjs +2 -0
  138. package/esm2022/components/input/index.mjs +2 -0
  139. package/esm2022/components/input/input.mjs +421 -0
  140. package/esm2022/components/input/model.mjs +6 -0
  141. package/esm2022/components/link/index.mjs +2 -0
  142. package/esm2022/components/link/link.mjs +152 -0
  143. package/esm2022/components/link/model.mjs +4 -0
  144. package/esm2022/components/navigation/index.mjs +2 -0
  145. package/esm2022/components/navigation/model.mjs +2 -0
  146. package/esm2022/components/navigation/navigation.mjs +92 -0
  147. package/esm2022/components/navigation-item/NavigationContent.directive.mjs +15 -0
  148. package/esm2022/components/navigation-item/index.mjs +2 -0
  149. package/esm2022/components/navigation-item/model.mjs +2 -0
  150. package/esm2022/components/navigation-item/navigation-item.mjs +236 -0
  151. package/esm2022/components/notification/index.mjs +2 -0
  152. package/esm2022/components/notification/model.mjs +4 -0
  153. package/esm2022/components/notification/notification.mjs +181 -0
  154. package/esm2022/components/page/index.mjs +2 -0
  155. package/esm2022/components/page/model.mjs +3 -0
  156. package/esm2022/components/page/page.mjs +127 -0
  157. package/esm2022/components/popover/index.mjs +2 -0
  158. package/esm2022/components/popover/model.mjs +2 -0
  159. package/esm2022/components/popover/popover.mjs +189 -0
  160. package/esm2022/components/radio/index.mjs +2 -0
  161. package/esm2022/components/radio/model.mjs +2 -0
  162. package/esm2022/components/radio/radio.mjs +230 -0
  163. package/esm2022/components/section/index.mjs +2 -0
  164. package/esm2022/components/section/model.mjs +2 -0
  165. package/esm2022/components/section/section.mjs +96 -0
  166. package/esm2022/components/select/index.mjs +2 -0
  167. package/esm2022/components/select/model.mjs +2 -0
  168. package/esm2022/components/select/select.mjs +426 -0
  169. package/esm2022/components/stack/index.mjs +2 -0
  170. package/esm2022/components/stack/model.mjs +5 -0
  171. package/esm2022/components/stack/stack.mjs +106 -0
  172. package/esm2022/components/switch/index.mjs +2 -0
  173. package/esm2022/components/switch/model.mjs +2 -0
  174. package/esm2022/components/switch/switch.mjs +237 -0
  175. package/esm2022/components/tab-item/index.mjs +2 -0
  176. package/esm2022/components/tab-item/model.mjs +2 -0
  177. package/esm2022/components/tab-item/tab-item.mjs +195 -0
  178. package/esm2022/components/tab-list/index.mjs +2 -0
  179. package/esm2022/components/tab-list/model.mjs +2 -0
  180. package/esm2022/components/tab-list/tab-list.mjs +84 -0
  181. package/esm2022/components/tab-panel/index.mjs +2 -0
  182. package/esm2022/components/tab-panel/model.mjs +2 -0
  183. package/esm2022/components/tab-panel/tab-panel.mjs +96 -0
  184. package/esm2022/components/tabs/index.mjs +2 -0
  185. package/esm2022/components/tabs/model.mjs +3 -0
  186. package/esm2022/components/tabs/tabs.mjs +322 -0
  187. package/esm2022/components/tag/index.mjs +2 -0
  188. package/esm2022/components/tag/model.mjs +2 -0
  189. package/esm2022/components/tag/tag.mjs +186 -0
  190. package/esm2022/components/textarea/index.mjs +2 -0
  191. package/esm2022/components/textarea/model.mjs +3 -0
  192. package/esm2022/components/textarea/textarea.mjs +363 -0
  193. package/esm2022/components/tooltip/index.mjs +2 -0
  194. package/esm2022/components/tooltip/model.mjs +2 -0
  195. package/esm2022/components/tooltip/tooltip.mjs +149 -0
  196. package/esm2022/db-ux-ngx-core-components.mjs +5 -0
  197. package/esm2022/index.mjs +41 -0
  198. package/esm2022/shared/constants.mjs +94 -0
  199. package/esm2022/shared/model.mjs +22 -0
  200. package/esm2022/utils/form-components.mjs +11 -0
  201. package/esm2022/utils/index.mjs +174 -0
  202. package/esm2022/utils/navigation.mjs +133 -0
  203. package/fesm2022/db-ux-ngx-core-components.mjs +6109 -0
  204. package/fesm2022/db-ux-ngx-core-components.mjs.map +1 -0
  205. package/index.d.ts +40 -0
  206. package/package.json +35 -0
  207. package/shared/constants.d.ts +83 -0
  208. package/shared/model.d.ts +445 -0
  209. package/utils/form-components.d.ts +2 -0
  210. package/utils/index.d.ts +61 -0
  211. package/utils/navigation.d.ts +32 -0
@@ -0,0 +1,237 @@
1
+ import { Output, EventEmitter, Component, ViewChild, Input } from "@angular/core";
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { CommonModule } from "@angular/common";
4
+ import { cls, getBooleanAsString, getHideProp, uuid } from "../../utils";
5
+ import { handleFrameworkEventAngular, } from "../../utils/form-components";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ const defaultProps = {};
9
+ export class DBSwitch {
10
+ constructor(renderer) {
11
+ this.renderer = renderer;
12
+ this.cls = cls;
13
+ this.getBooleanAsString = getBooleanAsString;
14
+ this.getHideProp = getHideProp;
15
+ this.onChange = new EventEmitter();
16
+ this.change = new EventEmitter();
17
+ this.onBlur = new EventEmitter();
18
+ this.blur = new EventEmitter();
19
+ this.onFocus = new EventEmitter();
20
+ this.focus = new EventEmitter();
21
+ this._id = undefined;
22
+ this._checked = false;
23
+ this.initialized = false;
24
+ }
25
+ handleChange(event) {
26
+ if (this.onChange) {
27
+ this.onChange.emit(event);
28
+ }
29
+ if (this.change) {
30
+ this.change.emit(event);
31
+ }
32
+ // We have different ts types in different frameworks, so we need to use any here
33
+ this._checked = event.target?.["checked"];
34
+ handleFrameworkEventAngular(this, event, "checked");
35
+ }
36
+ handleBlur(event) {
37
+ if (this.onBlur) {
38
+ this.onBlur.emit(event);
39
+ }
40
+ if (this.blur) {
41
+ this.blur.emit(event);
42
+ }
43
+ }
44
+ handleFocus(event) {
45
+ if (this.onFocus) {
46
+ this.onFocus.emit(event);
47
+ }
48
+ if (this.focus) {
49
+ this.focus.emit(event);
50
+ }
51
+ }
52
+ /**
53
+ * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.
54
+ * @param element the ref for the component
55
+ * @param customElementSelector the custom element like `my-component`
56
+ */
57
+ enableAttributePassing(element, customElementSelector) {
58
+ const parent = element?.closest(customElementSelector);
59
+ if (element && parent) {
60
+ const attributes = parent.attributes;
61
+ for (let i = 0; i < attributes.length; i++) {
62
+ const attr = attributes.item(i);
63
+ if (attr &&
64
+ (attr.name.startsWith("data-") || attr.name.startsWith("aria-"))) {
65
+ element.setAttribute(attr.name, attr.value);
66
+ parent.removeAttribute(attr.name);
67
+ }
68
+ if (attr && attr.name === "class") {
69
+ const isWebComponent = attr.value.includes("hydrated");
70
+ const value = attr.value.replace("hydrated", "").trim();
71
+ const currentClass = element.getAttribute("class");
72
+ element.setAttribute(attr.name, `${currentClass ? `${currentClass} ` : ""}${value}`);
73
+ if (isWebComponent) {
74
+ // Stencil is using this class for lazy loading component
75
+ parent.setAttribute("class", "hydrated");
76
+ }
77
+ else {
78
+ parent.removeAttribute(attr.name);
79
+ }
80
+ }
81
+ }
82
+ }
83
+ }
84
+ writeValue(value) {
85
+ this.checked = value;
86
+ if (this._ref?.nativeElement) {
87
+ this.renderer.setProperty(this._ref?.nativeElement, 'checked', value);
88
+ }
89
+ }
90
+ propagateChange(_) { }
91
+ registerOnChange(onChange) {
92
+ this.propagateChange = onChange;
93
+ }
94
+ registerOnTouched(onTouched) {
95
+ //this.onTouched = onTouched;
96
+ }
97
+ setDisabledState(disabled) {
98
+ this.disabled = disabled;
99
+ }
100
+ ngOnInit() {
101
+ if (typeof window !== "undefined") {
102
+ this._id = this.id ?? `switch-${uuid()}`;
103
+ }
104
+ }
105
+ ngAfterViewInit() {
106
+ const element = this._ref?.nativeElement;
107
+ this.enableAttributePassing(element, "db-switch");
108
+ }
109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DBSwitch, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
110
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DBSwitch, isStandalone: true, selector: "db-switch", inputs: { id: "id", visualAid: "visualAid", size: "size", showLabel: "showLabel", emphasis: "emphasis", className: "className", checked: "checked", disabled: "disabled", describedbyid: "describedbyid", validation: "validation", name: "name", required: "required", icon: "icon", iconAfter: "iconAfter", label: "label" }, outputs: { onChange: "onChange", change: "change", onBlur: "onBlur", blur: "blur", onFocus: "onFocus", focus: "focus" }, providers: [{
111
+ provide: NG_VALUE_ACCESSOR,
112
+ useExisting: DBSwitch,
113
+ multi: true
114
+ }], viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true }], ngImport: i0, template: `
115
+ <label
116
+ [attr.data-visual-aid]="getBooleanAsString(visualAid)"
117
+ [attr.data-size]="size"
118
+ [attr.data-hide-label]="getHideProp(showLabel)"
119
+ [attr.data-emphasis]="emphasis"
120
+ [attr.for]="_id"
121
+ [class]="cls('db-switch', className)"
122
+ >
123
+ <input
124
+ type="checkbox"
125
+ role="switch"
126
+ [attr.id]="_id"
127
+ [attr.aria-checked]="_checked"
128
+ #_ref
129
+ [checked]="checked"
130
+ [disabled]="disabled"
131
+ [attr.aria-describedby]="describedbyid"
132
+ [attr.aria-invalid]="validation === 'invalid'"
133
+ [attr.data-custom-validity]="validation"
134
+ [attr.name]="name"
135
+ [required]="required"
136
+ [attr.data-aid-icon]="icon"
137
+ [attr.data-aid-icon-after]="iconAfter"
138
+ (change)="handleChange($event)"
139
+ (blur)="handleBlur($event)"
140
+ (focus)="handleFocus($event)"
141
+ />
142
+ <ng-container *ngIf="label">{{label}}</ng-container>
143
+ <ng-container *ngIf="!(label)"><ng-content></ng-content></ng-container>
144
+ </label>
145
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
146
+ }
147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DBSwitch, decorators: [{
148
+ type: Component,
149
+ args: [{
150
+ providers: [{
151
+ provide: NG_VALUE_ACCESSOR,
152
+ useExisting: DBSwitch,
153
+ multi: true
154
+ }],
155
+ selector: "db-switch",
156
+ template: `
157
+ <label
158
+ [attr.data-visual-aid]="getBooleanAsString(visualAid)"
159
+ [attr.data-size]="size"
160
+ [attr.data-hide-label]="getHideProp(showLabel)"
161
+ [attr.data-emphasis]="emphasis"
162
+ [attr.for]="_id"
163
+ [class]="cls('db-switch', className)"
164
+ >
165
+ <input
166
+ type="checkbox"
167
+ role="switch"
168
+ [attr.id]="_id"
169
+ [attr.aria-checked]="_checked"
170
+ #_ref
171
+ [checked]="checked"
172
+ [disabled]="disabled"
173
+ [attr.aria-describedby]="describedbyid"
174
+ [attr.aria-invalid]="validation === 'invalid'"
175
+ [attr.data-custom-validity]="validation"
176
+ [attr.name]="name"
177
+ [required]="required"
178
+ [attr.data-aid-icon]="icon"
179
+ [attr.data-aid-icon-after]="iconAfter"
180
+ (change)="handleChange($event)"
181
+ (blur)="handleBlur($event)"
182
+ (focus)="handleFocus($event)"
183
+ />
184
+ <ng-container *ngIf="label">{{label}}</ng-container>
185
+ <ng-container *ngIf="!(label)"><ng-content></ng-content></ng-container>
186
+ </label>
187
+ `,
188
+ standalone: true,
189
+ imports: [CommonModule],
190
+ }]
191
+ }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { id: [{
192
+ type: Input
193
+ }], visualAid: [{
194
+ type: Input
195
+ }], size: [{
196
+ type: Input
197
+ }], showLabel: [{
198
+ type: Input
199
+ }], emphasis: [{
200
+ type: Input
201
+ }], className: [{
202
+ type: Input
203
+ }], checked: [{
204
+ type: Input
205
+ }], disabled: [{
206
+ type: Input
207
+ }], describedbyid: [{
208
+ type: Input
209
+ }], validation: [{
210
+ type: Input
211
+ }], name: [{
212
+ type: Input
213
+ }], required: [{
214
+ type: Input
215
+ }], icon: [{
216
+ type: Input
217
+ }], iconAfter: [{
218
+ type: Input
219
+ }], label: [{
220
+ type: Input
221
+ }], onChange: [{
222
+ type: Output
223
+ }], change: [{
224
+ type: Output
225
+ }], onBlur: [{
226
+ type: Output
227
+ }], blur: [{
228
+ type: Output
229
+ }], onFocus: [{
230
+ type: Output
231
+ }], focus: [{
232
+ type: Output
233
+ }], _ref: [{
234
+ type: ViewChild,
235
+ args: ["_ref"]
236
+ }] } });
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vb3V0cHV0L2FuZ3VsYXIvc3JjL2NvbXBvbmVudHMvc3dpdGNoL3N3aXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUVULEtBQUssRUFDSSxNQUFNLGVBQWUsQ0FBQztBQUNqQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSy9DLE9BQU8sRUFBRSxHQUFHLEVBQUUsa0JBQWtCLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV6RSxPQUFPLEVBQ0wsMkJBQTJCLEdBRTVCLE1BQU0sNkJBQTZCLENBQUM7OztBQVJyQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUFvRHhCLE1BQU0sT0FBTyxRQUFRO0lBQ25CLFlBQW9CLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDdkMsUUFBRyxHQUFHLEdBQUcsQ0FBQztRQUNWLHVCQUFrQixHQUFHLGtCQUFrQixDQUFDO1FBQ3hDLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBa0JoQixhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM5QixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1QixXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM1QixTQUFJLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUM3QixVQUFLLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUlyQyxRQUFHLEdBQXlCLFNBQVMsQ0FBQztRQUN0QyxhQUFRLEdBQThCLEtBQUssQ0FBQztRQUM1QyxnQkFBVyxHQUFpQyxLQUFLLENBQUM7SUFoQ1AsQ0FBQztJQWlDNUMsWUFBWSxDQUNWLEtBQW9DO1FBRXBDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzVCLENBQUM7UUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBRUQsaUZBQWlGO1FBQ2pGLElBQUksQ0FBQyxRQUFRLEdBQUksS0FBSyxDQUFDLE1BQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ25ELDJCQUEyQixDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUNELFVBQVUsQ0FDUixLQUF5QztRQUV6QyxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNoQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QixDQUFDO0lBQ0gsQ0FBQztJQUNELFdBQVcsQ0FDVCxLQUF5QztRQUV6QyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMzQixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSyxzQkFBc0IsQ0FDNUIsT0FBMkIsRUFDM0IscUJBQTZCO1FBRTdCLE1BQU0sTUFBTSxHQUFHLE9BQU8sRUFBRSxPQUFPLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN2RCxJQUFJLE9BQU8sSUFBSSxNQUFNLEVBQUUsQ0FBQztZQUN0QixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDO1lBQ3JDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzNDLE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ2hDLElBQ0UsSUFBSTtvQkFDSixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQ2hFLENBQUM7b0JBQ0QsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztvQkFDNUMsTUFBTSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7Z0JBQ3BDLENBQUM7Z0JBQ0QsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLEVBQUUsQ0FBQztvQkFDbEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQ3ZELE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDeEQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztvQkFDbkQsT0FBTyxDQUFDLFlBQVksQ0FDbEIsSUFBSSxDQUFDLElBQUksRUFDVCxHQUFHLFlBQVksQ0FBQyxDQUFDLENBQUMsR0FBRyxZQUFZLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUNwRCxDQUFDO29CQUNGLElBQUksY0FBYyxFQUFFLENBQUM7d0JBQ25CLHlEQUF5RDt3QkFDekQsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsVUFBVSxDQUFDLENBQUM7b0JBQzNDLENBQUM7eUJBQU0sQ0FBQzt3QkFDTixNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEMsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBR0QsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFFckIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUN0RSxDQUFDO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxDQUFNLElBQUcsQ0FBQztJQUUxQixnQkFBZ0IsQ0FBQyxRQUFhO1FBQzVCLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxTQUFjO1FBQy9CLDZCQUE2QjtJQUM5QixDQUFDO0lBRUQsZ0JBQWdCLENBQUMsUUFBaUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLE9BQU8sTUFBTSxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLEVBQUUsSUFBSSxVQUFVLElBQUksRUFBRSxFQUFFLENBQUM7UUFDM0MsQ0FBQztJQUNILENBQUM7SUFFRCxlQUFlO1FBQ2IsTUFBTSxPQUFPLEdBQXVCLElBQUksQ0FBQyxJQUFJLEVBQUUsYUFBYSxDQUFDO1FBQzdELElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLEVBQUUsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQzsrR0E3SVUsUUFBUTttR0FBUixRQUFRLGlmQXpDUixDQUFDO2dCQUNYLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxRQUFRO2dCQUNyQixLQUFLLEVBQUUsSUFBSTthQUNYLENBQUMsd0hBRVE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQsMkRBRVMsWUFBWTs7NEZBRVgsUUFBUTtrQkExQ3BCLFNBQVM7bUJBQUM7b0JBQ1QsU0FBUyxFQUFFLENBQUM7NEJBQ1gsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxVQUFVOzRCQUNyQixLQUFLLEVBQUUsSUFBSTt5QkFDWCxDQUFDO29CQUNGLFFBQVEsRUFBRSxXQUFXO29CQUNyQixRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0ErQlQ7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEI7OEVBT1UsRUFBRTtzQkFBVixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBRUksUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxPQUFPO3NCQUFoQixNQUFNO2dCQUNHLEtBQUs7c0JBQWQsTUFBTTtnQkFFWSxJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgQ29tcG9uZW50LFxuICBWaWV3Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuUmVuZGVyZXIyIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7fTtcblxuaW1wb3J0IHsgREJTd2l0Y2hQcm9wcywgREJTd2l0Y2hTdGF0ZSB9IGZyb20gXCIuL21vZGVsXCI7XG5pbXBvcnQgeyBjbHMsIGdldEJvb2xlYW5Bc1N0cmluZywgZ2V0SGlkZVByb3AsIHV1aWQgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcbmltcG9ydCB7IENoYW5nZUV2ZW50LCBJbnRlcmFjdGlvbkV2ZW50IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9tb2RlbFwiO1xuaW1wb3J0IHtcbiAgaGFuZGxlRnJhbWV3b3JrRXZlbnRBbmd1bGFyLFxuICBoYW5kbGVGcmFtZXdvcmtFdmVudFZ1ZSxcbn0gZnJvbSBcIi4uLy4uL3V0aWxzL2Zvcm0tY29tcG9uZW50c1wiO1xuXG5AQ29tcG9uZW50KHtcblx0XHRwcm92aWRlcnM6IFt7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBEQlN3aXRjaCxcblx0XHRcdG11bHRpOiB0cnVlXG5cdFx0fV0sXHRcbiAgc2VsZWN0b3I6IFwiZGItc3dpdGNoXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGxhYmVsXG4gICAgICBbYXR0ci5kYXRhLXZpc3VhbC1haWRdPVwiZ2V0Qm9vbGVhbkFzU3RyaW5nKHZpc3VhbEFpZClcIlxuICAgICAgW2F0dHIuZGF0YS1zaXplXT1cInNpemVcIlxuICAgICAgW2F0dHIuZGF0YS1oaWRlLWxhYmVsXT1cImdldEhpZGVQcm9wKHNob3dMYWJlbClcIlxuICAgICAgW2F0dHIuZGF0YS1lbXBoYXNpc109XCJlbXBoYXNpc1wiXG4gICAgICBbYXR0ci5mb3JdPVwiX2lkXCJcbiAgICAgIFtjbGFzc109XCJjbHMoJ2RiLXN3aXRjaCcsIGNsYXNzTmFtZSlcIlxuICAgID5cbiAgICAgIDxpbnB1dFxuICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICByb2xlPVwic3dpdGNoXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiX2lkXCJcbiAgICAgICAgW2F0dHIuYXJpYS1jaGVja2VkXT1cIl9jaGVja2VkXCJcbiAgICAgICAgI19yZWZcbiAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tlZFwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwiZGVzY3JpYmVkYnlpZFwiXG4gICAgICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJ2YWxpZGF0aW9uID09PSAnaW52YWxpZCdcIlxuICAgICAgICBbYXR0ci5kYXRhLWN1c3RvbS12YWxpZGl0eV09XCJ2YWxpZGF0aW9uXCJcbiAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcbiAgICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICAgICAgW2F0dHIuZGF0YS1haWQtaWNvbl09XCJpY29uXCJcbiAgICAgICAgW2F0dHIuZGF0YS1haWQtaWNvbi1hZnRlcl09XCJpY29uQWZ0ZXJcIlxuICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwiaGFuZGxlQmx1cigkZXZlbnQpXCJcbiAgICAgICAgKGZvY3VzKT1cImhhbmRsZUZvY3VzKCRldmVudClcIlxuICAgICAgLz5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsYWJlbFwiPnt7bGFiZWx9fTwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiEobGFiZWwpXCI+PG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PjwvbmctY29udGFpbmVyPlxuICAgIDwvbGFiZWw+XG4gIGAsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBEQlN3aXRjaCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblx0XHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxuICBjbHMgPSBjbHM7XG4gIGdldEJvb2xlYW5Bc1N0cmluZyA9IGdldEJvb2xlYW5Bc1N0cmluZztcbiAgZ2V0SGlkZVByb3AgPSBnZXRIaWRlUHJvcDtcblxuICBASW5wdXQoKSBpZCE6IERCU3dpdGNoUHJvcHNbXCJpZFwiXTtcbiAgQElucHV0KCkgdmlzdWFsQWlkITogREJTd2l0Y2hQcm9wc1tcInZpc3VhbEFpZFwiXTtcbiAgQElucHV0KCkgc2l6ZSE6IERCU3dpdGNoUHJvcHNbXCJzaXplXCJdO1xuICBASW5wdXQoKSBzaG93TGFiZWwhOiBEQlN3aXRjaFByb3BzW1wic2hvd0xhYmVsXCJdO1xuICBASW5wdXQoKSBlbXBoYXNpcyE6IERCU3dpdGNoUHJvcHNbXCJlbXBoYXNpc1wiXTtcbiAgQElucHV0KCkgY2xhc3NOYW1lITogREJTd2l0Y2hQcm9wc1tcImNsYXNzTmFtZVwiXTtcbiAgQElucHV0KCkgY2hlY2tlZCE6IERCU3dpdGNoUHJvcHNbXCJjaGVja2VkXCJdO1xuICBASW5wdXQoKSBkaXNhYmxlZCE6IERCU3dpdGNoUHJvcHNbXCJkaXNhYmxlZFwiXTtcbiAgQElucHV0KCkgZGVzY3JpYmVkYnlpZCE6IERCU3dpdGNoUHJvcHNbXCJkZXNjcmliZWRieWlkXCJdO1xuICBASW5wdXQoKSB2YWxpZGF0aW9uITogREJTd2l0Y2hQcm9wc1tcInZhbGlkYXRpb25cIl07XG4gIEBJbnB1dCgpIG5hbWUhOiBEQlN3aXRjaFByb3BzW1wibmFtZVwiXTtcbiAgQElucHV0KCkgcmVxdWlyZWQhOiBEQlN3aXRjaFByb3BzW1wicmVxdWlyZWRcIl07XG4gIEBJbnB1dCgpIGljb24hOiBEQlN3aXRjaFByb3BzW1wiaWNvblwiXTtcbiAgQElucHV0KCkgaWNvbkFmdGVyITogREJTd2l0Y2hQcm9wc1tcImljb25BZnRlclwiXTtcbiAgQElucHV0KCkgbGFiZWwhOiBEQlN3aXRjaFByb3BzW1wibGFiZWxcIl07XG5cbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgY2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgb25CbHVyID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIG9uRm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBmb2N1cyA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKFwiX3JlZlwiKSBfcmVmITogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBfaWQ6IERCU3dpdGNoU3RhdGVbXCJfaWRcIl0gPSB1bmRlZmluZWQ7XG4gIF9jaGVja2VkOiBEQlN3aXRjaFN0YXRlW1wiX2NoZWNrZWRcIl0gPSBmYWxzZTtcbiAgaW5pdGlhbGl6ZWQ6IERCU3dpdGNoU3RhdGVbXCJpbml0aWFsaXplZFwiXSA9IGZhbHNlO1xuICBoYW5kbGVDaGFuZ2UoXG4gICAgZXZlbnQ6IENoYW5nZUV2ZW50PEhUTUxJbnB1dEVsZW1lbnQ+XG4gICk6IFJldHVyblR5cGU8REJTd2l0Y2hTdGF0ZVtcImhhbmRsZUNoYW5nZVwiXT4ge1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jaGFuZ2UpIHtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIFdlIGhhdmUgZGlmZmVyZW50IHRzIHR5cGVzIGluIGRpZmZlcmVudCBmcmFtZXdvcmtzLCBzbyB3ZSBuZWVkIHRvIHVzZSBhbnkgaGVyZVxuICAgIHRoaXMuX2NoZWNrZWQgPSAoZXZlbnQudGFyZ2V0IGFzIGFueSk/LltcImNoZWNrZWRcIl07XG4gICAgaGFuZGxlRnJhbWV3b3JrRXZlbnRBbmd1bGFyKHRoaXMsIGV2ZW50LCBcImNoZWNrZWRcIik7XG4gIH1cbiAgaGFuZGxlQmx1cihcbiAgICBldmVudDogSW50ZXJhY3Rpb25FdmVudDxIVE1MSW5wdXRFbGVtZW50PlxuICApOiBSZXR1cm5UeXBlPERCU3dpdGNoU3RhdGVbXCJoYW5kbGVCbHVyXCJdPiB7XG4gICAgaWYgKHRoaXMub25CbHVyKSB7XG4gICAgICB0aGlzLm9uQmx1ci5lbWl0KGV2ZW50KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuYmx1cikge1xuICAgICAgdGhpcy5ibHVyLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgfVxuICBoYW5kbGVGb2N1cyhcbiAgICBldmVudDogSW50ZXJhY3Rpb25FdmVudDxIVE1MSW5wdXRFbGVtZW50PlxuICApOiBSZXR1cm5UeXBlPERCU3dpdGNoU3RhdGVbXCJoYW5kbGVGb2N1c1wiXT4ge1xuICAgIGlmICh0aGlzLm9uRm9jdXMpIHtcbiAgICAgIHRoaXMub25Gb2N1cy5lbWl0KGV2ZW50KTtcbiAgICB9XG4gICAgaWYgKHRoaXMuZm9jdXMpIHtcbiAgICAgIHRoaXMuZm9jdXMuZW1pdChldmVudCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFBhc3NlcyBgYXJpYS0qYCwgYGRhdGEtKmAgJiBgY2xhc3NgIGF0dHJpYnV0ZXMgdG8gY29ycmVjdCBjaGlsZC4gVXNlZCBpbiBhbmd1bGFyIGFuZCBzdGVuY2lsLlxuICAgKiBAcGFyYW0gZWxlbWVudCAgdGhlIHJlZiBmb3IgdGhlIGNvbXBvbmVudFxuICAgKiBAcGFyYW0gY3VzdG9tRWxlbWVudFNlbGVjdG9yICB0aGUgY3VzdG9tIGVsZW1lbnQgbGlrZSBgbXktY29tcG9uZW50YFxuICAgKi9cbiAgcHJpdmF0ZSBlbmFibGVBdHRyaWJ1dGVQYXNzaW5nKFxuICAgIGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgbnVsbCxcbiAgICBjdXN0b21FbGVtZW50U2VsZWN0b3I6IHN0cmluZ1xuICApIHtcbiAgICBjb25zdCBwYXJlbnQgPSBlbGVtZW50Py5jbG9zZXN0KGN1c3RvbUVsZW1lbnRTZWxlY3Rvcik7XG4gICAgaWYgKGVsZW1lbnQgJiYgcGFyZW50KSB7XG4gICAgICBjb25zdCBhdHRyaWJ1dGVzID0gcGFyZW50LmF0dHJpYnV0ZXM7XG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGF0dHJpYnV0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY29uc3QgYXR0ciA9IGF0dHJpYnV0ZXMuaXRlbShpKTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgIGF0dHIgJiZcbiAgICAgICAgICAoYXR0ci5uYW1lLnN0YXJ0c1dpdGgoXCJkYXRhLVwiKSB8fCBhdHRyLm5hbWUuc3RhcnRzV2l0aChcImFyaWEtXCIpKVxuICAgICAgICApIHtcbiAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShhdHRyLm5hbWUsIGF0dHIudmFsdWUpO1xuICAgICAgICAgIHBhcmVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoYXR0ciAmJiBhdHRyLm5hbWUgPT09IFwiY2xhc3NcIikge1xuICAgICAgICAgIGNvbnN0IGlzV2ViQ29tcG9uZW50ID0gYXR0ci52YWx1ZS5pbmNsdWRlcyhcImh5ZHJhdGVkXCIpO1xuICAgICAgICAgIGNvbnN0IHZhbHVlID0gYXR0ci52YWx1ZS5yZXBsYWNlKFwiaHlkcmF0ZWRcIiwgXCJcIikudHJpbSgpO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRDbGFzcyA9IGVsZW1lbnQuZ2V0QXR0cmlidXRlKFwiY2xhc3NcIik7XG4gICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICBhdHRyLm5hbWUsXG4gICAgICAgICAgICBgJHtjdXJyZW50Q2xhc3MgPyBgJHtjdXJyZW50Q2xhc3N9IGAgOiBcIlwifSR7dmFsdWV9YFxuICAgICAgICAgICk7XG4gICAgICAgICAgaWYgKGlzV2ViQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAvLyBTdGVuY2lsIGlzIHVzaW5nIHRoaXMgY2xhc3MgZm9yIGxhenkgbG9hZGluZyBjb21wb25lbnRcbiAgICAgICAgICAgIHBhcmVudC5zZXRBdHRyaWJ1dGUoXCJjbGFzc1wiLCBcImh5ZHJhdGVkXCIpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXJlbnQucmVtb3ZlQXR0cmlidXRlKGF0dHIubmFtZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgXG5cdFx0d3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG5cdFx0ICB0aGlzLmNoZWNrZWQgPSB2YWx1ZTtcblxuXHRcdCAgaWYgKHRoaXMuX3JlZj8ubmF0aXZlRWxlbWVudCkge1xuXHRcdFx0IHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5fcmVmPy5uYXRpdmVFbGVtZW50LCAnY2hlY2tlZCcsIHZhbHVlKTtcblx0XHQgIH1cblx0XHR9XG5cblx0XHRwcm9wYWdhdGVDaGFuZ2UoXzogYW55KSB7fVxuXG5cdFx0cmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogYW55KSB7XG5cdFx0ICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSA9IG9uQ2hhbmdlO1xuXHRcdH1cblxuXHRcdHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KSB7XG5cdFx0IC8vdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG5cdFx0fVxuXG5cdFx0c2V0RGlzYWJsZWRTdGF0ZShkaXNhYmxlZDogYm9vbGVhbikge1xuXHRcdCAgdGhpcy5kaXNhYmxlZCA9IGRpc2FibGVkO1xuXHRcdH1cblxuXHRcdG5nT25Jbml0KCkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICB0aGlzLl9pZCA9IHRoaXMuaWQgPz8gYHN3aXRjaC0ke3V1aWQoKX1gO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSB0aGlzLl9yZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5lbmFibGVBdHRyaWJ1dGVQYXNzaW5nKGVsZW1lbnQsIFwiZGItc3dpdGNoXCIpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export { DBTabItem } from './tab-item';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9vdXRwdXQvYW5ndWxhci9zcmMvY29tcG9uZW50cy90YWItaXRlbS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgREJUYWJJdGVtIH0gZnJvbSAnLi90YWItaXRlbSciXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9vdXRwdXQvYW5ndWxhci9zcmMvY29tcG9uZW50cy90YWItaXRlbS9tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlUHJvcHMsIEFyaWFDb250cm9sc1Byb3BzLCBDaGFuZ2VFdmVudFByb3BzLCBDaGFuZ2VFdmVudFN0YXRlLCBHbG9iYWxQcm9wcywgR2xvYmFsU3RhdGUsIEljb25BZnRlclByb3BzLCBJY29uUHJvcHMsIEluaXRpYWxpemVkU3RhdGUsIFNob3dJY29uUHJvcHMgfSBmcm9tICcuLi8uLi9zaGFyZWQvbW9kZWwnO1xuZXhwb3J0IHR5cGUgREJUYWJJdGVtRGVmYXVsdFByb3BzID0ge1xuICAvKipcbiAgICogVG8gY29udHJvbCB0aGUgY29tcG9uZW50XG4gICAqL1xuICBjaGVja2VkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGRpc2FibGVkIGF0dHJpYnV0ZSBjYW4gYmUgc2V0IHRvIGtlZXAgYSB1c2VyIGZyb20gY2xpY2tpbmcgb24gdGhlIHRhYi1pdGVtLlxuICAgKi9cbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAvKipcbiAgICogVGhlIGxhYmVsIG9mIHRoZSB0YWItaXRlbSwgaWYgeW91IGRvbid0IHdhbnQgdG8gdXNlIGNoaWxkcmVuLlxuICAgKi9cbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBEZWZpbmUgdGhlIHRleHQgbmV4dCB0byB0aGUgaWNvbiBzcGVjaWZpZWQgdmlhIHRoZSBpY29uIFByb3BlcnR5IHRvIGdldCBoaWRkZW4uXG4gICAqL1xuICBub1RleHQ/OiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIERCVGFiSXRlbVByb3BzID0gR2xvYmFsUHJvcHMgJiBEQlRhYkl0ZW1EZWZhdWx0UHJvcHMgJiBJY29uUHJvcHMgJiBJY29uQWZ0ZXJQcm9wcyAmIEFjdGl2ZVByb3BzICYgQXJpYUNvbnRyb2xzUHJvcHMgJiBDaGFuZ2VFdmVudFByb3BzPEhUTUxJbnB1dEVsZW1lbnQ+ICYgU2hvd0ljb25Qcm9wcztcbmV4cG9ydCB0eXBlIERCVGFiSXRlbURlZmF1bHRTdGF0ZSA9IHtcbiAgX3NlbGVjdGVkOiBib29sZWFuO1xufTtcbmV4cG9ydCB0eXBlIERCVGFiSXRlbVN0YXRlID0gREJUYWJJdGVtRGVmYXVsdFN0YXRlICYgR2xvYmFsU3RhdGUgJiBDaGFuZ2VFdmVudFN0YXRlPEhUTUxJbnB1dEVsZW1lbnQ+ICYgSW5pdGlhbGl6ZWRTdGF0ZSJdfQ==
@@ -0,0 +1,195 @@
1
+ import { Output, EventEmitter, Component, ViewChild, Input } from "@angular/core";
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { CommonModule } from "@angular/common";
4
+ import { cls, getHideProp } from "../../utils";
5
+ import { handleFrameworkEventAngular, } from "../../utils/form-components";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ const defaultProps = {};
9
+ export class DBTabItem {
10
+ constructor(renderer) {
11
+ this.renderer = renderer;
12
+ this.cls = cls;
13
+ this.getHideProp = getHideProp;
14
+ this.onChange = new EventEmitter();
15
+ this.change = new EventEmitter();
16
+ this.initialized = false;
17
+ this._selected = false;
18
+ }
19
+ handleChange(event) {
20
+ if (this.onChange) {
21
+ this.onChange.emit(event);
22
+ }
23
+ if (this.change) {
24
+ this.change.emit(event);
25
+ }
26
+ // We have different ts types in different frameworks, so we need to use any here
27
+ this._selected = event.target?.["checked"];
28
+ handleFrameworkEventAngular(this, event, "checked");
29
+ }
30
+ /**
31
+ * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.
32
+ * @param element the ref for the component
33
+ * @param customElementSelector the custom element like `my-component`
34
+ */
35
+ enableAttributePassing(element, customElementSelector) {
36
+ const parent = element?.closest(customElementSelector);
37
+ if (element && parent) {
38
+ const attributes = parent.attributes;
39
+ for (let i = 0; i < attributes.length; i++) {
40
+ const attr = attributes.item(i);
41
+ if (attr &&
42
+ (attr.name.startsWith("data-") || attr.name.startsWith("aria-"))) {
43
+ element.setAttribute(attr.name, attr.value);
44
+ parent.removeAttribute(attr.name);
45
+ }
46
+ if (attr && attr.name === "class") {
47
+ const isWebComponent = attr.value.includes("hydrated");
48
+ const value = attr.value.replace("hydrated", "").trim();
49
+ const currentClass = element.getAttribute("class");
50
+ element.setAttribute(attr.name, `${currentClass ? `${currentClass} ` : ""}${value}`);
51
+ if (isWebComponent) {
52
+ // Stencil is using this class for lazy loading component
53
+ parent.setAttribute("class", "hydrated");
54
+ }
55
+ else {
56
+ parent.removeAttribute(attr.name);
57
+ }
58
+ }
59
+ }
60
+ }
61
+ }
62
+ writeValue(value) {
63
+ this.checked = value;
64
+ if (this._ref?.nativeElement) {
65
+ this.renderer.setProperty(this._ref?.nativeElement, 'checked', value);
66
+ }
67
+ }
68
+ propagateChange(_) { }
69
+ registerOnChange(onChange) {
70
+ this.propagateChange = onChange;
71
+ }
72
+ registerOnTouched(onTouched) {
73
+ //this.onTouched = onTouched;
74
+ }
75
+ setDisabledState(disabled) {
76
+ this.disabled = disabled;
77
+ }
78
+ ngOnInit() {
79
+ if (typeof window !== "undefined") {
80
+ this.initialized = true;
81
+ }
82
+ }
83
+ ngAfterViewInit() {
84
+ const element = this._ref?.nativeElement;
85
+ this.enableAttributePassing(element, "db-tab-item");
86
+ }
87
+ ngAfterContentChecked(changes) {
88
+ if (typeof window !== "undefined") {
89
+ if (this.active && this.initialized && this._ref?.nativeElement) {
90
+ this._ref?.nativeElement.click();
91
+ this.initialized = false;
92
+ }
93
+ }
94
+ }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DBTabItem, deps: [{ token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
96
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DBTabItem, isStandalone: true, selector: "db-tab-item", inputs: { active: "active", className: "className", id: "id", icon: "icon", iconAfter: "iconAfter", showIcon: "showIcon", noText: "noText", disabled: "disabled", controls: "controls", checked: "checked", label: "label" }, outputs: { onChange: "onChange", change: "change" }, providers: [{
97
+ provide: NG_VALUE_ACCESSOR,
98
+ useExisting: DBTabItem,
99
+ multi: true
100
+ }], viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true }], ngImport: i0, template: `
101
+ <li role="none" [class]="cls('db-tab-item', className)">
102
+ <label
103
+ [attr.for]="id"
104
+ [attr.data-icon]="icon"
105
+ [attr.data-icon-after]="iconAfter"
106
+ [attr.data-hide-icon]="getHideProp(showIcon)"
107
+ [attr.data-hide-icon-after]="getHideProp(showIcon)"
108
+ [attr.data-no-text]="noText"
109
+ >
110
+ <input
111
+ type="radio"
112
+ role="tab"
113
+ [disabled]="disabled"
114
+ [attr.aria-selected]="_selected"
115
+ [attr.aria-controls]="controls"
116
+ [attr.checked]="checked"
117
+ #_ref
118
+ [attr.id]="id"
119
+ (change)="handleChange($event)"
120
+ />
121
+ <ng-container *ngIf="label">{{label}}</ng-container>
122
+ <ng-content></ng-content>
123
+ </label>
124
+ </li>
125
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
126
+ }
127
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DBTabItem, decorators: [{
128
+ type: Component,
129
+ args: [{
130
+ providers: [{
131
+ provide: NG_VALUE_ACCESSOR,
132
+ useExisting: DBTabItem,
133
+ multi: true
134
+ }],
135
+ selector: "db-tab-item",
136
+ template: `
137
+ <li role="none" [class]="cls('db-tab-item', className)">
138
+ <label
139
+ [attr.for]="id"
140
+ [attr.data-icon]="icon"
141
+ [attr.data-icon-after]="iconAfter"
142
+ [attr.data-hide-icon]="getHideProp(showIcon)"
143
+ [attr.data-hide-icon-after]="getHideProp(showIcon)"
144
+ [attr.data-no-text]="noText"
145
+ >
146
+ <input
147
+ type="radio"
148
+ role="tab"
149
+ [disabled]="disabled"
150
+ [attr.aria-selected]="_selected"
151
+ [attr.aria-controls]="controls"
152
+ [attr.checked]="checked"
153
+ #_ref
154
+ [attr.id]="id"
155
+ (change)="handleChange($event)"
156
+ />
157
+ <ng-container *ngIf="label">{{label}}</ng-container>
158
+ <ng-content></ng-content>
159
+ </label>
160
+ </li>
161
+ `,
162
+ standalone: true,
163
+ imports: [CommonModule],
164
+ }]
165
+ }], ctorParameters: () => [{ type: i0.Renderer2 }], propDecorators: { active: [{
166
+ type: Input
167
+ }], className: [{
168
+ type: Input
169
+ }], id: [{
170
+ type: Input
171
+ }], icon: [{
172
+ type: Input
173
+ }], iconAfter: [{
174
+ type: Input
175
+ }], showIcon: [{
176
+ type: Input
177
+ }], noText: [{
178
+ type: Input
179
+ }], disabled: [{
180
+ type: Input
181
+ }], controls: [{
182
+ type: Input
183
+ }], checked: [{
184
+ type: Input
185
+ }], label: [{
186
+ type: Input
187
+ }], onChange: [{
188
+ type: Output
189
+ }], change: [{
190
+ type: Output
191
+ }], _ref: [{
192
+ type: ViewChild,
193
+ args: ["_ref"]
194
+ }] } });
195
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9vdXRwdXQvYW5ndWxhci9zcmMvY29tcG9uZW50cy90YWItaXRlbS90YWItaXRlbS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsTUFBTSxFQUNOLFlBQVksRUFDWixTQUFTLEVBQ1QsU0FBUyxFQUVULEtBQUssRUFFSSxNQUFNLGVBQWUsQ0FBQztBQUNqQyxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSy9DLE9BQU8sRUFBRSxHQUFHLEVBQXNCLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVuRSxPQUFPLEVBQ0wsMkJBQTJCLEdBRTVCLE1BQU0sNkJBQTZCLENBQUM7OztBQVJyQyxNQUFNLFlBQVksR0FBRyxFQUFFLENBQUM7QUE4Q3hCLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLFlBQW9CLFFBQW1CO1FBQW5CLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDdkMsUUFBRyxHQUFHLEdBQUcsQ0FBQztRQUNWLGdCQUFXLEdBQUcsV0FBVyxDQUFDO1FBY2hCLGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzlCLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBSXRDLGdCQUFXLEdBQWtDLEtBQUssQ0FBQztRQUNuRCxjQUFTLEdBQWdDLEtBQUssQ0FBQztJQXRCSixDQUFDO0lBdUI1QyxZQUFZLENBQ1YsS0FBb0M7UUFFcEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDNUIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBQ2hCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFD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QU8sRUFBRSxDQUFDLFlBQVksQ0FBQztpQkFDeEI7OEVBTVUsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVJLFFBQVE7c0JBQWpCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNO2dCQUVZLElBQUk7c0JBQXRCLFNBQVM7dUJBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIE91dHB1dCxcbiAgRXZlbnRFbWl0dGVyLFxuICBDb21wb25lbnQsXG4gIFZpZXdDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG5SZW5kZXJlcjIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbmNvbnN0IGRlZmF1bHRQcm9wcyA9IHt9O1xuXG5pbXBvcnQgdHlwZSB7IERCVGFiSXRlbVByb3BzLCBEQlRhYkl0ZW1TdGF0ZSB9IGZyb20gXCIuL21vZGVsXCI7XG5pbXBvcnQgeyBjbHMsIGdldEJvb2xlYW5Bc1N0cmluZywgZ2V0SGlkZVByb3AgfSBmcm9tIFwiLi4vLi4vdXRpbHNcIjtcbmltcG9ydCB7IENoYW5nZUV2ZW50IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9tb2RlbFwiO1xuaW1wb3J0IHtcbiAgaGFuZGxlRnJhbWV3b3JrRXZlbnRBbmd1bGFyLFxuICBoYW5kbGVGcmFtZXdvcmtFdmVudFZ1ZSxcbn0gZnJvbSBcIi4uLy4uL3V0aWxzL2Zvcm0tY29tcG9uZW50c1wiO1xuXG5AQ29tcG9uZW50KHtcblx0XHRwcm92aWRlcnM6IFt7XG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcblx0XHRcdHVzZUV4aXN0aW5nOiBEQlRhYkl0ZW0sXG5cdFx0XHRtdWx0aTogdHJ1ZVxuXHRcdH1dLFx0XG4gIHNlbGVjdG9yOiBcImRiLXRhYi1pdGVtXCIsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGxpIHJvbGU9XCJub25lXCIgW2NsYXNzXT1cImNscygnZGItdGFiLWl0ZW0nLCBjbGFzc05hbWUpXCI+XG4gICAgICA8bGFiZWxcbiAgICAgICAgW2F0dHIuZm9yXT1cImlkXCJcbiAgICAgICAgW2F0dHIuZGF0YS1pY29uXT1cImljb25cIlxuICAgICAgICBbYXR0ci5kYXRhLWljb24tYWZ0ZXJdPVwiaWNvbkFmdGVyXCJcbiAgICAgICAgW2F0dHIuZGF0YS1oaWRlLWljb25dPVwiZ2V0SGlkZVByb3Aoc2hvd0ljb24pXCJcbiAgICAgICAgW2F0dHIuZGF0YS1oaWRlLWljb24tYWZ0ZXJdPVwiZ2V0SGlkZVByb3Aoc2hvd0ljb24pXCJcbiAgICAgICAgW2F0dHIuZGF0YS1uby10ZXh0XT1cIm5vVGV4dFwiXG4gICAgICA+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHR5cGU9XCJyYWRpb1wiXG4gICAgICAgICAgcm9sZT1cInRhYlwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLXNlbGVjdGVkXT1cIl9zZWxlY3RlZFwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1jb250cm9sc109XCJjb250cm9sc1wiXG4gICAgICAgICAgW2F0dHIuY2hlY2tlZF09XCJjaGVja2VkXCJcbiAgICAgICAgICAjX3JlZlxuICAgICAgICAgIFthdHRyLmlkXT1cImlkXCJcbiAgICAgICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvbGFiZWw+XG4gICAgPC9saT5cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIERCVGFiSXRlbSBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblx0XHRjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIpIHsgfVxuICBjbHMgPSBjbHM7XG4gIGdldEhpZGVQcm9wID0gZ2V0SGlkZVByb3A7XG5cbiAgQElucHV0KCkgYWN0aXZlITogREJUYWJJdGVtUHJvcHNbXCJhY3RpdmVcIl07XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSE6IERCVGFiSXRlbVByb3BzW1wiY2xhc3NOYW1lXCJdO1xuICBASW5wdXQoKSBpZCE6IERCVGFiSXRlbVByb3BzW1wiaWRcIl07XG4gIEBJbnB1dCgpIGljb24hOiBEQlRhYkl0ZW1Qcm9wc1tcImljb25cIl07XG4gIEBJbnB1dCgpIGljb25BZnRlciE6IERCVGFiSXRlbVByb3BzW1wiaWNvbkFmdGVyXCJdO1xuICBASW5wdXQoKSBzaG93SWNvbiE6IERCVGFiSXRlbVByb3BzW1wic2hvd0ljb25cIl07XG4gIEBJbnB1dCgpIG5vVGV4dCE6IERCVGFiSXRlbVByb3BzW1wibm9UZXh0XCJdO1xuICBASW5wdXQoKSBkaXNhYmxlZCE6IERCVGFiSXRlbVByb3BzW1wiZGlzYWJsZWRcIl07XG4gIEBJbnB1dCgpIGNvbnRyb2xzITogREJUYWJJdGVtUHJvcHNbXCJjb250cm9sc1wiXTtcbiAgQElucHV0KCkgY2hlY2tlZCE6IERCVGFiSXRlbVByb3BzW1wiY2hlY2tlZFwiXTtcbiAgQElucHV0KCkgbGFiZWwhOiBEQlRhYkl0ZW1Qcm9wc1tcImxhYmVsXCJdO1xuXG4gIEBPdXRwdXQoKSBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAVmlld0NoaWxkKFwiX3JlZlwiKSBfcmVmITogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcblxuICBpbml0aWFsaXplZDogREJUYWJJdGVtU3RhdGVbXCJpbml0aWFsaXplZFwiXSA9IGZhbHNlO1xuICBfc2VsZWN0ZWQ6IERCVGFiSXRlbVN0YXRlW1wiX3NlbGVjdGVkXCJdID0gZmFsc2U7XG4gIGhhbmRsZUNoYW5nZShcbiAgICBldmVudDogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD5cbiAgKTogUmV0dXJuVHlwZTxEQlRhYkl0ZW1TdGF0ZVtcImhhbmRsZUNoYW5nZVwiXT4ge1xuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XG4gICAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cbiAgICBpZiAodGhpcy5jaGFuZ2UpIHtcbiAgICAgIHRoaXMuY2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIC8vIFdlIGhhdmUgZGlmZmVyZW50IHRzIHR5cGVzIGluIGRpZmZlcmVudCBmcmFtZXdvcmtzLCBzbyB3ZSBuZWVkIHRvIHVzZSBhbnkgaGVyZVxuXG4gICAgdGhpcy5fc2VsZWN0ZWQgPSAoZXZlbnQudGFyZ2V0IGFzIGFueSk/LltcImNoZWNrZWRcIl07XG4gICAgaGFuZGxlRnJhbWV3b3JrRXZlbnRBbmd1bGFyKHRoaXMsIGV2ZW50LCBcImNoZWNrZWRcIik7XG4gIH1cblxuICAvKipcbiAgICogUGFzc2VzIGBhcmlhLSpgLCBgZGF0YS0qYCAmIGBjbGFzc2AgYXR0cmlidXRlcyB0byBjb3JyZWN0IGNoaWxkLiBVc2VkIGluIGFuZ3VsYXIgYW5kIHN0ZW5jaWwuXG4gICAqIEBwYXJhbSBlbGVtZW50ICB0aGUgcmVmIGZvciB0aGUgY29tcG9uZW50XG4gICAqIEBwYXJhbSBjdXN0b21FbGVtZW50U2VsZWN0b3IgIHRoZSBjdXN0b20gZWxlbWVudCBsaWtlIGBteS1jb21wb25lbnRgXG4gICAqL1xuICBwcml2YXRlIGVuYWJsZUF0dHJpYnV0ZVBhc3NpbmcoXG4gICAgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsLFxuICAgIGN1c3RvbUVsZW1lbnRTZWxlY3Rvcjogc3RyaW5nXG4gICkge1xuICAgIGNvbnN0IHBhcmVudCA9IGVsZW1lbnQ/LmNsb3Nlc3QoY3VzdG9tRWxlbWVudFNlbGVjdG9yKTtcbiAgICBpZiAoZWxlbWVudCAmJiBwYXJlbnQpIHtcbiAgICAgIGNvbnN0IGF0dHJpYnV0ZXMgPSBwYXJlbnQuYXR0cmlidXRlcztcbiAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYXR0cmlidXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICBjb25zdCBhdHRyID0gYXR0cmlidXRlcy5pdGVtKGkpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgYXR0ciAmJlxuICAgICAgICAgIChhdHRyLm5hbWUuc3RhcnRzV2l0aChcImRhdGEtXCIpIHx8IGF0dHIubmFtZS5zdGFydHNXaXRoKFwiYXJpYS1cIikpXG4gICAgICAgICkge1xuICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKGF0dHIubmFtZSwgYXR0ci52YWx1ZSk7XG4gICAgICAgICAgcGFyZW50LnJlbW92ZUF0dHJpYnV0ZShhdHRyLm5hbWUpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhdHRyICYmIGF0dHIubmFtZSA9PT0gXCJjbGFzc1wiKSB7XG4gICAgICAgICAgY29uc3QgaXNXZWJDb21wb25lbnQgPSBhdHRyLnZhbHVlLmluY2x1ZGVzKFwiaHlkcmF0ZWRcIik7XG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBhdHRyLnZhbHVlLnJlcGxhY2UoXCJoeWRyYXRlZFwiLCBcIlwiKS50cmltKCk7XG4gICAgICAgICAgY29uc3QgY3VycmVudENsYXNzID0gZWxlbWVudC5nZXRBdHRyaWJ1dGUoXCJjbGFzc1wiKTtcbiAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZShcbiAgICAgICAgICAgIGF0dHIubmFtZSxcbiAgICAgICAgICAgIGAke2N1cnJlbnRDbGFzcyA/IGAke2N1cnJlbnRDbGFzc30gYCA6IFwiXCJ9JHt2YWx1ZX1gXG4gICAgICAgICAgKTtcbiAgICAgICAgICBpZiAoaXNXZWJDb21wb25lbnQpIHtcbiAgICAgICAgICAgIC8vIFN0ZW5jaWwgaXMgdXNpbmcgdGhpcyBjbGFzcyBmb3IgbGF6eSBsb2FkaW5nIGNvbXBvbmVudFxuICAgICAgICAgICAgcGFyZW50LnNldEF0dHJpYnV0ZShcImNsYXNzXCIsIFwiaHlkcmF0ZWRcIik7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHBhcmVudC5yZW1vdmVBdHRyaWJ1dGUoYXR0ci5uYW1lKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBcblx0XHR3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcblx0XHQgIHRoaXMuY2hlY2tlZCA9IHZhbHVlO1xuXG5cdFx0ICBpZiAodGhpcy5fcmVmPy5uYXRpdmVFbGVtZW50KSB7XG5cdFx0XHQgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLl9yZWY/Lm5hdGl2ZUVsZW1lbnQsICdjaGVja2VkJywgdmFsdWUpO1xuXHRcdCAgfVxuXHRcdH1cblxuXHRcdHByb3BhZ2F0ZUNoYW5nZShfOiBhbnkpIHt9XG5cblx0XHRyZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpIHtcblx0XHQgIHRoaXMucHJvcGFnYXRlQ2hhbmdlID0gb25DaGFuZ2U7XG5cdFx0fVxuXG5cdFx0cmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiBhbnkpIHtcblx0XHQgLy90aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcblx0XHR9XG5cblx0XHRzZXREaXNhYmxlZFN0YXRlKGRpc2FibGVkOiBib29sZWFuKSB7XG5cdFx0ICB0aGlzLmRpc2FibGVkID0gZGlzYWJsZWQ7XG5cdFx0fVxuXG5cdFx0bmdPbkluaXQoKSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBjb25zdCBlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwgPSB0aGlzLl9yZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgdGhpcy5lbmFibGVBdHRyaWJ1dGVQYXNzaW5nKGVsZW1lbnQsIFwiZGItdGFiLWl0ZW1cIik7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBpZiAodGhpcy5hY3RpdmUgJiYgdGhpcy5pbml0aWFsaXplZCAmJiB0aGlzLl9yZWY/Lm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5fcmVmPy5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gICAgICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export { DBTabList } from './tab-list';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9vdXRwdXQvYW5ndWxhci9zcmMvY29tcG9uZW50cy90YWItbGlzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sWUFBWSxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgREJUYWJMaXN0IH0gZnJvbSAnLi90YWItbGlzdCciXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9vdXRwdXQvYW5ndWxhci9zcmMvY29tcG9uZW50cy90YWItbGlzdC9tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgR2xvYmFsUHJvcHMsIEdsb2JhbFN0YXRlIH0gZnJvbSAnLi4vLi4vc2hhcmVkL21vZGVsJztcbmV4cG9ydCB0eXBlIERCVGFiTGlzdERlZmF1bHRQcm9wcyA9IHt9O1xuZXhwb3J0IHR5cGUgREJUYWJMaXN0UHJvcHMgPSBEQlRhYkxpc3REZWZhdWx0UHJvcHMgJiBHbG9iYWxQcm9wcztcbmV4cG9ydCB0eXBlIERCVGFiTGlzdERlZmF1bHRTdGF0ZSA9IHt9O1xuZXhwb3J0IHR5cGUgREJUYWJMaXN0U3RhdGUgPSBEQlRhYkxpc3REZWZhdWx0U3RhdGUgJiBHbG9iYWxTdGF0ZSJdfQ==
@@ -0,0 +1,84 @@
1
+ import { Component, ViewChild, Input } from "@angular/core";
2
+ import { CommonModule } from "@angular/common";
3
+ import { cls, uuid } from "../../utils";
4
+ import { DEFAULT_ID } from "../../shared/constants";
5
+ import * as i0 from "@angular/core";
6
+ const defaultProps = {};
7
+ export class DBTabList {
8
+ constructor() {
9
+ this.cls = cls;
10
+ this._id = DEFAULT_ID;
11
+ }
12
+ /**
13
+ * Passes `aria-*`, `data-*` & `class` attributes to correct child. Used in angular and stencil.
14
+ * @param element the ref for the component
15
+ * @param customElementSelector the custom element like `my-component`
16
+ */
17
+ enableAttributePassing(element, customElementSelector) {
18
+ const parent = element?.closest(customElementSelector);
19
+ if (element && parent) {
20
+ const attributes = parent.attributes;
21
+ for (let i = 0; i < attributes.length; i++) {
22
+ const attr = attributes.item(i);
23
+ if (attr &&
24
+ (attr.name.startsWith("data-") || attr.name.startsWith("aria-"))) {
25
+ element.setAttribute(attr.name, attr.value);
26
+ parent.removeAttribute(attr.name);
27
+ }
28
+ if (attr && attr.name === "class") {
29
+ const isWebComponent = attr.value.includes("hydrated");
30
+ const value = attr.value.replace("hydrated", "").trim();
31
+ const currentClass = element.getAttribute("class");
32
+ element.setAttribute(attr.name, `${currentClass ? `${currentClass} ` : ""}${value}`);
33
+ if (isWebComponent) {
34
+ // Stencil is using this class for lazy loading component
35
+ parent.setAttribute("class", "hydrated");
36
+ }
37
+ else {
38
+ parent.removeAttribute(attr.name);
39
+ }
40
+ }
41
+ }
42
+ }
43
+ }
44
+ ngOnInit() {
45
+ if (typeof window !== "undefined") {
46
+ this._id = this.id || "tab-list-" + uuid();
47
+ }
48
+ }
49
+ ngAfterViewInit() {
50
+ const element = this._ref?.nativeElement;
51
+ this.enableAttributePassing(element, "db-tab-list");
52
+ }
53
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DBTabList, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
54
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DBTabList, isStandalone: true, selector: "db-tab-list", inputs: { id: "id", className: "className" }, viewQueries: [{ propertyName: "_ref", first: true, predicate: ["_ref"], descendants: true }], ngImport: i0, template: `
55
+ <div #_ref [attr.id]="_id" [class]="cls('db-tab-list', className)">
56
+ <ul role="tablist">
57
+ <ng-content></ng-content>
58
+ </ul>
59
+ </div>
60
+ `, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }] }); }
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DBTabList, decorators: [{
63
+ type: Component,
64
+ args: [{
65
+ selector: "db-tab-list",
66
+ template: `
67
+ <div #_ref [attr.id]="_id" [class]="cls('db-tab-list', className)">
68
+ <ul role="tablist">
69
+ <ng-content></ng-content>
70
+ </ul>
71
+ </div>
72
+ `,
73
+ standalone: true,
74
+ imports: [CommonModule],
75
+ }]
76
+ }], propDecorators: { id: [{
77
+ type: Input
78
+ }], className: [{
79
+ type: Input
80
+ }], _ref: [{
81
+ type: ViewChild,
82
+ args: ["_ref"]
83
+ }] } });
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9vdXRwdXQvYW5ndWxhci9zcmMvY29tcG9uZW50cy90YWItbGlzdC90YWItbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBYyxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBSy9DLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFKcEQsTUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBa0J4QixNQUFNLE9BQU8sU0FBUztJQVp0QjtRQWFFLFFBQUcsR0FBRyxHQUFHLENBQUM7UUFPVixRQUFHLEdBQTBCLFVBQVUsQ0FBQztLQW9EekM7SUFsREM7Ozs7T0FJRztJQUNLLHNCQUFzQixDQUM1QixPQUEyQixFQUMzQixxQkFBNkI7UUFFN0IsTUFBTSxNQUFNLEdBQUcsT0FBTyxFQUFFLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3ZELElBQUksT0FBTyxJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ3RCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7WUFDckMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDM0MsTUFBTSxJQUFJLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDaEMsSUFDRSxJQUFJO29CQUNKLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsRUFDaEUsQ0FBQztvQkFDRCxPQUFPLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM1QyxNQUFNLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDcEMsQ0FBQztnQkFDRCxJQUFJLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO29CQUNsQyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDdkQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO29CQUN4RCxNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUNuRCxPQUFPLENBQUMsWUFBWSxDQUNsQixJQUFJLENBQUMsSUFBSSxFQUNULEdBQUcsWUFBWSxDQUFDLENBQUMsQ0FBQyxHQUFHLFlBQVksR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQ3BELENBQUM7b0JBQ0YsSUFBSSxjQUFjLEVBQUUsQ0FBQzt3QkFDbkIseURBQXlEO3dCQUN6RCxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxVQUFVLENBQUMsQ0FBQztvQkFDM0MsQ0FBQzt5QkFBTSxDQUFDO3dCQUNOLE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO29CQUNwQyxDQUFDO2dCQUNILENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxPQUFPLE1BQU0sS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxFQUFFLElBQUksV0FBVyxHQUFHLElBQUksRUFBRSxDQUFDO1FBQzdDLENBQUM7SUFDSCxDQUFDO0lBRUQsZUFBZTtRQUNiLE1BQU0sT0FBTyxHQUF1QixJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQztRQUM3RCxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7K0dBM0RVLFNBQVM7bUdBQVQsU0FBUyxtTkFWVjs7Ozs7O0dBTVQsMkRBRVMsWUFBWTs7NEZBRVgsU0FBUztrQkFackIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsUUFBUSxFQUFFOzs7Ozs7R0FNVDtvQkFDRCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4Qjs4QkFJVSxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFYSxJQUFJO3NCQUF0QixTQUFTO3VCQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5jb25zdCBkZWZhdWx0UHJvcHMgPSB7fTtcblxuaW1wb3J0IHsgREJUYWJMaXN0UHJvcHMsIERCVGFiTGlzdFN0YXRlIH0gZnJvbSBcIi4vbW9kZWxcIjtcbmltcG9ydCB7IGNscywgdXVpZCB9IGZyb20gXCIuLi8uLi91dGlsc1wiO1xuaW1wb3J0IHsgREVGQVVMVF9JRCB9IGZyb20gXCIuLi8uLi9zaGFyZWQvY29uc3RhbnRzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJkYi10YWItbGlzdFwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXYgI19yZWYgW2F0dHIuaWRdPVwiX2lkXCIgW2NsYXNzXT1cImNscygnZGItdGFiLWxpc3QnLCBjbGFzc05hbWUpXCI+XG4gICAgICA8dWwgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgYCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXG59KVxuZXhwb3J0IGNsYXNzIERCVGFiTGlzdCB7XG4gIGNscyA9IGNscztcblxuICBASW5wdXQoKSBpZCE6IERCVGFiTGlzdFByb3BzW1wiaWRcIl07XG4gIEBJbnB1dCgpIGNsYXNzTmFtZSE6IERCVGFiTGlzdFByb3BzW1wiY2xhc3NOYW1lXCJdO1xuXG4gIEBWaWV3Q2hpbGQoXCJfcmVmXCIpIF9yZWYhOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIF9pZDogREJUYWJMaXN0U3RhdGVbXCJfaWRcIl0gPSBERUZBVUxUX0lEO1xuXG4gIC8qKlxuICAgKiBQYXNzZXMgYGFyaWEtKmAsIGBkYXRhLSpgICYgYGNsYXNzYCBhdHRyaWJ1dGVzIHRvIGNvcnJlY3QgY2hpbGQuIFVzZWQgaW4gYW5ndWxhciBhbmQgc3RlbmNpbC5cbiAgICogQHBhcmFtIGVsZW1lbnQgIHRoZSByZWYgZm9yIHRoZSBjb21wb25lbnRcbiAgICogQHBhcmFtIGN1c3RvbUVsZW1lbnRTZWxlY3RvciAgdGhlIGN1c3RvbSBlbGVtZW50IGxpa2UgYG15LWNvbXBvbmVudGBcbiAgICovXG4gIHByaXZhdGUgZW5hYmxlQXR0cmlidXRlUGFzc2luZyhcbiAgICBlbGVtZW50OiBIVE1MRWxlbWVudCB8IG51bGwsXG4gICAgY3VzdG9tRWxlbWVudFNlbGVjdG9yOiBzdHJpbmdcbiAgKSB7XG4gICAgY29uc3QgcGFyZW50ID0gZWxlbWVudD8uY2xvc2VzdChjdXN0b21FbGVtZW50U2VsZWN0b3IpO1xuICAgIGlmIChlbGVtZW50ICYmIHBhcmVudCkge1xuICAgICAgY29uc3QgYXR0cmlidXRlcyA9IHBhcmVudC5hdHRyaWJ1dGVzO1xuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBhdHRyaWJ1dGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGNvbnN0IGF0dHIgPSBhdHRyaWJ1dGVzLml0ZW0oaSk7XG4gICAgICAgIGlmIChcbiAgICAgICAgICBhdHRyICYmXG4gICAgICAgICAgKGF0dHIubmFtZS5zdGFydHNXaXRoKFwiZGF0YS1cIikgfHwgYXR0ci5uYW1lLnN0YXJ0c1dpdGgoXCJhcmlhLVwiKSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoYXR0ci5uYW1lLCBhdHRyLnZhbHVlKTtcbiAgICAgICAgICBwYXJlbnQucmVtb3ZlQXR0cmlidXRlKGF0dHIubmFtZSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGF0dHIgJiYgYXR0ci5uYW1lID09PSBcImNsYXNzXCIpIHtcbiAgICAgICAgICBjb25zdCBpc1dlYkNvbXBvbmVudCA9IGF0dHIudmFsdWUuaW5jbHVkZXMoXCJoeWRyYXRlZFwiKTtcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9IGF0dHIudmFsdWUucmVwbGFjZShcImh5ZHJhdGVkXCIsIFwiXCIpLnRyaW0oKTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50Q2xhc3MgPSBlbGVtZW50LmdldEF0dHJpYnV0ZShcImNsYXNzXCIpO1xuICAgICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgYXR0ci5uYW1lLFxuICAgICAgICAgICAgYCR7Y3VycmVudENsYXNzID8gYCR7Y3VycmVudENsYXNzfSBgIDogXCJcIn0ke3ZhbHVlfWBcbiAgICAgICAgICApO1xuICAgICAgICAgIGlmIChpc1dlYkNvbXBvbmVudCkge1xuICAgICAgICAgICAgLy8gU3RlbmNpbCBpcyB1c2luZyB0aGlzIGNsYXNzIGZvciBsYXp5IGxvYWRpbmcgY29tcG9uZW50XG4gICAgICAgICAgICBwYXJlbnQuc2V0QXR0cmlidXRlKFwiY2xhc3NcIiwgXCJoeWRyYXRlZFwiKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcGFyZW50LnJlbW92ZUF0dHJpYnV0ZShhdHRyLm5hbWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICB0aGlzLl9pZCA9IHRoaXMuaWQgfHwgXCJ0YWItbGlzdC1cIiArIHV1aWQoKTtcbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgY29uc3QgZWxlbWVudDogSFRNTEVsZW1lbnQgfCBudWxsID0gdGhpcy5fcmVmPy5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuZW5hYmxlQXR0cmlidXRlUGFzc2luZyhlbGVtZW50LCBcImRiLXRhYi1saXN0XCIpO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export { DBTabPanel } from './tab-panel';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9vdXRwdXQvYW5ndWxhci9zcmMvY29tcG9uZW50cy90YWItcGFuZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IERCVGFiUGFuZWwgfSBmcm9tICcuL3RhYi1wYW5lbCciXX0=
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9vdXRwdXQvYW5ndWxhci9zcmMvY29tcG9uZW50cy90YWItcGFuZWwvbW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFyaWFMYWJlbGxlZEJ5UHJvcHMsIEdsb2JhbFByb3BzLCBHbG9iYWxTdGF0ZSB9IGZyb20gJy4uLy4uL3NoYXJlZC9tb2RlbCc7XG5leHBvcnQgdHlwZSBEQlRhYlBhbmVsRGVmYXVsdFByb3BzID0ge1xuICAvKipcbiAgICogVGhlIGNvbnRlbnQgaWYgeW91IGRvbid0IHdhbnQgdG8gdXNlIGNoaWxkcmVuLlxuICAgKi9cbiAgY29udGVudD86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBEQlRhYlBhbmVsUHJvcHMgPSBEQlRhYlBhbmVsRGVmYXVsdFByb3BzICYgR2xvYmFsUHJvcHMgJiBBcmlhTGFiZWxsZWRCeVByb3BzO1xuZXhwb3J0IHR5cGUgREJUYWJQYW5lbERlZmF1bHRTdGF0ZSA9IHt9O1xuZXhwb3J0IHR5cGUgREJUYWJQYW5lbFN0YXRlID0gREJUYWJQYW5lbERlZmF1bHRTdGF0ZSAmIEdsb2JhbFN0YXRlIl19