@elxjs/ui 0.0.170

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 (243) hide show
  1. package/assets/fonts/electroluxsans_1_thin-demo.html +795 -0
  2. package/assets/fonts/electroluxsans_1_thin-webfont.eot +0 -0
  3. package/assets/fonts/electroluxsans_1_thin-webfont.svg +22258 -0
  4. package/assets/fonts/electroluxsans_1_thin-webfont.ttf +0 -0
  5. package/assets/fonts/electroluxsans_1_thin-webfont.woff +0 -0
  6. package/assets/fonts/electroluxsans_1_thin-webfont.woff2 +0 -0
  7. package/assets/fonts/electroluxsans_2_light-demo.html +795 -0
  8. package/assets/fonts/electroluxsans_2_light-webfont.eot +0 -0
  9. package/assets/fonts/electroluxsans_2_light-webfont.svg +22261 -0
  10. package/assets/fonts/electroluxsans_2_light-webfont.ttf +0 -0
  11. package/assets/fonts/electroluxsans_2_light-webfont.woff +0 -0
  12. package/assets/fonts/electroluxsans_2_light-webfont.woff2 +0 -0
  13. package/assets/fonts/electroluxsans_3_regular-demo.html +795 -0
  14. package/assets/fonts/electroluxsans_3_regular-webfont.eot +0 -0
  15. package/assets/fonts/electroluxsans_3_regular-webfont.svg +21871 -0
  16. package/assets/fonts/electroluxsans_3_regular-webfont.ttf +0 -0
  17. package/assets/fonts/electroluxsans_3_regular-webfont.woff +0 -0
  18. package/assets/fonts/electroluxsans_3_regular-webfont.woff2 +0 -0
  19. package/assets/fonts/electroluxsans_4_semibold-demo.html +795 -0
  20. package/assets/fonts/electroluxsans_4_semibold-webfont.eot +0 -0
  21. package/assets/fonts/electroluxsans_4_semibold-webfont.svg +24128 -0
  22. package/assets/fonts/electroluxsans_4_semibold-webfont.ttf +0 -0
  23. package/assets/fonts/electroluxsans_4_semibold-webfont.woff +0 -0
  24. package/assets/fonts/electroluxsans_4_semibold-webfont.woff2 +0 -0
  25. package/assets/fonts/electroluxsans_5_bold-demo.html +795 -0
  26. package/assets/fonts/electroluxsans_5_bold-webfont.eot +0 -0
  27. package/assets/fonts/electroluxsans_5_bold-webfont.svg +24066 -0
  28. package/assets/fonts/electroluxsans_5_bold-webfont.ttf +0 -0
  29. package/assets/fonts/electroluxsans_5_bold-webfont.woff +0 -0
  30. package/assets/fonts/electroluxsans_5_bold-webfont.woff2 +0 -0
  31. package/assets/fonts/electroluxsans_oblique_1_thin-demo.html +795 -0
  32. package/assets/fonts/electroluxsans_oblique_1_thin-webfont.eot +0 -0
  33. package/assets/fonts/electroluxsans_oblique_1_thin-webfont.svg +22374 -0
  34. package/assets/fonts/electroluxsans_oblique_1_thin-webfont.ttf +0 -0
  35. package/assets/fonts/electroluxsans_oblique_1_thin-webfont.woff +0 -0
  36. package/assets/fonts/electroluxsans_oblique_1_thin-webfont.woff2 +0 -0
  37. package/assets/fonts/electroluxsans_oblique_2_light-demo.html +795 -0
  38. package/assets/fonts/electroluxsans_oblique_2_light-webfont.eot +0 -0
  39. package/assets/fonts/electroluxsans_oblique_2_light-webfont.svg +22439 -0
  40. package/assets/fonts/electroluxsans_oblique_2_light-webfont.ttf +0 -0
  41. package/assets/fonts/electroluxsans_oblique_2_light-webfont.woff +0 -0
  42. package/assets/fonts/electroluxsans_oblique_2_light-webfont.woff2 +0 -0
  43. package/assets/fonts/electroluxsans_oblique_3_regular-demo.html +795 -0
  44. package/assets/fonts/electroluxsans_oblique_3_regular-webfont.eot +0 -0
  45. package/assets/fonts/electroluxsans_oblique_3_regular-webfont.svg +22295 -0
  46. package/assets/fonts/electroluxsans_oblique_3_regular-webfont.ttf +0 -0
  47. package/assets/fonts/electroluxsans_oblique_3_regular-webfont.woff2 +0 -0
  48. package/assets/fonts/electroluxsans_oblique_4_semibold-demo.html +795 -0
  49. package/assets/fonts/electroluxsans_oblique_4_semibold-webfont.svg +24396 -0
  50. package/assets/fonts/electroluxsans_oblique_4_semibold-webfont.ttf +0 -0
  51. package/assets/fonts/electroluxsans_oblique_4_semibold-webfont.woff +0 -0
  52. package/assets/fonts/electroluxsans_oblique_4_semibold-webfont.woff2 +0 -0
  53. package/assets/fonts/electroluxsans_oblique_5_bold-demo.html +795 -0
  54. package/assets/fonts/electroluxsans_oblique_5_bold-webfont.eot +0 -0
  55. package/assets/fonts/electroluxsans_oblique_5_bold-webfont.svg +24409 -0
  56. package/assets/fonts/electroluxsans_oblique_5_bold-webfont.ttf +0 -0
  57. package/assets/fonts/electroluxsans_oblique_5_bold-webfont.woff +0 -0
  58. package/assets/fonts/electroluxsans_oblique_5_bold-webfont.woff2 +0 -0
  59. package/assets/icons/Avatar.svg +5 -0
  60. package/assets/icons/Bell.svg +5 -0
  61. package/assets/icons/Block.svg +5 -0
  62. package/assets/icons/Blocked.svg +3 -0
  63. package/assets/icons/Book.svg +5 -0
  64. package/assets/icons/Calendar.svg +5 -0
  65. package/assets/icons/Camera.svg +3 -0
  66. package/assets/icons/Cart.svg +8 -0
  67. package/assets/icons/Chat.svg +6 -0
  68. package/assets/icons/Check.svg +4 -0
  69. package/assets/icons/Check_Tick.svg +5 -0
  70. package/assets/icons/Chevron_Down.svg +3 -0
  71. package/assets/icons/Chevron_Left.svg +3 -0
  72. package/assets/icons/Chevron_Left_Double.svg +8 -0
  73. package/assets/icons/Chevron_Right.svg +3 -0
  74. package/assets/icons/Chevron_Right_Double.svg +8 -0
  75. package/assets/icons/Chevron_Up.svg +3 -0
  76. package/assets/icons/Close.svg +11 -0
  77. package/assets/icons/Compare_Products.svg +5 -0
  78. package/assets/icons/Config.svg +5 -0
  79. package/assets/icons/Config_2.svg +5 -0
  80. package/assets/icons/Discount.svg +5 -0
  81. package/assets/icons/Edit.svg +5 -0
  82. package/assets/icons/Edit_2.svg +7 -0
  83. package/assets/icons/Eye_Hide.svg +5 -0
  84. package/assets/icons/Eye_View.svg +4 -0
  85. package/assets/icons/FAQ.svg +5 -0
  86. package/assets/icons/Facebook.svg +10 -0
  87. package/assets/icons/Fridge_And_Freezer.svg +10 -0
  88. package/assets/icons/Gift.svg +3 -0
  89. package/assets/icons/Hide.svg +9 -0
  90. package/assets/icons/Info.svg +6 -0
  91. package/assets/icons/Instagram.svg +10 -0
  92. package/assets/icons/Like.svg +3 -0
  93. package/assets/icons/Like_filled.svg +3 -0
  94. package/assets/icons/Link.svg +7 -0
  95. package/assets/icons/Load.svg +18 -0
  96. package/assets/icons/Loading.webp +0 -0
  97. package/assets/icons/Location.svg +8 -0
  98. package/assets/icons/Lock.svg +3 -0
  99. package/assets/icons/Logo.svg +20 -0
  100. package/assets/icons/Logo_new.svg +13 -0
  101. package/assets/icons/Mail.svg +6 -0
  102. package/assets/icons/Maintenance.svg +9 -0
  103. package/assets/icons/Nav.svg +5 -0
  104. package/assets/icons/Phone.svg +5 -0
  105. package/assets/icons/Pin.svg +3 -0
  106. package/assets/icons/Plus.svg +8 -0
  107. package/assets/icons/PriceTag.svg +6 -0
  108. package/assets/icons/Screwdriver.svg +10 -0
  109. package/assets/icons/Search.svg +6 -0
  110. package/assets/icons/Share.svg +3 -0
  111. package/assets/icons/Shield.svg +6 -0
  112. package/assets/icons/Star.svg +12 -0
  113. package/assets/icons/Star_Filled.svg +3 -0
  114. package/assets/icons/Stars.svg +9 -0
  115. package/assets/icons/Stars_2.svg +3 -0
  116. package/assets/icons/Top_Rating.svg +3 -0
  117. package/assets/icons/Trash.svg +5 -0
  118. package/assets/icons/Warning.svg +9 -0
  119. package/assets/icons/Whatsapp.svg +5 -0
  120. package/assets/icons/Youtube.svg +10 -0
  121. package/assets/images/placeholder.webp +0 -0
  122. package/assets/images/placeholder_2.webp +0 -0
  123. package/assets/images/placeholder_3.webp +0 -0
  124. package/assets/styles/colors.scss +36 -0
  125. package/assets/styles/fonts.scss +102 -0
  126. package/assets/styles/inputs.scss +139 -0
  127. package/assets/styles/typography.scss +117 -0
  128. package/esm2022/elxjs-ui.mjs +5 -0
  129. package/esm2022/index.mjs +2 -0
  130. package/esm2022/lib/components/accordion/accordion.component.mjs +28 -0
  131. package/esm2022/lib/components/accordion/index.mjs +2 -0
  132. package/esm2022/lib/components/arrow-link/arrow-link.component.mjs +29 -0
  133. package/esm2022/lib/components/arrow-link/index.mjs +2 -0
  134. package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +48 -0
  135. package/esm2022/lib/components/breadcrumb/index.mjs +2 -0
  136. package/esm2022/lib/components/button/button.component.mjs +89 -0
  137. package/esm2022/lib/components/button/index.mjs +2 -0
  138. package/esm2022/lib/components/card-1/card1.component.mjs +20 -0
  139. package/esm2022/lib/components/card-1/index.mjs +2 -0
  140. package/esm2022/lib/components/card-2/card2.component.mjs +16 -0
  141. package/esm2022/lib/components/card-2/index.mjs +2 -0
  142. package/esm2022/lib/components/card-3/card3.component.mjs +18 -0
  143. package/esm2022/lib/components/card-3/index.mjs +2 -0
  144. package/esm2022/lib/components/card-4/card4.component.mjs +16 -0
  145. package/esm2022/lib/components/card-4/index.mjs +2 -0
  146. package/esm2022/lib/components/carousel/carousel.component.mjs +155 -0
  147. package/esm2022/lib/components/carousel/index.mjs +2 -0
  148. package/esm2022/lib/components/chip/chip.component.mjs +27 -0
  149. package/esm2022/lib/components/chip/index.mjs +2 -0
  150. package/esm2022/lib/components/datatable/datatable.component.mjs +148 -0
  151. package/esm2022/lib/components/datatable/datatable.component.types.mjs +2 -0
  152. package/esm2022/lib/components/datatable/index.mjs +3 -0
  153. package/esm2022/lib/components/datepicker/datepicker.component.mjs +382 -0
  154. package/esm2022/lib/components/datepicker/index.mjs +2 -0
  155. package/esm2022/lib/components/dropdown/dropdown.component.mjs +145 -0
  156. package/esm2022/lib/components/dropdown/index.mjs +2 -0
  157. package/esm2022/lib/components/dropdown-multiple/dropdown-multiple.component.mjs +76 -0
  158. package/esm2022/lib/components/dropdown-multiple/index.mjs +2 -0
  159. package/esm2022/lib/components/icon/icon.component.mjs +58 -0
  160. package/esm2022/lib/components/icon/index.mjs +2 -0
  161. package/esm2022/lib/components/index.mjs +63 -0
  162. package/esm2022/lib/components/input-search/index.mjs +2 -0
  163. package/esm2022/lib/components/input-search/input-search.component.mjs +73 -0
  164. package/esm2022/lib/components/input-search-modal/index.mjs +2 -0
  165. package/esm2022/lib/components/input-search-modal/input-search-modal.component.mjs +29 -0
  166. package/esm2022/lib/components/loading/index.mjs +2 -0
  167. package/esm2022/lib/components/loading/loading.component.mjs +21 -0
  168. package/esm2022/lib/components/loading-2/index.mjs +2 -0
  169. package/esm2022/lib/components/loading-2/loading-2.component.mjs +16 -0
  170. package/esm2022/lib/components/modal/index.mjs +2 -0
  171. package/esm2022/lib/components/modal/modal.component.mjs +31 -0
  172. package/esm2022/lib/components/paginator/index.mjs +2 -0
  173. package/esm2022/lib/components/paginator/paginator.component.mjs +128 -0
  174. package/esm2022/lib/components/stepbar/index.mjs +2 -0
  175. package/esm2022/lib/components/stepbar/stepbar.component.mjs +41 -0
  176. package/esm2022/lib/components/switch/index.mjs +2 -0
  177. package/esm2022/lib/components/switch/switch.component.mjs +47 -0
  178. package/esm2022/lib/components/toast/index.mjs +2 -0
  179. package/esm2022/lib/components/toast/toast.component.mjs +28 -0
  180. package/esm2022/lib/index.mjs +4 -0
  181. package/esm2022/lib/modules/electrolux-design-system.module.mjs +35 -0
  182. package/esm2022/lib/modules/index.mjs +2 -0
  183. package/esm2022/lib/services/index.mjs +2 -0
  184. package/esm2022/lib/services/toaster.service.mjs +53 -0
  185. package/fesm2022/elxjs-ui.mjs +1647 -0
  186. package/fesm2022/elxjs-ui.mjs.map +1 -0
  187. package/index.d.ts +1 -0
  188. package/lib/components/accordion/accordion.component.d.ts +10 -0
  189. package/lib/components/accordion/index.d.ts +1 -0
  190. package/lib/components/arrow-link/arrow-link.component.d.ts +9 -0
  191. package/lib/components/arrow-link/index.d.ts +1 -0
  192. package/lib/components/breadcrumb/breadcrumb.component.d.ts +17 -0
  193. package/lib/components/breadcrumb/index.d.ts +1 -0
  194. package/lib/components/button/button.component.d.ts +27 -0
  195. package/lib/components/button/index.d.ts +1 -0
  196. package/lib/components/card-1/card1.component.d.ts +8 -0
  197. package/lib/components/card-1/index.d.ts +1 -0
  198. package/lib/components/card-2/card2.component.d.ts +7 -0
  199. package/lib/components/card-2/index.d.ts +1 -0
  200. package/lib/components/card-3/card3.component.d.ts +8 -0
  201. package/lib/components/card-3/index.d.ts +1 -0
  202. package/lib/components/card-4/card4.component.d.ts +7 -0
  203. package/lib/components/card-4/index.d.ts +1 -0
  204. package/lib/components/carousel/carousel.component.d.ts +41 -0
  205. package/lib/components/carousel/index.d.ts +1 -0
  206. package/lib/components/chip/chip.component.d.ts +10 -0
  207. package/lib/components/chip/index.d.ts +1 -0
  208. package/lib/components/datatable/datatable.component.d.ts +43 -0
  209. package/lib/components/datatable/datatable.component.types.d.ts +55 -0
  210. package/lib/components/datatable/index.d.ts +2 -0
  211. package/lib/components/datepicker/datepicker.component.d.ts +81 -0
  212. package/lib/components/datepicker/index.d.ts +1 -0
  213. package/lib/components/dropdown/dropdown.component.d.ts +42 -0
  214. package/lib/components/dropdown/index.d.ts +1 -0
  215. package/lib/components/dropdown-multiple/dropdown-multiple.component.d.ts +27 -0
  216. package/lib/components/dropdown-multiple/index.d.ts +1 -0
  217. package/lib/components/icon/icon.component.d.ts +29 -0
  218. package/lib/components/icon/index.d.ts +1 -0
  219. package/lib/components/index.d.ts +26 -0
  220. package/lib/components/input-search/index.d.ts +1 -0
  221. package/lib/components/input-search/input-search.component.d.ts +26 -0
  222. package/lib/components/input-search-modal/index.d.ts +1 -0
  223. package/lib/components/input-search-modal/input-search-modal.component.d.ts +13 -0
  224. package/lib/components/loading/index.d.ts +1 -0
  225. package/lib/components/loading/loading.component.d.ts +7 -0
  226. package/lib/components/loading-2/index.d.ts +1 -0
  227. package/lib/components/loading-2/loading-2.component.d.ts +6 -0
  228. package/lib/components/modal/index.d.ts +1 -0
  229. package/lib/components/modal/modal.component.d.ts +10 -0
  230. package/lib/components/paginator/index.d.ts +1 -0
  231. package/lib/components/paginator/paginator.component.d.ts +33 -0
  232. package/lib/components/stepbar/index.d.ts +1 -0
  233. package/lib/components/stepbar/stepbar.component.d.ts +14 -0
  234. package/lib/components/switch/index.d.ts +1 -0
  235. package/lib/components/switch/switch.component.d.ts +10 -0
  236. package/lib/components/toast/index.d.ts +1 -0
  237. package/lib/components/toast/toast.component.d.ts +11 -0
  238. package/lib/index.d.ts +3 -0
  239. package/lib/modules/electrolux-design-system.module.d.ts +25 -0
  240. package/lib/modules/index.d.ts +1 -0
  241. package/lib/services/index.d.ts +1 -0
  242. package/lib/services/toaster.service.d.ts +14 -0
  243. package/package.json +29 -0
@@ -0,0 +1,53 @@
1
+ // toaster.service.ts
2
+ import { Injectable } from '@angular/core';
3
+ import * as i0 from "@angular/core";
4
+ export class ToasterService {
5
+ constructor() {
6
+ this.toasts = [];
7
+ this.toastIdCounter = 0;
8
+ }
9
+ success(message) {
10
+ this.showToast('success', 'Check_Tick.svg', '#0C5F29', message);
11
+ }
12
+ error(message) {
13
+ this.showToast('error', 'Warning.svg', '#9C231C', message);
14
+ }
15
+ warning(message) {
16
+ this.showToast('warning', 'Warning.svg', '#b19459', message);
17
+ }
18
+ info(message) {
19
+ this.showToast('info', 'Info.svg', '#557cb3', message);
20
+ }
21
+ showToast(type, iconName, iconColor, message) {
22
+ this.toastIdCounter++;
23
+ const id = `${Date.now()}-${this.toastIdCounter}`;
24
+ this.toasts.push({ id, type, iconName, iconColor, message, paused: false });
25
+ if (type === 'success' || type === 'info' || type === 'warning') {
26
+ this.removeToastAfter5Seconds(id);
27
+ }
28
+ }
29
+ removeToast(id) {
30
+ this.toasts = this.toasts.filter((toast) => toast.id !== id);
31
+ }
32
+ removeToastAfter5Seconds(id) {
33
+ setTimeout(() => {
34
+ const toast = this.toasts.find((toast) => toast.id === id);
35
+ const removableTypes = ['success', 'info', 'warning'];
36
+ if (toast && removableTypes.includes(toast.type) && !toast.paused) {
37
+ this.toasts = this.toasts.filter((toast) => toast.id !== id);
38
+ }
39
+ else if (toast) {
40
+ this.removeToastAfter5Seconds(id); // Recheck later if it was paused
41
+ }
42
+ }, 5000);
43
+ }
44
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToasterService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
45
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToasterService, providedIn: 'root' }); }
46
+ }
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToasterService, decorators: [{
48
+ type: Injectable,
49
+ args: [{
50
+ providedIn: 'root',
51
+ }]
52
+ }] });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9hc3Rlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vdWkvbGlicmFyeS9zcmMvbGliL3NlcnZpY2VzL3RvYXN0ZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUI7QUFFckIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLM0MsTUFBTSxPQUFPLGNBQWM7SUFIM0I7UUFJRSxXQUFNLEdBQVUsRUFBRSxDQUFDO1FBRVgsbUJBQWMsR0FBRyxDQUFDLENBQUM7S0EyQzVCO0lBekNDLE9BQU8sQ0FBQyxPQUFlO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQWU7UUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsT0FBTyxDQUFDLE9BQWU7UUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsSUFBSSxDQUFDLE9BQWU7UUFDbEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRU0sU0FBUyxDQUFDLElBQVksRUFBRSxRQUFnQixFQUFFLFNBQWlCLEVBQUUsT0FBZTtRQUNqRixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDdEIsTUFBTSxFQUFFLEdBQUcsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztRQUM1RSxJQUFJLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVyxDQUFDLEVBQVU7UUFDM0IsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRU0sd0JBQXdCLENBQUMsRUFBVTtRQUN4QyxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDM0QsTUFBTSxjQUFjLEdBQUcsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1lBRXRELElBQUksS0FBSyxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUNsRSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQy9ELENBQUM7aUJBQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQztnQkFDakIsSUFBSSxDQUFDLHdCQUF3QixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsaUNBQWlDO1lBQ3RFLENBQUM7UUFDSCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDOytHQTdDVSxjQUFjO21IQUFkLGNBQWMsY0FGYixNQUFNOzs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIHRvYXN0ZXIuc2VydmljZS50c1xyXG5cclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvYXN0ZXJTZXJ2aWNlIHtcclxuICB0b2FzdHM6IGFueVtdID0gW107XHJcblxyXG4gIHByaXZhdGUgdG9hc3RJZENvdW50ZXIgPSAwO1xyXG5cclxuICBzdWNjZXNzKG1lc3NhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy5zaG93VG9hc3QoJ3N1Y2Nlc3MnLCAnQ2hlY2tfVGljay5zdmcnLCAnIzBDNUYyOScsIG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgZXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNob3dUb2FzdCgnZXJyb3InLCAnV2FybmluZy5zdmcnLCAnIzlDMjMxQycsIG1lc3NhZ2UpO1xyXG4gIH1cclxuXHJcbiAgd2FybmluZyhtZXNzYWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc2hvd1RvYXN0KCd3YXJuaW5nJywgJ1dhcm5pbmcuc3ZnJywgJyNiMTk0NTknLCBtZXNzYWdlKTtcclxuICB9XHJcblxyXG4gIGluZm8obWVzc2FnZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnNob3dUb2FzdCgnaW5mbycsICdJbmZvLnN2ZycsICcjNTU3Y2IzJywgbWVzc2FnZSk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgc2hvd1RvYXN0KHR5cGU6IHN0cmluZywgaWNvbk5hbWU6IHN0cmluZywgaWNvbkNvbG9yOiBzdHJpbmcsIG1lc3NhZ2U6IHN0cmluZykge1xyXG4gICAgdGhpcy50b2FzdElkQ291bnRlcisrO1xyXG4gICAgY29uc3QgaWQgPSBgJHtEYXRlLm5vdygpfS0ke3RoaXMudG9hc3RJZENvdW50ZXJ9YDtcclxuICAgIHRoaXMudG9hc3RzLnB1c2goeyBpZCwgdHlwZSwgaWNvbk5hbWUsIGljb25Db2xvciwgbWVzc2FnZSwgcGF1c2VkOiBmYWxzZSB9KTtcclxuICAgIGlmICh0eXBlID09PSAnc3VjY2VzcycgfHwgdHlwZSA9PT0gJ2luZm8nIHx8IHR5cGUgPT09ICd3YXJuaW5nJykge1xyXG4gICAgICB0aGlzLnJlbW92ZVRvYXN0QWZ0ZXI1U2Vjb25kcyhpZCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgcmVtb3ZlVG9hc3QoaWQ6IHN0cmluZykge1xyXG4gICAgdGhpcy50b2FzdHMgPSB0aGlzLnRvYXN0cy5maWx0ZXIoKHRvYXN0KSA9PiB0b2FzdC5pZCAhPT0gaWQpO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlbW92ZVRvYXN0QWZ0ZXI1U2Vjb25kcyhpZDogc3RyaW5nKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgY29uc3QgdG9hc3QgPSB0aGlzLnRvYXN0cy5maW5kKCh0b2FzdCkgPT4gdG9hc3QuaWQgPT09IGlkKTtcclxuICAgICAgY29uc3QgcmVtb3ZhYmxlVHlwZXMgPSBbJ3N1Y2Nlc3MnLCAnaW5mbycsICd3YXJuaW5nJ107XHJcblxyXG4gICAgICBpZiAodG9hc3QgJiYgcmVtb3ZhYmxlVHlwZXMuaW5jbHVkZXModG9hc3QudHlwZSkgJiYgIXRvYXN0LnBhdXNlZCkge1xyXG4gICAgICAgIHRoaXMudG9hc3RzID0gdGhpcy50b2FzdHMuZmlsdGVyKCh0b2FzdCkgPT4gdG9hc3QuaWQgIT09IGlkKTtcclxuICAgICAgfSBlbHNlIGlmICh0b2FzdCkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlVG9hc3RBZnRlcjVTZWNvbmRzKGlkKTsgLy8gUmVjaGVjayBsYXRlciBpZiBpdCB3YXMgcGF1c2VkXHJcbiAgICAgIH1cclxuICAgIH0sIDUwMDApO1xyXG4gIH1cclxufVxyXG4iXX0=