@inspark/inspark-components 1.0.44 → 14.0.1

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 (252) hide show
  1. package/full/components/autocomplete/autocomplete.component.d.ts +12 -1
  2. package/full/components/breadcrumb/breadcrumb.component.d.ts +3 -0
  3. package/full/components/button/button.component.d.ts +5 -1
  4. package/full/components/checkbox/checkbox.component.d.ts +3 -0
  5. package/full/components/communication.service.d.ts +3 -0
  6. package/full/components/component-container/component-container.component.d.ts +3 -0
  7. package/full/components/content-toggle/content-toggle.component.d.ts +3 -0
  8. package/full/components/dropdown/dropdown.component.d.ts +65 -13
  9. package/full/components/empty/empty.component.d.ts +3 -0
  10. package/full/components/file/file.component.d.ts +3 -0
  11. package/full/components/header/header.component.d.ts +3 -0
  12. package/full/components/inline-message/inline-message.component.d.ts +3 -0
  13. package/full/components/input-group/input-group.component.d.ts +3 -0
  14. package/full/components/input-text/input-text.component.d.ts +3 -0
  15. package/full/components/inspark.module.d.ts +47 -0
  16. package/full/components/inspark.shared.d.ts +3 -0
  17. package/full/components/link/link.component.d.ts +5 -1
  18. package/full/components/modal-input-text/modal-input-text.component.d.ts +4 -1
  19. package/full/components/object-tree/object-tree.component.d.ts +3 -0
  20. package/full/components/panel/panel.component.d.ts +3 -0
  21. package/full/components/pie/pie.component.d.ts +3 -0
  22. package/full/components/pie/pie.service.d.ts +3 -0
  23. package/full/components/preloader/preloader.component.d.ts +3 -0
  24. package/full/components/primeng.module.d.ts +5 -0
  25. package/full/components/radiobutton/radiobutton.component.d.ts +3 -0
  26. package/full/components/select-button/select-button.component.d.ts +3 -0
  27. package/full/components/select-list/select-list.component.d.ts +4 -1
  28. package/full/components/status-circle/status-circle.component.d.ts +3 -0
  29. package/full/components/sticky/sticky.component.d.ts +3 -0
  30. package/full/components/svg/svg.component.d.ts +4 -1
  31. package/full/components/switcher/switcher.component.d.ts +3 -0
  32. package/full/components/table/table-click-outside.directive.d.ts +3 -0
  33. package/full/components/table/table-columns-multiselect/table-columns-multiselect.component.d.ts +3 -0
  34. package/full/components/table/table-menu-overlay/table-menu-overlay.component.d.ts +3 -0
  35. package/full/components/table/table.component.d.ts +18 -0
  36. package/full/components/textarea/textarea.component.d.ts +3 -0
  37. package/full/components/toolbar/toolbar.component.d.ts +3 -0
  38. package/full/components/tooltip/tooltip.component.d.ts +3 -0
  39. package/full/components/tree-table/tree-table.component.d.ts +12 -0
  40. package/full/esm2020/components/autocomplete/autocomplete.component.mjs +220 -0
  41. package/full/esm2020/components/breadcrumb/breadcrumb.component.mjs +20 -0
  42. package/full/esm2020/components/button/button.component.mjs +160 -0
  43. package/full/esm2020/components/checkbox/checkbox.component.mjs +89 -0
  44. package/full/esm2020/components/communication.service.mjs +25 -0
  45. package/full/esm2020/components/component-container/component-container.component.mjs +17 -0
  46. package/full/esm2020/components/content-toggle/content-toggle.component.mjs +49 -0
  47. package/full/esm2020/components/dropdown/dropdown.component.mjs +328 -0
  48. package/full/esm2020/components/empty/empty.component.mjs +12 -0
  49. package/full/esm2020/components/file/file.component.mjs +53 -0
  50. package/full/esm2020/components/header/header.component.mjs +23 -0
  51. package/full/esm2020/components/inline-message/inline-message.component.mjs +20 -0
  52. package/full/esm2020/components/input-group/input-group.component.mjs +163 -0
  53. package/full/esm2020/components/input-text/input-text.component.mjs +149 -0
  54. package/full/esm2020/components/inspark.module.mjs +239 -0
  55. package/full/esm2020/components/inspark.shared.mjs +25 -0
  56. package/full/esm2020/components/link/link.component.mjs +131 -0
  57. package/full/esm2020/components/modal-input-text/modal-input-text.component.mjs +88 -0
  58. package/full/esm2020/components/object-tree/object-tree.component.mjs +14 -0
  59. package/full/esm2020/components/panel/panel.component.mjs +11 -0
  60. package/full/esm2020/components/pie/pie.component.mjs +44 -0
  61. package/full/esm2020/components/pie/pie.service.mjs +55 -0
  62. package/full/esm2020/components/preloader/preloader.component.mjs +25 -0
  63. package/full/esm2020/components/primeng.module.mjs +22 -0
  64. package/full/esm2020/components/radiobutton/radiobutton.component.mjs +50 -0
  65. package/full/esm2020/components/select-button/select-button.component.mjs +147 -0
  66. package/full/esm2020/components/select-list/select-list.component.mjs +55 -0
  67. package/full/esm2020/components/status-circle/status-circle.component.mjs +36 -0
  68. package/full/esm2020/components/sticky/sticky.component.mjs +64 -0
  69. package/full/esm2020/components/svg/svg.component.mjs +28 -0
  70. package/full/esm2020/components/switcher/switcher.component.mjs +123 -0
  71. package/full/esm2020/components/table/table-click-outside.directive.mjs +31 -0
  72. package/full/esm2020/components/table/table-columns-multiselect/table-columns-multiselect.component.mjs +32 -0
  73. package/full/esm2020/components/table/table-menu-overlay/table-menu-overlay.component.mjs +26 -0
  74. package/full/esm2020/components/table/table.component.mjs +472 -0
  75. package/full/esm2020/components/textarea/textarea.component.mjs +87 -0
  76. package/full/esm2020/components/toolbar/toolbar.component.mjs +30 -0
  77. package/full/esm2020/components/tooltip/tooltip.component.mjs +14 -0
  78. package/full/esm2020/components/tree-table/tree-table.component.mjs +206 -0
  79. package/full/esm2020/inspark-inspark-components.mjs +5 -0
  80. package/full/esm2020/interface.mjs +2 -0
  81. package/full/esm2020/pipes/pipes.module.mjs +19 -0
  82. package/full/esm2020/pipes/propertyValue.pipe.mjs +25 -0
  83. package/full/esm2020/pipes/safeUrl.pipe.mjs +36 -0
  84. package/full/esm2020/pipes/sort-by.pipe.mjs +28 -0
  85. package/full/esm2020/pipes/time.pipe.mjs +206 -0
  86. package/full/esm2020/public_api.mjs +60 -0
  87. package/full/esm2020/services/inspark-dialog.service.mjs +52 -0
  88. package/full/esm2020/services/inspark-message.service.mjs +71 -0
  89. package/full/esm2020/utils/gettextMarker.function.mjs +5 -0
  90. package/full/esm2020/utils/hybrid/prime-table/row-state.enum.mjs +9 -0
  91. package/full/esm2020/utils/hybrid/prime-table/table-row-data.model.mjs +2 -0
  92. package/full/fesm2015/inspark-inspark-components.mjs +3574 -0
  93. package/full/fesm2015/inspark-inspark-components.mjs.map +1 -0
  94. package/full/fesm2020/inspark-inspark-components.mjs +3577 -0
  95. package/full/fesm2020/inspark-inspark-components.mjs.map +1 -0
  96. package/full/index.css +1265 -3352
  97. package/{interface/inspark-inspark-components.d.ts → full/index.d.ts} +1 -0
  98. package/full/index.js +1 -1
  99. package/full/interface.d.ts +1 -1
  100. package/full/package.json +26 -16
  101. package/full/pipes/pipes.module.d.ts +8 -0
  102. package/full/pipes/propertyValue.pipe.d.ts +3 -0
  103. package/full/pipes/safeUrl.pipe.d.ts +3 -0
  104. package/full/pipes/sort-by.pipe.d.ts +3 -0
  105. package/full/pipes/time.pipe.d.ts +9 -0
  106. package/full/public_api.d.ts +15 -1
  107. package/full/services/inspark-dialog.service.d.ts +4 -2
  108. package/full/services/inspark-message.service.d.ts +3 -0
  109. package/interface/esm2020/inspark-inspark-components.mjs +5 -0
  110. package/interface/esm2020/interface.mjs +2 -0
  111. package/interface/esm2020/public_api.mjs +5 -0
  112. package/interface/fesm2015/inspark-inspark-components.mjs +8 -0
  113. package/interface/fesm2015/inspark-inspark-components.mjs.map +1 -0
  114. package/interface/fesm2020/inspark-inspark-components.mjs +8 -0
  115. package/interface/fesm2020/inspark-inspark-components.mjs.map +1 -0
  116. package/interface/index.d.ts +5 -0
  117. package/interface/interface.d.ts +1 -1
  118. package/interface/package.json +26 -16
  119. package/package.json +1 -1
  120. package/full/bundles/inspark-inspark-components.umd.js +0 -4622
  121. package/full/bundles/inspark-inspark-components.umd.js.map +0 -1
  122. package/full/bundles/inspark-inspark-components.umd.min.js +0 -16
  123. package/full/bundles/inspark-inspark-components.umd.min.js.map +0 -1
  124. package/full/esm2015/components/autocomplete/autocomplete.component.js +0 -310
  125. package/full/esm2015/components/breadcrumb/breadcrumb.component.js +0 -23
  126. package/full/esm2015/components/button/button.component.js +0 -217
  127. package/full/esm2015/components/checkbox/checkbox.component.js +0 -104
  128. package/full/esm2015/components/communication.service.js +0 -24
  129. package/full/esm2015/components/component-container/component-container.component.js +0 -20
  130. package/full/esm2015/components/content-toggle/content-toggle.component.js +0 -66
  131. package/full/esm2015/components/dropdown/dropdown.component.js +0 -353
  132. package/full/esm2015/components/empty/empty.component.js +0 -13
  133. package/full/esm2015/components/file/file.component.js +0 -65
  134. package/full/esm2015/components/header/header.component.js +0 -30
  135. package/full/esm2015/components/inline-message/inline-message.component.js +0 -25
  136. package/full/esm2015/components/input-group/input-group.component.js +0 -197
  137. package/full/esm2015/components/input-text/input-text.component.js +0 -198
  138. package/full/esm2015/components/inspark.module.js +0 -137
  139. package/full/esm2015/components/inspark.shared.js +0 -30
  140. package/full/esm2015/components/link/link.component.js +0 -164
  141. package/full/esm2015/components/modal-input-text/modal-input-text.component.js +0 -94
  142. package/full/esm2015/components/object-tree/object-tree.component.js +0 -18
  143. package/full/esm2015/components/panel/panel.component.js +0 -13
  144. package/full/esm2015/components/pie/pie.component.js +0 -59
  145. package/full/esm2015/components/pie/pie.service.js +0 -54
  146. package/full/esm2015/components/preloader/preloader.component.js +0 -34
  147. package/full/esm2015/components/primeng.module.js +0 -19
  148. package/full/esm2015/components/radiobutton/radiobutton.component.js +0 -75
  149. package/full/esm2015/components/select-button/select-button.component.js +0 -176
  150. package/full/esm2015/components/select-list/select-list.component.js +0 -60
  151. package/full/esm2015/components/status-circle/status-circle.component.js +0 -51
  152. package/full/esm2015/components/sticky/sticky.component.js +0 -82
  153. package/full/esm2015/components/svg/svg.component.js +0 -36
  154. package/full/esm2015/components/switcher/switcher.component.js +0 -148
  155. package/full/esm2015/components/table/table-click-outside.directive.js +0 -38
  156. package/full/esm2015/components/table/table-columns-multiselect/table-columns-multiselect.component.js +0 -37
  157. package/full/esm2015/components/table/table-menu-overlay/table-menu-overlay.component.js +0 -35
  158. package/full/esm2015/components/table/table.component.js +0 -535
  159. package/full/esm2015/components/textarea/textarea.component.js +0 -101
  160. package/full/esm2015/components/toolbar/toolbar.component.js +0 -40
  161. package/full/esm2015/components/tooltip/tooltip.component.js +0 -18
  162. package/full/esm2015/components/tree-table/tree-table.component.js +0 -255
  163. package/full/esm2015/inspark-inspark-components.js +0 -20
  164. package/full/esm2015/interface.js +0 -1
  165. package/full/esm2015/pipes/pipes.module.js +0 -16
  166. package/full/esm2015/pipes/propertyValue.pipe.js +0 -23
  167. package/full/esm2015/pipes/safeUrl.pipe.js +0 -37
  168. package/full/esm2015/pipes/sort-by.pipe.js +0 -26
  169. package/full/esm2015/pipes/time.pipe.js +0 -201
  170. package/full/esm2015/public_api.js +0 -45
  171. package/full/esm2015/services/inspark-dialog.service.js +0 -59
  172. package/full/esm2015/services/inspark-message.service.js +0 -73
  173. package/full/esm2015/utils/gettextMarker.function.js +0 -5
  174. package/full/esm2015/utils/hybrid/prime-table/row-state.enum.js +0 -9
  175. package/full/esm2015/utils/hybrid/prime-table/table-row-data.model.js +0 -1
  176. package/full/esm5/components/autocomplete/autocomplete.component.js +0 -318
  177. package/full/esm5/components/breadcrumb/breadcrumb.component.js +0 -24
  178. package/full/esm5/components/button/button.component.js +0 -224
  179. package/full/esm5/components/checkbox/checkbox.component.js +0 -106
  180. package/full/esm5/components/communication.service.js +0 -25
  181. package/full/esm5/components/component-container/component-container.component.js +0 -21
  182. package/full/esm5/components/content-toggle/content-toggle.component.js +0 -67
  183. package/full/esm5/components/dropdown/dropdown.component.js +0 -357
  184. package/full/esm5/components/empty/empty.component.js +0 -16
  185. package/full/esm5/components/file/file.component.js +0 -66
  186. package/full/esm5/components/header/header.component.js +0 -31
  187. package/full/esm5/components/inline-message/inline-message.component.js +0 -26
  188. package/full/esm5/components/input-group/input-group.component.js +0 -199
  189. package/full/esm5/components/input-text/input-text.component.js +0 -200
  190. package/full/esm5/components/inspark.module.js +0 -140
  191. package/full/esm5/components/inspark.shared.js +0 -31
  192. package/full/esm5/components/link/link.component.js +0 -165
  193. package/full/esm5/components/modal-input-text/modal-input-text.component.js +0 -98
  194. package/full/esm5/components/object-tree/object-tree.component.js +0 -20
  195. package/full/esm5/components/panel/panel.component.js +0 -16
  196. package/full/esm5/components/pie/pie.component.js +0 -60
  197. package/full/esm5/components/pie/pie.service.js +0 -56
  198. package/full/esm5/components/preloader/preloader.component.js +0 -35
  199. package/full/esm5/components/primeng.module.js +0 -22
  200. package/full/esm5/components/radiobutton/radiobutton.component.js +0 -76
  201. package/full/esm5/components/select-button/select-button.component.js +0 -179
  202. package/full/esm5/components/select-list/select-list.component.js +0 -62
  203. package/full/esm5/components/status-circle/status-circle.component.js +0 -52
  204. package/full/esm5/components/sticky/sticky.component.js +0 -84
  205. package/full/esm5/components/svg/svg.component.js +0 -39
  206. package/full/esm5/components/switcher/switcher.component.js +0 -150
  207. package/full/esm5/components/table/table-click-outside.directive.js +0 -39
  208. package/full/esm5/components/table/table-columns-multiselect/table-columns-multiselect.component.js +0 -38
  209. package/full/esm5/components/table/table-menu-overlay/table-menu-overlay.component.js +0 -36
  210. package/full/esm5/components/table/table.component.js +0 -554
  211. package/full/esm5/components/textarea/textarea.component.js +0 -103
  212. package/full/esm5/components/toolbar/toolbar.component.js +0 -41
  213. package/full/esm5/components/tooltip/tooltip.component.js +0 -20
  214. package/full/esm5/components/tree-table/tree-table.component.js +0 -280
  215. package/full/esm5/inspark-inspark-components.js +0 -20
  216. package/full/esm5/interface.js +0 -1
  217. package/full/esm5/pipes/pipes.module.js +0 -19
  218. package/full/esm5/pipes/propertyValue.pipe.js +0 -26
  219. package/full/esm5/pipes/safeUrl.pipe.js +0 -38
  220. package/full/esm5/pipes/sort-by.pipe.js +0 -29
  221. package/full/esm5/pipes/time.pipe.js +0 -212
  222. package/full/esm5/public_api.js +0 -45
  223. package/full/esm5/services/inspark-dialog.service.js +0 -61
  224. package/full/esm5/services/inspark-message.service.js +0 -78
  225. package/full/esm5/utils/gettextMarker.function.js +0 -5
  226. package/full/esm5/utils/hybrid/prime-table/row-state.enum.js +0 -9
  227. package/full/esm5/utils/hybrid/prime-table/table-row-data.model.js +0 -1
  228. package/full/fesm2015/inspark-inspark-components.js +0 -4174
  229. package/full/fesm2015/inspark-inspark-components.js.map +0 -1
  230. package/full/fesm5/inspark-inspark-components.js +0 -4324
  231. package/full/fesm5/inspark-inspark-components.js.map +0 -1
  232. package/full/fonts/primeicons.eot +0 -0
  233. package/full/fonts/primeicons.svg +0 -163
  234. package/full/fonts/primeicons.ttf +0 -0
  235. package/full/fonts/primeicons.woff +0 -0
  236. package/full/inspark-inspark-components.d.ts +0 -19
  237. package/full/inspark-inspark-components.metadata.json +0 -1
  238. package/interface/bundles/inspark-inspark-components.umd.js +0 -11
  239. package/interface/bundles/inspark-inspark-components.umd.js.map +0 -1
  240. package/interface/bundles/inspark-inspark-components.umd.min.js +0 -2
  241. package/interface/bundles/inspark-inspark-components.umd.min.js.map +0 -1
  242. package/interface/esm2015/inspark-inspark-components.js +0 -4
  243. package/interface/esm2015/interface.js +0 -1
  244. package/interface/esm2015/public_api.js +0 -4
  245. package/interface/esm5/inspark-inspark-components.js +0 -4
  246. package/interface/esm5/interface.js +0 -1
  247. package/interface/esm5/public_api.js +0 -4
  248. package/interface/fesm2015/inspark-inspark-components.js +0 -4
  249. package/interface/fesm2015/inspark-inspark-components.js.map +0 -1
  250. package/interface/fesm5/inspark-inspark-components.js +0 -4
  251. package/interface/fesm5/inspark-inspark-components.js.map +0 -1
  252. package/interface/inspark-inspark-components.metadata.json +0 -1
@@ -0,0 +1,160 @@
1
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, HostBinding } from '@angular/core';
2
+ import { Button as PButton } from 'primeng/button';
3
+ import { Menu } from 'primeng/menu';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "@angular/router";
7
+ import * as i3 from "@ng-bootstrap/ng-bootstrap";
8
+ import * as i4 from "../preloader/preloader.component";
9
+ import * as i5 from "../svg/svg.component";
10
+ export class ButtonComponent extends PButton {
11
+ constructor(cdr) {
12
+ super();
13
+ this.cdr = cdr;
14
+ this.size = 'normal';
15
+ this.color = 'normal';
16
+ this.type = 'button';
17
+ this.name = '';
18
+ this.testId = '';
19
+ this.label = '';
20
+ this.icon = '';
21
+ this.className = '';
22
+ this.notify = null;
23
+ this.svg = '';
24
+ this.width = 'auto';
25
+ this.link = '';
26
+ this.isLoading = false;
27
+ this.shadow = false;
28
+ this.isIconOnly = false;
29
+ /**
30
+ * external - ссылка на внешний источник
31
+ * internal - ссылка внутри приложения
32
+ * auto - определяется автоматически исходя из link
33
+ */
34
+ this.linkType = 'auto';
35
+ /**
36
+ * self - открывается в этом же окне
37
+ * blank - открывается в новом окне
38
+ * auto - определяется автоматически исходя из linkType
39
+ */
40
+ this.linkTarget = 'auto';
41
+ // Отображает кнопку нажатой
42
+ this.pressed = false;
43
+ this.disabled = false;
44
+ this.iconPos = 'left';
45
+ this.selectedItem = null;
46
+ this.menuPlacement = 'bottom-left';
47
+ this.menuItems = [];
48
+ this.focus = new EventEmitter();
49
+ this.blur = new EventEmitter();
50
+ this.click = new EventEmitter();
51
+ this._target = '_self';
52
+ this._linkType = 'auto';
53
+ this.isMaterialIcon = false;
54
+ }
55
+ get pointerEvents() {
56
+ return this.disabled ? 'none' : 'auto';
57
+ }
58
+ ngOnInit() {
59
+ this.updateData();
60
+ }
61
+ ngOnChanges(changes) {
62
+ this.updateData();
63
+ }
64
+ updateData() {
65
+ this._linkType = this.linkType;
66
+ if (this._linkType === 'auto') {
67
+ if ((this.link.indexOf('://') !== -1 || this.link.indexOf('//') === 0)) {
68
+ this._linkType = 'external';
69
+ }
70
+ else {
71
+ this._linkType = 'internal';
72
+ }
73
+ }
74
+ if (this.linkTarget === 'auto') {
75
+ if (this._linkType === 'external') {
76
+ this._target = '_blank';
77
+ }
78
+ else {
79
+ this._target = '_self';
80
+ }
81
+ }
82
+ else {
83
+ this._target = this.linkTarget === 'self' ? '_self' : 'blank';
84
+ }
85
+ if (this.icon && this.icon.indexOf('fa-') === -1) {
86
+ this.isMaterialIcon = true;
87
+ }
88
+ else {
89
+ this.isMaterialIcon = false;
90
+ }
91
+ }
92
+ _onClick($event) {
93
+ this.cdr.detectChanges();
94
+ }
95
+ }
96
+ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
97
+ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ButtonComponent, selector: "in-button", inputs: { size: "size", color: "color", type: "type", name: "name", testId: "testId", label: "label", icon: "icon", className: "className", notify: "notify", svg: "svg", width: "width", link: "link", isLoading: "isLoading", shadow: "shadow", isIconOnly: "isIconOnly", linkType: "linkType", linkTarget: "linkTarget", pressed: "pressed", disabled: "disabled", iconPos: "iconPos", selectedItem: "selectedItem", menuPlacement: "menuPlacement", menuItems: "menuItems" }, outputs: { focus: "focus", blur: "blur", click: "click" }, host: { properties: { "style.pointer-events": "this.pointerEvents" } }, viewQueries: [{ propertyName: "_menu", first: true, predicate: Menu, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<a (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n *ngIf=\"link && _linkType ==='external'\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [href]=\"link\"\n [ngClass]=\"{'ui-button ui-widget ui-state-default ui-corner-all':true,\n 'ui-button-icon-only': ((icon || svg) && !label),\n 'ui-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'ui-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'ui-button-text-only': (!(icon || svg) && label),\n 'ui-button-text-empty': (!(icon || svg) && !label),\n 'ui-button-svg': svg,\n 'ui-button-material': isMaterialIcon,\n 'ui-state-disabled': disabled,\n 'ui-button-tiny': size === 'tiny',\n 'ui-button-small': size === 'small',\n 'ui-button-large': size === 'large',\n 'ui-button-primary': color === 'primary',\n 'ui-button-secondary': color === 'secondary',\n 'ui-button-danger': color === 'danger',\n 'ui-button-transparency': color === 'transparent',\n 'ui-button-pressed' : pressed}\"\n [ngStyle]=\"{width:width}\"\n [style]=\"style\"\n [target]=\"_target\" class=\"button-container\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n</a>\n<a (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n *ngIf=\"link && _linkType ==='internal'\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [ngClass]=\"{'ui-button ui-widget ui-state-default ui-corner-all':true,\n 'ui-button-icon-only': ((icon || svg) && !label),\n 'ui-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'ui-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'ui-button-text-only': (!(icon || svg) && label),\n 'ui-button-text-empty': (!(icon || svg) && !label),\n 'ui-button-svg': svg,\n 'ui-button-material': isMaterialIcon,\n 'ui-state-disabled': disabled,\n 'ui-button-tiny': size === 'tiny',\n 'ui-button-small': size === 'small',\n 'ui-button-large': size === 'large',\n 'ui-button-primary': color === 'primary',\n 'ui-button-secondary': color === 'secondary',\n 'ui-button-danger': color === 'danger',\n 'ui-button-transparency': color === 'transparent',\n 'ui-button-pressed' : pressed}\"\n [ngStyle]=\"{width:width}\"\n [routerLink]=\"link\"\n [style]=\"style\"\n [target]=\"_target\" class=\"button-container\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n</a>\n<span #dropdown=\"ngbDropdown\" *ngIf=\"!link && menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\" container=\"body\"\n ngbDropdown>\n <button\n (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [disabled]=\"disabled\"\n [ngClass]=\" {'ui-button ui-widget ui-state-default ui-corner-all':true,\n 'ui-button-icon-only': ((icon || svg) && !label),\n 'ui-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'ui-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'ui-button-text-only': (!(icon || svg) && label),\n 'ui-button-text-empty': (!(icon || svg) && !label),\n 'ui-button-svg': svg,\n 'ui-button-material': isMaterialIcon,\n 'ui-state-disabled': disabled,\n 'ui-button-tiny': size === 'tiny',\n 'ui-button-small': size === 'small',\n 'ui-button-large': size === 'large',\n 'ui-button-primary': color === 'primary',\n 'ui-button-secondary': color === 'secondary',\n 'ui-button-danger': color === 'danger',\n 'ui-button-transparency': color === 'transparent',\n 'ui-button-shadowed': shadow === true,\n 'ui-button-pressed' : pressed}\"\n [style]=\"style\" ngbDropdownToggle>\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n </button>\n <div *ngIf=\"menuItems.length\" aria-labelledby=\"menu\"\n class=\"in-dropdown-menu\"\n ngbDropdownMenu>\n <div *ngFor=\"let item of menuItems\" class=\"in-dropdown-menu-item\" role=\"menuitem\">\n <in-button (click)=\"dropdown.close(); item.command();\"\n [color]=\"selectedItem && selectedItem == item.id?'primary':'transparent'\"\n [icon]=\"item.icon\"\n [label]=\"item.label\"\n [svg]=\"item.svg\"\n size=\"large\"\n width=\"100%\"></in-button>\n </div>\n </div>\n\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\n</span>\n<span *ngIf=\"!link && !menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\">\n <button\n (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [disabled]=\"disabled\"\n [ngClass]=\" {'ui-button ui-widget ui-state-default ui-corner-all':true,\n 'ui-button-icon-only': ((icon || svg) && !label) || isIconOnly,\n 'ui-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'ui-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'ui-button-text-only': (!(icon || svg) && label),\n 'ui-button-text-empty': (!(icon || svg) && !label),\n 'ui-button-svg': svg,\n 'ui-button-material': isMaterialIcon,\n 'ui-state-disabled': disabled,\n 'ui-button-tiny': size === 'tiny',\n 'ui-button-small': size === 'small',\n 'ui-button-large': size === 'large',\n 'ui-button-primary': color === 'primary',\n 'ui-button-secondary': color === 'secondary',\n 'ui-button-danger': color === 'danger',\n 'ui-button-transparency': color === 'transparent',\n 'ui-button-shadowed': shadow === true,\n 'ui-button-pressed' : pressed}\" [style]=\"style\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n </button>\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\n</span>\n\n<ng-template #content>\n <span *ngIf=\"!isMaterialIcon && icon && !isLoading\" [class]=\"icon\"\n [ngClass]=\"{'ui-clickable': true,\n 'ui-button-icon-left': (iconPos === 'left'),\n 'ui-button-icon-right': (iconPos === 'right')}\"></span>\n <span *ngIf=\"isMaterialIcon && icon && !isLoading\" [ngClass]=\"{'ui-clickable': true,\n 'ui-button-icon-left': (iconPos === 'left'),\n 'ui-button-icon-right': (iconPos === 'right')}\"\n ><i class=\"material-icons\">{{icon}}</i></span>\n <in-preloader *ngIf=\"isLoading\" size=\"small\"></in-preloader>\n <span class=\"ui-button-text ui-clickable\">{{label}}</span>\n <span *ngIf=\"svg && !isLoading\" [ngClass]=\"{'ui-clickable': true,\n 'ui-button-icon-left': (iconPos === 'left'),\n 'ui-button-icon-right': (iconPos === 'right')}\">\n <in-svg *ngIf=\"size === 'normal'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'large'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'small'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'tiny'\" [src]=\"svg\" height=\"10px\" width=\"10px\"></in-svg>\n </span>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.container{display:inline-block}.button-container{position:relative;display:inline-block}button{outline:none;width:100%}.ui-button-icon-only .ui-button-icon-left{margin-top:-9px}.ui-button-text{vertical-align:middle}.notify{width:8px;height:8px;border-radius:100%;position:absolute;right:8px;top:8px}.notify.warning{background:var(--colorWarning)}.notify.success{background:var(--colorSuccess)}.notify.error{background:var(--colorError)}.notify.critical{background:var(--colorCritical)}.ui-button{margin-right:0;height:36px;display:inline-flex;align-items:center;justify-content:center}.ui-button.ui-button-pressed{background-color:var(--colorBgLevel4)}.ui-button.ui-button-large{height:48px}.ui-button.ui-button-large .ui-button-icon-left{font-size:18px;margin-top:-8px}.ui-button.ui-button-large .ui-button-text{padding:0 1em 0 48px;margin-top:6px}.ui-button-text-icon-left .ui-button-text{padding:0 1em 0 2.4em}.ui-button-icon-only{font-size:18px;display:inline-flex;align-items:center;justify-content:center}.ui-button-icon-only.ui-button-large{width:48px;height:48px}.ui-button-icon-only.ui-button-large .svg,.ui-button-icon-only .svg{display:inline-block;line-height:0}.ui-button-transparency{background:none;color:currentColor}.ui-button-transparency:hover{color:currentColor}.ui-button-shadowed{box-shadow:0 2px 6px #0003}.ui-button.ui-button-svg.ui-button-small .ui-button-icon-left{margin-top:-4px}.ui-button.ui-button-svg.ui-button-small.ui-button-icon-only .ui-button-icon-left{margin-top:-2px}.ui-button.ui-button-svg .ui-button-icon-left{left:6px;transform:translateY(-50%);margin-top:-4px}.ui-button.ui-button-svg.ui-button-icon-only .ui-button-icon-left{left:50%;width:auto;transform:translate(-50%,-50%);margin-left:0;margin-top:0}.ui-button.ui-button-svg.ui-button-large.ui-button-icon-only .ui-button-icon-left{margin-top:0}.ui-button-material.ui-button-icon-only .material-icons{font-size:20px}.ui-button-material.ui-button-icon-only .ui-button-icon-left{margin-top:-10px;margin-left:-12px}.ui-button-material .material-icons{font-size:16px}.ui-button-material .ui-button-icon-left{margin-top:-8px;margin-left:-2px}.ui-button-material.ui-button-small .ui-button-icon-left{margin-top:-7px}.ui-button-material.ui-button-small .material-icons{font-size:14px}.ui-button-material.ui-button-small.ui-button-icon-only .ui-button-icon-left{margin-top:-12px;margin-left:-10px}.ui-button-material.ui-button-small.ui-button-icon-only .ui-button-icon-left .material-icons{font-size:18px}.ui-button-material.ui-button-large .material-icons{font-size:24px}.ui-button-material.ui-button-large .ui-button-icon-left{margin-top:-11px}.ui-button-material.ui-button-large.ui-button-icon-only .ui-button-icon-left{margin-top:-11px;margin-left:-13px}:host .ui-menu .ui-menuitem-link{font-size:16px}.dropdown-menu{display:none;background:var(--colorBgLevel3);padding:4px}.dropdown-menu li{padding:4px;font-size:14px}.dropdown-menu.show{display:block}.in-dropdown-menu{background:var(--colorBgLevel2);padding:0;position:absolute;display:none;margin-left:0;box-shadow:0 0 3px 1px #0003}.in-dropdown-menu.show{display:block}.in-dropdown-menu .in-dropdown-menu-item{list-style-type:none;min-width:250px;display:flex;align-items:center;justify-content:flex-start;min-height:48px}.in-dropdown-menu .in-dropdown-menu-item in-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button{width:100%;border-radius:0}.in-dropdown-menu .in-dropdown-menu-item in-button .ui-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button .ui-button{justify-content:flex-start}.in-dropdown-menu .in-dropdown-menu-item .switcher{flex:1;display:flex;justify-content:flex-end;padding-right:4px}.in-dropdown-menu .in-dropdown-menu-item+.in-dropdown-menu-item{border-top:1px solid var(--colorBgLevel4)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.RouterLinkWithHref, selector: "a[routerLink],area[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.NgbDropdown, selector: "[ngbDropdown]", inputs: ["autoClose", "dropdownClass", "open", "placement", "popperOptions", "container", "display"], outputs: ["openChange"], exportAs: ["ngbDropdown"] }, { kind: "directive", type: i3.NgbDropdownToggle, selector: "[ngbDropdownToggle]" }, { kind: "directive", type: i3.NgbDropdownMenu, selector: "[ngbDropdownMenu]" }, { kind: "component", type: ButtonComponent, selector: "in-button", inputs: ["size", "color", "type", "name", "testId", "label", "icon", "className", "notify", "svg", "width", "link", "isLoading", "shadow", "isIconOnly", "linkType", "linkTarget", "pressed", "disabled", "iconPos", "selectedItem", "menuPlacement", "menuItems"], outputs: ["focus", "blur", "click"] }, { kind: "component", type: i4.PreloaderComponent, selector: "in-preloader", inputs: ["inline", "overlay", "size"] }, { kind: "component", type: i5.SvgComponent, selector: "in-svg", inputs: ["size", "width", "height", "src"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ButtonComponent, decorators: [{
99
+ type: Component,
100
+ args: [{ selector: 'in-button', encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, template: "<a (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n *ngIf=\"link && _linkType ==='external'\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [href]=\"link\"\n [ngClass]=\"{'ui-button ui-widget ui-state-default ui-corner-all':true,\n 'ui-button-icon-only': ((icon || svg) && !label),\n 'ui-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'ui-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'ui-button-text-only': (!(icon || svg) && label),\n 'ui-button-text-empty': (!(icon || svg) && !label),\n 'ui-button-svg': svg,\n 'ui-button-material': isMaterialIcon,\n 'ui-state-disabled': disabled,\n 'ui-button-tiny': size === 'tiny',\n 'ui-button-small': size === 'small',\n 'ui-button-large': size === 'large',\n 'ui-button-primary': color === 'primary',\n 'ui-button-secondary': color === 'secondary',\n 'ui-button-danger': color === 'danger',\n 'ui-button-transparency': color === 'transparent',\n 'ui-button-pressed' : pressed}\"\n [ngStyle]=\"{width:width}\"\n [style]=\"style\"\n [target]=\"_target\" class=\"button-container\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n</a>\n<a (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n *ngIf=\"link && _linkType ==='internal'\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [ngClass]=\"{'ui-button ui-widget ui-state-default ui-corner-all':true,\n 'ui-button-icon-only': ((icon || svg) && !label),\n 'ui-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'ui-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'ui-button-text-only': (!(icon || svg) && label),\n 'ui-button-text-empty': (!(icon || svg) && !label),\n 'ui-button-svg': svg,\n 'ui-button-material': isMaterialIcon,\n 'ui-state-disabled': disabled,\n 'ui-button-tiny': size === 'tiny',\n 'ui-button-small': size === 'small',\n 'ui-button-large': size === 'large',\n 'ui-button-primary': color === 'primary',\n 'ui-button-secondary': color === 'secondary',\n 'ui-button-danger': color === 'danger',\n 'ui-button-transparency': color === 'transparent',\n 'ui-button-pressed' : pressed}\"\n [ngStyle]=\"{width:width}\"\n [routerLink]=\"link\"\n [style]=\"style\"\n [target]=\"_target\" class=\"button-container\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n</a>\n<span #dropdown=\"ngbDropdown\" *ngIf=\"!link && menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\" container=\"body\"\n ngbDropdown>\n <button\n (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [disabled]=\"disabled\"\n [ngClass]=\" {'ui-button ui-widget ui-state-default ui-corner-all':true,\n 'ui-button-icon-only': ((icon || svg) && !label),\n 'ui-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'ui-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'ui-button-text-only': (!(icon || svg) && label),\n 'ui-button-text-empty': (!(icon || svg) && !label),\n 'ui-button-svg': svg,\n 'ui-button-material': isMaterialIcon,\n 'ui-state-disabled': disabled,\n 'ui-button-tiny': size === 'tiny',\n 'ui-button-small': size === 'small',\n 'ui-button-large': size === 'large',\n 'ui-button-primary': color === 'primary',\n 'ui-button-secondary': color === 'secondary',\n 'ui-button-danger': color === 'danger',\n 'ui-button-transparency': color === 'transparent',\n 'ui-button-shadowed': shadow === true,\n 'ui-button-pressed' : pressed}\"\n [style]=\"style\" ngbDropdownToggle>\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n </button>\n <div *ngIf=\"menuItems.length\" aria-labelledby=\"menu\"\n class=\"in-dropdown-menu\"\n ngbDropdownMenu>\n <div *ngFor=\"let item of menuItems\" class=\"in-dropdown-menu-item\" role=\"menuitem\">\n <in-button (click)=\"dropdown.close(); item.command();\"\n [color]=\"selectedItem && selectedItem == item.id?'primary':'transparent'\"\n [icon]=\"item.icon\"\n [label]=\"item.label\"\n [svg]=\"item.svg\"\n size=\"large\"\n width=\"100%\"></in-button>\n </div>\n </div>\n\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\n</span>\n<span *ngIf=\"!link && !menuItems.length\" [ngStyle]=\"{width:width}\" class=\"button-container\">\n <button\n (blur)=\"blur.emit($event)\"\n (click)=\"_onClick($event)\"\n (focus)=\"focus.emit($event)\"\n [attr.type]=\"type\"\n [class]=\"className + ' ' + testId + ' field_' + name\"\n [disabled]=\"disabled\"\n [ngClass]=\" {'ui-button ui-widget ui-state-default ui-corner-all':true,\n 'ui-button-icon-only': ((icon || svg) && !label) || isIconOnly,\n 'ui-button-text-icon-left': ((icon || svg) && label && iconPos === 'left'),\n 'ui-button-text-icon-right': ((icon || svg) && label && iconPos === 'right'),\n 'ui-button-text-only': (!(icon || svg) && label),\n 'ui-button-text-empty': (!(icon || svg) && !label),\n 'ui-button-svg': svg,\n 'ui-button-material': isMaterialIcon,\n 'ui-state-disabled': disabled,\n 'ui-button-tiny': size === 'tiny',\n 'ui-button-small': size === 'small',\n 'ui-button-large': size === 'large',\n 'ui-button-primary': color === 'primary',\n 'ui-button-secondary': color === 'secondary',\n 'ui-button-danger': color === 'danger',\n 'ui-button-transparency': color === 'transparent',\n 'ui-button-shadowed': shadow === true,\n 'ui-button-pressed' : pressed}\" [style]=\"style\">\n <ng-container *ngTemplateOutlet=\"content;\"></ng-container>\n </button>\n <div *ngIf=\"notify\" [ngClass]=\"notify\" class=\"notify\"></div>\n</span>\n\n<ng-template #content>\n <span *ngIf=\"!isMaterialIcon && icon && !isLoading\" [class]=\"icon\"\n [ngClass]=\"{'ui-clickable': true,\n 'ui-button-icon-left': (iconPos === 'left'),\n 'ui-button-icon-right': (iconPos === 'right')}\"></span>\n <span *ngIf=\"isMaterialIcon && icon && !isLoading\" [ngClass]=\"{'ui-clickable': true,\n 'ui-button-icon-left': (iconPos === 'left'),\n 'ui-button-icon-right': (iconPos === 'right')}\"\n ><i class=\"material-icons\">{{icon}}</i></span>\n <in-preloader *ngIf=\"isLoading\" size=\"small\"></in-preloader>\n <span class=\"ui-button-text ui-clickable\">{{label}}</span>\n <span *ngIf=\"svg && !isLoading\" [ngClass]=\"{'ui-clickable': true,\n 'ui-button-icon-left': (iconPos === 'left'),\n 'ui-button-icon-right': (iconPos === 'right')}\">\n <in-svg *ngIf=\"size === 'normal'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'large'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'small'\" [src]=\"svg\" height=\"20px\" width=\"20px\"></in-svg>\n <in-svg *ngIf=\"size === 'tiny'\" [src]=\"svg\" height=\"10px\" width=\"10px\"></in-svg>\n </span>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.container{display:inline-block}.button-container{position:relative;display:inline-block}button{outline:none;width:100%}.ui-button-icon-only .ui-button-icon-left{margin-top:-9px}.ui-button-text{vertical-align:middle}.notify{width:8px;height:8px;border-radius:100%;position:absolute;right:8px;top:8px}.notify.warning{background:var(--colorWarning)}.notify.success{background:var(--colorSuccess)}.notify.error{background:var(--colorError)}.notify.critical{background:var(--colorCritical)}.ui-button{margin-right:0;height:36px;display:inline-flex;align-items:center;justify-content:center}.ui-button.ui-button-pressed{background-color:var(--colorBgLevel4)}.ui-button.ui-button-large{height:48px}.ui-button.ui-button-large .ui-button-icon-left{font-size:18px;margin-top:-8px}.ui-button.ui-button-large .ui-button-text{padding:0 1em 0 48px;margin-top:6px}.ui-button-text-icon-left .ui-button-text{padding:0 1em 0 2.4em}.ui-button-icon-only{font-size:18px;display:inline-flex;align-items:center;justify-content:center}.ui-button-icon-only.ui-button-large{width:48px;height:48px}.ui-button-icon-only.ui-button-large .svg,.ui-button-icon-only .svg{display:inline-block;line-height:0}.ui-button-transparency{background:none;color:currentColor}.ui-button-transparency:hover{color:currentColor}.ui-button-shadowed{box-shadow:0 2px 6px #0003}.ui-button.ui-button-svg.ui-button-small .ui-button-icon-left{margin-top:-4px}.ui-button.ui-button-svg.ui-button-small.ui-button-icon-only .ui-button-icon-left{margin-top:-2px}.ui-button.ui-button-svg .ui-button-icon-left{left:6px;transform:translateY(-50%);margin-top:-4px}.ui-button.ui-button-svg.ui-button-icon-only .ui-button-icon-left{left:50%;width:auto;transform:translate(-50%,-50%);margin-left:0;margin-top:0}.ui-button.ui-button-svg.ui-button-large.ui-button-icon-only .ui-button-icon-left{margin-top:0}.ui-button-material.ui-button-icon-only .material-icons{font-size:20px}.ui-button-material.ui-button-icon-only .ui-button-icon-left{margin-top:-10px;margin-left:-12px}.ui-button-material .material-icons{font-size:16px}.ui-button-material .ui-button-icon-left{margin-top:-8px;margin-left:-2px}.ui-button-material.ui-button-small .ui-button-icon-left{margin-top:-7px}.ui-button-material.ui-button-small .material-icons{font-size:14px}.ui-button-material.ui-button-small.ui-button-icon-only .ui-button-icon-left{margin-top:-12px;margin-left:-10px}.ui-button-material.ui-button-small.ui-button-icon-only .ui-button-icon-left .material-icons{font-size:18px}.ui-button-material.ui-button-large .material-icons{font-size:24px}.ui-button-material.ui-button-large .ui-button-icon-left{margin-top:-11px}.ui-button-material.ui-button-large.ui-button-icon-only .ui-button-icon-left{margin-top:-11px;margin-left:-13px}:host .ui-menu .ui-menuitem-link{font-size:16px}.dropdown-menu{display:none;background:var(--colorBgLevel3);padding:4px}.dropdown-menu li{padding:4px;font-size:14px}.dropdown-menu.show{display:block}.in-dropdown-menu{background:var(--colorBgLevel2);padding:0;position:absolute;display:none;margin-left:0;box-shadow:0 0 3px 1px #0003}.in-dropdown-menu.show{display:block}.in-dropdown-menu .in-dropdown-menu-item{list-style-type:none;min-width:250px;display:flex;align-items:center;justify-content:flex-start;min-height:48px}.in-dropdown-menu .in-dropdown-menu-item in-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button{width:100%;border-radius:0}.in-dropdown-menu .in-dropdown-menu-item in-button .ui-button,.in-dropdown-menu .in-dropdown-menu-item in-button ::ng-deep button .ui-button{justify-content:flex-start}.in-dropdown-menu .in-dropdown-menu-item .switcher{flex:1;display:flex;justify-content:flex-end;padding-right:4px}.in-dropdown-menu .in-dropdown-menu-item+.in-dropdown-menu-item{border-top:1px solid var(--colorBgLevel4)}\n"] }]
101
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { size: [{
102
+ type: Input
103
+ }], color: [{
104
+ type: Input
105
+ }], type: [{
106
+ type: Input
107
+ }], name: [{
108
+ type: Input
109
+ }], testId: [{
110
+ type: Input
111
+ }], label: [{
112
+ type: Input
113
+ }], icon: [{
114
+ type: Input
115
+ }], className: [{
116
+ type: Input
117
+ }], notify: [{
118
+ type: Input
119
+ }], svg: [{
120
+ type: Input
121
+ }], width: [{
122
+ type: Input
123
+ }], link: [{
124
+ type: Input
125
+ }], isLoading: [{
126
+ type: Input
127
+ }], shadow: [{
128
+ type: Input
129
+ }], isIconOnly: [{
130
+ type: Input
131
+ }], linkType: [{
132
+ type: Input
133
+ }], linkTarget: [{
134
+ type: Input
135
+ }], pressed: [{
136
+ type: Input
137
+ }], disabled: [{
138
+ type: Input
139
+ }], iconPos: [{
140
+ type: Input
141
+ }], selectedItem: [{
142
+ type: Input
143
+ }], menuPlacement: [{
144
+ type: Input
145
+ }], menuItems: [{
146
+ type: Input
147
+ }], _menu: [{
148
+ type: ViewChild,
149
+ args: [Menu, { static: false }]
150
+ }], pointerEvents: [{
151
+ type: HostBinding,
152
+ args: ['style.pointer-events']
153
+ }], focus: [{
154
+ type: Output
155
+ }], blur: [{
156
+ type: Output
157
+ }], click: [{
158
+ type: Output
159
+ }] } });
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBZ0IsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdMLE9BQU8sRUFBQyxNQUFNLElBQUksT0FBTyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFakQsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGNBQWMsQ0FBQzs7Ozs7OztBQWlCbEMsTUFBTSxPQUFPLGVBQWdCLFNBQVEsT0FBTztJQXlEMUMsWUFBcUIsR0FBc0I7UUFDekMsS0FBSyxFQUFFLENBQUM7UUFEVyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQXZEbEMsU0FBSSxHQUFlLFFBQVEsQ0FBQztRQUM1QixVQUFLLEdBQWdCLFFBQVEsQ0FBQztRQUM5QixTQUFJLEdBQWUsUUFBUSxDQUFDO1FBQzVCLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixXQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ1osVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBRyxFQUFFLENBQUM7UUFDVixjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ2YsV0FBTSxHQUFpQixJQUFJLENBQUM7UUFDNUIsUUFBRyxHQUFHLEVBQUUsQ0FBQztRQUNULFVBQUssR0FBRyxNQUFNLENBQUM7UUFDZixTQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ1YsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ2YsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUU1Qjs7OztXQUlHO1FBQ00sYUFBUSxHQUFxQyxNQUFNLENBQUM7UUFDN0Q7Ozs7V0FJRztRQUNNLGVBQVUsR0FBOEIsTUFBTSxDQUFDO1FBR3hELDRCQUE0QjtRQUNuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFakIsWUFBTyxHQUFZLE1BQU0sQ0FBQztRQUUxQixpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixrQkFBYSxHQUFHLGFBQWEsQ0FBQztRQUM5QixjQUFTLEdBQXNCLEVBQUUsQ0FBQztRQVFqQyxVQUFLLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDOUMsU0FBSSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzdDLFVBQUssR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV4RCxZQUFPLEdBQUcsT0FBTyxDQUFDO1FBQ2xCLGNBQVMsR0FBcUMsTUFBTSxDQUFDO1FBRXJELG1CQUFjLEdBQUcsS0FBSyxDQUFDO0lBR3ZCLENBQUM7SUFmRCxJQUNJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQ3pDLENBQUM7SUFjRCxRQUFRO1FBR04sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBTztRQUNqQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELFVBQVU7UUFDUixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7UUFFL0IsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLE1BQU0sRUFBRTtZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUU7Z0JBQ3RFLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO2FBQzdCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDO2FBQzdCO1NBQ0Y7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEtBQUssTUFBTSxFQUFFO1lBQzlCLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxVQUFVLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsUUFBUSxDQUFDO2FBQ3pCO2lCQUFNO2dCQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO2FBQ3hCO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsS0FBSyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1NBQy9EO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1NBQzVCO2FBQU07WUFDTCxJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxRQUFRLENBQUMsTUFBTTtRQUNkLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDMUIsQ0FBQzs7NEdBckdVLGVBQWU7Z0dBQWYsZUFBZSw2cUJBMkNmLElBQUksNEZDL0RqQiwwdlJBMkpBLGcvSkR2SWEsZUFBZTsyRkFBZixlQUFlO2tCQVAzQixTQUFTOytCQUNFLFdBQVcsaUJBR04saUJBQWlCLENBQUMsUUFBUSxtQkFDeEIsdUJBQXVCLENBQUMsTUFBTTt3R0FJdEMsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLEdBQUc7c0JBQVgsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBT0csUUFBUTtzQkFBaEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQUlHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFNEIsS0FBSztzQkFBdEMsU0FBUzt1QkFBQyxJQUFJLEVBQUUsRUFBQyxNQUFNLEVBQUUsS0FBSyxFQUFDO2dCQUU1QixhQUFhO3NCQURoQixXQUFXO3VCQUFDLHNCQUFzQjtnQkFLekIsS0FBSztzQkFBZCxNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQsIFZpZXdFbmNhcHN1bGF0aW9uLCBIb3N0TGlzdGVuZXIsIEhvc3RCaW5kaW5nfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7QnV0dG9uIGFzIFBCdXR0b259IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7SW5zcGFya01lbnVJdGVtfSBmcm9tICcuLi8uLi9pbnRlcmZhY2UnO1xuaW1wb3J0IHtNZW51fSBmcm9tICdwcmltZW5nL21lbnUnO1xuXG5cbnR5cGUgQnV0dG9uU2l6ZSA9ICdzbWFsbCcgfCAnbm9ybWFsJyB8ICdsYXJnZScgfCAndGlueSc7XG50eXBlIEJ1dHRvbkNvbG9yID0gJ25vcm1hbCcgfCAnZGFuZ2VyJyB8ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ3RyYW5zcGFyZW50JztcbnR5cGUgQnV0dG9uVHlwZSA9ICdidXR0b24nIHwgJ3N1Ym1pdCc7XG50eXBlIEljb25Qb3MgPSAnbGVmdCcgfCAncmlnaHQnO1xudHlwZSBCdXR0b25Ob3RpZnkgPSAnd2FybmluZycgfCAnZXJyb3InO1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2luLWJ1dHRvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9idXR0b24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9idXR0b24uY29tcG9uZW50LnNjc3MnXSxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25Db21wb25lbnQgZXh0ZW5kcyBQQnV0dG9uIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuXG4gIEBJbnB1dCgpIHNpemU6IEJ1dHRvblNpemUgPSAnbm9ybWFsJztcbiAgQElucHV0KCkgY29sb3I6IEJ1dHRvbkNvbG9yID0gJ25vcm1hbCc7XG4gIEBJbnB1dCgpIHR5cGU6IEJ1dHRvblR5cGUgPSAnYnV0dG9uJztcbiAgQElucHV0KCkgbmFtZSA9ICcnO1xuICBASW5wdXQoKSB0ZXN0SWQgPSAnJztcbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgaWNvbiA9ICcnO1xuICBASW5wdXQoKSBjbGFzc05hbWUgPSAnJztcbiAgQElucHV0KCkgbm90aWZ5OiBCdXR0b25Ob3RpZnkgPSBudWxsO1xuICBASW5wdXQoKSBzdmcgPSAnJztcbiAgQElucHV0KCkgd2lkdGggPSAnYXV0byc7XG4gIEBJbnB1dCgpIGxpbmsgPSAnJztcbiAgQElucHV0KCkgaXNMb2FkaW5nID0gZmFsc2U7XG4gIEBJbnB1dCgpIHNoYWRvdyA9IGZhbHNlO1xuICBASW5wdXQoKSBpc0ljb25Pbmx5ID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIGV4dGVybmFsIC0g0YHRgdGL0LvQutCwINC90LAg0LLQvdC10YjQvdC40Lkg0LjRgdGC0L7Rh9C90LjQulxuICAgKiBpbnRlcm5hbCAtINGB0YHRi9C70LrQsCDQstC90YPRgtGA0Lgg0L/RgNC40LvQvtC20LXQvdC40Y9cbiAgICogYXV0byAtINC+0L/RgNC10LTQtdC70Y/QtdGC0YHRjyDQsNCy0YLQvtC80LDRgtC40YfQtdGB0LrQuCDQuNGB0YXQvtC00Y8g0LjQtyBsaW5rXG4gICAqL1xuICBASW5wdXQoKSBsaW5rVHlwZTogJ2F1dG8nIHwgJ2V4dGVybmFsJyB8ICdpbnRlcm5hbCcgPSAnYXV0byc7XG4gIC8qKlxuICAgKiBzZWxmIC0g0L7RgtC60YDRi9Cy0LDQtdGC0YHRjyDQsiDRjdGC0L7QvCDQttC1INC+0LrQvdC1XG4gICAqIGJsYW5rIC0g0L7RgtC60YDRi9Cy0LDQtdGC0YHRjyDQsiDQvdC+0LLQvtC8INC+0LrQvdC1XG4gICAqIGF1dG8gLSDQvtC/0YDQtdC00LXQu9GP0LXRgtGB0Y8g0LDQstGC0L7QvNCw0YLQuNGH0LXRgdC60Lgg0LjRgdGF0L7QtNGPINC40LcgbGlua1R5cGVcbiAgICovXG4gIEBJbnB1dCgpIGxpbmtUYXJnZXQ6ICdhdXRvJyB8ICdzZWxmJyB8ICdibGFuaycgPSAnYXV0byc7XG5cblxuICAvLyDQntGC0L7QsdGA0LDQttCw0LXRgiDQutC90L7Qv9C60YMg0L3QsNC20LDRgtC+0LlcbiAgQElucHV0KCkgcHJlc3NlZCA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQElucHV0KCkgaWNvblBvczogSWNvblBvcyA9ICdsZWZ0JztcblxuICBASW5wdXQoKSBzZWxlY3RlZEl0ZW0gPSBudWxsO1xuICBASW5wdXQoKSBtZW51UGxhY2VtZW50ID0gJ2JvdHRvbS1sZWZ0JztcbiAgQElucHV0KCkgbWVudUl0ZW1zOiBJbnNwYXJrTWVudUl0ZW1bXSA9IFtdO1xuXG4gIEBWaWV3Q2hpbGQoTWVudSwge3N0YXRpYzogZmFsc2V9KSBfbWVudSAhOiBNZW51O1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlLnBvaW50ZXItZXZlbnRzJylcbiAgZ2V0IHBvaW50ZXJFdmVudHMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kaXNhYmxlZCA/ICdub25lJyA6ICdhdXRvJztcbiAgfVxuXG4gIEBPdXRwdXQoKSBmb2N1czogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoKSBibHVyOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIGNsaWNrOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBfdGFyZ2V0ID0gJ19zZWxmJztcbiAgX2xpbmtUeXBlOiAnYXV0bycgfCAnZXh0ZXJuYWwnIHwgJ2ludGVybmFsJyA9ICdhdXRvJztcblxuICBpc01hdGVyaWFsSWNvbiA9IGZhbHNlO1xuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcblxuXG4gICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzKSB7XG4gICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gIH1cblxuICB1cGRhdGVEYXRhKCkge1xuICAgIHRoaXMuX2xpbmtUeXBlID0gdGhpcy5saW5rVHlwZTtcblxuICAgIGlmICh0aGlzLl9saW5rVHlwZSA9PT0gJ2F1dG8nKSB7XG4gICAgICBpZiAoKHRoaXMubGluay5pbmRleE9mKCc6Ly8nKSAhPT0gLTEgfHwgdGhpcy5saW5rLmluZGV4T2YoJy8vJykgPT09IDApKSB7XG4gICAgICAgIHRoaXMuX2xpbmtUeXBlID0gJ2V4dGVybmFsJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX2xpbmtUeXBlID0gJ2ludGVybmFsJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy5saW5rVGFyZ2V0ID09PSAnYXV0bycpIHtcbiAgICAgIGlmICh0aGlzLl9saW5rVHlwZSA9PT0gJ2V4dGVybmFsJykge1xuICAgICAgICB0aGlzLl90YXJnZXQgPSAnX2JsYW5rJztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuX3RhcmdldCA9ICdfc2VsZic7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX3RhcmdldCA9IHRoaXMubGlua1RhcmdldCA9PT0gJ3NlbGYnID8gJ19zZWxmJyA6ICdibGFuayc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaWNvbiAmJiB0aGlzLmljb24uaW5kZXhPZignZmEtJykgPT09IC0xKSB7XG4gICAgICB0aGlzLmlzTWF0ZXJpYWxJY29uID0gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5pc01hdGVyaWFsSWNvbiA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIF9vbkNsaWNrKCRldmVudCkge1xuICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG59XG4iLCI8YSAoYmx1cik9XCJibHVyLmVtaXQoJGV2ZW50KVwiXG4gICAoY2xpY2spPVwiX29uQ2xpY2soJGV2ZW50KVwiXG4gICAoZm9jdXMpPVwiZm9jdXMuZW1pdCgkZXZlbnQpXCJcbiAgICpuZ0lmPVwibGluayAmJiBfbGlua1R5cGUgPT09J2V4dGVybmFsJ1wiXG4gICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgW2NsYXNzXT1cImNsYXNzTmFtZSArICcgJyArIHRlc3RJZCAgKyAnIGZpZWxkXycgKyBuYW1lXCJcbiAgIFtocmVmXT1cImxpbmtcIlxuICAgW25nQ2xhc3NdPVwieyd1aS1idXR0b24gdWktd2lkZ2V0IHVpLXN0YXRlLWRlZmF1bHQgdWktY29ybmVyLWFsbCc6dHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24taWNvbi1vbmx5JzogKChpY29uIHx8IHN2ZykgJiYgIWxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tdGV4dC1pY29uLWxlZnQnOiAoKGljb24gfHwgc3ZnKSAmJiBsYWJlbCAmJiBpY29uUG9zID09PSAnbGVmdCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10ZXh0LWljb24tcmlnaHQnOiAoKGljb24gfHwgc3ZnKSAmJiBsYWJlbCAmJiBpY29uUG9zID09PSAncmlnaHQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tdGV4dC1vbmx5JzogKCEoaWNvbiB8fCBzdmcpICYmIGxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tdGV4dC1lbXB0eSc6ICghKGljb24gfHwgc3ZnKSAmJiAhbGFiZWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1zdmcnOiBzdmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLW1hdGVyaWFsJzogaXNNYXRlcmlhbEljb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktc3RhdGUtZGlzYWJsZWQnOiBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tdGlueSc6IHNpemUgPT09ICd0aW55JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tc21hbGwnOiBzaXplID09PSAnc21hbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1sYXJnZSc6IHNpemUgPT09ICdsYXJnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLXByaW1hcnknOiBjb2xvciA9PT0gJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1zZWNvbmRhcnknOiBjb2xvciA9PT0gJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLWRhbmdlcic6IGNvbG9yID09PSAnZGFuZ2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tdHJhbnNwYXJlbmN5JzogY29sb3IgPT09ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLXByZXNzZWQnIDogcHJlc3NlZH1cIlxuICAgW25nU3R5bGVdPVwie3dpZHRoOndpZHRofVwiXG4gICBbc3R5bGVdPVwic3R5bGVcIlxuICAgW3RhcmdldF09XCJfdGFyZ2V0XCIgY2xhc3M9XCJidXR0b24tY29udGFpbmVyXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50O1wiPjwvbmctY29udGFpbmVyPlxuPC9hPlxuPGEgKGJsdXIpPVwiYmx1ci5lbWl0KCRldmVudClcIlxuICAgKGNsaWNrKT1cIl9vbkNsaWNrKCRldmVudClcIlxuICAgKGZvY3VzKT1cImZvY3VzLmVtaXQoJGV2ZW50KVwiXG4gICAqbmdJZj1cImxpbmsgJiYgX2xpbmtUeXBlID09PSdpbnRlcm5hbCdcIlxuICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgIFtjbGFzc109XCJjbGFzc05hbWUgKyAnICcgKyB0ZXN0SWQgICsgJyBmaWVsZF8nICsgbmFtZVwiXG4gICBbbmdDbGFzc109XCJ7J3VpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsJzp0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1pY29uLW9ubHknOiAoKGljb24gfHwgc3ZnKSAmJiAhbGFiZWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10ZXh0LWljb24tbGVmdCc6ICgoaWNvbiB8fCBzdmcpICYmIGxhYmVsICYmIGljb25Qb3MgPT09ICdsZWZ0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLXRleHQtaWNvbi1yaWdodCc6ICgoaWNvbiB8fCBzdmcpICYmIGxhYmVsICYmIGljb25Qb3MgPT09ICdyaWdodCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10ZXh0LW9ubHknOiAoIShpY29uIHx8IHN2ZykgJiYgbGFiZWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10ZXh0LWVtcHR5JzogKCEoaWNvbiB8fCBzdmcpICYmICFsYWJlbCksXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLXN2Zyc6IHN2ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tbWF0ZXJpYWwnOiBpc01hdGVyaWFsSWNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1zdGF0ZS1kaXNhYmxlZCc6IGRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10aW55Jzogc2l6ZSA9PT0gJ3RpbnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1zbWFsbCc6IHNpemUgPT09ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLWxhcmdlJzogc2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tcHJpbWFyeSc6IGNvbG9yID09PSAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLXNlY29uZGFyeSc6IGNvbG9yID09PSAnc2Vjb25kYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tZGFuZ2VyJzogY29sb3IgPT09ICdkYW5nZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10cmFuc3BhcmVuY3knOiBjb2xvciA9PT0gJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tcHJlc3NlZCcgOiBwcmVzc2VkfVwiXG4gICBbbmdTdHlsZV09XCJ7d2lkdGg6d2lkdGh9XCJcbiAgIFtyb3V0ZXJMaW5rXT1cImxpbmtcIlxuICAgW3N0eWxlXT1cInN0eWxlXCJcbiAgIFt0YXJnZXRdPVwiX3RhcmdldFwiIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiPlxuICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY29udGVudDtcIj48L25nLWNvbnRhaW5lcj5cbjwvYT5cbjxzcGFuICNkcm9wZG93bj1cIm5nYkRyb3Bkb3duXCIgKm5nSWY9XCIhbGluayAmJiBtZW51SXRlbXMubGVuZ3RoXCIgW25nU3R5bGVdPVwie3dpZHRoOndpZHRofVwiIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiIGNvbnRhaW5lcj1cImJvZHlcIlxuICAgICAgbmdiRHJvcGRvd24+XG4gICAgPGJ1dHRvblxuICAgICAgKGJsdXIpPVwiYmx1ci5lbWl0KCRldmVudClcIlxuICAgICAgKGNsaWNrKT1cIl9vbkNsaWNrKCRldmVudClcIlxuICAgICAgKGZvY3VzKT1cImZvY3VzLmVtaXQoJGV2ZW50KVwiXG4gICAgICBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgW2NsYXNzXT1cImNsYXNzTmFtZSArICcgJyArIHRlc3RJZCArICcgZmllbGRfJyArIG5hbWVcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgIFtuZ0NsYXNzXT1cIiB7J3VpLWJ1dHRvbiB1aS13aWRnZXQgdWktc3RhdGUtZGVmYXVsdCB1aS1jb3JuZXItYWxsJzp0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1pY29uLW9ubHknOiAoKGljb24gfHwgc3ZnKSAmJiAhbGFiZWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10ZXh0LWljb24tbGVmdCc6ICgoaWNvbiB8fCBzdmcpICYmIGxhYmVsICYmIGljb25Qb3MgPT09ICdsZWZ0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLXRleHQtaWNvbi1yaWdodCc6ICgoaWNvbiB8fCBzdmcpICYmIGxhYmVsICYmIGljb25Qb3MgPT09ICdyaWdodCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10ZXh0LW9ubHknOiAoIShpY29uIHx8IHN2ZykgJiYgbGFiZWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10ZXh0LWVtcHR5JzogKCEoaWNvbiB8fCBzdmcpICYmICFsYWJlbCksXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLXN2Zyc6IHN2ZyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tbWF0ZXJpYWwnOiBpc01hdGVyaWFsSWNvbixcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1zdGF0ZS1kaXNhYmxlZCc6IGRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10aW55Jzogc2l6ZSA9PT0gJ3RpbnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1zbWFsbCc6IHNpemUgPT09ICdzbWFsbCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLWxhcmdlJzogc2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tcHJpbWFyeSc6IGNvbG9yID09PSAncHJpbWFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLXNlY29uZGFyeSc6IGNvbG9yID09PSAnc2Vjb25kYXJ5JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tZGFuZ2VyJzogY29sb3IgPT09ICdkYW5nZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10cmFuc3BhcmVuY3knOiBjb2xvciA9PT0gJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tc2hhZG93ZWQnOiBzaGFkb3cgPT09IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLXByZXNzZWQnIDogcHJlc3NlZH1cIlxuICAgICAgW3N0eWxlXT1cInN0eWxlXCIgbmdiRHJvcGRvd25Ub2dnbGU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50O1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgKm5nSWY9XCJtZW51SXRlbXMubGVuZ3RoXCIgYXJpYS1sYWJlbGxlZGJ5PVwibWVudVwiXG4gICAgICAgICBjbGFzcz1cImluLWRyb3Bkb3duLW1lbnVcIlxuICAgICAgICAgbmdiRHJvcGRvd25NZW51PlxuICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBpdGVtIG9mIG1lbnVJdGVtc1wiIGNsYXNzPVwiaW4tZHJvcGRvd24tbWVudS1pdGVtXCIgcm9sZT1cIm1lbnVpdGVtXCI+XG4gICAgICAgICAgICA8aW4tYnV0dG9uIChjbGljayk9XCJkcm9wZG93bi5jbG9zZSgpOyBpdGVtLmNvbW1hbmQoKTtcIlxuICAgICAgICAgICAgICAgICAgICAgICBbY29sb3JdPVwic2VsZWN0ZWRJdGVtICYmIHNlbGVjdGVkSXRlbSA9PSBpdGVtLmlkPydwcmltYXJ5JzondHJhbnNwYXJlbnQnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2ljb25dPVwiaXRlbS5pY29uXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIml0ZW0ubGFiZWxcIlxuICAgICAgICAgICAgICAgICAgICAgICBbc3ZnXT1cIml0ZW0uc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCI+PC9pbi1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cIm5vdGlmeVwiIFtuZ0NsYXNzXT1cIm5vdGlmeVwiIGNsYXNzPVwibm90aWZ5XCI+PC9kaXY+XG48L3NwYW4+XG48c3BhbiAqbmdJZj1cIiFsaW5rICYmICFtZW51SXRlbXMubGVuZ3RoXCIgW25nU3R5bGVdPVwie3dpZHRoOndpZHRofVwiIGNsYXNzPVwiYnV0dG9uLWNvbnRhaW5lclwiPlxuICAgIDxidXR0b25cbiAgICAgIChibHVyKT1cImJsdXIuZW1pdCgkZXZlbnQpXCJcbiAgICAgIChjbGljayk9XCJfb25DbGljaygkZXZlbnQpXCJcbiAgICAgIChmb2N1cyk9XCJmb2N1cy5lbWl0KCRldmVudClcIlxuICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgIFtjbGFzc109XCJjbGFzc05hbWUgKyAnICcgKyB0ZXN0SWQgICsgJyBmaWVsZF8nICsgbmFtZVwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW25nQ2xhc3NdPVwiIHsndWktYnV0dG9uIHVpLXdpZGdldCB1aS1zdGF0ZS1kZWZhdWx0IHVpLWNvcm5lci1hbGwnOnRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLWljb24tb25seSc6ICgoaWNvbiB8fCBzdmcpICYmICFsYWJlbCkgfHwgaXNJY29uT25seSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tdGV4dC1pY29uLWxlZnQnOiAoKGljb24gfHwgc3ZnKSAmJiBsYWJlbCAmJiBpY29uUG9zID09PSAnbGVmdCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi10ZXh0LWljb24tcmlnaHQnOiAoKGljb24gfHwgc3ZnKSAmJiBsYWJlbCAmJiBpY29uUG9zID09PSAncmlnaHQnKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tdGV4dC1vbmx5JzogKCEoaWNvbiB8fCBzdmcpICYmIGxhYmVsKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tdGV4dC1lbXB0eSc6ICghKGljb24gfHwgc3ZnKSAmJiAhbGFiZWwpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1zdmcnOiBzdmcsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLW1hdGVyaWFsJzogaXNNYXRlcmlhbEljb24sXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktc3RhdGUtZGlzYWJsZWQnOiBkaXNhYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tdGlueSc6IHNpemUgPT09ICd0aW55JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tc21hbGwnOiBzaXplID09PSAnc21hbGwnLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1sYXJnZSc6IHNpemUgPT09ICdsYXJnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLXByaW1hcnknOiBjb2xvciA9PT0gJ3ByaW1hcnknLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1zZWNvbmRhcnknOiBjb2xvciA9PT0gJ3NlY29uZGFyeScsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLWRhbmdlcic6IGNvbG9yID09PSAnZGFuZ2VyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24tdHJhbnNwYXJlbmN5JzogY29sb3IgPT09ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLXNoYWRvd2VkJzogc2hhZG93ID09PSB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1wcmVzc2VkJyA6IHByZXNzZWR9XCIgW3N0eWxlXT1cInN0eWxlXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjb250ZW50O1wiPjwvbmctY29udGFpbmVyPlxuICAgIDwvYnV0dG9uPlxuICAgIDxkaXYgKm5nSWY9XCJub3RpZnlcIiBbbmdDbGFzc109XCJub3RpZnlcIiBjbGFzcz1cIm5vdGlmeVwiPjwvZGl2PlxuPC9zcGFuPlxuXG48bmctdGVtcGxhdGUgI2NvbnRlbnQ+XG4gICAgPHNwYW4gKm5nSWY9XCIhaXNNYXRlcmlhbEljb24gJiYgaWNvbiAmJiAhaXNMb2FkaW5nXCIgW2NsYXNzXT1cImljb25cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsndWktY2xpY2thYmxlJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24taWNvbi1sZWZ0JzogKGljb25Qb3MgPT09ICdsZWZ0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLWljb24tcmlnaHQnOiAoaWNvblBvcyA9PT0gJ3JpZ2h0Jyl9XCI+PC9zcGFuPlxuICA8c3BhbiAqbmdJZj1cImlzTWF0ZXJpYWxJY29uICYmIGljb24gJiYgIWlzTG9hZGluZ1wiIFtuZ0NsYXNzXT1cInsndWktY2xpY2thYmxlJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICd1aS1idXR0b24taWNvbi1sZWZ0JzogKGljb25Qb3MgPT09ICdsZWZ0JyksXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLWljb24tcmlnaHQnOiAoaWNvblBvcyA9PT0gJ3JpZ2h0Jyl9XCJcbiAgPjxpIGNsYXNzPVwibWF0ZXJpYWwtaWNvbnNcIj57e2ljb259fTwvaT48L3NwYW4+XG4gIDxpbi1wcmVsb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIiBzaXplPVwic21hbGxcIj48L2luLXByZWxvYWRlcj5cbiAgPHNwYW4gY2xhc3M9XCJ1aS1idXR0b24tdGV4dCB1aS1jbGlja2FibGVcIj57e2xhYmVsfX08L3NwYW4+XG4gIDxzcGFuICpuZ0lmPVwic3ZnICYmICFpc0xvYWRpbmdcIiBbbmdDbGFzc109XCJ7J3VpLWNsaWNrYWJsZSc6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAndWktYnV0dG9uLWljb24tbGVmdCc6IChpY29uUG9zID09PSAnbGVmdCcpLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ3VpLWJ1dHRvbi1pY29uLXJpZ2h0JzogKGljb25Qb3MgPT09ICdyaWdodCcpfVwiPlxuICAgICAgICA8aW4tc3ZnICpuZ0lmPVwic2l6ZSA9PT0gJ25vcm1hbCdcIiBbc3JjXT1cInN2Z1wiIGhlaWdodD1cIjIwcHhcIiB3aWR0aD1cIjIwcHhcIj48L2luLXN2Zz5cbiAgICAgICAgPGluLXN2ZyAqbmdJZj1cInNpemUgPT09ICdsYXJnZSdcIiBbc3JjXT1cInN2Z1wiIGhlaWdodD1cIjIwcHhcIiB3aWR0aD1cIjIwcHhcIj48L2luLXN2Zz5cbiAgICAgICAgPGluLXN2ZyAqbmdJZj1cInNpemUgPT09ICdzbWFsbCdcIiBbc3JjXT1cInN2Z1wiIGhlaWdodD1cIjIwcHhcIiB3aWR0aD1cIjIwcHhcIj48L2luLXN2Zz5cbiAgICAgICAgPGluLXN2ZyAqbmdJZj1cInNpemUgPT09ICd0aW55J1wiIFtzcmNdPVwic3ZnXCIgaGVpZ2h0PVwiMTBweFwiIHdpZHRoPVwiMTBweFwiPjwvaW4tc3ZnPlxuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -0,0 +1,89 @@
1
+ import { ChangeDetectorRef, Component, ElementRef, forwardRef, Input } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import { Router } from '@angular/router';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/router";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "@angular/common";
8
+ export class CheckboxComponent {
9
+ constructor(element, cdRef, router) {
10
+ this.element = element;
11
+ this.cdRef = cdRef;
12
+ this.router = router;
13
+ this.name = null;
14
+ this.label = null;
15
+ this.required = false;
16
+ this.error = null;
17
+ this.placeholder = '';
18
+ this.id = null;
19
+ this.propagateChange = (_) => {
20
+ };
21
+ }
22
+ /**
23
+ * Write form value to the DOM element (model => view)
24
+ */
25
+ writeValue(value) {
26
+ this.value = value;
27
+ if (!this.cdRef['destroyed']) {
28
+ this.cdRef.detectChanges();
29
+ }
30
+ }
31
+ /**
32
+ * Write form disabled state to the DOM element (model => view)
33
+ */
34
+ setDisabledState(isDisabled) {
35
+ this.disabled = isDisabled;
36
+ }
37
+ /**
38
+ * Update form when DOM element value changes (view => model)
39
+ */
40
+ registerOnChange(fn) {
41
+ // Store the provided function as an internal method.
42
+ this.propagateChange = fn;
43
+ }
44
+ /**
45
+ * Update form when DOM element is blurred (view => model)
46
+ */
47
+ registerOnTouched(fn) {
48
+ // Store the provided function as an internal method.
49
+ this.onTouched = fn;
50
+ }
51
+ onChange(_) {
52
+ this.propagateChange(this.value);
53
+ }
54
+ onTouched() {
55
+ }
56
+ }
57
+ CheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CheckboxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
58
+ CheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CheckboxComponent, selector: "in-checkbox", inputs: { name: "name", label: "label", required: "required", error: "error", placeholder: "placeholder", id: "id", disabled: "disabled" }, providers: [
59
+ {
60
+ provide: NG_VALUE_ACCESSOR,
61
+ useExisting: forwardRef(() => CheckboxComponent),
62
+ multi: true,
63
+ }
64
+ ], ngImport: i0, template: "<label class=\"c-checkbox\">\n <input (change)=\"onChange($event)\" (input)=\"onChange($event)\"\n (ngModelChange)=\"onChange(value)\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n class=\"c-checkbox__input field_{{id}}\"\n name=\"element_name\"\n type=\"checkbox\"/>\n <i class=\"c-checkbox__icon\"></i>\n <span *ngIf=\"label\" class=\"label\">{{ label }}</span>\n <span class=\"label\"><ng-content></ng-content></span>\n</label>\n", styles: [":host{width:100%}.c-checkbox{margin:0;display:flex;min-width:100%;align-items:center;padding:8px}.c-checkbox .c-checkbox__input+.c-checkbox__icon{padding-left:20px;top:0}.c-checkbox .label{display:flex;align-items:center}.c-checkbox .label:not(:empty){display:inline-flex;padding-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CheckboxComponent, decorators: [{
66
+ type: Component,
67
+ args: [{ selector: 'in-checkbox', providers: [
68
+ {
69
+ provide: NG_VALUE_ACCESSOR,
70
+ useExisting: forwardRef(() => CheckboxComponent),
71
+ multi: true,
72
+ }
73
+ ], template: "<label class=\"c-checkbox\">\n <input (change)=\"onChange($event)\" (input)=\"onChange($event)\"\n (ngModelChange)=\"onChange(value)\"\n [(ngModel)]=\"value\"\n [disabled]=\"disabled\"\n class=\"c-checkbox__input field_{{id}}\"\n name=\"element_name\"\n type=\"checkbox\"/>\n <i class=\"c-checkbox__icon\"></i>\n <span *ngIf=\"label\" class=\"label\">{{ label }}</span>\n <span class=\"label\"><ng-content></ng-content></span>\n</label>\n", styles: [":host{width:100%}.c-checkbox{margin:0;display:flex;min-width:100%;align-items:center;padding:8px}.c-checkbox .c-checkbox__input+.c-checkbox__icon{padding-left:20px;top:0}.c-checkbox .label{display:flex;align-items:center}.c-checkbox .label:not(:empty){display:inline-flex;padding-left:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
74
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Router }]; }, propDecorators: { name: [{
75
+ type: Input
76
+ }], label: [{
77
+ type: Input
78
+ }], required: [{
79
+ type: Input
80
+ }], error: [{
81
+ type: Input
82
+ }], placeholder: [{
83
+ type: Input
84
+ }], id: [{
85
+ type: Input
86
+ }], disabled: [{
87
+ type: Input
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5zcGFyay1jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBdUIsaUJBQWlCLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RSxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7O0FBY3ZDLE1BQU0sT0FBTyxpQkFBaUI7SUFZNUIsWUFBbUIsT0FBbUIsRUFBVSxLQUF3QixFQUFTLE1BQWM7UUFBNUUsWUFBTyxHQUFQLE9BQU8sQ0FBWTtRQUFVLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQVMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQVZ0RixTQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ1osVUFBSyxHQUFHLElBQUksQ0FBQztRQUNiLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsVUFBSyxHQUFHLElBQUksQ0FBQztRQUNiLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE9BQUUsR0FBRyxJQUFJLENBQUM7UUEwQ1gsb0JBQWUsR0FBRyxDQUFDLENBQU0sRUFBRSxFQUFFO1FBQ3JDLENBQUMsQ0FBQztJQXBDRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxVQUFVLENBQUMsS0FBVTtRQUNuQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUNuQixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUM1QixJQUFJLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzVCO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsVUFBbUI7UUFDbEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixxREFBcUQ7UUFDckQsSUFBSSxDQUFDLGVBQWUsR0FBRyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsaUJBQWlCLENBQUMsRUFBTztRQUN2QixxREFBcUQ7UUFDckQsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUtBLFFBQVEsQ0FBQyxDQUFNO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVPLFNBQVM7SUFDakIsQ0FBQzs7OEdBekRVLGlCQUFpQjtrR0FBakIsaUJBQWlCLGtMQVJqQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRiwwQkNkSCw0ZUFZQTsyRkRJYSxpQkFBaUI7a0JBWjdCLFNBQVM7K0JBQ0UsYUFBYSxhQUdaO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDOzRCQUNoRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtzSkFJUSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIElucHV0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7Q29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQge1JvdXRlcn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW4tY2hlY2tib3gnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jaGVja2JveC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IENoZWNrYm94Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH1cbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2hlY2tib3hDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgQElucHV0KCkgbmFtZSA9IG51bGw7XG4gIEBJbnB1dCgpIGxhYmVsID0gbnVsbDtcbiAgQElucHV0KCkgcmVxdWlyZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3IgPSBudWxsO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSBpZCA9IG51bGw7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIHZhbHVlOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IocHVibGljIGVsZW1lbnQ6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLCBwdWJsaWMgcm91dGVyOiBSb3V0ZXIpIHtcblxuICB9XG5cbiAgLyoqXG4gICAqIFdyaXRlIGZvcm0gdmFsdWUgdG8gdGhlIERPTSBlbGVtZW50IChtb2RlbCA9PiB2aWV3KVxuICAgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIGlmICghdGhpcy5jZFJlZlsnZGVzdHJveWVkJ10pIHtcbiAgICAgIHRoaXMuY2RSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBXcml0ZSBmb3JtIGRpc2FibGVkIHN0YXRlIHRvIHRoZSBET00gZWxlbWVudCAobW9kZWwgPT4gdmlldylcbiAgICovXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG5cbiAgLyoqXG4gICAqIFVwZGF0ZSBmb3JtIHdoZW4gRE9NIGVsZW1lbnQgdmFsdWUgY2hhbmdlcyAodmlldyA9PiBtb2RlbClcbiAgICovXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgIC8vIFN0b3JlIHRoZSBwcm92aWRlZCBmdW5jdGlvbiBhcyBhbiBpbnRlcm5hbCBtZXRob2QuXG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGUgZm9ybSB3aGVuIERPTSBlbGVtZW50IGlzIGJsdXJyZWQgKHZpZXcgPT4gbW9kZWwpXG4gICAqL1xuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgLy8gU3RvcmUgdGhlIHByb3ZpZGVkIGZ1bmN0aW9uIGFzIGFuIGludGVybmFsIG1ldGhvZC5cbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2UgPSAoXzogYW55KSA9PiB7XG4gIH07XG5cbiAgIG9uQ2hhbmdlKF86IGFueSkge1xuICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWQoKSB7XG4gIH1cblxufVxuIiwiPGxhYmVsIGNsYXNzPVwiYy1jaGVja2JveFwiPlxuICA8aW5wdXQgKGNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCIgKGlucHV0KT1cIm9uQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25DaGFuZ2UodmFsdWUpXCJcbiAgICAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxuICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgIGNsYXNzPVwiYy1jaGVja2JveF9faW5wdXQgZmllbGRfe3tpZH19XCJcbiAgICAgICAgIG5hbWU9XCJlbGVtZW50X25hbWVcIlxuICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIvPlxuICA8aSBjbGFzcz1cImMtY2hlY2tib3hfX2ljb25cIj48L2k+XG4gIDxzcGFuICpuZ0lmPVwibGFiZWxcIiBjbGFzcz1cImxhYmVsXCI+e3sgbGFiZWwgfX08L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwibGFiZWxcIj48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9zcGFuPlxuPC9sYWJlbD5cbiJdfQ==
@@ -0,0 +1,25 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { Subject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ export class CommunicationService {
5
+ constructor() {
6
+ this.messageSource = {};
7
+ this.message$ = {};
8
+ }
9
+ create(id) {
10
+ if (!this.messageSource[id]) {
11
+ this.messageSource[id] = new Subject();
12
+ this.message$[id] = this.messageSource[id].asObservable();
13
+ }
14
+ }
15
+ next(widgetId, value) {
16
+ this.create(widgetId);
17
+ this.messageSource[widgetId].next(value);
18
+ }
19
+ }
20
+ CommunicationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CommunicationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
21
+ CommunicationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CommunicationService });
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CommunicationService, decorators: [{
23
+ type: Injectable
24
+ }] });
25
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbXVuaWNhdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5zcGFyay1jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL2NvbW11bmljYXRpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7O0FBRzdCLE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFJVSxrQkFBYSxHQUFHLEVBQUUsQ0FBQztRQUMzQixhQUFRLEdBQUcsRUFBRSxDQUFDO0tBYWY7SUFYQyxNQUFNLENBQUMsRUFBVTtRQUNmLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQzNCLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7U0FDM0Q7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLFFBQWdCLEVBQUUsS0FBVTtRQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7O2lIQWhCVSxvQkFBb0I7cUhBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7U3ViamVjdH0gZnJvbSAncnhqcyc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDb21tdW5pY2F0aW9uU2VydmljZSB7XG5cblxuICBwcml2YXRlIG1lc3NhZ2VTb3VyY2UgPSB7fTtcbiAgbWVzc2FnZSQgPSB7fTtcblxuICBjcmVhdGUoaWQ6IG51bWJlcikge1xuICAgIGlmICghdGhpcy5tZXNzYWdlU291cmNlW2lkXSkge1xuICAgICAgdGhpcy5tZXNzYWdlU291cmNlW2lkXSA9IG5ldyBTdWJqZWN0KCk7XG4gICAgICB0aGlzLm1lc3NhZ2UkW2lkXSA9IHRoaXMubWVzc2FnZVNvdXJjZVtpZF0uYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuICB9XG5cbiAgbmV4dCh3aWRnZXRJZDogbnVtYmVyLCB2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5jcmVhdGUod2lkZ2V0SWQpO1xuICAgIHRoaXMubWVzc2FnZVNvdXJjZVt3aWRnZXRJZF0ubmV4dCh2YWx1ZSk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class ComponentContainerComponent {
5
+ constructor() {
6
+ this.align = 'left';
7
+ }
8
+ }
9
+ ComponentContainerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ComponentContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ ComponentContainerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ComponentContainerComponent, selector: "in-component-container", inputs: { align: "align" }, ngImport: i0, template: "<div [ngClass]=\"align\" class=\"inspark-component-container\">\n <ng-content></ng-content>\n</div>\n", styles: ["@charset \"UTF-8\";.inspark-component-container{display:flex}@media screen and (min-width: 480px){.inspark-component-container{padding-bottom:0}}:host ::ng-deep in-button{margin-right:8px}:host ::ng-deep in-button:last-child{margin-right:0}:host ::ng-deep in-link{margin-right:8px}:host ::ng-deep in-link:last-child{margin-right:0}.right{justify-content:flex-end}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ComponentContainerComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'in-component-container', template: "<div [ngClass]=\"align\" class=\"inspark-component-container\">\n <ng-content></ng-content>\n</div>\n", styles: ["@charset \"UTF-8\";.inspark-component-container{display:flex}@media screen and (min-width: 480px){.inspark-component-container{padding-bottom:0}}:host ::ng-deep in-button{margin-right:8px}:host ::ng-deep in-button:last-child{margin-right:0}:host ::ng-deep in-link{margin-right:8px}:host ::ng-deep in-link:last-child{margin-right:0}.right{justify-content:flex-end}\n"] }]
14
+ }], propDecorators: { align: [{
15
+ type: Input
16
+ }] } });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbnNwYXJrLWNvbXBvbmVudHMvc3JjL2NvbXBvbmVudHMvY29tcG9uZW50LWNvbnRhaW5lci9jb21wb25lbnQtY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9jb21wb25lbnQtY29udGFpbmVyL2NvbXBvbmVudC1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsTUFBTSxlQUFlLENBQUM7OztBQVUvQyxNQUFNLE9BQU8sMkJBQTJCO0lBTHhDO1FBUVcsVUFBSyxHQUFVLE1BQU0sQ0FBQztLQUVoQzs7d0hBTFksMkJBQTJCOzRHQUEzQiwyQkFBMkIsMEZDVnhDLHdHQUdBOzJGRE9hLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSx3QkFBd0I7OEJBT3pCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBJbnB1dH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxudHlwZSBBTElHTiA9ICdyaWdodCcgfCAnbGVmdCcgfCAnY2VudGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaW4tY29tcG9uZW50LWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21wb25lbnQtY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29tcG9uZW50LWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb21wb25lbnRDb250YWluZXJDb21wb25lbnQge1xuXG5cbiAgQElucHV0KCkgYWxpZ246IEFMSUdOID0gJ2xlZnQnO1xuXG59XG4iLCI8ZGl2IFtuZ0NsYXNzXT1cImFsaWduXCIgY2xhc3M9XCJpbnNwYXJrLWNvbXBvbmVudC1jb250YWluZXJcIj5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,49 @@
1
+ import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../svg/svg.component";
5
+ export class ContentToggleComponent {
6
+ constructor(cdr) {
7
+ this.cdr = cdr;
8
+ this.defaultOpen = true;
9
+ this.isOpen = this.defaultOpen;
10
+ this.icon = null;
11
+ this.manualArrow = true;
12
+ this.toggle = new EventEmitter();
13
+ }
14
+ ngOnInit() {
15
+ this.isOpen = this.defaultOpen;
16
+ }
17
+ toggleOpen(e) {
18
+ // Получаем родительский элемент div
19
+ const parentElement = this.elementButtons.nativeElement;
20
+ // Проверяем, входит ли цель события в родительский элемент
21
+ if (!parentElement.contains(e.target) || e.target === parentElement) {
22
+ this.isOpen = !this.isOpen;
23
+ this.toggle.emit(this.isOpen);
24
+ this.cdr.detectChanges();
25
+ }
26
+ }
27
+ }
28
+ ContentToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ContentToggleComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
29
+ ContentToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: ContentToggleComponent, selector: "in-content-toggle", inputs: { label: "label", defaultOpen: "defaultOpen", isOpen: "isOpen", icon: "icon", manualArrow: "manualArrow" }, outputs: { toggle: "toggle" }, viewQueries: [{ propertyName: "elementButtons", first: true, predicate: ["buttons"], descendants: true, static: true }], ngImport: i0, template: "<div class=\"block\" (click)=\"toggleOpen($event)\" tabIndex=\"1\">\n <span [ngClass]=\"{arrow: true, close: !isOpen}\">\n <in-svg *ngIf=\"manualArrow\" [src]=\"'arrow-down.svg'\" width=\"48px\" height=\"48px\"></in-svg>\n <ng-content select=\"[arrow]\"></ng-content>\n </span>\n <span class=\"label\">\n <in-svg *ngIf=\"icon\" class=\"label-icon\" [src]=\"icon\"></in-svg>\n {{label}}\n </span>\n <span class=\"counter\">\n <ng-content select=\"[header]\"></ng-content>\n </span>\n <div class=\"buttons\" #buttons>\n <ng-content select=\"[buttons]\"></ng-content>\n </div>\n</div>\n<div class=\"container\" *ngIf=\"isOpen\">\n <ng-content select=\"[body]\"></ng-content>\n</div>\n", styles: ["@charset \"UTF-8\";.block{font-size:12px;text-transform:uppercase;cursor:pointer;display:flex;white-space:nowrap}.block .buttons{flex:1;display:flex;justify-content:flex-end;align-items:center;-webkit-user-select:none;user-select:none}.block:hover{background:var(--colorBgLevel2)}.block>span{display:inline-block;margin-right:4px}.block .label{margin-right:8px;display:flex;align-items:center;overflow:hidden;text-overflow:ellipsis}.block .counter{display:flex;align-items:center;padding-right:8px}.block .arrow{margin-right:0}.block .arrow.close{transform:rotate(-90deg)}.label-icon{margin-right:4px;width:16px;height:16px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SvgComponent, selector: "in-svg", inputs: ["size", "width", "height", "src"] }] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: ContentToggleComponent, decorators: [{
31
+ type: Component,
32
+ args: [{ selector: 'in-content-toggle', template: "<div class=\"block\" (click)=\"toggleOpen($event)\" tabIndex=\"1\">\n <span [ngClass]=\"{arrow: true, close: !isOpen}\">\n <in-svg *ngIf=\"manualArrow\" [src]=\"'arrow-down.svg'\" width=\"48px\" height=\"48px\"></in-svg>\n <ng-content select=\"[arrow]\"></ng-content>\n </span>\n <span class=\"label\">\n <in-svg *ngIf=\"icon\" class=\"label-icon\" [src]=\"icon\"></in-svg>\n {{label}}\n </span>\n <span class=\"counter\">\n <ng-content select=\"[header]\"></ng-content>\n </span>\n <div class=\"buttons\" #buttons>\n <ng-content select=\"[buttons]\"></ng-content>\n </div>\n</div>\n<div class=\"container\" *ngIf=\"isOpen\">\n <ng-content select=\"[body]\"></ng-content>\n</div>\n", styles: ["@charset \"UTF-8\";.block{font-size:12px;text-transform:uppercase;cursor:pointer;display:flex;white-space:nowrap}.block .buttons{flex:1;display:flex;justify-content:flex-end;align-items:center;-webkit-user-select:none;user-select:none}.block:hover{background:var(--colorBgLevel2)}.block>span{display:inline-block;margin-right:4px}.block .label{margin-right:8px;display:flex;align-items:center;overflow:hidden;text-overflow:ellipsis}.block .counter{display:flex;align-items:center;padding-right:8px}.block .arrow{margin-right:0}.block .arrow.close{transform:rotate(-90deg)}.label-icon{margin-right:4px;width:16px;height:16px}\n"] }]
33
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { label: [{
34
+ type: Input
35
+ }], defaultOpen: [{
36
+ type: Input
37
+ }], isOpen: [{
38
+ type: Input
39
+ }], icon: [{
40
+ type: Input
41
+ }], manualArrow: [{
42
+ type: Input
43
+ }], toggle: [{
44
+ type: Output
45
+ }], elementButtons: [{
46
+ type: ViewChild,
47
+ args: ['buttons', { static: true }]
48
+ }] } });
49
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGVudC10b2dnbGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW5zcGFyay1jb21wb25lbnRzL3NyYy9jb21wb25lbnRzL2NvbnRlbnQtdG9nZ2xlL2NvbnRlbnQtdG9nZ2xlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2luc3BhcmstY29tcG9uZW50cy9zcmMvY29tcG9uZW50cy9jb250ZW50LXRvZ2dsZS9jb250ZW50LXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7Ozs7QUFRdkgsTUFBTSxPQUFPLHNCQUFzQjtJQVlqQyxZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQVRqQyxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUM1QixXQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQixTQUFJLEdBQVcsSUFBSSxDQUFDO1FBQ3BCLGdCQUFXLEdBQVksSUFBSSxDQUFDO1FBRTNCLFdBQU0sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQU16RCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQTtJQUNoQyxDQUFDO0lBRUQsVUFBVSxDQUFDLENBQWE7UUFDdEIsb0NBQW9DO1FBQ3BDLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDO1FBRXhELDJEQUEyRDtRQUMzRCxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sS0FBSyxhQUFhLEVBQUU7WUFDbkUsSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7WUFDM0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzlCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7U0FDMUI7SUFFSCxDQUFDOzttSEEvQlUsc0JBQXNCO3VHQUF0QixzQkFBc0IscVVDUm5DLGt0QkFtQkE7MkZEWGEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG1CQUFtQjt3R0FNcEIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUVJLE1BQU07c0JBQWYsTUFBTTtnQkFFK0IsY0FBYztzQkFBbkQsU0FBUzt1QkFBQyxTQUFTLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbi1jb250ZW50LXRvZ2dsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb250ZW50LXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvbnRlbnQtdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIENvbnRlbnRUb2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIEBJbnB1dCgpIGxhYmVsOiBhbnk7XG4gIEBJbnB1dCgpIGRlZmF1bHRPcGVuOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgaXNPcGVuID0gdGhpcy5kZWZhdWx0T3BlbjtcbiAgQElucHV0KCkgaWNvbjogc3RyaW5nID0gbnVsbDtcbiAgQElucHV0KCkgbWFudWFsQXJyb3c6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSB0b2dnbGU6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIEBWaWV3Q2hpbGQoJ2J1dHRvbnMnLCB7c3RhdGljOiB0cnVlfSkgZWxlbWVudEJ1dHRvbnM6IEVsZW1lbnRSZWY7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaXNPcGVuID0gdGhpcy5kZWZhdWx0T3BlblxuICB9XG5cbiAgdG9nZ2xlT3BlbihlOiBNb3VzZUV2ZW50KSB7XG4gICAgLy8g0J/QvtC70YPRh9Cw0LXQvCDRgNC+0LTQuNGC0LXQu9GM0YHQutC40Lkg0Y3Qu9C10LzQtdC90YIgZGl2XG4gICAgY29uc3QgcGFyZW50RWxlbWVudCA9IHRoaXMuZWxlbWVudEJ1dHRvbnMubmF0aXZlRWxlbWVudDtcblxuICAgIC8vINCf0YDQvtCy0LXRgNGP0LXQvCwg0LLRhdC+0LTQuNGCINC70Lgg0YbQtdC70Ywg0YHQvtCx0YvRgtC40Y8g0LIg0YDQvtC00LjRgtC10LvRjNGB0LrQuNC5INGN0LvQtdC80LXQvdGCXG4gICAgaWYgKCFwYXJlbnRFbGVtZW50LmNvbnRhaW5zKGUudGFyZ2V0KSB8fCBlLnRhcmdldCA9PT0gcGFyZW50RWxlbWVudCkge1xuICAgICAgdGhpcy5pc09wZW4gPSAhdGhpcy5pc09wZW47XG4gICAgICB0aGlzLnRvZ2dsZS5lbWl0KHRoaXMuaXNPcGVuKTtcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImJsb2NrXCIgKGNsaWNrKT1cInRvZ2dsZU9wZW4oJGV2ZW50KVwiIHRhYkluZGV4PVwiMVwiPlxuICAgIDxzcGFuIFtuZ0NsYXNzXT1cInthcnJvdzogdHJ1ZSwgY2xvc2U6ICFpc09wZW59XCI+XG4gICAgICAgIDxpbi1zdmcgKm5nSWY9XCJtYW51YWxBcnJvd1wiIFtzcmNdPVwiJ2Fycm93LWRvd24uc3ZnJ1wiIHdpZHRoPVwiNDhweFwiIGhlaWdodD1cIjQ4cHhcIj48L2luLXN2Zz5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Fycm93XVwiPjwvbmctY29udGVudD5cbiAgICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwibGFiZWxcIj5cbiAgICA8aW4tc3ZnICpuZ0lmPVwiaWNvblwiIGNsYXNzPVwibGFiZWwtaWNvblwiIFtzcmNdPVwiaWNvblwiPjwvaW4tc3ZnPlxuICAgIHt7bGFiZWx9fVxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiY291bnRlclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltoZWFkZXJdXCI+PC9uZy1jb250ZW50PlxuICA8L3NwYW4+XG4gIDxkaXYgY2xhc3M9XCJidXR0b25zXCIgI2J1dHRvbnM+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2J1dHRvbnNdXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiICpuZ0lmPVwiaXNPcGVuXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltib2R5XVwiPjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19