ng-tailwind 2.24.310 → 2.24.314

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 (193) hide show
  1. package/README.md +24 -24
  2. package/animations/ngt-angular-animations.d.ts +5 -5
  3. package/base/ngt-base-ng-model.d.ts +32 -32
  4. package/bundles/ng-tailwind.umd.js +7318 -7271
  5. package/bundles/ng-tailwind.umd.js.map +1 -1
  6. package/components/ngt-action/ngt-action.component.d.ts +13 -13
  7. package/components/ngt-action/ngt-action.module.d.ts +2 -2
  8. package/components/ngt-button/ngt-button.component.d.ts +22 -22
  9. package/components/ngt-button/ngt-button.module.d.ts +2 -2
  10. package/components/ngt-checkbox/ngt-checkbox.component.d.ts +41 -41
  11. package/components/ngt-checkbox/ngt-checkbox.module.d.ts +2 -2
  12. package/components/ngt-content/ngt-content.component.d.ts +9 -9
  13. package/components/ngt-content/ngt-content.module.d.ts +2 -2
  14. package/components/ngt-datatable/ngt-datatable.component.d.ts +112 -112
  15. package/components/ngt-datatable/ngt-datatable.module.d.ts +2 -2
  16. package/components/ngt-datatable/ngt-tbody/ngt-tbody.component.d.ts +11 -11
  17. package/components/ngt-datatable/ngt-td/ngt-td.component.d.ts +11 -11
  18. package/components/ngt-datatable/ngt-td-check/ngt-td-check.component.d.ts +24 -24
  19. package/components/ngt-datatable/ngt-th/ngt-th.component.d.ts +47 -47
  20. package/components/ngt-datatable/ngt-th-check/ngt-th-check.component.d.ts +19 -19
  21. package/components/ngt-datatable/ngt-thead/ngt-thead.component.d.ts +10 -10
  22. package/components/ngt-datatable/ngt-tr/ngt-tr.component.d.ts +17 -17
  23. package/components/ngt-date/ngt-date.component.d.ts +71 -71
  24. package/components/ngt-date/ngt-date.module.d.ts +2 -2
  25. package/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.d.ts +5 -5
  26. package/components/ngt-dropdown/ngt-dropdown.component.d.ts +42 -42
  27. package/components/ngt-dropdown/ngt-dropdown.module.d.ts +2 -2
  28. package/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.d.ts +11 -11
  29. package/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.d.ts +12 -12
  30. package/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.d.ts +21 -21
  31. package/components/ngt-dropzone/ngt-dropzone.component.d.ts +103 -103
  32. package/components/ngt-dropzone/ngt-dropzone.module.d.ts +2 -2
  33. package/components/ngt-floating-button/ngt-floating-button.component.d.ts +32 -32
  34. package/components/ngt-floating-button/ngt-floating-button.module.d.ts +2 -2
  35. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.d.ts +7 -7
  36. package/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.d.ts +2 -2
  37. package/components/ngt-form/ngt-form.component.d.ts +52 -52
  38. package/components/ngt-form/ngt-form.module.d.ts +2 -2
  39. package/components/ngt-header-nav/ngt-header-nav.component.d.ts +11 -11
  40. package/components/ngt-header-nav/ngt-header-nav.module.d.ts +2 -2
  41. package/components/ngt-helper/ngt-helper.component.d.ts +15 -10
  42. package/components/ngt-helper/ngt-helper.module.d.ts +2 -2
  43. package/components/ngt-input/ngt-input.component.d.ts +92 -92
  44. package/components/ngt-input/ngt-input.module.d.ts +2 -2
  45. package/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.d.ts +2 -2
  46. package/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.d.ts +2 -2
  47. package/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.d.ts +12 -12
  48. package/components/ngt-modal/ngt-modal.component.d.ts +19 -19
  49. package/components/ngt-modal/ngt-modal.module.d.ts +2 -2
  50. package/components/ngt-multi-select/ngt-multi-select.component.d.ts +97 -97
  51. package/components/ngt-multi-select/ngt-multi-select.module.d.ts +2 -2
  52. package/components/ngt-pagination/ngt-pagination.component.d.ts +40 -40
  53. package/components/ngt-pagination/ngt-pagination.module.d.ts +2 -2
  54. package/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.d.ts +9 -9
  55. package/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.d.ts +9 -9
  56. package/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.d.ts +14 -14
  57. package/components/ngt-portlet/ngt-portlet.component.d.ts +17 -17
  58. package/components/ngt-portlet/ngt-portlet.module.d.ts +2 -2
  59. package/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.d.ts +6 -6
  60. package/components/ngt-radio-button/ngt-radio-button.component.d.ts +27 -27
  61. package/components/ngt-radio-button/ngt-radio-button.module.d.ts +2 -2
  62. package/components/ngt-section/ngt-section.component.d.ts +23 -23
  63. package/components/ngt-section/ngt-section.module.d.ts +2 -2
  64. package/components/ngt-select/ngt-select.component.d.ts +122 -122
  65. package/components/ngt-select/ngt-select.directive.d.ts +13 -13
  66. package/components/ngt-select/ngt-select.module.d.ts +2 -2
  67. package/components/ngt-shining/ngt-shining.component.d.ts +16 -16
  68. package/components/ngt-shining/ngt-shining.module.d.ts +2 -2
  69. package/components/ngt-sidenav/ngt-sidenav.component.d.ts +29 -29
  70. package/components/ngt-sidenav/ngt-sidenav.module.d.ts +2 -2
  71. package/components/ngt-slider/ngt-slider.component.d.ts +31 -31
  72. package/components/ngt-slider/ngt-slider.module.d.ts +2 -2
  73. package/components/ngt-svg/ngt-svg.component.d.ts +10 -10
  74. package/components/ngt-svg/ngt-svg.module.d.ts +2 -2
  75. package/components/ngt-tag/ngt-tag.component.d.ts +10 -10
  76. package/components/ngt-tag/ngt-tag.module.d.ts +2 -2
  77. package/components/ngt-textarea/ngt-textarea.component.d.ts +46 -46
  78. package/components/ngt-textarea/ngt-textarea.module.d.ts +2 -2
  79. package/components/ngt-validation/ngt-validation.component.d.ts +10 -10
  80. package/components/ngt-validation/ngt-validation.module.d.ts +2 -2
  81. package/directives/ngt-stylizable/ngt-stylizable.directive.d.ts +65 -63
  82. package/directives/ngt-stylizable/ngt-stylizable.module.d.ts +2 -2
  83. package/enums/size.enum.d.ts +8 -8
  84. package/esm2015/animations/ngt-angular-animations.js +34 -34
  85. package/esm2015/base/ngt-base-ng-model.js +90 -90
  86. package/esm2015/components/ngt-action/ngt-action.component.js +49 -49
  87. package/esm2015/components/ngt-action/ngt-action.module.js +19 -19
  88. package/esm2015/components/ngt-button/ngt-button.component.js +106 -106
  89. package/esm2015/components/ngt-button/ngt-button.module.js +19 -19
  90. package/esm2015/components/ngt-checkbox/ngt-checkbox.component.js +137 -137
  91. package/esm2015/components/ngt-checkbox/ngt-checkbox.module.js +19 -19
  92. package/esm2015/components/ngt-content/ngt-content.component.js +33 -33
  93. package/esm2015/components/ngt-content/ngt-content.module.js +15 -15
  94. package/esm2015/components/ngt-datatable/ngt-datatable.component.js +400 -400
  95. package/esm2015/components/ngt-datatable/ngt-datatable.module.js +58 -58
  96. package/esm2015/components/ngt-datatable/ngt-tbody/ngt-tbody.component.js +58 -60
  97. package/esm2015/components/ngt-datatable/ngt-td/ngt-td.component.js +63 -63
  98. package/esm2015/components/ngt-datatable/ngt-td-check/ngt-td-check.component.js +102 -102
  99. package/esm2015/components/ngt-datatable/ngt-th/ngt-th.component.js +192 -192
  100. package/esm2015/components/ngt-datatable/ngt-th-check/ngt-th-check.component.js +87 -87
  101. package/esm2015/components/ngt-datatable/ngt-thead/ngt-thead.component.js +56 -58
  102. package/esm2015/components/ngt-datatable/ngt-tr/ngt-tr.component.js +76 -76
  103. package/esm2015/components/ngt-date/ngt-date.component.js +354 -352
  104. package/esm2015/components/ngt-date/ngt-date.module.js +25 -25
  105. package/esm2015/components/ngt-dropdown/ngt-dropdown-container/ngt-dropdown-container.component.js +20 -20
  106. package/esm2015/components/ngt-dropdown/ngt-dropdown.component.js +165 -165
  107. package/esm2015/components/ngt-dropdown/ngt-dropdown.module.js +16 -16
  108. package/esm2015/components/ngt-dropzone/custom-dropzone-preview/custom-dropzone-preview.component.js +47 -47
  109. package/esm2015/components/ngt-dropzone/ngt-dropzone-file-viewer/ngt-dropzone-file-viewer.component.js +46 -45
  110. package/esm2015/components/ngt-dropzone/ngt-dropzone-view/ngt-dropzone-view.component.js +67 -67
  111. package/esm2015/components/ngt-dropzone/ngt-dropzone.component.js +411 -411
  112. package/esm2015/components/ngt-dropzone/ngt-dropzone.module.js +37 -37
  113. package/esm2015/components/ngt-floating-button/ngt-floating-button.component.js +94 -94
  114. package/esm2015/components/ngt-floating-button/ngt-floating-button.module.js +19 -19
  115. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.component.js +23 -23
  116. package/esm2015/components/ngt-form/ngt-form-validation-message/ngt-form-validation-message.module.js +15 -15
  117. package/esm2015/components/ngt-form/ngt-form.component.js +181 -181
  118. package/esm2015/components/ngt-form/ngt-form.module.js +17 -17
  119. package/esm2015/components/ngt-header-nav/ngt-header-nav.component.js +38 -38
  120. package/esm2015/components/ngt-header-nav/ngt-header-nav.module.js +15 -15
  121. package/esm2015/components/ngt-helper/ngt-helper.component.js +44 -24
  122. package/esm2015/components/ngt-helper/ngt-helper.module.js +19 -19
  123. package/esm2015/components/ngt-input/ngt-input.component.js +610 -608
  124. package/esm2015/components/ngt-input/ngt-input.module.js +28 -28
  125. package/esm2015/components/ngt-modal/ngt-modal-body/ngt-modal-body.component.js +11 -11
  126. package/esm2015/components/ngt-modal/ngt-modal-footer/ngt-modal-footer.component.js +11 -11
  127. package/esm2015/components/ngt-modal/ngt-modal-header/ngt-modal-header.component.js +40 -40
  128. package/esm2015/components/ngt-modal/ngt-modal.component.js +79 -79
  129. package/esm2015/components/ngt-modal/ngt-modal.module.js +28 -28
  130. package/esm2015/components/ngt-multi-select/ngt-multi-select.component.js +392 -392
  131. package/esm2015/components/ngt-multi-select/ngt-multi-select.module.js +33 -33
  132. package/esm2015/components/ngt-pagination/ngt-pagination.component.js +172 -172
  133. package/esm2015/components/ngt-pagination/ngt-pagination.module.js +23 -23
  134. package/esm2015/components/ngt-portlet/ngt-portlet-body/ngt-portlet-body.component.js +32 -32
  135. package/esm2015/components/ngt-portlet/ngt-portlet-footer/ngt-portlet-footer.component.js +33 -33
  136. package/esm2015/components/ngt-portlet/ngt-portlet-header/ngt-portlet-header.component.js +47 -45
  137. package/esm2015/components/ngt-portlet/ngt-portlet.component.js +58 -58
  138. package/esm2015/components/ngt-portlet/ngt-portlet.module.js +32 -32
  139. package/esm2015/components/ngt-radio-button/ngt-radio-button-container/ngt-radio-button-container.component.js +19 -19
  140. package/esm2015/components/ngt-radio-button/ngt-radio-button.component.js +97 -97
  141. package/esm2015/components/ngt-radio-button/ngt-radio-button.module.js +18 -18
  142. package/esm2015/components/ngt-section/ngt-section.component.js +98 -98
  143. package/esm2015/components/ngt-section/ngt-section.module.js +21 -21
  144. package/esm2015/components/ngt-select/ngt-select.component.js +467 -465
  145. package/esm2015/components/ngt-select/ngt-select.directive.js +35 -35
  146. package/esm2015/components/ngt-select/ngt-select.module.js +40 -40
  147. package/esm2015/components/ngt-shining/ngt-shining.component.js +41 -41
  148. package/esm2015/components/ngt-shining/ngt-shining.module.js +15 -15
  149. package/esm2015/components/ngt-sidenav/ngt-sidenav.component.js +123 -123
  150. package/esm2015/components/ngt-sidenav/ngt-sidenav.module.js +15 -15
  151. package/esm2015/components/ngt-slider/ngt-slider.component.js +82 -82
  152. package/esm2015/components/ngt-slider/ngt-slider.module.js +17 -17
  153. package/esm2015/components/ngt-svg/ngt-svg.component.js +52 -52
  154. package/esm2015/components/ngt-svg/ngt-svg.module.js +19 -19
  155. package/esm2015/components/ngt-tag/ngt-tag.component.js +36 -36
  156. package/esm2015/components/ngt-tag/ngt-tag.module.js +17 -17
  157. package/esm2015/components/ngt-textarea/ngt-textarea.component.js +211 -209
  158. package/esm2015/components/ngt-textarea/ngt-textarea.module.js +24 -24
  159. package/esm2015/components/ngt-validation/ngt-validation.component.js +24 -24
  160. package/esm2015/components/ngt-validation/ngt-validation.module.js +15 -15
  161. package/esm2015/directives/ngt-stylizable/ngt-stylizable.directive.js +227 -220
  162. package/esm2015/directives/ngt-stylizable/ngt-stylizable.module.js +15 -15
  163. package/esm2015/enums/size.enum.js +11 -11
  164. package/esm2015/helpers/enum/enum.js +7 -7
  165. package/esm2015/helpers/form/form.js +14 -14
  166. package/esm2015/helpers/routing/route.js +11 -11
  167. package/esm2015/helpers/uuid.js +10 -10
  168. package/esm2015/ng-tailwind.js +10 -10
  169. package/esm2015/public-api.js +117 -117
  170. package/esm2015/services/http/ngt-attachment-http.service.js +3 -3
  171. package/esm2015/services/http/ngt-http-form.service.js +3 -3
  172. package/esm2015/services/http/ngt-http-resource.service.js +3 -3
  173. package/esm2015/services/http/ngt-http-validation.service.js +4 -4
  174. package/esm2015/services/http/ngt-http.service.js +3 -3
  175. package/esm2015/services/http/ngt-translate.service.js +3 -3
  176. package/esm2015/services/ngt-stylizable/ngt-stylizable.service.js +273 -266
  177. package/fesm2015/ng-tailwind.js +6404 -6365
  178. package/fesm2015/ng-tailwind.js.map +1 -1
  179. package/helpers/enum/enum.d.ts +1 -1
  180. package/helpers/form/form.d.ts +4 -4
  181. package/helpers/routing/route.d.ts +2 -2
  182. package/helpers/uuid.d.ts +1 -1
  183. package/ng-tailwind.d.ts +10 -10
  184. package/ng-tailwind.metadata.json +1 -1
  185. package/package.json +1 -1
  186. package/public-api.d.ts +80 -80
  187. package/services/http/ngt-attachment-http.service.d.ts +10 -10
  188. package/services/http/ngt-http-form.service.d.ts +5 -5
  189. package/services/http/ngt-http-resource.service.d.ts +12 -12
  190. package/services/http/ngt-http-validation.service.d.ts +10 -10
  191. package/services/http/ngt-http.service.d.ts +27 -27
  192. package/services/http/ngt-translate.service.d.ts +27 -27
  193. package/services/ngt-stylizable/ngt-stylizable.service.d.ts +96 -93
@@ -1,266 +1,273 @@
1
- export class NgtStylizableService {
2
- get color() {
3
- return this._color;
4
- }
5
- set color(color) {
6
- if (color.bg) {
7
- color.bg = this.getQualifiedValue('bg-', color.bg);
8
- }
9
- if (color.text) {
10
- color.text = this.getQualifiedValue('text-', color.text);
11
- }
12
- if (color.border) {
13
- color.border = this.getQualifiedValue('border-', color.border);
14
- }
15
- this._color = color;
16
- }
17
- set textColor(textColor) {
18
- this._color = this._color ? this._color : {};
19
- this._color.text = this.getQualifiedValue('text-', textColor);
20
- }
21
- set bgColor(bgColor) {
22
- this._color = this._color ? this._color : {};
23
- this._color.bg = this.getQualifiedValue('bg-', bgColor);
24
- }
25
- set borderColor(borderColor) {
26
- this._color = this._color ? this._color : {};
27
- this._color.border = this.getQualifiedValue('border-', borderColor);
28
- }
29
- get h() {
30
- return this._h;
31
- }
32
- set h(h) {
33
- this._h = this.getQualifiedValue('h-', h);
34
- }
35
- get w() {
36
- return this._w;
37
- }
38
- set w(w) {
39
- this._w = this.getQualifiedValue('w-', w);
40
- }
41
- get p() {
42
- return this._p;
43
- }
44
- set p(p) {
45
- this._p = this.getQualifiedValue('p-', p);
46
- }
47
- get px() {
48
- return this._px;
49
- }
50
- set px(px) {
51
- this._px = this.getQualifiedValue('px-', px);
52
- }
53
- get py() {
54
- return this._py;
55
- }
56
- set py(py) {
57
- this._py = this.getQualifiedValue('py-', py);
58
- }
59
- get pt() {
60
- return this._pt;
61
- }
62
- set pt(pt) {
63
- this._pt = this.getQualifiedValue('pt-', pt);
64
- }
65
- get pr() {
66
- return this._pr;
67
- }
68
- set pr(pr) {
69
- this._pr = this.getQualifiedValue('pr-', pr);
70
- }
71
- get pb() {
72
- return this._pb;
73
- }
74
- set pb(pb) {
75
- this._pb = this.getQualifiedValue('pb-', pb);
76
- }
77
- get pl() {
78
- return this._pl;
79
- }
80
- set pl(pl) {
81
- this._pl = this.getQualifiedValue('pl-', pl);
82
- }
83
- get m() {
84
- return this._m;
85
- }
86
- set m(m) {
87
- this._m = this.getQualifiedValue('m-', m);
88
- }
89
- get mx() {
90
- return this._mx;
91
- }
92
- set mx(mx) {
93
- this._mx = this.getQualifiedValue('mx-', mx);
94
- }
95
- get my() {
96
- return this._my;
97
- }
98
- set my(my) {
99
- this._my = this.getQualifiedValue('my-', my);
100
- }
101
- get mt() {
102
- return this._mt;
103
- }
104
- set mt(mt) {
105
- this._mt = this.getQualifiedValue('mt-', mt);
106
- }
107
- get mr() {
108
- return this._mr;
109
- }
110
- set mr(mr) {
111
- this._mr = this.getQualifiedValue('mr-', mr);
112
- }
113
- get mb() {
114
- return this._mb;
115
- }
116
- set mb(mb) {
117
- this._mb = this.getQualifiedValue('mb-', mb);
118
- }
119
- get ml() {
120
- return this._ml;
121
- }
122
- set ml(ml) {
123
- this._ml = this.getQualifiedValue('ml-', ml);
124
- }
125
- get border() {
126
- return this._border;
127
- }
128
- set border(border) {
129
- this._border = this.getQualifiedValue('border', border);
130
- }
131
- get shadow() {
132
- return this._shadow;
133
- }
134
- set shadow(shadow) {
135
- this._shadow = this.getQualifiedValue('shadow', shadow);
136
- }
137
- get rounded() {
138
- return this._rounded;
139
- }
140
- set rounded(rounded) {
141
- this._rounded = this.getQualifiedValue('rounded', rounded);
142
- }
143
- get font() {
144
- return this._font;
145
- }
146
- set font(font) {
147
- this._font = this.getQualifiedValue('font', font);
148
- }
149
- get text() {
150
- return this._text;
151
- }
152
- set text(text) {
153
- this._text = this.getQualifiedValue('text', text);
154
- }
155
- get breakWords() {
156
- return this._breakWords;
157
- }
158
- set breakWords(breakWords) {
159
- this._breakWords = this.getQualifiedValue('break', breakWords);
160
- }
161
- get overflow() {
162
- return this._overflow;
163
- }
164
- set overflow(overflow) {
165
- this._overflow = this.getQualifiedValue('overflow', overflow);
166
- }
167
- get position() {
168
- return this._position;
169
- }
170
- set position(position) {
171
- this._position = position;
172
- }
173
- get justifyContent() {
174
- return this._justifyContent;
175
- }
176
- set justifyContent(justifyContent) {
177
- this._justifyContent = this.getQualifiedValue('justify', justifyContent);
178
- }
179
- get cursor() {
180
- return this._cursor;
181
- }
182
- set cursor(cursor) {
183
- this._cursor = this.getQualifiedValue('cursor', cursor);
184
- }
185
- load(injector, style, defaultValue = null, inheritanceStyles = []) {
186
- let ngtGlobalStyle = injector.get('NgtStyleGlobal', {});
187
- defaultValue = defaultValue ? defaultValue : {};
188
- let requestedStyle = injector.get(style + 'Style', defaultValue);
189
- this.loadObjectProperties(this, ngtGlobalStyle, this.getAllowedKeys(ngtGlobalStyle));
190
- inheritanceStyles.forEach(style => {
191
- let requestedStyle = injector.get(style, {});
192
- this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));
193
- });
194
- this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));
195
- }
196
- compile(styles) {
197
- return styles
198
- .map((style) => this.getQualifiedStyle(style))
199
- .join(' ');
200
- }
201
- loadObjectProperties(targetObject, object, properties) {
202
- properties.forEach((key) => {
203
- if (typeof (object[key]) === 'object') {
204
- targetObject[key] = targetObject[key] ? targetObject[key] : {};
205
- targetObject[key] = this.loadObjectProperties(targetObject[key], object[key], Object.keys(object[key]));
206
- }
207
- else {
208
- targetObject[key] = object[key];
209
- }
210
- });
211
- return targetObject;
212
- }
213
- getQualifiedStyle(style) {
214
- if (!style.includes('color')) {
215
- return this['_' + style];
216
- }
217
- switch (style) {
218
- case 'color.bg': return this._color.bg;
219
- case 'color.text': return this._color.text;
220
- case 'color.border': return this._color.border;
221
- }
222
- }
223
- getAllowedKeys(style) {
224
- let keys = Object.keys(style);
225
- if (Array.isArray(keys)) {
226
- return keys.filter(key => [
227
- 'color',
228
- 'h',
229
- 'w',
230
- 'p',
231
- 'px',
232
- 'py',
233
- 'pt',
234
- 'pr',
235
- 'pb',
236
- 'pl',
237
- 'm',
238
- 'mx',
239
- 'my',
240
- 'mt',
241
- 'mr',
242
- 'mb',
243
- 'ml',
244
- 'border',
245
- 'shadow',
246
- 'rounded',
247
- 'font',
248
- 'text',
249
- 'breakWords',
250
- 'overflow',
251
- 'position',
252
- 'justifyContent',
253
- 'cursor',
254
- ].includes(key));
255
- }
256
- }
257
- getQualifiedValue(requiredPrefix, value) {
258
- value.split(' ').forEach((item) => {
259
- if (!item.includes(requiredPrefix)) {
260
- throw new Error('Invalid class [' + item + '], must have [' + requiredPrefix + ']');
261
- }
262
- });
263
- return value;
264
- }
265
- }
266
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXN0eWxpemFibGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxvQkFBb0I7SUE2QjdCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsS0FBSztRQUNsQixJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDVixLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ1osS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1RDtRQUVELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNkLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsU0FBUztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxPQUFPO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQVcsV0FBVyxDQUFDLFdBQVc7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxD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QyxDQUFDO2FBQ3ZGO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgTmd0U3R5bGl6YWJsZVNlcnZpY2Uge1xuICAgIHByaXZhdGUgX2NvbG9yOiBhbnk7XG4gICAgcHJpdmF0ZSBfaDogc3RyaW5nO1xuICAgIHByaXZhdGUgX3c6IHN0cmluZztcbiAgICBwcml2YXRlIF9wOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfcHg6IHN0cmluZztcbiAgICBwcml2YXRlIF9weTogc3RyaW5nO1xuICAgIHByaXZhdGUgX3B0OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfcHI6IHN0cmluZztcbiAgICBwcml2YXRlIF9wYjogc3RyaW5nO1xuICAgIHByaXZhdGUgX3BsOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfbTogc3RyaW5nO1xuICAgIHByaXZhdGUgX214OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfbXk6IHN0cmluZztcbiAgICBwcml2YXRlIF9tdDogc3RyaW5nO1xuICAgIHByaXZhdGUgX21yOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfbWI6IHN0cmluZztcbiAgICBwcml2YXRlIF9tbDogc3RyaW5nO1xuICAgIHByaXZhdGUgX2JvcmRlcjogc3RyaW5nO1xuICAgIHByaXZhdGUgX3NoYWRvdzogc3RyaW5nO1xuICAgIHByaXZhdGUgX3JvdW5kZWQ6IHN0cmluZztcbiAgICBwcml2YXRlIF9mb250OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfdGV4dDogc3RyaW5nO1xuICAgIHByaXZhdGUgX2JyZWFrV29yZHM6IHN0cmluZztcbiAgICBwcml2YXRlIF9vdmVyZmxvdzogc3RyaW5nO1xuICAgIHByaXZhdGUgX3Bvc2l0aW9uOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBfanVzdGlmeUNvbnRlbnQ6IHN0cmluZztcbiAgICBwcml2YXRlIF9jdXJzb3I6IHN0cmluZztcblxuICAgIHB1YmxpYyBnZXQgY29sb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2xvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGNvbG9yKGNvbG9yKSB7XG4gICAgICAgIGlmIChjb2xvci5iZykge1xuICAgICAgICAgICAgY29sb3IuYmcgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdiZy0nLCBjb2xvci5iZyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sb3IudGV4dCkge1xuICAgICAgICAgICAgY29sb3IudGV4dCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3RleHQtJywgY29sb3IudGV4dCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoY29sb3IuYm9yZGVyKSB7XG4gICAgICAgICAgICBjb2xvci5ib3JkZXIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdib3JkZXItJywgY29sb3IuYm9yZGVyKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX2NvbG9yID0gY29sb3I7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCB0ZXh0Q29sb3IodGV4dENvbG9yKSB7XG4gICAgICAgIHRoaXMuX2NvbG9yID0gdGhpcy5fY29sb3IgPyB0aGlzLl9jb2xvciA6IHt9O1xuICAgICAgICB0aGlzLl9jb2xvci50ZXh0ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgndGV4dC0nLCB0ZXh0Q29sb3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYmdDb2xvcihiZ0NvbG9yKSB7XG4gICAgICAgIHRoaXMuX2NvbG9yID0gdGhpcy5fY29sb3IgPyB0aGlzLl9jb2xvciA6IHt9O1xuICAgICAgICB0aGlzLl9jb2xvci5iZyA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2JnLScsIGJnQ29sb3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgYm9yZGVyQ29sb3IoYm9yZGVyQ29sb3IpIHtcbiAgICAgICAgdGhpcy5fY29sb3IgPSB0aGlzLl9jb2xvciA/IHRoaXMuX2NvbG9yIDoge307XG4gICAgICAgIHRoaXMuX2NvbG9yLmJvcmRlciA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2JvcmRlci0nLCBib3JkZXJDb2xvcik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBoKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgaChoOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5faCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2gtJywgaCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB3KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl93O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdyh3OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdyA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3ctJywgdyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcChwOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3AtJywgcCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBweCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHg7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBweChweDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3B4ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgncHgtJywgcHgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcHkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3B5O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcHkocHk6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9weSA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3B5LScsIHB5KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHB0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHB0KHB0OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcHQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdwdC0nLCBwdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBwcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHI7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBwcihwcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX3ByID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgncHItJywgcHIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgcGIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BiO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgcGIocGI6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wYiA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3BiLScsIHBiKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBsKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHBsKHBsOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcGwgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdwbC0nLCBwbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgbShtOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbSA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ20tJywgbSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBteCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbXg7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBteChteDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX214ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnbXgtJywgbXgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbXkoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX215O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgbXkobXk6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9teSA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ215LScsIG15KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG10KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IG10KG10OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbXQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdtdC0nLCBtdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBtcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbXI7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBtcihtcjogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX21yID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnbXItJywgbXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21iO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgbWIobWI6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9tYiA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ21iLScsIG1iKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1sKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IG1sKG1sOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fbWwgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdtbC0nLCBtbCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBib3JkZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JvcmRlcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGJvcmRlcihib3JkZXI6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9ib3JkZXIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdib3JkZXInLCBib3JkZXIpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2hhZG93KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaGFkb3c7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBzaGFkb3coc2hhZG93OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fc2hhZG93ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnc2hhZG93Jywgc2hhZG93KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJvdW5kZWQoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdW5kZWQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCByb3VuZGVkKHJvdW5kZWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9yb3VuZGVkID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgncm91bmRlZCcsIHJvdW5kZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZm9udCgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9udDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGZvbnQoZm9udDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2ZvbnQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdmb250JywgZm9udCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0ZXh0KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl90ZXh0O1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgdGV4dCh0ZXh0OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fdGV4dCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3RleHQnLCB0ZXh0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGJyZWFrV29yZHMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JyZWFrV29yZHM7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBicmVha1dvcmRzKGJyZWFrV29yZHM6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9icmVha1dvcmRzID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnYnJlYWsnLCBicmVha1dvcmRzKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG92ZXJmbG93KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vdmVyZmxvdztcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IG92ZXJmbG93KG92ZXJmbG93OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fb3ZlcmZsb3cgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdvdmVyZmxvdycsIG92ZXJmbG93KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBvc2l0aW9uKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9wb3NpdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHBvc2l0aW9uKHBvc2l0aW9uOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fcG9zaXRpb24gPSBwb3NpdGlvbjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGp1c3RpZnlDb250ZW50KCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9qdXN0aWZ5Q29udGVudDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGp1c3RpZnlDb250ZW50KGp1c3RpZnlDb250ZW50OiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fanVzdGlmeUNvbnRlbnQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdqdXN0aWZ5JywganVzdGlmeUNvbnRlbnQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY3Vyc29yKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXJzb3I7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCBjdXJzb3IoY3Vyc29yOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fY3Vyc29yID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnY3Vyc29yJywgY3Vyc29yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbG9hZChpbmplY3RvcjogSW5qZWN0b3IsIHN0eWxlOiBzdHJpbmcsIGRlZmF1bHRWYWx1ZSA9IG51bGwsIGluaGVyaXRhbmNlU3R5bGVzID0gW10pIHtcbiAgICAgICAgbGV0IG5ndEdsb2JhbFN0eWxlID0gaW5qZWN0b3IuZ2V0KCdOZ3RTdHlsZUdsb2JhbCcsIHt9KTtcblxuICAgICAgICBkZWZhdWx0VmFsdWUgPSBkZWZhdWx0VmFsdWUgPyBkZWZhdWx0VmFsdWUgOiB7fTtcblxuICAgICAgICBsZXQgcmVxdWVzdGVkU3R5bGUgPSA8Tmd0U3R5bGl6YWJsZVNlcnZpY2U+aW5qZWN0b3IuZ2V0KHN0eWxlICsgJ1N0eWxlJywgZGVmYXVsdFZhbHVlKTtcblxuICAgICAgICB0aGlzLmxvYWRPYmplY3RQcm9wZXJ0aWVzKHRoaXMsIG5ndEdsb2JhbFN0eWxlLCB0aGlzLmdldEFsbG93ZWRLZXlzKG5ndEdsb2JhbFN0eWxlKSk7XG5cbiAgICAgICAgaW5oZXJpdGFuY2VTdHlsZXMuZm9yRWFjaChzdHlsZSA9PiB7XG4gICAgICAgICAgICBsZXQgcmVxdWVzdGVkU3R5bGUgPSA8Tmd0U3R5bGl6YWJsZVNlcnZpY2U+aW5qZWN0b3IuZ2V0KHN0eWxlLCB7fSk7XG5cbiAgICAgICAgICAgIHRoaXMubG9hZE9iamVjdFByb3BlcnRpZXModGhpcywgcmVxdWVzdGVkU3R5bGUsIHRoaXMuZ2V0QWxsb3dlZEtleXMocmVxdWVzdGVkU3R5bGUpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5sb2FkT2JqZWN0UHJvcGVydGllcyh0aGlzLCByZXF1ZXN0ZWRTdHlsZSwgdGhpcy5nZXRBbGxvd2VkS2V5cyhyZXF1ZXN0ZWRTdHlsZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb21waWxlKHN0eWxlczogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICByZXR1cm4gc3R5bGVzXG4gICAgICAgICAgICAubWFwKChzdHlsZTogc3RyaW5nKSA9PiB0aGlzLmdldFF1YWxpZmllZFN0eWxlKHN0eWxlKSlcbiAgICAgICAgICAgIC5qb2luKCcgJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBsb2FkT2JqZWN0UHJvcGVydGllcyh0YXJnZXRPYmplY3QsIG9iamVjdCwgcHJvcGVydGllczogQXJyYXk8c3RyaW5nPikge1xuICAgICAgICBwcm9wZXJ0aWVzLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiAob2JqZWN0W2tleV0pID09PSAnb2JqZWN0Jykge1xuICAgICAgICAgICAgICAgIHRhcmdldE9iamVjdFtrZXldID0gdGFyZ2V0T2JqZWN0W2tleV0gPyB0YXJnZXRPYmplY3Rba2V5XSA6IHt9O1xuICAgICAgICAgICAgICAgIHRhcmdldE9iamVjdFtrZXldID0gdGhpcy5sb2FkT2JqZWN0UHJvcGVydGllcyh0YXJnZXRPYmplY3Rba2V5XSwgb2JqZWN0W2tleV0sIE9iamVjdC5rZXlzKG9iamVjdFtrZXldKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRhcmdldE9iamVjdFtrZXldID0gb2JqZWN0W2tleV07XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0YXJnZXRPYmplY3Q7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRRdWFsaWZpZWRTdHlsZShzdHlsZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICghc3R5bGUuaW5jbHVkZXMoJ2NvbG9yJykpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzWydfJyArIHN0eWxlXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHN3aXRjaCAoc3R5bGUpIHtcbiAgICAgICAgICAgIGNhc2UgJ2NvbG9yLmJnJzogcmV0dXJuIHRoaXMuX2NvbG9yLmJnO1xuICAgICAgICAgICAgY2FzZSAnY29sb3IudGV4dCc6IHJldHVybiB0aGlzLl9jb2xvci50ZXh0O1xuICAgICAgICAgICAgY2FzZSAnY29sb3IuYm9yZGVyJzogcmV0dXJuIHRoaXMuX2NvbG9yLmJvcmRlcjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsb3dlZEtleXMoc3R5bGU6IE5ndFN0eWxpemFibGVTZXJ2aWNlKSB7XG4gICAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMoc3R5bGUpO1xuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtleXMpKSB7XG4gICAgICAgICAgICByZXR1cm4ga2V5cy5maWx0ZXIoa2V5ID0+IFtcbiAgICAgICAgICAgICAgICAnY29sb3InLFxuICAgICAgICAgICAgICAgICdoJyxcbiAgICAgICAgICAgICAgICAndycsXG4gICAgICAgICAgICAgICAgJ3AnLFxuICAgICAgICAgICAgICAgICdweCcsXG4gICAgICAgICAgICAgICAgJ3B5JyxcbiAgICAgICAgICAgICAgICAncHQnLFxuICAgICAgICAgICAgICAgICdwcicsXG4gICAgICAgICAgICAgICAgJ3BiJyxcbiAgICAgICAgICAgICAgICAncGwnLFxuICAgICAgICAgICAgICAgICdtJyxcbiAgICAgICAgICAgICAgICAnbXgnLFxuICAgICAgICAgICAgICAgICdteScsXG4gICAgICAgICAgICAgICAgJ210JyxcbiAgICAgICAgICAgICAgICAnbXInLFxuICAgICAgICAgICAgICAgICdtYicsXG4gICAgICAgICAgICAgICAgJ21sJyxcbiAgICAgICAgICAgICAgICAnYm9yZGVyJyxcbiAgICAgICAgICAgICAgICAnc2hhZG93JyxcbiAgICAgICAgICAgICAgICAncm91bmRlZCcsXG4gICAgICAgICAgICAgICAgJ2ZvbnQnLFxuICAgICAgICAgICAgICAgICd0ZXh0JyxcbiAgICAgICAgICAgICAgICAnYnJlYWtXb3JkcycsXG4gICAgICAgICAgICAgICAgJ292ZXJmbG93JyxcbiAgICAgICAgICAgICAgICAncG9zaXRpb24nLFxuICAgICAgICAgICAgICAgICdqdXN0aWZ5Q29udGVudCcsXG4gICAgICAgICAgICAgICAgJ2N1cnNvcicsXG4gICAgICAgICAgICBdLmluY2x1ZGVzKGtleSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRRdWFsaWZpZWRWYWx1ZShyZXF1aXJlZFByZWZpeDogc3RyaW5nLCB2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHZhbHVlLnNwbGl0KCcgJykuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgaWYgKCFpdGVtLmluY2x1ZGVzKHJlcXVpcmVkUHJlZml4KSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignSW52YWxpZCBjbGFzcyBbJyArIGl0ZW0gKyAnXSwgbXVzdCBoYXZlIFsnICsgcmVxdWlyZWRQcmVmaXggKyAnXScpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxufVxuIl19
1
+ export class NgtStylizableService {
2
+ get color() {
3
+ return this._color;
4
+ }
5
+ set color(color) {
6
+ if (color.bg) {
7
+ color.bg = this.getQualifiedValue('bg-', color.bg);
8
+ }
9
+ if (color.text) {
10
+ color.text = this.getQualifiedValue('text-', color.text);
11
+ }
12
+ if (color.border) {
13
+ color.border = this.getQualifiedValue('border-', color.border);
14
+ }
15
+ this._color = color;
16
+ }
17
+ set textColor(textColor) {
18
+ this._color = this._color ? this._color : {};
19
+ this._color.text = this.getQualifiedValue('text-', textColor);
20
+ }
21
+ set bgColor(bgColor) {
22
+ this._color = this._color ? this._color : {};
23
+ this._color.bg = this.getQualifiedValue('bg-', bgColor);
24
+ }
25
+ set borderColor(borderColor) {
26
+ this._color = this._color ? this._color : {};
27
+ this._color.border = this.getQualifiedValue('border-', borderColor);
28
+ }
29
+ get h() {
30
+ return this._h;
31
+ }
32
+ set h(h) {
33
+ this._h = this.getQualifiedValue('h-', h);
34
+ }
35
+ get w() {
36
+ return this._w;
37
+ }
38
+ set w(w) {
39
+ this._w = this.getQualifiedValue('w-', w);
40
+ }
41
+ get p() {
42
+ return this._p;
43
+ }
44
+ set p(p) {
45
+ this._p = this.getQualifiedValue('p-', p);
46
+ }
47
+ get px() {
48
+ return this._px;
49
+ }
50
+ set px(px) {
51
+ this._px = this.getQualifiedValue('px-', px);
52
+ }
53
+ get py() {
54
+ return this._py;
55
+ }
56
+ set py(py) {
57
+ this._py = this.getQualifiedValue('py-', py);
58
+ }
59
+ get pt() {
60
+ return this._pt;
61
+ }
62
+ set pt(pt) {
63
+ this._pt = this.getQualifiedValue('pt-', pt);
64
+ }
65
+ get pr() {
66
+ return this._pr;
67
+ }
68
+ set pr(pr) {
69
+ this._pr = this.getQualifiedValue('pr-', pr);
70
+ }
71
+ get pb() {
72
+ return this._pb;
73
+ }
74
+ set pb(pb) {
75
+ this._pb = this.getQualifiedValue('pb-', pb);
76
+ }
77
+ get pl() {
78
+ return this._pl;
79
+ }
80
+ set pl(pl) {
81
+ this._pl = this.getQualifiedValue('pl-', pl);
82
+ }
83
+ get m() {
84
+ return this._m;
85
+ }
86
+ set m(m) {
87
+ this._m = this.getQualifiedValue('m-', m);
88
+ }
89
+ get mx() {
90
+ return this._mx;
91
+ }
92
+ set mx(mx) {
93
+ this._mx = this.getQualifiedValue('mx-', mx);
94
+ }
95
+ get my() {
96
+ return this._my;
97
+ }
98
+ set my(my) {
99
+ this._my = this.getQualifiedValue('my-', my);
100
+ }
101
+ get mt() {
102
+ return this._mt;
103
+ }
104
+ set mt(mt) {
105
+ this._mt = this.getQualifiedValue('mt-', mt);
106
+ }
107
+ get mr() {
108
+ return this._mr;
109
+ }
110
+ set mr(mr) {
111
+ this._mr = this.getQualifiedValue('mr-', mr);
112
+ }
113
+ get mb() {
114
+ return this._mb;
115
+ }
116
+ set mb(mb) {
117
+ this._mb = this.getQualifiedValue('mb-', mb);
118
+ }
119
+ get ml() {
120
+ return this._ml;
121
+ }
122
+ set ml(ml) {
123
+ this._ml = this.getQualifiedValue('ml-', ml);
124
+ }
125
+ get border() {
126
+ return this._border;
127
+ }
128
+ set border(border) {
129
+ this._border = this.getQualifiedValue('border', border);
130
+ }
131
+ get shadow() {
132
+ return this._shadow;
133
+ }
134
+ set shadow(shadow) {
135
+ this._shadow = this.getQualifiedValue('shadow', shadow);
136
+ }
137
+ get rounded() {
138
+ return this._rounded;
139
+ }
140
+ set rounded(rounded) {
141
+ this._rounded = this.getQualifiedValue('rounded', rounded);
142
+ }
143
+ get font() {
144
+ return this._font;
145
+ }
146
+ set font(font) {
147
+ this._font = this.getQualifiedValue('font', font);
148
+ }
149
+ get text() {
150
+ return this._text;
151
+ }
152
+ set text(text) {
153
+ this._text = this.getQualifiedValue('text', text);
154
+ }
155
+ get breakWords() {
156
+ return this._breakWords;
157
+ }
158
+ set breakWords(breakWords) {
159
+ this._breakWords = this.getQualifiedValue('break', breakWords);
160
+ }
161
+ get overflow() {
162
+ return this._overflow;
163
+ }
164
+ set overflow(overflow) {
165
+ this._overflow = this.getQualifiedValue('overflow', overflow);
166
+ }
167
+ get position() {
168
+ return this._position;
169
+ }
170
+ set position(position) {
171
+ this._position = position;
172
+ }
173
+ get justifyContent() {
174
+ return this._justifyContent;
175
+ }
176
+ set justifyContent(justifyContent) {
177
+ this._justifyContent = this.getQualifiedValue('justify', justifyContent);
178
+ }
179
+ get cursor() {
180
+ return this._cursor;
181
+ }
182
+ set cursor(cursor) {
183
+ this._cursor = this.getQualifiedValue('cursor', cursor);
184
+ }
185
+ get fontCase() {
186
+ return this._fontCase;
187
+ }
188
+ set fontCase(fontCase) {
189
+ this._fontCase = this.getQualifiedValue('', fontCase);
190
+ }
191
+ load(injector, style, defaultValue = null, inheritanceStyles = []) {
192
+ let ngtGlobalStyle = injector.get('NgtStyleGlobal', {});
193
+ defaultValue = defaultValue ? defaultValue : {};
194
+ let requestedStyle = injector.get(style + 'Style', defaultValue);
195
+ this.loadObjectProperties(this, ngtGlobalStyle, this.getAllowedKeys(ngtGlobalStyle));
196
+ inheritanceStyles.forEach(style => {
197
+ let requestedStyle = injector.get(style, {});
198
+ this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));
199
+ });
200
+ this.loadObjectProperties(this, requestedStyle, this.getAllowedKeys(requestedStyle));
201
+ }
202
+ compile(styles) {
203
+ return styles
204
+ .map((style) => this.getQualifiedStyle(style))
205
+ .join(' ');
206
+ }
207
+ loadObjectProperties(targetObject, object, properties) {
208
+ properties.forEach((key) => {
209
+ if (typeof (object[key]) === 'object') {
210
+ targetObject[key] = targetObject[key] ? targetObject[key] : {};
211
+ targetObject[key] = this.loadObjectProperties(targetObject[key], object[key], Object.keys(object[key]));
212
+ }
213
+ else {
214
+ targetObject[key] = object[key];
215
+ }
216
+ });
217
+ return targetObject;
218
+ }
219
+ getQualifiedStyle(style) {
220
+ if (!style.includes('color')) {
221
+ return this['_' + style];
222
+ }
223
+ switch (style) {
224
+ case 'color.bg': return this._color.bg;
225
+ case 'color.text': return this._color.text;
226
+ case 'color.border': return this._color.border;
227
+ }
228
+ }
229
+ getAllowedKeys(style) {
230
+ let keys = Object.keys(style);
231
+ if (Array.isArray(keys)) {
232
+ return keys.filter(key => [
233
+ 'color',
234
+ 'h',
235
+ 'w',
236
+ 'p',
237
+ 'px',
238
+ 'py',
239
+ 'pt',
240
+ 'pr',
241
+ 'pb',
242
+ 'pl',
243
+ 'm',
244
+ 'mx',
245
+ 'my',
246
+ 'mt',
247
+ 'mr',
248
+ 'mb',
249
+ 'ml',
250
+ 'border',
251
+ 'shadow',
252
+ 'rounded',
253
+ 'font',
254
+ 'text',
255
+ 'breakWords',
256
+ 'overflow',
257
+ 'position',
258
+ 'justifyContent',
259
+ 'cursor',
260
+ 'fontCase'
261
+ ].includes(key));
262
+ }
263
+ }
264
+ getQualifiedValue(requiredPrefix, value) {
265
+ value.split(' ').forEach((item) => {
266
+ if (!item.includes(requiredPrefix)) {
267
+ throw new Error('Invalid class [' + item + '], must have [' + requiredPrefix + ']');
268
+ }
269
+ });
270
+ return value;
271
+ }
272
+ }
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd0LXN0eWxpemFibGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXRhaWx3aW5kL3NyYy9zZXJ2aWNlcy9uZ3Qtc3R5bGl6YWJsZS9uZ3Qtc3R5bGl6YWJsZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxvQkFBb0I7SUE4QjdCLElBQVcsS0FBSztRQUNaLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBVyxLQUFLLENBQUMsS0FBSztRQUNsQixJQUFJLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDVixLQUFLLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQ3REO1FBRUQsSUFBSSxLQUFLLENBQUMsSUFBSSxFQUFFO1lBQ1osS0FBSyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1RDtRQUVELElBQUksS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNkLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDbEU7UUFFRCxJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBVyxTQUFTLENBQUMsU0FBUztRQUMxQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxJQUFXLE9BQU8sQ0FBQyxPQUFPO1FBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQVcsV0FBVyxDQUFDLFdBQVc7UUFDOUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztJQUN4RSxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxDQUFDO1FBQ1IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxJQUFXLENBQUMsQ0FBQyxDQUFTO1FBQ2xCLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBVyxFQUFFO1FBQ1QsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFXLEVBQUUsQ0FBQyxFQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxD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QyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRTtnQkFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsZ0JBQWdCLEdBQUcsY0FBYyxHQUFHLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZGO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IGNsYXNzIE5ndFN0eWxpemFibGVTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgX2NvbG9yOiBhbnk7XHJcbiAgICBwcml2YXRlIF9oOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF93OiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9wOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9weDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfcHk6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3B0OiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9wcjogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfcGI6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3BsOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9tOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9teDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfbXk6IHN0cmluZztcclxuICAgIHByaXZhdGUgX210OiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9tcjogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfbWI6IHN0cmluZztcclxuICAgIHByaXZhdGUgX21sOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9ib3JkZXI6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3NoYWRvdzogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfcm91bmRlZDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfZm9udDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfdGV4dDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfYnJlYWtXb3Jkczogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfb3ZlcmZsb3c6IHN0cmluZztcclxuICAgIHByaXZhdGUgX3Bvc2l0aW9uOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9qdXN0aWZ5Q29udGVudDogc3RyaW5nO1xyXG4gICAgcHJpdmF0ZSBfY3Vyc29yOiBzdHJpbmc7XHJcbiAgICBwcml2YXRlIF9mb250Q2FzZTogc3RyaW5nO1xyXG5cclxuICAgIHB1YmxpYyBnZXQgY29sb3IoKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgY29sb3IoY29sb3IpIHtcclxuICAgICAgICBpZiAoY29sb3IuYmcpIHtcclxuICAgICAgICAgICAgY29sb3IuYmcgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdiZy0nLCBjb2xvci5iZyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoY29sb3IudGV4dCkge1xyXG4gICAgICAgICAgICBjb2xvci50ZXh0ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgndGV4dC0nLCBjb2xvci50ZXh0KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChjb2xvci5ib3JkZXIpIHtcclxuICAgICAgICAgICAgY29sb3IuYm9yZGVyID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnYm9yZGVyLScsIGNvbG9yLmJvcmRlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9jb2xvciA9IGNvbG9yO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgdGV4dENvbG9yKHRleHRDb2xvcikge1xyXG4gICAgICAgIHRoaXMuX2NvbG9yID0gdGhpcy5fY29sb3IgPyB0aGlzLl9jb2xvciA6IHt9O1xyXG4gICAgICAgIHRoaXMuX2NvbG9yLnRleHQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCd0ZXh0LScsIHRleHRDb2xvcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBiZ0NvbG9yKGJnQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9jb2xvciA9IHRoaXMuX2NvbG9yID8gdGhpcy5fY29sb3IgOiB7fTtcclxuICAgICAgICB0aGlzLl9jb2xvci5iZyA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2JnLScsIGJnQ29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgYm9yZGVyQ29sb3IoYm9yZGVyQ29sb3IpIHtcclxuICAgICAgICB0aGlzLl9jb2xvciA9IHRoaXMuX2NvbG9yID8gdGhpcy5fY29sb3IgOiB7fTtcclxuICAgICAgICB0aGlzLl9jb2xvci5ib3JkZXIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdib3JkZXItJywgYm9yZGVyQ29sb3IpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgaCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9oO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgaChoOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9oID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnaC0nLCBoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHcoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fdztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHcodzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fdyA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3ctJywgdyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3A7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBwKHA6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3AgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdwLScsIHApO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcHgoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcHg7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBweChweDogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fcHggPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdweC0nLCBweCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBweSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9weTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHB5KHB5OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9weSA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3B5LScsIHB5KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHB0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3B0O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgcHQocHQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3B0ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgncHQtJywgcHQpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgcHIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fcHI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBwcihwcjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fcHIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdwci0nLCBwcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBwYigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9wYjtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHBiKHBiOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9wYiA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3BiLScsIHBiKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHBsKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3BsO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgcGwocGw6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3BsID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgncGwtJywgcGwpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgbShtOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnbS0nLCBtKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IG14KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX214O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgbXgobXg6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX214ID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnbXgtJywgbXgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbXkoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbXk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBteShteTogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fbXkgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdteS0nLCBteSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBtdCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tdDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IG10KG10OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tdCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ210LScsIG10KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IG1yKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX21yO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgbXIobXI6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX21yID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnbXItJywgbXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgbWIoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fbWI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBtYihtYjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fbWIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdtYi0nLCBtYik7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBtbCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9tbDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IG1sKG1sOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9tbCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ21sLScsIG1sKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGJvcmRlcigpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9ib3JkZXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBib3JkZXIoYm9yZGVyOiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9ib3JkZXIgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdib3JkZXInLCBib3JkZXIpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgc2hhZG93KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NoYWRvdztcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IHNoYWRvdyhzaGFkb3c6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3NoYWRvdyA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ3NoYWRvdycsIHNoYWRvdyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCByb3VuZGVkKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3JvdW5kZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCByb3VuZGVkKHJvdW5kZWQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3JvdW5kZWQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdyb3VuZGVkJywgcm91bmRlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBmb250KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvbnQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBmb250KGZvbnQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2ZvbnQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdmb250JywgZm9udCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCB0ZXh0KCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RleHQ7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCB0ZXh0KHRleHQ6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3RleHQgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCd0ZXh0JywgdGV4dCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBicmVha1dvcmRzKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2JyZWFrV29yZHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBicmVha1dvcmRzKGJyZWFrV29yZHM6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2JyZWFrV29yZHMgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdicmVhaycsIGJyZWFrV29yZHMpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXQgb3ZlcmZsb3coKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fb3ZlcmZsb3c7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHNldCBvdmVyZmxvdyhvdmVyZmxvdzogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fb3ZlcmZsb3cgPSB0aGlzLmdldFF1YWxpZmllZFZhbHVlKCdvdmVyZmxvdycsIG92ZXJmbG93KTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IHBvc2l0aW9uKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Bvc2l0aW9uO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgcG9zaXRpb24ocG9zaXRpb246IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX3Bvc2l0aW9uID0gcG9zaXRpb247XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBqdXN0aWZ5Q29udGVudCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9qdXN0aWZ5Q29udGVudDtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0IGp1c3RpZnlDb250ZW50KGp1c3RpZnlDb250ZW50OiBzdHJpbmcpIHtcclxuICAgICAgICB0aGlzLl9qdXN0aWZ5Q29udGVudCA9IHRoaXMuZ2V0UXVhbGlmaWVkVmFsdWUoJ2p1c3RpZnknLCBqdXN0aWZ5Q29udGVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldCBjdXJzb3IoKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5fY3Vyc29yO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgY3Vyc29yKGN1cnNvcjogc3RyaW5nKSB7XHJcbiAgICAgICAgdGhpcy5fY3Vyc29yID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnY3Vyc29yJywgY3Vyc29yKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgZ2V0IGZvbnRDYXNlKCk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZvbnRDYXNlO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXQgZm9udENhc2UoZm9udENhc2U6IHN0cmluZykge1xyXG4gICAgICAgIHRoaXMuX2ZvbnRDYXNlID0gdGhpcy5nZXRRdWFsaWZpZWRWYWx1ZSgnJywgZm9udENhc2UpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBsb2FkKGluamVjdG9yOiBJbmplY3Rvciwgc3R5bGU6IHN0cmluZywgZGVmYXVsdFZhbHVlID0gbnVsbCwgaW5oZXJpdGFuY2VTdHlsZXMgPSBbXSkge1xyXG4gICAgICAgIGxldCBuZ3RHbG9iYWxTdHlsZSA9IGluamVjdG9yLmdldCgnTmd0U3R5bGVHbG9iYWwnLCB7fSk7XHJcblxyXG4gICAgICAgIGRlZmF1bHRWYWx1ZSA9IGRlZmF1bHRWYWx1ZSA/IGRlZmF1bHRWYWx1ZSA6IHt9O1xyXG5cclxuICAgICAgICBsZXQgcmVxdWVzdGVkU3R5bGUgPSA8Tmd0U3R5bGl6YWJsZVNlcnZpY2U+aW5qZWN0b3IuZ2V0KHN0eWxlICsgJ1N0eWxlJywgZGVmYXVsdFZhbHVlKTtcclxuXHJcbiAgICAgICAgdGhpcy5sb2FkT2JqZWN0UHJvcGVydGllcyh0aGlzLCBuZ3RHbG9iYWxTdHlsZSwgdGhpcy5nZXRBbGxvd2VkS2V5cyhuZ3RHbG9iYWxTdHlsZSkpO1xyXG5cclxuICAgICAgICBpbmhlcml0YW5jZVN0eWxlcy5mb3JFYWNoKHN0eWxlID0+IHtcclxuICAgICAgICAgICAgbGV0IHJlcXVlc3RlZFN0eWxlID0gPE5ndFN0eWxpemFibGVTZXJ2aWNlPmluamVjdG9yLmdldChzdHlsZSwge30pO1xyXG5cclxuICAgICAgICAgICAgdGhpcy5sb2FkT2JqZWN0UHJvcGVydGllcyh0aGlzLCByZXF1ZXN0ZWRTdHlsZSwgdGhpcy5nZXRBbGxvd2VkS2V5cyhyZXF1ZXN0ZWRTdHlsZSkpO1xyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmxvYWRPYmplY3RQcm9wZXJ0aWVzKHRoaXMsIHJlcXVlc3RlZFN0eWxlLCB0aGlzLmdldEFsbG93ZWRLZXlzKHJlcXVlc3RlZFN0eWxlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGNvbXBpbGUoc3R5bGVzOiBBcnJheTxzdHJpbmc+KSB7XHJcbiAgICAgICAgcmV0dXJuIHN0eWxlc1xyXG4gICAgICAgICAgICAubWFwKChzdHlsZTogc3RyaW5nKSA9PiB0aGlzLmdldFF1YWxpZmllZFN0eWxlKHN0eWxlKSlcclxuICAgICAgICAgICAgLmpvaW4oJyAnKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGxvYWRPYmplY3RQcm9wZXJ0aWVzKHRhcmdldE9iamVjdCwgb2JqZWN0LCBwcm9wZXJ0aWVzOiBBcnJheTxzdHJpbmc+KSB7XHJcbiAgICAgICAgcHJvcGVydGllcy5mb3JFYWNoKChrZXkpID0+IHtcclxuICAgICAgICAgICAgaWYgKHR5cGVvZiAob2JqZWN0W2tleV0pID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0T2JqZWN0W2tleV0gPSB0YXJnZXRPYmplY3Rba2V5XSA/IHRhcmdldE9iamVjdFtrZXldIDoge307XHJcbiAgICAgICAgICAgICAgICB0YXJnZXRPYmplY3Rba2V5XSA9IHRoaXMubG9hZE9iamVjdFByb3BlcnRpZXModGFyZ2V0T2JqZWN0W2tleV0sIG9iamVjdFtrZXldLCBPYmplY3Qua2V5cyhvYmplY3Rba2V5XSkpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgdGFyZ2V0T2JqZWN0W2tleV0gPSBvYmplY3Rba2V5XTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdGFyZ2V0T2JqZWN0O1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UXVhbGlmaWVkU3R5bGUoc3R5bGU6IHN0cmluZykge1xyXG4gICAgICAgIGlmICghc3R5bGUuaW5jbHVkZXMoJ2NvbG9yJykpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRoaXNbJ18nICsgc3R5bGVdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgc3dpdGNoIChzdHlsZSkge1xyXG4gICAgICAgICAgICBjYXNlICdjb2xvci5iZyc6IHJldHVybiB0aGlzLl9jb2xvci5iZztcclxuICAgICAgICAgICAgY2FzZSAnY29sb3IudGV4dCc6IHJldHVybiB0aGlzLl9jb2xvci50ZXh0O1xyXG4gICAgICAgICAgICBjYXNlICdjb2xvci5ib3JkZXInOiByZXR1cm4gdGhpcy5fY29sb3IuYm9yZGVyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEFsbG93ZWRLZXlzKHN0eWxlOiBOZ3RTdHlsaXphYmxlU2VydmljZSkge1xyXG4gICAgICAgIGxldCBrZXlzID0gT2JqZWN0LmtleXMoc3R5bGUpO1xyXG5cclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShrZXlzKSkge1xyXG4gICAgICAgICAgICByZXR1cm4ga2V5cy5maWx0ZXIoa2V5ID0+IFtcclxuICAgICAgICAgICAgICAgICdjb2xvcicsXHJcbiAgICAgICAgICAgICAgICAnaCcsXHJcbiAgICAgICAgICAgICAgICAndycsXHJcbiAgICAgICAgICAgICAgICAncCcsXHJcbiAgICAgICAgICAgICAgICAncHgnLFxyXG4gICAgICAgICAgICAgICAgJ3B5JyxcclxuICAgICAgICAgICAgICAgICdwdCcsXHJcbiAgICAgICAgICAgICAgICAncHInLFxyXG4gICAgICAgICAgICAgICAgJ3BiJyxcclxuICAgICAgICAgICAgICAgICdwbCcsXHJcbiAgICAgICAgICAgICAgICAnbScsXHJcbiAgICAgICAgICAgICAgICAnbXgnLFxyXG4gICAgICAgICAgICAgICAgJ215JyxcclxuICAgICAgICAgICAgICAgICdtdCcsXHJcbiAgICAgICAgICAgICAgICAnbXInLFxyXG4gICAgICAgICAgICAgICAgJ21iJyxcclxuICAgICAgICAgICAgICAgICdtbCcsXHJcbiAgICAgICAgICAgICAgICAnYm9yZGVyJyxcclxuICAgICAgICAgICAgICAgICdzaGFkb3cnLFxyXG4gICAgICAgICAgICAgICAgJ3JvdW5kZWQnLFxyXG4gICAgICAgICAgICAgICAgJ2ZvbnQnLFxyXG4gICAgICAgICAgICAgICAgJ3RleHQnLFxyXG4gICAgICAgICAgICAgICAgJ2JyZWFrV29yZHMnLFxyXG4gICAgICAgICAgICAgICAgJ292ZXJmbG93JyxcclxuICAgICAgICAgICAgICAgICdwb3NpdGlvbicsXHJcbiAgICAgICAgICAgICAgICAnanVzdGlmeUNvbnRlbnQnLFxyXG4gICAgICAgICAgICAgICAgJ2N1cnNvcicsXHJcbiAgICAgICAgICAgICAgICAnZm9udENhc2UnXHJcbiAgICAgICAgICAgIF0uaW5jbHVkZXMoa2V5KSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UXVhbGlmaWVkVmFsdWUocmVxdWlyZWRQcmVmaXg6IHN0cmluZywgdmFsdWU6IHN0cmluZykge1xyXG4gICAgICAgIHZhbHVlLnNwbGl0KCcgJykuZm9yRWFjaCgoaXRlbSkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWl0ZW0uaW5jbHVkZXMocmVxdWlyZWRQcmVmaXgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludmFsaWQgY2xhc3MgWycgKyBpdGVtICsgJ10sIG11c3QgaGF2ZSBbJyArIHJlcXVpcmVkUHJlZml4ICsgJ10nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG5cclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICB9XHJcbn1cclxuIl19