sidesys-generic-ui 0.0.19 → 0.0.21

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 (662) hide show
  1. package/karma.conf.js +44 -0
  2. package/ng-package.json +8 -0
  3. package/package.json +15 -33
  4. package/src/lib/alert/index.ts +2 -0
  5. package/src/lib/alert/s-alert.component.css +0 -0
  6. package/src/lib/alert/s-alert.component.html +3 -0
  7. package/src/lib/alert/s-alert.component.spec.ts +25 -0
  8. package/src/lib/alert/s-alert.component.ts +19 -0
  9. package/src/lib/alert/s-alert.module.ts +15 -0
  10. package/src/lib/avatar/components/profile-group/index.ts +2 -0
  11. package/src/lib/avatar/components/profile-group/s-profile-group.component.html +9 -0
  12. package/src/lib/avatar/components/profile-group/s-profile-group.component.scss +40 -0
  13. package/src/lib/avatar/components/profile-group/s-profile-group.component.spec.ts +25 -0
  14. package/src/lib/avatar/components/profile-group/s-profile-group.component.ts +59 -0
  15. package/src/lib/avatar/components/profile-group/s-profile-group.module.ts +17 -0
  16. package/src/lib/avatar/index.ts +2 -0
  17. package/src/lib/avatar/s-avatar.component.html +50 -0
  18. package/src/lib/avatar/s-avatar.component.scss +239 -0
  19. package/src/lib/avatar/s-avatar.component.spec.ts +25 -0
  20. package/src/lib/avatar/s-avatar.component.ts +42 -0
  21. package/src/lib/avatar/s-avatar.module.ts +19 -0
  22. package/src/lib/badge/index.ts +2 -0
  23. package/src/lib/badge/s-badge.component.html +4 -0
  24. package/src/lib/badge/s-badge.component.scss +65 -0
  25. package/src/lib/badge/s-badge.component.spec.ts +25 -0
  26. package/src/lib/badge/s-badge.component.ts +19 -0
  27. package/src/lib/badge/s-badge.module.ts +16 -0
  28. package/src/lib/blockquote/index.ts +2 -0
  29. package/src/lib/blockquote/s-blockquote.component.css +24 -0
  30. package/src/lib/blockquote/s-blockquote.component.html +5 -0
  31. package/src/lib/blockquote/s-blockquote.component.spec.ts +25 -0
  32. package/src/lib/blockquote/s-blockquote.component.ts +17 -0
  33. package/src/lib/blockquote/s-blockquote.module.ts +15 -0
  34. package/{lib/breadcrum/index.d.ts → src/lib/breadcrum/index.ts} +1 -0
  35. package/src/lib/breadcrum/interface/breadcrum-nav.interface.ts +6 -0
  36. package/src/lib/breadcrum/interface/index.ts +1 -0
  37. package/src/lib/breadcrum/s-breadcrum.component.html +11 -0
  38. package/src/lib/breadcrum/s-breadcrum.component.scss +89 -0
  39. package/src/lib/breadcrum/s-breadcrum.component.spec.ts +25 -0
  40. package/src/lib/breadcrum/s-breadcrum.component.ts +27 -0
  41. package/src/lib/breadcrum/s-breadcrum.module.ts +18 -0
  42. package/src/lib/button/button.module.ts +16 -0
  43. package/src/lib/button/components/button/s-button.component.html +14 -0
  44. package/src/lib/button/components/button/s-button.component.scss +237 -0
  45. package/src/lib/button/components/button/s-button.component.spec.ts +25 -0
  46. package/src/lib/button/components/button/s-button.component.ts +45 -0
  47. package/src/lib/button/components/button/styles/s-button-loading.scss +62 -0
  48. package/src/lib/button/components/button/styles/s-button-themes.scss +162 -0
  49. package/src/lib/button/index.ts +2 -0
  50. package/{lib/card/index.d.ts → src/lib/card/index.ts} +1 -1
  51. package/src/lib/card/s-card-models.ts +11 -0
  52. package/src/lib/card/s-card.component.html +28 -0
  53. package/src/lib/card/s-card.component.scss +117 -0
  54. package/src/lib/card/s-card.component.spec.ts +25 -0
  55. package/src/lib/card/s-card.component.ts +55 -0
  56. package/src/lib/card/s-card.module.ts +26 -0
  57. package/src/lib/checkbox/index.ts +2 -0
  58. package/src/lib/checkbox/s-checkbox.component.html +4 -0
  59. package/src/lib/checkbox/s-checkbox.component.scss +63 -0
  60. package/src/lib/checkbox/s-checkbox.component.spec.ts +25 -0
  61. package/src/lib/checkbox/s-checkbox.component.ts +55 -0
  62. package/src/lib/checkbox/s-checkbox.module.ts +17 -0
  63. package/{lib/company-logo/index.d.ts → src/lib/company-logo/index.ts} +1 -1
  64. package/src/lib/company-logo/s-company-logo.component.html +3 -0
  65. package/src/lib/company-logo/s-company-logo.component.scss +14 -0
  66. package/src/lib/company-logo/s-company-logo.component.spec.ts +25 -0
  67. package/src/lib/company-logo/s-company-logo.component.ts +38 -0
  68. package/src/lib/company-logo/s-company-logo.module.ts +16 -0
  69. package/src/lib/content/index.ts +2 -0
  70. package/src/lib/content/s-content.component.html +3 -0
  71. package/src/lib/content/s-content.component.scss +20 -0
  72. package/src/lib/content/s-content.component.spec.ts +25 -0
  73. package/src/lib/content/s-content.component.ts +32 -0
  74. package/src/lib/content/s-content.module.ts +20 -0
  75. package/{lib/drop-down/index.d.ts → src/lib/drop-down/index.ts} +1 -1
  76. package/src/lib/drop-down/s-drop-down-button.ts +4 -0
  77. package/src/lib/drop-down/s-drop-down.component.html +5 -0
  78. package/src/lib/drop-down/s-drop-down.component.scss +34 -0
  79. package/src/lib/drop-down/s-drop-down.component.spec.ts +25 -0
  80. package/src/lib/drop-down/s-drop-down.component.ts +33 -0
  81. package/src/lib/drop-down/s-drop-down.module.ts +12 -0
  82. package/src/lib/fonts-material.scss +15 -0
  83. package/src/lib/fonts.scss +184 -0
  84. package/{lib/footer/index.d.ts → src/lib/footer/index.ts} +1 -1
  85. package/src/lib/footer/s-footer.component.html +4 -0
  86. package/src/lib/footer/s-footer.component.scss +25 -0
  87. package/src/lib/footer/s-footer.component.spec.ts +25 -0
  88. package/src/lib/footer/s-footer.component.ts +14 -0
  89. package/src/lib/footer/s-footer.module.ts +18 -0
  90. package/{lib/form/index.d.ts → src/lib/form/index.ts} +1 -1
  91. package/src/lib/form/s-form-control.ts +65 -0
  92. package/src/lib/form/s-form.component.html +60 -0
  93. package/src/lib/form/s-form.component.scss +7 -0
  94. package/src/lib/form/s-form.component.spec.ts +25 -0
  95. package/src/lib/form/s-form.component.ts +131 -0
  96. package/src/lib/form/s-form.module.ts +29 -0
  97. package/src/lib/icon/index.ts +2 -0
  98. package/src/lib/icon/s-icon.component.css +3 -0
  99. package/src/lib/icon/s-icon.component.html +8 -0
  100. package/src/lib/icon/s-icon.component.spec.ts +25 -0
  101. package/src/lib/icon/s-icon.component.ts +39 -0
  102. package/src/lib/icon/s-icon.module.ts +16 -0
  103. package/src/lib/icon/s-icons.ts +55 -0
  104. package/src/lib/icon-material/index.ts +2 -0
  105. package/src/lib/icon-material/s-icon-material.component.html +5 -0
  106. package/src/lib/icon-material/s-icon-material.component.scss +38 -0
  107. package/src/lib/icon-material/s-icon-material.component.spec.ts +25 -0
  108. package/src/lib/icon-material/s-icon-material.component.ts +51 -0
  109. package/src/lib/icon-material/s-icon-material.module.ts +14 -0
  110. package/src/lib/input/components/error-control/s-error-control.component.html +4 -0
  111. package/src/lib/input/components/error-control/s-error-control.component.scss +54 -0
  112. package/src/lib/input/components/error-control/s-error-control.component.spec.ts +25 -0
  113. package/src/lib/input/components/error-control/s-error-control.component.ts +50 -0
  114. package/src/lib/input/components/input-text/s-input-text.component.html +270 -0
  115. package/src/lib/input/components/input-text/s-input-text.component.scss +312 -0
  116. package/src/lib/input/components/input-text/s-input-text.component.spec.ts +25 -0
  117. package/src/lib/input/components/input-text/s-input-text.component.ts +311 -0
  118. package/src/lib/input/components/input-textarea/s-input-textarea.component.html +15 -0
  119. package/src/lib/input/components/input-textarea/s-input-textarea.component.scss +62 -0
  120. package/src/lib/input/components/input-textarea/s-input-textarea.component.spec.ts +25 -0
  121. package/src/lib/input/components/input-textarea/s-input-textarea.component.ts +82 -0
  122. package/src/lib/input/input.module.ts +30 -0
  123. package/src/lib/link/index.ts +2 -0
  124. package/src/lib/link/s-link.component.html +8 -0
  125. package/src/lib/link/s-link.component.scss +69 -0
  126. package/src/lib/link/s-link.component.spec.ts +25 -0
  127. package/src/lib/link/s-link.component.ts +24 -0
  128. package/src/lib/link/s-link.module.ts +15 -0
  129. package/src/lib/list/index.ts +2 -0
  130. package/src/lib/list/s-list.component.html +10 -0
  131. package/src/lib/list/s-list.component.scss +85 -0
  132. package/src/lib/list/s-list.component.spec.ts +25 -0
  133. package/src/lib/list/s-list.component.ts +21 -0
  134. package/src/lib/list/s-list.module.ts +17 -0
  135. package/src/lib/list-simple/index.ts +2 -0
  136. package/src/lib/list-simple/s-list-simple.component.html +3 -0
  137. package/src/lib/list-simple/s-list-simple.component.scss +146 -0
  138. package/src/lib/list-simple/s-list-simple.component.spec.ts +25 -0
  139. package/src/lib/list-simple/s-list-simple.component.ts +19 -0
  140. package/src/lib/list-simple/s-list-simple.module.ts +17 -0
  141. package/{lib/login/index.d.ts → src/lib/login/index.ts} +1 -1
  142. package/src/lib/login/s-login-event.ts +4 -0
  143. package/src/lib/login/s-login-images.ts +3 -0
  144. package/{lib/login/s-login-model.d.ts → src/lib/login/s-login-model.ts} +3 -3
  145. package/src/lib/login/s-login.component.html +46 -0
  146. package/src/lib/login/s-login.component.scss +69 -0
  147. package/src/lib/login/s-login.component.ts +92 -0
  148. package/src/lib/login/s-login.module.ts +24 -0
  149. package/src/lib/navbar/components/icon-menu/components/s-notificaction.component.ts +35 -0
  150. package/src/lib/navbar/components/icon-menu/components/s-notification.component.html +38 -0
  151. package/src/lib/navbar/components/icon-menu/components/s-notification.component.scss +93 -0
  152. package/src/lib/navbar/components/icon-menu/index.ts +4 -0
  153. package/src/lib/navbar/components/icon-menu/s-icon-menu-model.ts +21 -0
  154. package/src/lib/navbar/components/icon-menu/s-icon-menu.component.html +43 -0
  155. package/src/lib/navbar/components/icon-menu/s-icon-menu.component.scss +95 -0
  156. package/src/lib/navbar/components/icon-menu/s-icon-menu.component.ts +65 -0
  157. package/src/lib/navbar/components/icon-menu/s-icon-menu.module.ts +32 -0
  158. package/{lib/navbar/components/menu-config/index.d.ts → src/lib/navbar/components/menu-config/index.ts} +1 -1
  159. package/src/lib/navbar/components/menu-config/s-menu-config-model.ts +5 -0
  160. package/src/lib/navbar/components/menu-config/s-menu-config.component.html +1 -0
  161. package/src/lib/navbar/components/menu-config/s-menu-config.component.scss +0 -0
  162. package/src/lib/navbar/components/menu-config/s-menu-config.component.ts +34 -0
  163. package/src/lib/navbar/components/menu-config/s-menu-config.module.ts +21 -0
  164. package/{lib/navbar/components/menu-main/index.d.ts → src/lib/navbar/components/menu-main/index.ts} +1 -1
  165. package/src/lib/navbar/components/menu-main/s-menu-main-model.ts +7 -0
  166. package/src/lib/navbar/components/menu-main/s-menu-main.component.html +34 -0
  167. package/src/lib/navbar/components/menu-main/s-menu-main.component.scss +129 -0
  168. package/src/lib/navbar/components/menu-main/s-menu-main.component.ts +35 -0
  169. package/src/lib/navbar/components/menu-main/s-menu-main.module.ts +23 -0
  170. package/{lib/navbar/components/search-menu/index.d.ts → src/lib/navbar/components/search-menu/index.ts} +1 -1
  171. package/src/lib/navbar/components/search-menu/s-search-menu.component.html +1 -0
  172. package/src/lib/navbar/components/search-menu/s-search-menu.component.scss +0 -0
  173. package/src/lib/navbar/components/search-menu/s-search-menu.component.ts +34 -0
  174. package/src/lib/navbar/components/search-menu/s-search-menu.module.ts +19 -0
  175. package/{lib/navbar/index.d.ts → src/lib/navbar/index.ts} +3 -0
  176. package/src/lib/navbar/s-navbar.component.html +34 -0
  177. package/src/lib/navbar/s-navbar.component.scss +92 -0
  178. package/src/lib/navbar/s-navbar.component.ts +72 -0
  179. package/src/lib/navbar/s-navbar.module.ts +35 -0
  180. package/{lib/pagination/index.d.ts → src/lib/pagination/index.ts} +1 -1
  181. package/src/lib/pagination/new/s-pag-model.ts +4 -0
  182. package/src/lib/pagination/new/s-pag.component.html +27 -0
  183. package/src/lib/pagination/new/s-pag.component.scss +63 -0
  184. package/src/lib/pagination/new/s-pag.component.ts +99 -0
  185. package/src/lib/pagination/s-pagination.component.html +6 -0
  186. package/src/lib/pagination/s-pagination.component.scss +15 -0
  187. package/src/lib/pagination/s-pagination.component.ts +79 -0
  188. package/src/lib/pagination/s-pagination.module.ts +25 -0
  189. package/src/lib/popup/index.ts +2 -0
  190. package/src/lib/popup/s-popup.component.html +24 -0
  191. package/src/lib/popup/s-popup.component.scss +127 -0
  192. package/src/lib/popup/s-popup.component.spec.ts +25 -0
  193. package/src/lib/popup/s-popup.component.ts +125 -0
  194. package/src/lib/popup/s-popup.module.ts +23 -0
  195. package/src/lib/precode/index.ts +2 -0
  196. package/src/lib/precode/s-precode.component.html +7 -0
  197. package/src/lib/precode/s-precode.component.scss +53 -0
  198. package/src/lib/precode/s-precode.component.spec.ts +25 -0
  199. package/src/lib/precode/s-precode.component.ts +29 -0
  200. package/src/lib/precode/s-precode.module.ts +20 -0
  201. package/src/lib/progressbar/index.ts +2 -0
  202. package/src/lib/progressbar/s-progressbar.component.html +15 -0
  203. package/src/lib/progressbar/s-progressbar.component.scss +51 -0
  204. package/src/lib/progressbar/s-progressbar.component.spec.ts +25 -0
  205. package/src/lib/progressbar/s-progressbar.component.ts +20 -0
  206. package/src/lib/progressbar/s-progressbar.module.ts +16 -0
  207. package/src/lib/progressbar/temperature/temperature.component.ts +25 -0
  208. package/src/lib/radio/index.ts +2 -0
  209. package/src/lib/radio/s-radio.component.html +4 -0
  210. package/src/lib/radio/s-radio.component.scss +57 -0
  211. package/src/lib/radio/s-radio.component.spec.ts +25 -0
  212. package/src/lib/radio/s-radio.component.ts +55 -0
  213. package/src/lib/radio/s-radio.module.ts +17 -0
  214. package/src/lib/reset.scss +43 -0
  215. package/{lib/select/index.d.ts → src/lib/select/index.ts} +1 -1
  216. package/src/lib/select/s-select-model.ts +27 -0
  217. package/src/lib/select/s-select.module.ts +33 -0
  218. package/src/lib/select/select-multiple/s-select-multiple.component.html +44 -0
  219. package/src/lib/select/select-multiple/s-select-multiple.component.scss +200 -0
  220. package/src/lib/select/select-multiple/s-select-multiple.component.ts +106 -0
  221. package/src/lib/select/select-normal/s-select.component.html +3 -0
  222. package/src/lib/select/select-normal/s-select.component.scss +15 -0
  223. package/src/lib/select/select-normal/s-select.component.spec.ts +25 -0
  224. package/src/lib/select/select-normal/s-select.component.ts +21 -0
  225. package/src/lib/select/select-simple/s-select-simple.component.html +57 -0
  226. package/src/lib/select/select-simple/s-select-simple.component.scss +189 -0
  227. package/src/lib/select/select-simple/s-select-simple.component.ts +118 -0
  228. package/src/lib/shared/image-loader.directive.ts +28 -0
  229. package/src/lib/shared/localstorage.service.ts +64 -0
  230. package/src/lib/shared/shared.module.ts +17 -0
  231. package/{lib/sidebar/index.d.ts → src/lib/sidebar/index.ts} +1 -1
  232. package/src/lib/sidebar/s-sidebar-model.ts +19 -0
  233. package/src/lib/sidebar/s-sidebar.component.html +63 -0
  234. package/src/lib/sidebar/s-sidebar.component.scss +300 -0
  235. package/src/lib/sidebar/s-sidebar.component.spec.ts +25 -0
  236. package/src/lib/sidebar/s-sidebar.component.ts +81 -0
  237. package/src/lib/sidebar/s-sidebar.module.ts +24 -0
  238. package/src/lib/spinner/index.ts +2 -0
  239. package/src/lib/spinner/s-spinner.component.html +1 -0
  240. package/src/lib/spinner/s-spinner.component.scss +265 -0
  241. package/src/lib/spinner/s-spinner.component.spec.ts +25 -0
  242. package/src/lib/spinner/s-spinner.component.ts +21 -0
  243. package/src/lib/spinner/s-spinner.module.ts +16 -0
  244. package/src/lib/stepper/index.ts +2 -0
  245. package/src/lib/stepper/s-stepper.component.css +0 -0
  246. package/src/lib/stepper/s-stepper.component.html +3 -0
  247. package/src/lib/stepper/s-stepper.component.spec.ts +25 -0
  248. package/src/lib/stepper/s-stepper.component.ts +19 -0
  249. package/src/lib/stepper/s-stepper.module.ts +15 -0
  250. package/{lib/sub-menu/index.d.ts → src/lib/sub-menu/index.ts} +1 -1
  251. package/src/lib/sub-menu/s-sub-menu-model.ts +33 -0
  252. package/src/lib/sub-menu/s-sub-menu.component.html +77 -0
  253. package/src/lib/sub-menu/s-sub-menu.component.scss +99 -0
  254. package/src/lib/sub-menu/s-sub-menu.component.spec.ts +25 -0
  255. package/src/lib/sub-menu/s-sub-menu.component.ts +56 -0
  256. package/src/lib/sub-menu/s-sub-menu.module.ts +25 -0
  257. package/{lib/table/index.d.ts → src/lib/table/index.ts} +1 -1
  258. package/src/lib/table/s-table-content.ts +30 -0
  259. package/src/lib/table/s-table.component.html +24 -0
  260. package/src/lib/table/s-table.component.scss +49 -0
  261. package/src/lib/table/s-table.component.spec.ts +25 -0
  262. package/src/lib/table/s-table.component.ts +87 -0
  263. package/src/lib/table/s-table.module.ts +12 -0
  264. package/src/lib/table-t/s-tablet.component.html +18 -0
  265. package/src/lib/table-t/s-tablet.component.scss +41 -0
  266. package/src/lib/table-t/s-tablet.component.spec.ts +25 -0
  267. package/src/lib/table-t/s-tablet.component.ts +223 -0
  268. package/src/lib/table-t/s-tablet.module.ts +10 -0
  269. package/{lib/tabs/index.d.ts → src/lib/tabs/index.ts} +1 -1
  270. package/{lib/tabs/models/configTabs.interface.d.ts → src/lib/tabs/models/configTabs.interface.ts} +1 -1
  271. package/{lib/tabs/models/tab.interface.d.ts → src/lib/tabs/models/tab.interface.ts} +1 -1
  272. package/src/lib/tabs/s-tabs.component.html +8 -0
  273. package/src/lib/tabs/s-tabs.component.scss +49 -0
  274. package/src/lib/tabs/s-tabs.component.spec.ts +25 -0
  275. package/src/lib/tabs/s-tabs.component.ts +38 -0
  276. package/src/lib/tabs/s-tabs.module.ts +17 -0
  277. package/src/lib/tag/index.ts +2 -0
  278. package/src/lib/tag/s-tag.component.html +3 -0
  279. package/src/lib/tag/s-tag.component.scss +117 -0
  280. package/src/lib/tag/s-tag.component.spec.ts +25 -0
  281. package/src/lib/tag/s-tag.component.ts +17 -0
  282. package/src/lib/tag/s-tag.module.ts +17 -0
  283. package/{lib/text-search/index.d.ts → src/lib/text-search/index.ts} +1 -1
  284. package/src/lib/text-search/s-text-search.component.html +4 -0
  285. package/src/lib/text-search/s-text-search.component.scss +23 -0
  286. package/src/lib/text-search/s-text-search.component.spec.ts +25 -0
  287. package/src/lib/text-search/s-text-search.component.ts +30 -0
  288. package/src/lib/text-search/s-text-search.module.ts +16 -0
  289. package/src/lib/theme/index.ts +2 -0
  290. package/src/lib/theme/s-theme.component.scss +1 -0
  291. package/src/lib/theme/s-theme.component.spec.ts +25 -0
  292. package/src/lib/theme/s-theme.component.ts +12 -0
  293. package/src/lib/theme/s-theme.module.ts +15 -0
  294. package/src/lib/theme.scss +662 -0
  295. package/src/lib/thumbnail/index.ts +2 -0
  296. package/src/lib/thumbnail/s-thumbnail-model.ts +5 -0
  297. package/src/lib/thumbnail/s-thumbnail.component.html +3 -0
  298. package/src/lib/thumbnail/s-thumbnail.component.scss +6 -0
  299. package/src/lib/thumbnail/s-thumbnail.component.spec.ts +25 -0
  300. package/src/lib/thumbnail/s-thumbnail.component.ts +22 -0
  301. package/src/lib/thumbnail/s-thumbnail.module.ts +17 -0
  302. package/{lib/toast/index.d.ts → src/lib/toast/index.ts} +1 -1
  303. package/src/lib/toast/s-toast-service.ts +31 -0
  304. package/src/lib/toast/s-toast.component.html +16 -0
  305. package/src/lib/toast/s-toast.component.scss +200 -0
  306. package/src/lib/toast/s-toast.component.spec.ts +25 -0
  307. package/src/lib/toast/s-toast.component.ts +86 -0
  308. package/src/lib/toast/s-toast.module.ts +19 -0
  309. package/src/lib/toggle-switch/index.ts +2 -0
  310. package/src/lib/toggle-switch/s-toggle-switch.component.html +10 -0
  311. package/src/lib/toggle-switch/s-toggle-switch.component.scss +199 -0
  312. package/src/lib/toggle-switch/s-toggle-switch.component.spec.ts +25 -0
  313. package/src/lib/toggle-switch/s-toggle-switch.component.ts +72 -0
  314. package/src/lib/toggle-switch/s-toggle-switch.module.ts +20 -0
  315. package/src/lib/tooltip/directive/s-tooltip-directive.ts +26 -0
  316. package/{lib/tooltip/index.d.ts → src/lib/tooltip/index.ts} +1 -1
  317. package/src/lib/tooltip/s-tooltip-model.ts +6 -0
  318. package/src/lib/tooltip/s-tooltip.component.html +4 -0
  319. package/src/lib/tooltip/s-tooltip.component.scss +112 -0
  320. package/src/lib/tooltip/s-tooltip.component.spec.ts +25 -0
  321. package/src/lib/tooltip/s-tooltip.component.ts +79 -0
  322. package/src/lib/tooltip/s-tooltip.module.ts +16 -0
  323. package/{lib/tree-list/index.d.ts → src/lib/tree-list/index.ts} +1 -1
  324. package/{lib/tree-list/models/tree-node.interface.d.ts → src/lib/tree-list/models/tree-node.interface.ts} +3 -1
  325. package/src/lib/tree-list/s-tree-list.component.html +29 -0
  326. package/src/lib/tree-list/s-tree-list.component.scss +46 -0
  327. package/src/lib/tree-list/s-tree-list.component.ts +127 -0
  328. package/src/lib/tree-list/s-tree-list.module.ts +22 -0
  329. package/src/lib/variables.scss +107 -0
  330. package/src/test.ts +16 -0
  331. package/tsconfig.lib.json +21 -0
  332. package/tsconfig.lib.prod.json +10 -0
  333. package/tsconfig.spec.json +17 -0
  334. package/esm2020/lib/alert/index.mjs +0 -3
  335. package/esm2020/lib/alert/s-alert.component.mjs +0 -15
  336. package/esm2020/lib/alert/s-alert.module.mjs +0 -22
  337. package/esm2020/lib/avatar/components/profile-group/index.mjs +0 -3
  338. package/esm2020/lib/avatar/components/profile-group/s-profile-group.component.mjs +0 -55
  339. package/esm2020/lib/avatar/components/profile-group/s-profile-group.module.mjs +0 -26
  340. package/esm2020/lib/avatar/index.mjs +0 -3
  341. package/esm2020/lib/avatar/s-avatar.component.mjs +0 -49
  342. package/esm2020/lib/avatar/s-avatar.module.mjs +0 -30
  343. package/esm2020/lib/badge/index.mjs +0 -3
  344. package/esm2020/lib/badge/s-badge.component.mjs +0 -26
  345. package/esm2020/lib/badge/s-badge.module.mjs +0 -26
  346. package/esm2020/lib/blockquote/index.mjs +0 -3
  347. package/esm2020/lib/blockquote/s-blockquote.component.mjs +0 -14
  348. package/esm2020/lib/blockquote/s-blockquote.module.mjs +0 -22
  349. package/esm2020/lib/breadcrum/index.mjs +0 -3
  350. package/esm2020/lib/breadcrum/s-breadcrum.component.mjs +0 -38
  351. package/esm2020/lib/breadcrum/s-breadcrum.module.mjs +0 -30
  352. package/esm2020/lib/button/button.module.mjs +0 -24
  353. package/esm2020/lib/button/components/button/s-button.component.mjs +0 -62
  354. package/esm2020/lib/button/index.mjs +0 -3
  355. package/esm2020/lib/card/index.mjs +0 -4
  356. package/esm2020/lib/card/s-card-models.mjs +0 -11
  357. package/esm2020/lib/card/s-card.component.mjs +0 -76
  358. package/esm2020/lib/card/s-card.module.mjs +0 -44
  359. package/esm2020/lib/checkbox/index.mjs +0 -3
  360. package/esm2020/lib/checkbox/s-checkbox.component.mjs +0 -66
  361. package/esm2020/lib/checkbox/s-checkbox.module.mjs +0 -26
  362. package/esm2020/lib/company-logo/index.mjs +0 -3
  363. package/esm2020/lib/company-logo/s-company-logo.component.mjs +0 -35
  364. package/esm2020/lib/company-logo/s-company-logo.module.mjs +0 -22
  365. package/esm2020/lib/content/index.mjs +0 -3
  366. package/esm2020/lib/content/s-content.component.mjs +0 -30
  367. package/esm2020/lib/content/s-content.module.mjs +0 -26
  368. package/esm2020/lib/drop-down/index.mjs +0 -4
  369. package/esm2020/lib/drop-down/s-drop-down-button.mjs +0 -7
  370. package/esm2020/lib/drop-down/s-drop-down.component.mjs +0 -37
  371. package/esm2020/lib/drop-down/s-drop-down.module.mjs +0 -18
  372. package/esm2020/lib/footer/index.mjs +0 -3
  373. package/esm2020/lib/footer/s-footer.component.mjs +0 -15
  374. package/esm2020/lib/footer/s-footer.module.mjs +0 -28
  375. package/esm2020/lib/form/index.mjs +0 -4
  376. package/esm2020/lib/form/s-form-control.mjs +0 -59
  377. package/esm2020/lib/form/s-form.component.mjs +0 -130
  378. package/esm2020/lib/form/s-form.module.mjs +0 -51
  379. package/esm2020/lib/icon/index.mjs +0 -3
  380. package/esm2020/lib/icon/s-icon.component.mjs +0 -41
  381. package/esm2020/lib/icon/s-icon.module.mjs +0 -22
  382. package/esm2020/lib/icon/s-icons.mjs +0 -55
  383. package/esm2020/lib/icon-material/index.mjs +0 -3
  384. package/esm2020/lib/icon-material/s-icon-material.component.mjs +0 -57
  385. package/esm2020/lib/icon-material/s-icon-material.module.mjs +0 -22
  386. package/esm2020/lib/input/components/error-control/s-error-control.component.mjs +0 -52
  387. package/esm2020/lib/input/components/input-text/s-input-text.component.mjs +0 -317
  388. package/esm2020/lib/input/components/input-textarea/s-input-textarea.component.mjs +0 -99
  389. package/esm2020/lib/input/index.mjs +0 -5
  390. package/esm2020/lib/input/input.module.mjs +0 -49
  391. package/esm2020/lib/link/index.mjs +0 -3
  392. package/esm2020/lib/link/s-link.component.mjs +0 -33
  393. package/esm2020/lib/link/s-link.module.mjs +0 -22
  394. package/esm2020/lib/list/index.mjs +0 -3
  395. package/esm2020/lib/list/s-list.component.mjs +0 -24
  396. package/esm2020/lib/list/s-list.module.mjs +0 -26
  397. package/esm2020/lib/list-simple/index.mjs +0 -3
  398. package/esm2020/lib/list-simple/s-list-simple.component.mjs +0 -17
  399. package/esm2020/lib/list-simple/s-list-simple.module.mjs +0 -26
  400. package/esm2020/lib/login/index.mjs +0 -5
  401. package/esm2020/lib/login/s-login-event.mjs +0 -3
  402. package/esm2020/lib/login/s-login-images.mjs +0 -4
  403. package/esm2020/lib/login/s-login-model.mjs +0 -3
  404. package/esm2020/lib/login/s-login.component.mjs +0 -97
  405. package/esm2020/lib/login/s-login.module.mjs +0 -32
  406. package/esm2020/lib/navbar/components/icon-menu/components/s-notificaction.component.mjs +0 -41
  407. package/esm2020/lib/navbar/components/icon-menu/index.mjs +0 -5
  408. package/esm2020/lib/navbar/components/icon-menu/s-icon-menu-model.mjs +0 -3
  409. package/esm2020/lib/navbar/components/icon-menu/s-icon-menu.component.mjs +0 -70
  410. package/esm2020/lib/navbar/components/icon-menu/s-icon-menu.module.mjs +0 -53
  411. package/esm2020/lib/navbar/components/menu-config/index.mjs +0 -4
  412. package/esm2020/lib/navbar/components/menu-config/s-menu-config-model.mjs +0 -8
  413. package/esm2020/lib/navbar/components/menu-config/s-menu-config.component.mjs +0 -39
  414. package/esm2020/lib/navbar/components/menu-config/s-menu-config.module.mjs +0 -35
  415. package/esm2020/lib/navbar/components/menu-main/index.mjs +0 -4
  416. package/esm2020/lib/navbar/components/menu-main/s-menu-main-model.mjs +0 -3
  417. package/esm2020/lib/navbar/components/menu-main/s-menu-main.component.mjs +0 -28
  418. package/esm2020/lib/navbar/components/menu-main/s-menu-main.module.mjs +0 -39
  419. package/esm2020/lib/navbar/components/search-menu/index.mjs +0 -3
  420. package/esm2020/lib/navbar/components/search-menu/s-search-menu.component.mjs +0 -38
  421. package/esm2020/lib/navbar/components/search-menu/s-search-menu.module.mjs +0 -31
  422. package/esm2020/lib/navbar/index.mjs +0 -9
  423. package/esm2020/lib/navbar/s-navbar.component.mjs +0 -95
  424. package/esm2020/lib/navbar/s-navbar.module.mjs +0 -63
  425. package/esm2020/lib/pagination/index.mjs +0 -4
  426. package/esm2020/lib/pagination/new/s-pag-model.mjs +0 -7
  427. package/esm2020/lib/pagination/new/s-pag.component.mjs +0 -98
  428. package/esm2020/lib/pagination/s-pagination.component.mjs +0 -84
  429. package/esm2020/lib/pagination/s-pagination.module.mjs +0 -41
  430. package/esm2020/lib/popup/index.mjs +0 -3
  431. package/esm2020/lib/popup/s-popup.component.mjs +0 -139
  432. package/esm2020/lib/popup/s-popup.module.mjs +0 -36
  433. package/esm2020/lib/precode/index.mjs +0 -3
  434. package/esm2020/lib/precode/s-precode.component.mjs +0 -32
  435. package/esm2020/lib/precode/s-precode.module.mjs +0 -32
  436. package/esm2020/lib/progressbar/index.mjs +0 -3
  437. package/esm2020/lib/progressbar/s-progressbar.component.mjs +0 -27
  438. package/esm2020/lib/progressbar/s-progressbar.module.mjs +0 -26
  439. package/esm2020/lib/progressbar/temperature/temperature.component.mjs +0 -25
  440. package/esm2020/lib/radio/index.mjs +0 -3
  441. package/esm2020/lib/radio/s-radio.component.mjs +0 -67
  442. package/esm2020/lib/radio/s-radio.module.mjs +0 -26
  443. package/esm2020/lib/select/index.mjs +0 -6
  444. package/esm2020/lib/select/s-select-model.mjs +0 -9
  445. package/esm2020/lib/select/s-select.module.mjs +0 -54
  446. package/esm2020/lib/select/select-multiple/s-select-multiple.component.mjs +0 -127
  447. package/esm2020/lib/select/select-normal/s-select.component.mjs +0 -28
  448. package/esm2020/lib/select/select-simple/s-select-simple.component.mjs +0 -132
  449. package/esm2020/lib/shared/image-loader.directive.mjs +0 -31
  450. package/esm2020/lib/shared/localstorage.service.mjs +0 -64
  451. package/esm2020/lib/shared/shared.module.mjs +0 -24
  452. package/esm2020/lib/sidebar/index.mjs +0 -4
  453. package/esm2020/lib/sidebar/s-sidebar-model.mjs +0 -2
  454. package/esm2020/lib/sidebar/s-sidebar.component.mjs +0 -82
  455. package/esm2020/lib/sidebar/s-sidebar.module.mjs +0 -40
  456. package/esm2020/lib/spinner/index.mjs +0 -3
  457. package/esm2020/lib/spinner/s-spinner.component.mjs +0 -27
  458. package/esm2020/lib/spinner/s-spinner.module.mjs +0 -24
  459. package/esm2020/lib/stepper/index.mjs +0 -3
  460. package/esm2020/lib/stepper/s-stepper.component.mjs +0 -15
  461. package/esm2020/lib/stepper/s-stepper.module.mjs +0 -22
  462. package/esm2020/lib/sub-menu/index.mjs +0 -4
  463. package/esm2020/lib/sub-menu/s-sub-menu-model.mjs +0 -15
  464. package/esm2020/lib/sub-menu/s-sub-menu.component.mjs +0 -64
  465. package/esm2020/lib/sub-menu/s-sub-menu.module.mjs +0 -42
  466. package/esm2020/lib/table/index.mjs +0 -4
  467. package/esm2020/lib/table/s-table-content.mjs +0 -37
  468. package/esm2020/lib/table/s-table.component.mjs +0 -96
  469. package/esm2020/lib/table/s-table.module.mjs +0 -20
  470. package/esm2020/lib/table-t/index.mjs +0 -3
  471. package/esm2020/lib/table-t/s-tablet.component.mjs +0 -203
  472. package/esm2020/lib/table-t/s-tablet.module.mjs +0 -18
  473. package/esm2020/lib/tabs/index.mjs +0 -4
  474. package/esm2020/lib/tabs/models/configTabs.interface.mjs +0 -2
  475. package/esm2020/lib/tabs/models/index.mjs +0 -3
  476. package/esm2020/lib/tabs/models/tab.interface.mjs +0 -2
  477. package/esm2020/lib/tabs/s-tabs.component.mjs +0 -36
  478. package/esm2020/lib/tabs/s-tabs.module.mjs +0 -26
  479. package/esm2020/lib/tag/index.mjs +0 -3
  480. package/esm2020/lib/tag/s-tag.component.mjs +0 -22
  481. package/esm2020/lib/tag/s-tag.module.mjs +0 -26
  482. package/esm2020/lib/text-search/index.mjs +0 -3
  483. package/esm2020/lib/text-search/s-text-search.component.mjs +0 -29
  484. package/esm2020/lib/text-search/s-text-search.module.mjs +0 -26
  485. package/esm2020/lib/theme/index.mjs +0 -3
  486. package/esm2020/lib/theme/s-theme.component.mjs +0 -11
  487. package/esm2020/lib/theme/s-theme.module.mjs +0 -22
  488. package/esm2020/lib/thumbnail/index.mjs +0 -3
  489. package/esm2020/lib/thumbnail/s-thumbnail.component.mjs +0 -23
  490. package/esm2020/lib/thumbnail/s-thumbnail.module.mjs +0 -26
  491. package/esm2020/lib/toast/index.mjs +0 -4
  492. package/esm2020/lib/toast/s-toast-service.mjs +0 -30
  493. package/esm2020/lib/toast/s-toast.component.mjs +0 -86
  494. package/esm2020/lib/toast/s-toast.module.mjs +0 -28
  495. package/esm2020/lib/toggle-switch/index.mjs +0 -3
  496. package/esm2020/lib/toggle-switch/s-toggle-switch.component.mjs +0 -85
  497. package/esm2020/lib/toggle-switch/s-toggle-switch.module.mjs +0 -32
  498. package/esm2020/lib/tooltip/directive/s-tooltip-directive.mjs +0 -31
  499. package/esm2020/lib/tooltip/index.mjs +0 -4
  500. package/esm2020/lib/tooltip/s-tooltip.component.mjs +0 -80
  501. package/esm2020/lib/tooltip/s-tooltip.module.mjs +0 -25
  502. package/esm2020/lib/tree-list/index.mjs +0 -4
  503. package/esm2020/lib/tree-list/models/index.mjs +0 -2
  504. package/esm2020/lib/tree-list/models/tree-node.interface.mjs +0 -2
  505. package/esm2020/lib/tree-list/s-tree-list.component.mjs +0 -114
  506. package/esm2020/lib/tree-list/s-tree-list.module.mjs +0 -36
  507. package/esm2020/public-api.mjs +0 -44
  508. package/esm2020/sidesys-generic-ui.mjs +0 -5
  509. package/fesm2015/sidesys-generic-ui.mjs +0 -4770
  510. package/fesm2015/sidesys-generic-ui.mjs.map +0 -1
  511. package/fesm2020/sidesys-generic-ui.mjs +0 -4752
  512. package/fesm2020/sidesys-generic-ui.mjs.map +0 -1
  513. package/index.d.ts +0 -5
  514. package/lib/alert/index.d.ts +0 -2
  515. package/lib/alert/s-alert.component.d.ts +0 -8
  516. package/lib/alert/s-alert.module.d.ts +0 -8
  517. package/lib/avatar/components/profile-group/index.d.ts +0 -2
  518. package/lib/avatar/components/profile-group/s-profile-group.component.d.ts +0 -12
  519. package/lib/avatar/components/profile-group/s-profile-group.module.d.ts +0 -9
  520. package/lib/avatar/index.d.ts +0 -2
  521. package/lib/avatar/s-avatar.component.d.ts +0 -19
  522. package/lib/avatar/s-avatar.module.d.ts +0 -10
  523. package/lib/badge/index.d.ts +0 -2
  524. package/lib/badge/s-badge.component.d.ts +0 -11
  525. package/lib/badge/s-badge.module.d.ts +0 -9
  526. package/lib/blockquote/index.d.ts +0 -2
  527. package/lib/blockquote/s-blockquote.component.d.ts +0 -8
  528. package/lib/blockquote/s-blockquote.module.d.ts +0 -8
  529. package/lib/breadcrum/s-breadcrum.component.d.ts +0 -17
  530. package/lib/breadcrum/s-breadcrum.module.d.ts +0 -10
  531. package/lib/button/button.module.d.ts +0 -8
  532. package/lib/button/components/button/s-button.component.d.ts +0 -21
  533. package/lib/button/index.d.ts +0 -2
  534. package/lib/card/s-card-models.d.ts +0 -6
  535. package/lib/card/s-card.component.d.ts +0 -32
  536. package/lib/card/s-card.module.d.ts +0 -13
  537. package/lib/checkbox/index.d.ts +0 -2
  538. package/lib/checkbox/s-checkbox.component.d.ts +0 -21
  539. package/lib/checkbox/s-checkbox.module.d.ts +0 -9
  540. package/lib/company-logo/s-company-logo.component.d.ts +0 -13
  541. package/lib/company-logo/s-company-logo.module.d.ts +0 -8
  542. package/lib/content/index.d.ts +0 -2
  543. package/lib/content/s-content.component.d.ts +0 -14
  544. package/lib/content/s-content.module.d.ts +0 -8
  545. package/lib/drop-down/s-drop-down-button.d.ts +0 -4
  546. package/lib/drop-down/s-drop-down.component.d.ts +0 -20
  547. package/lib/drop-down/s-drop-down.module.d.ts +0 -8
  548. package/lib/footer/s-footer.component.d.ts +0 -6
  549. package/lib/footer/s-footer.module.d.ts +0 -9
  550. package/lib/form/s-form-control.d.ts +0 -26
  551. package/lib/form/s-form.component.d.ts +0 -33
  552. package/lib/form/s-form.module.d.ts +0 -14
  553. package/lib/icon/index.d.ts +0 -2
  554. package/lib/icon/s-icon.component.d.ts +0 -18
  555. package/lib/icon/s-icon.module.d.ts +0 -8
  556. package/lib/icon/s-icons.d.ts +0 -8
  557. package/lib/icon-material/index.d.ts +0 -2
  558. package/lib/icon-material/s-icon-material.component.d.ts +0 -19
  559. package/lib/icon-material/s-icon-material.module.d.ts +0 -8
  560. package/lib/input/components/error-control/s-error-control.component.d.ts +0 -13
  561. package/lib/input/components/input-text/s-input-text.component.d.ts +0 -59
  562. package/lib/input/components/input-textarea/s-input-textarea.component.d.ts +0 -33
  563. package/lib/input/input.module.d.ts +0 -13
  564. package/lib/link/index.d.ts +0 -2
  565. package/lib/link/s-link.component.d.ts +0 -14
  566. package/lib/link/s-link.module.d.ts +0 -8
  567. package/lib/list/index.d.ts +0 -2
  568. package/lib/list/s-list.component.d.ts +0 -11
  569. package/lib/list/s-list.module.d.ts +0 -9
  570. package/lib/list-simple/index.d.ts +0 -2
  571. package/lib/list-simple/s-list-simple.component.d.ts +0 -9
  572. package/lib/list-simple/s-list-simple.module.d.ts +0 -9
  573. package/lib/login/s-login-event.d.ts +0 -4
  574. package/lib/login/s-login-images.d.ts +0 -3
  575. package/lib/login/s-login.component.d.ts +0 -35
  576. package/lib/login/s-login.module.d.ts +0 -10
  577. package/lib/navbar/components/icon-menu/components/s-notificaction.component.d.ts +0 -16
  578. package/lib/navbar/components/icon-menu/index.d.ts +0 -4
  579. package/lib/navbar/components/icon-menu/s-icon-menu-model.d.ts +0 -20
  580. package/lib/navbar/components/icon-menu/s-icon-menu.component.d.ts +0 -23
  581. package/lib/navbar/components/icon-menu/s-icon-menu.module.d.ts +0 -15
  582. package/lib/navbar/components/menu-config/s-menu-config-model.d.ts +0 -5
  583. package/lib/navbar/components/menu-config/s-menu-config.component.d.ts +0 -19
  584. package/lib/navbar/components/menu-config/s-menu-config.module.d.ts +0 -11
  585. package/lib/navbar/components/menu-main/s-menu-main-model.d.ts +0 -7
  586. package/lib/navbar/components/menu-main/s-menu-main.component.d.ts +0 -13
  587. package/lib/navbar/components/menu-main/s-menu-main.module.d.ts +0 -12
  588. package/lib/navbar/components/search-menu/s-search-menu.component.d.ts +0 -17
  589. package/lib/navbar/components/search-menu/s-search-menu.module.d.ts +0 -10
  590. package/lib/navbar/s-navbar.component.d.ts +0 -36
  591. package/lib/navbar/s-navbar.module.d.ts +0 -18
  592. package/lib/pagination/new/s-pag-model.d.ts +0 -4
  593. package/lib/pagination/new/s-pag.component.d.ts +0 -32
  594. package/lib/pagination/s-pagination.component.d.ts +0 -27
  595. package/lib/pagination/s-pagination.module.d.ts +0 -12
  596. package/lib/popup/index.d.ts +0 -2
  597. package/lib/popup/s-popup.component.d.ts +0 -39
  598. package/lib/popup/s-popup.module.d.ts +0 -10
  599. package/lib/precode/index.d.ts +0 -2
  600. package/lib/precode/s-precode.component.d.ts +0 -11
  601. package/lib/precode/s-precode.module.d.ts +0 -10
  602. package/lib/progressbar/index.d.ts +0 -2
  603. package/lib/progressbar/s-progressbar.component.d.ts +0 -11
  604. package/lib/progressbar/s-progressbar.module.d.ts +0 -9
  605. package/lib/progressbar/temperature/temperature.component.d.ts +0 -11
  606. package/lib/radio/index.d.ts +0 -2
  607. package/lib/radio/s-radio.component.d.ts +0 -21
  608. package/lib/radio/s-radio.module.d.ts +0 -9
  609. package/lib/select/s-select-model.d.ts +0 -25
  610. package/lib/select/s-select.module.d.ts +0 -15
  611. package/lib/select/select-multiple/s-select-multiple.component.d.ts +0 -32
  612. package/lib/select/select-normal/s-select.component.d.ts +0 -12
  613. package/lib/select/select-simple/s-select-simple.component.d.ts +0 -36
  614. package/lib/shared/image-loader.directive.d.ts +0 -13
  615. package/lib/shared/localstorage.service.d.ts +0 -14
  616. package/lib/shared/shared.module.d.ts +0 -8
  617. package/lib/sidebar/s-sidebar-model.d.ts +0 -13
  618. package/lib/sidebar/s-sidebar.component.d.ts +0 -28
  619. package/lib/sidebar/s-sidebar.module.d.ts +0 -12
  620. package/lib/spinner/index.d.ts +0 -2
  621. package/lib/spinner/s-spinner.component.d.ts +0 -12
  622. package/lib/spinner/s-spinner.module.d.ts +0 -8
  623. package/lib/stepper/index.d.ts +0 -2
  624. package/lib/stepper/s-stepper.component.d.ts +0 -8
  625. package/lib/stepper/s-stepper.module.d.ts +0 -8
  626. package/lib/sub-menu/s-sub-menu-model.d.ts +0 -30
  627. package/lib/sub-menu/s-sub-menu.component.d.ts +0 -19
  628. package/lib/sub-menu/s-sub-menu.module.d.ts +0 -13
  629. package/lib/table/s-table-content.d.ts +0 -26
  630. package/lib/table/s-table.component.d.ts +0 -28
  631. package/lib/table/s-table.module.d.ts +0 -10
  632. package/lib/table-t/s-tablet.component.d.ts +0 -65
  633. package/lib/table-t/s-tablet.module.d.ts +0 -8
  634. package/lib/tabs/s-tabs.component.d.ts +0 -15
  635. package/lib/tabs/s-tabs.module.d.ts +0 -9
  636. package/lib/tag/index.d.ts +0 -2
  637. package/lib/tag/s-tag.component.d.ts +0 -8
  638. package/lib/tag/s-tag.module.d.ts +0 -9
  639. package/lib/text-search/s-text-search.component.d.ts +0 -13
  640. package/lib/text-search/s-text-search.module.d.ts +0 -9
  641. package/lib/theme/index.d.ts +0 -2
  642. package/lib/theme/s-theme.component.d.ts +0 -5
  643. package/lib/theme/s-theme.module.d.ts +0 -8
  644. package/lib/thumbnail/index.d.ts +0 -2
  645. package/lib/thumbnail/s-thumbnail.component.d.ts +0 -11
  646. package/lib/thumbnail/s-thumbnail.module.d.ts +0 -9
  647. package/lib/toast/s-toast-service.d.ts +0 -11
  648. package/lib/toast/s-toast.component.d.ts +0 -25
  649. package/lib/toast/s-toast.module.d.ts +0 -9
  650. package/lib/toggle-switch/index.d.ts +0 -2
  651. package/lib/toggle-switch/s-toggle-switch.component.d.ts +0 -25
  652. package/lib/toggle-switch/s-toggle-switch.module.d.ts +0 -10
  653. package/lib/tooltip/directive/s-tooltip-directive.d.ts +0 -12
  654. package/lib/tooltip/s-tooltip.component.d.ts +0 -19
  655. package/lib/tooltip/s-tooltip.module.d.ts +0 -9
  656. package/lib/tree-list/s-tree-list.component.d.ts +0 -24
  657. package/lib/tree-list/s-tree-list.module.d.ts +0 -11
  658. /package/{lib/input/index.d.ts → src/lib/input/index.ts} +0 -0
  659. /package/{lib/table-t/index.d.ts → src/lib/table-t/index.ts} +0 -0
  660. /package/{lib/tabs/models/index.d.ts → src/lib/tabs/models/index.ts} +0 -0
  661. /package/{lib/tree-list/models/index.d.ts → src/lib/tree-list/models/index.ts} +0 -0
  662. /package/{public-api.d.ts → src/public-api.ts} +0 -0
@@ -1,52 +0,0 @@
1
- import { Component, Input, ViewEncapsulation } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "../../../icon-material/s-icon-material.component";
5
- export class SErrorControl {
6
- constructor() {
7
- this.theme = "default"; //default , red , green , yellow
8
- this.icon = false;
9
- this.iconCustom = "";
10
- this.size = 'm';
11
- this.iconName = '';
12
- }
13
- ngOnInit() {
14
- if (this.iconCustom == "") {
15
- switch (this.theme) {
16
- case "default":
17
- this.iconName = "stars";
18
- break;
19
- case "red":
20
- this.iconName = "error";
21
- break;
22
- case "green":
23
- this.iconName = "check_circle";
24
- break;
25
- case "yellow":
26
- this.iconName = "info";
27
- break;
28
- default:
29
- this.iconName = "stars";
30
- break;
31
- }
32
- }
33
- else {
34
- this.iconName = this.iconCustom;
35
- }
36
- }
37
- }
38
- SErrorControl.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SErrorControl, deps: [], target: i0.ɵɵFactoryTarget.Component });
39
- SErrorControl.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: SErrorControl, selector: "s-error-control", inputs: { theme: "theme", icon: "icon", iconCustom: "iconCustom", size: "size" }, ngImport: i0, template: "<label class=\"label-content label-content-{{theme}} {{size}}\">\r\n <s-icon-mat *ngIf=\"icon\" class=\"icon-{{theme}}\">{{iconName}}</s-icon-mat>\r\n <ng-content></ng-content>\r\n</label>", styles: [".label-content{display:inline-flex;align-items:center;margin-left:3px;font-weight:400;font-size:.875rem;line-height:0px}.label-content.sm{font-size:.625rem}.label-content s-icon-mat{display:flex;align-items:center;margin-right:3px}.label-content s-icon-mat span{font-size:1.01rem}.icon-default,.label-content-default{color:var(--secondary-500)}.icon-yellow,.label-content-yellow{color:var(--yellow-600)}.icon-red,.label-content-red{color:var(--red-600)}.icon-green,.label-content-green{color:var(--green-600)}.form-group{margin:5px}.form-group .label{font-weight:400;font-size:.875rem;color:var(--secondary-600)}.form-group .content-input-main-626.sm{margin:0}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["size", "color", "fill", "weight", "grade", "opticalSize", "style", "type"] }], encapsulation: i0.ViewEncapsulation.None });
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SErrorControl, decorators: [{
41
- type: Component,
42
- args: [{ selector: 's-error-control', encapsulation: ViewEncapsulation.None, template: "<label class=\"label-content label-content-{{theme}} {{size}}\">\r\n <s-icon-mat *ngIf=\"icon\" class=\"icon-{{theme}}\">{{iconName}}</s-icon-mat>\r\n <ng-content></ng-content>\r\n</label>", styles: [".label-content{display:inline-flex;align-items:center;margin-left:3px;font-weight:400;font-size:.875rem;line-height:0px}.label-content.sm{font-size:.625rem}.label-content s-icon-mat{display:flex;align-items:center;margin-right:3px}.label-content s-icon-mat span{font-size:1.01rem}.icon-default,.label-content-default{color:var(--secondary-500)}.icon-yellow,.label-content-yellow{color:var(--yellow-600)}.icon-red,.label-content-red{color:var(--red-600)}.icon-green,.label-content-green{color:var(--green-600)}.form-group{margin:5px}.form-group .label{font-weight:400;font-size:.875rem;color:var(--secondary-600)}.form-group .content-input-main-626.sm{margin:0}\n"] }]
43
- }], ctorParameters: function () { return []; }, propDecorators: { theme: [{
44
- type: Input
45
- }], icon: [{
46
- type: Input
47
- }], iconCustom: [{
48
- type: Input
49
- }], size: [{
50
- type: Input
51
- }] } });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy1lcnJvci1jb250cm9sLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGVzeXMtZ2VuZXJpYy11aS9zcmMvbGliL2lucHV0L2NvbXBvbmVudHMvZXJyb3ItY29udHJvbC9zLWVycm9yLWNvbnRyb2wuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvaW5wdXQvY29tcG9uZW50cy9lcnJvci1jb250cm9sL3MtZXJyb3ItY29udHJvbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQVE1RSxNQUFNLE9BQU8sYUFBYTtJQVV4QjtRQVJTLFVBQUssR0FBMkMsU0FBUyxDQUFDLENBQUUsZ0NBQWdDO1FBQzVGLFNBQUksR0FBVyxLQUFLLENBQUM7UUFDckIsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUN2QixTQUFJLEdBQWUsR0FBRyxDQUFDO1FBR2hDLGFBQVEsR0FBVyxFQUFFLENBQUE7SUFFTCxDQUFDO0lBRWpCLFFBQVE7UUFFTixJQUFHLElBQUksQ0FBQyxVQUFVLElBQUksRUFBRSxFQUFDO1lBRXZCLFFBQVEsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDbEIsS0FBSyxTQUFTO29CQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFBO29CQUN6QixNQUFNO2dCQUNOLEtBQUssS0FBSztvQkFDTixJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQTtvQkFDM0IsTUFBTTtnQkFDTixLQUFLLE9BQU87b0JBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxjQUFjLENBQUE7b0JBQzlCLE1BQU07Z0JBQ04sS0FBSyxRQUFRO29CQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFBO29CQUMxQixNQUFNO2dCQUVOO29CQUNFLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFBO29CQUN6QixNQUFNO2FBQ1A7U0FFRjthQUFJO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFBO1NBQ2hDO0lBRUgsQ0FBQzs7MEdBdkNVLGFBQWE7OEZBQWIsYUFBYSx5SUNSMUIsb01BR1E7MkZES0ssYUFBYTtrQkFOekIsU0FBUzsrQkFDRSxpQkFBaUIsaUJBR1osaUJBQWlCLENBQUMsSUFBSTswRUFJNUIsS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncy1lcnJvci1jb250cm9sJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcy1lcnJvci1jb250cm9sLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zLWVycm9yLWNvbnRyb2wuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgU0Vycm9yQ29udHJvbCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcblxyXG4gIEBJbnB1dCgpIHRoZW1lOiAnZGVmYXVsdCcgfCAncmVkJyB8ICdncmVlbicgfCAneWVsbG93JyA9IFwiZGVmYXVsdFwiOyAgLy9kZWZhdWx0ICwgcmVkICwgZ3JlZW4gLCB5ZWxsb3dcclxuICBASW5wdXQoKSBpY29uOmJvb2xlYW4gPSBmYWxzZTsgIFxyXG4gIEBJbnB1dCgpIGljb25DdXN0b206c3RyaW5nID0gXCJcIjtcclxuICBASW5wdXQoKSBzaXplOiAnc20nIHwgJ20nID0gJ20nO1xyXG5cclxuXHJcbiAgaWNvbk5hbWU6IHN0cmluZyA9ICcnXHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG5cclxuICAgIGlmKHRoaXMuaWNvbkN1c3RvbSA9PSBcIlwiKXtcclxuXHJcbiAgICAgIHN3aXRjaCAodGhpcy50aGVtZSkge1xyXG4gICAgICAgIGNhc2UgXCJkZWZhdWx0XCI6XHJcbiAgICAgICAgICB0aGlzLmljb25OYW1lID0gXCJzdGFyc1wiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcInJlZFwiOlxyXG4gICAgICAgICAgICB0aGlzLmljb25OYW1lID0gXCJlcnJvclwiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgY2FzZSBcImdyZWVuXCI6XHJcbiAgICAgICAgdGhpcy5pY29uTmFtZSA9IFwiY2hlY2tfY2lyY2xlXCJcclxuICAgICAgICBicmVhaztcclxuICAgICAgICBjYXNlIFwieWVsbG93XCI6XHJcbiAgICAgICAgICAgIHRoaXMuaWNvbk5hbWUgPSBcImluZm9cIlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBcclxuICAgICAgICBkZWZhdWx0OlxyXG4gICAgICAgICAgdGhpcy5pY29uTmFtZSA9IFwic3RhcnNcIlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICB9XHJcblxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHRoaXMuaWNvbk5hbWUgPSB0aGlzLmljb25DdXN0b21cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxufVxyXG4iLCI8bGFiZWwgY2xhc3M9XCJsYWJlbC1jb250ZW50IGxhYmVsLWNvbnRlbnQte3t0aGVtZX19IHt7c2l6ZX19XCI+XHJcbiAgICA8cy1pY29uLW1hdCAqbmdJZj1cImljb25cIiBjbGFzcz1cImljb24te3t0aGVtZX19XCI+e3tpY29uTmFtZX19PC9zLWljb24tbWF0PlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG48L2xhYmVsPiJdfQ==
@@ -1,317 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild, ViewEncapsulation, forwardRef } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/forms";
6
- import * as i3 from "../../../icon-material/s-icon-material.component";
7
- import * as i4 from "../../../button/components/button/s-button.component";
8
- export class SInputTextComponent {
9
- constructor() {
10
- this.onChange = (_) => { };
11
- this.onTouch = () => { };
12
- this.text = '';
13
- this.id = Math.floor(Math.random() * 1000);
14
- this.name = '';
15
- this.placeHolder = '';
16
- this.disabled = false;
17
- this.min = 0;
18
- this.step = 1;
19
- this.readOnly = false;
20
- this.classAdd = '';
21
- this.help = false;
22
- this.size = 'md';
23
- this.rangeUnity = '';
24
- this.inputText = '';
25
- this.inputNumber = 0;
26
- this._type = 'text';
27
- this._theme = 'default';
28
- this.disabledstyle = '';
29
- this.visibility = false;
30
- this.inconSymbol = false;
31
- this.tooltipValue = '';
32
- this.textChangeEvent = new EventEmitter();
33
- this.clickHelpIconEvent = new EventEmitter();
34
- }
35
- get theme() { return this._theme; }
36
- set theme(val) {
37
- this._theme = ['default', 'green', 'yellow', 'red'].indexOf(val) != -1 ? val : 'default';
38
- }
39
- ;
40
- get type() { return this._type; }
41
- set type(val) {
42
- this._type = ['text', 'password', 'email', 'phone', 'url', 'search', 'number', 'color', 'date', 'time', 'range'].indexOf(val) != -1 ? val : 'text';
43
- }
44
- ;
45
- ngOnInit() {
46
- //Ajuste cuando type number viene con text y lo convierte a numero
47
- if (this.text && this.type == 'number') {
48
- this.inputNumber = Number(this.text);
49
- }
50
- //Ajuste cuando type color viene con text vacio
51
- if (this._type == 'color' && this.text == '') {
52
- this.text = '#000000';
53
- }
54
- this.inputText = this.text;
55
- //Activa el estilo de disabled
56
- if (this.disabled) {
57
- this.disabledstyle = "disabled-active";
58
- }
59
- //Ajuste type color solo se deshabilita con disabled.
60
- if (this.type == 'color' && this.readOnly == true) {
61
- this.disabled = true;
62
- }
63
- this.loadTheme();
64
- }
65
- ngAfterViewInit() {
66
- //Ajustes Type Range
67
- if (this.type == 'range') {
68
- this.rangeOnLoad();
69
- }
70
- }
71
- ngOnChanges(changes) {
72
- if (changes['theme']) {
73
- this.loadTheme();
74
- }
75
- if (changes['text']) {
76
- if (this.text && this.type == 'number') {
77
- this.inputNumber = Number(this.text);
78
- }
79
- if (this._type == 'color' && this.text == '') {
80
- this.text = '#000000';
81
- }
82
- this.inputText = this.text;
83
- }
84
- }
85
- loadTheme() {
86
- switch (this.theme) {
87
- case "default":
88
- this.iconName = "";
89
- break;
90
- case "red":
91
- this.iconName = "error_outline";
92
- break;
93
- case "green":
94
- this.iconName = "check_circle_outline";
95
- break;
96
- case "yellow":
97
- this.inconSymbol = true;
98
- this.iconName = "warning";
99
- break;
100
- default:
101
- this.iconName = "";
102
- break;
103
- }
104
- }
105
- onTextChange() {
106
- if (this.type == 'number') {
107
- this.updateNumber(this.inputText);
108
- }
109
- this.onTouch();
110
- this.onChange(this.inputText);
111
- if (this.inputTimeout) {
112
- clearTimeout(this.inputTimeout);
113
- }
114
- this.inputTimeout = setTimeout(() => {
115
- this.textChangeEvent.next(this.inputText);
116
- }, 500, null);
117
- }
118
- onTextChangeVal(val) {
119
- if (this.inputTimeout) {
120
- clearTimeout(this.inputTimeout);
121
- }
122
- this.inputTimeout = setTimeout(() => {
123
- if (val) {
124
- this.onTouch();
125
- this.onChange(val);
126
- this.textChangeEvent.next(val);
127
- this.inputText = val;
128
- }
129
- else {
130
- this.onTouch();
131
- this.onChange(val);
132
- this.textChangeEvent.next(this.inputText);
133
- }
134
- }, 500, null);
135
- }
136
- clickIcon() {
137
- this.clickHelpIconEvent.next();
138
- }
139
- colorClick() {
140
- document.getElementById(this.name)?.click();
141
- }
142
- //FUNCIONES PARA TYPE NUMBER
143
- numberDecrease() {
144
- if (!this.disabled && !this.readOnly) {
145
- if (this.min < this.inputNumber) {
146
- this.inputNumber -= this.step;
147
- }
148
- this.inputText = this.inputNumber.toString();
149
- this.onTouch();
150
- this.onChange(this.inputText);
151
- this.textChangeEvent.next(this.inputText);
152
- }
153
- }
154
- numberIncrement() {
155
- if (!this.disabled && !this.readOnly) {
156
- if (this.max) {
157
- if (this.max > this.inputNumber) {
158
- this.inputNumber += this.step;
159
- }
160
- else {
161
- this.inputNumber = this.max;
162
- }
163
- }
164
- if (!this.max) {
165
- this.inputNumber += this.step;
166
- }
167
- this.inputText = this.inputNumber.toString();
168
- this.onTouch();
169
- this.onChange(this.inputText);
170
- this.textChangeEvent.next(this.inputText);
171
- }
172
- }
173
- updateNumber(value) {
174
- let value2 = value;
175
- if (this.max)
176
- if (value > this.max) {
177
- value2 = this.max;
178
- }
179
- if (value < this.min) {
180
- value2 = this.min;
181
- }
182
- this.inputText = value2.toString();
183
- this.inputNumber = Number(value2);
184
- if (this.typeNumber)
185
- this.typeNumber.nativeElement.value = this.inputNumber;
186
- this.onTouch();
187
- this.onChange(this.inputNumber);
188
- this.textChangeEvent.next(this.inputText);
189
- }
190
- //FIN FUNCIONES PARA TYPE NUMBER
191
- //FUNCIONES PARA TYPE RANGE
192
- rangeOnLoad() {
193
- setTimeout(() => {
194
- //RANGO TOTAL
195
- const rangeMax = this.max ? this.max : 100;
196
- //CALCULO LA AMPLITUD PARA PODER POSICIONAR AL 50% POR DEFECTO
197
- let amplitudTotal = rangeMax - this.min;
198
- let porcion = (amplitudTotal * 50) / 100;
199
- // INICIALIZA AL 50% CUANDO NO HAY VALOR PREDEFINIDO
200
- let value = this.text == '' ? this.min + porcion : this.text;
201
- value = this.inputText == '' ? this.min + porcion : this.inputText;
202
- //DEFINO EL TOOTLTIP
203
- this.tooltipValue = this.text + this.rangeUnity;
204
- //SI ES CHROME APLICO EL FIX
205
- const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
206
- if (isChrome) {
207
- //CALCCULO EL % A ASIGNAR
208
- let porcentaje = ((Number(value) - this.min) / (rangeMax - this.min)) * 100;
209
- document.getElementById(this.id)?.style.setProperty('margin-top', '14px');
210
- document.getElementById(this.id)?.style.setProperty('margin-bottom', '14px');
211
- document.getElementById(this.id)?.style.setProperty('border-radius', '4px');
212
- document.getElementById(this.id)?.style.setProperty('height', '8px');
213
- document.getElementById(this.id)?.style.setProperty('background', 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' + porcentaje + '%, var(--neutrals-1000) ' + porcentaje + '%, var(--neutrals-1000) 100%)');
214
- }
215
- ;
216
- }, 0);
217
- }
218
- //FUNCION PARA CHROME CUANDO SE DESLIZA EL SLIDE FUNCIONE CORRECTAMENTE
219
- changeRange(value) {
220
- if (this.type == 'range') {
221
- const isChrome = /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor);
222
- const rangeMax = this.max ? this.max : 100;
223
- if (isChrome) {
224
- let porcentaje = ((value - this.min) / (rangeMax - this.min)) * 100;
225
- document.getElementById(this.id)?.style.setProperty('background', 'linear-gradient(to right, var(--primary-600) 0%, var(--primary-600) ' + porcentaje + '%, var(--neutrals-1000) ' + porcentaje + '%, var(--neutrals-1000) 100%)');
226
- }
227
- ;
228
- }
229
- }
230
- //FUNCION QUE ACTUALIZA EL TOOLTIP CUANDO SE DESLIZA EL SLIDE
231
- updateTooltip(value) {
232
- if (this.tooltipContainer && this.tooltip) {
233
- const rangeWidth = this.tooltipContainer.nativeElement.offsetWidth;
234
- const rangeMax = this.max ? this.max : 100;
235
- let porcentaje = ((Number(value) - this.min) / (rangeMax - this.min)) * 100;
236
- let ajuste = porcentaje * rangeWidth / 100;
237
- this.tooltip.nativeElement.style.left = `${ajuste}px`;
238
- this.tooltipValue = value + this.rangeUnity;
239
- }
240
- }
241
- //FIN FUNCIONES PARA TYPE RANGE
242
- //FUNCIONES PARA QUE FUNCIONE FORM BUILDER
243
- writeValue(value) {
244
- if (value) {
245
- this.inputText = value;
246
- this.inputNumber = value;
247
- }
248
- }
249
- registerOnChange(fn) {
250
- this.onChange = fn;
251
- }
252
- registerOnTouched(fn) {
253
- this.onTouch = fn;
254
- }
255
- }
256
- SInputTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SInputTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
257
- SInputTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: SInputTextComponent, selector: "s-input-text", inputs: { text: "text", id: "id", name: "name", placeHolder: "placeHolder", disabled: "disabled", max: "max", min: "min", step: "step", readOnly: "readOnly", theme: "theme", type: "type", classAdd: "classAdd", help: "help", size: "size", rangeUnity: "rangeUnity" }, outputs: { textChangeEvent: "textChangeEvent", clickHelpIconEvent: "clickHelpIconEvent" }, providers: [
258
- {
259
- provide: NG_VALUE_ACCESSOR,
260
- useExisting: forwardRef(() => SInputTextComponent),
261
- multi: true
262
- }
263
- ], viewQueries: [{ propertyName: "typeNumber", first: true, predicate: ["typeNumber"], descendants: true }, { propertyName: "tooltipContainer", first: true, predicate: ["tooltipContainer"], descendants: true }, { propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"type\">\r\n <!-- El switch case con cada caso por input ['text', 'password', 'email' , 'phone' , 'url' , 'search']-->\r\n\r\n <!-- case text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input \r\n [readOnly]=\"readOnly\" \r\n [disabled]=\"disabled\" \r\n [type]=\"type\" \r\n [id]=\"id\" \r\n [name]=\"name\" \r\n autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\"\r\n [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\"\r\n >\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case password -->\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-password {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">vpn_key</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" type=\"{{visibility ? 'text' : 'password'}}\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon cursor\"\r\n (click)=\"visibility = !visibility\">{{visibility ? 'visibility' :\r\n 'visibility_off'}}</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case email -->\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-email {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">mail_outline</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-phone {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">phone</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case url -->\r\n <ng-container *ngSwitchCase=\"'url'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-url {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n http://\r\n </div>\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case search -->\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-search {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">search</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <!-- <div class=\"content-right\">\r\n <s-icon-mat class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div> -->\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case color -->\r\n <ng-container *ngSwitchCase=\"'color'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-color {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <input [readOnly]=\"readOnly\" #color [id]=\"name\" [name]=\"name\" type=\"color\" [disabled]=\"disabled\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\" style=\"width: 40px; padding: 0;\">\r\n </div>\r\n <div class=\"content-center\" (click)=\"!this.readOnly ? this.color.click() : null\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [type]=\"text\" autocomplete=\"off\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" [disabled]=\"disabled\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" (ngModelChange)=\"onTextChangeVal($event)\"\r\n [ngModel]=\"inputText\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case time -->\r\n <ng-container *ngSwitchCase=\"'time'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-center\">\r\n <input [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" (ngModelChange)=\"onTextChangeVal($event)\"\r\n [ngModel]=\"inputText\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div class=\"d-flex align-center\">\r\n <div class=\"content-left mr-1\">\r\n <s-button [disabled]=\"disabled\" (click)=\"numberDecrease()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>remove</s-icon-mat></s-button>\r\n </div>\r\n <div class=\"content-input-main-626 content-input-main-text content-input-main-number {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}} w-100\">\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" #typeNumber [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\"\r\n [max]=\"max\"\r\n [min]=\"min\"\r\n [step]=\"step\"\r\n >\r\n </div>\r\n\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n <div class=\"content-left ml-1\">\r\n <s-button [disabled]=\"disabled\" (click)=\"numberIncrement()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>add</s-icon-mat></s-button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case range -->\r\n <ng-container *ngSwitchCase=\"'range'\">\r\n <div class=\"content-input-main-range {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"tooltip tooltip-{{disabled}}\" #tooltipContainer>\r\n <input\r\n #rangeField\r\n [readOnly]=\"readOnly\" \r\n [disabled]=\"disabled\" \r\n [type]=\"type\" \r\n [id]=\"id\" \r\n [name]=\"name\" \r\n autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\"\r\n [(ngModel)]=\"inputText\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [step]=\"step\"\r\n (mousemove)=\"changeRange(rangeField.value)\"\r\n (ngModelChange)=\"onTextChange()\"\r\n (input)=\"updateTooltip(rangeField.value)\"\r\n >\r\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case default -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : 'generic'\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</ng-container>", styles: [".content-input-main-626:has(input:focus){border:1px solid var(--primary-600);box-shadow:0 0 0 4px #0091fe26,0 1px 2px #1018280d}.content-input-main-626.theme-green:has(input:focus){border:1px solid var(--green-500);box-shadow:0 0 0 4px #36b37e26,0 1px 2px #1018280d}.content-input-main-626.theme-yellow:has(input:focus){border:1px solid var(--yellow-500);box-shadow:0 0 0 4px #ffab0026,0 1px 2px #1018280d}.content-input-main-626.theme-red:has(input:focus){border:1px solid var(--red-500);box-shadow:0 0 0 4px #ff563026,0 1px 2px #1018280d}.content-input-main-626.sm input{height:22px;font-size:.75rem}.content-input-main-626.sm .icon{width:20px;cursor:default}.content-input-main-626.sm .icon span{font-size:1.2em;display:flex}.content-input-main-626{display:flex;border:1px solid var(--primary-500);border-radius:4px;padding:0 8px;margin:3px 0;background-color:var(--neutrals-1200)}.content-input-main-626 input{width:100%;border:0px;color:var(--secondary-600);writing-mode:unset;height:36px;font-size:inherit;background-color:var(--neutrals-1200)}.content-input-main-626 input:focus,.content-input-main-626 input:focus-visible{outline:none}.content-input-main-626 .icon{width:20px;cursor:default}.content-input-main-626 .icon span{display:flex}.content-input-main-626 .content-center{width:100%;background-color:var(--neutrals-1200)}.content-input-main-626 .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:8px;color:var(--primary-600)}.content-input-main-626 .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:8px;color:var(--secondary-600)}.content-input-main-626.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.content-input-main-626.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.content-input-main-626.disabled-active .content-left{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active.content-input-main-url .content-left,.content-input-main-626.disabled-active.content-input-main-color .content-left{color:var(--neutrals-800)!important;border-right:1px solid var(--neutrals-900)}.content-input-main-626.theme-red{border:1px solid var(--red-500)}.content-input-main-626.theme-red .icon.report span{color:var(--red-600)}.content-input-main-626.theme-green{border:1px solid var(--green-500)}.content-input-main-626.theme-green .icon.report span{color:var(--green-600)}.content-input-main-626.theme-yellow{border:1px solid var(--yellow-500)}.content-input-main-626.theme-yellow .icon.report span{color:var(--yellow-600)}.content-input-main-626.content-input-main-password .content-right .icon span{color:var(--secondary-500)}.content-input-main-url .content-left,.content-input-main-color .content-left{border-right:1px solid var(--secondary-500);padding-right:8px;color:var(--secondary-500);font-size:.9rem;padding-left:8px}.content-input-main-url,.content-input-main-color{padding-left:0}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px var(--neutrals-1200) inset!important}.content-input-main-626.content-input-main-number input::-webkit-outer-spin-button,.content-input-main-626.content-input-main-number input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.content-input-main-626.content-input-main-number input[type=number]{-moz-appearance:textfield}.button-input-626{font-size:15px;font-weight:700}.content-input-main-range input{width:100%;height:36px;margin:0;-webkit-appearance:none}.content-input-main-range input[type=range]::-webkit-slider-runnable-track{border-radius:4px;height:8px}.content-input-main-range input[type=range]::-moz-range-track{appearance:none;background-color:var(--neutrals-1000)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-ms-track{appearance:none;background-color:var(--neutrals-1000)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-moz-range-progress{appearance:none;background-color:var(--primary-600)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-ms-fill-upper{appearance:none;background-color:var(--primary-600)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-webkit-slider-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200);margin-top:-8px}.content-input-main-range input[type=range]::-moz-range-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200)}.content-input-main-range input[type=range]::-ms-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200)}.content-input-main-range input[type=range]::-webkit-slider-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-moz-range-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-ms-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-webkit-slider-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]::-moz-range-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]::-ms-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]:disabled{filter:grayscale(1);opacity:.3;cursor:not-allowed}.tooltip{position:relative;display:inline-block;cursor:pointer;width:100%}.tooltip .tooltiptext{visibility:hidden;width:40px;background-color:var(--neutrals-1200);color:var(--secondary-600);font-weight:700;font-size:12px;text-align:center;border-radius:4px;padding:5px;position:absolute;z-index:1;bottom:100%;left:550%;transform:translate(-50%);box-shadow:0 0 16px #17386129}.tooltip-false:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext:before{content:\"\";position:absolute!important;transform:rotate(45deg);height:10px;width:10px;bottom:-5px;background-color:var(--neutrals-1200);box-shadow:0 0 16px #17386129;left:40%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { 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: "component", type: i3.SIconMaterialComponent, selector: "s-icon-mat", inputs: ["size", "color", "fill", "weight", "grade", "opticalSize", "style", "type"] }, { kind: "component", type: i4.SButtonComponent, selector: "s-button", inputs: ["disabled", "class", "rounded", "pill", "size", "invert", "selected", "type", "border", "loading", "position", "theme"] }], encapsulation: i0.ViewEncapsulation.None });
264
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: SInputTextComponent, decorators: [{
265
- type: Component,
266
- args: [{ selector: 's-input-text', encapsulation: ViewEncapsulation.None, providers: [
267
- {
268
- provide: NG_VALUE_ACCESSOR,
269
- useExisting: forwardRef(() => SInputTextComponent),
270
- multi: true
271
- }
272
- ], template: "<ng-container [ngSwitch]=\"type\">\r\n <!-- El switch case con cada caso por input ['text', 'password', 'email' , 'phone' , 'url' , 'search']-->\r\n\r\n <!-- case text -->\r\n <ng-container *ngSwitchCase=\"'text'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input \r\n [readOnly]=\"readOnly\" \r\n [disabled]=\"disabled\" \r\n [type]=\"type\" \r\n [id]=\"id\" \r\n [name]=\"name\" \r\n autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\"\r\n [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\"\r\n >\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case password -->\r\n <ng-container *ngSwitchCase=\"'password'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-password {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">vpn_key</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" type=\"{{visibility ? 'text' : 'password'}}\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon cursor\"\r\n (click)=\"visibility = !visibility\">{{visibility ? 'visibility' :\r\n 'visibility_off'}}</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case email -->\r\n <ng-container *ngSwitchCase=\"'email'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-email {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">mail_outline</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case phone -->\r\n <ng-container *ngSwitchCase=\"'phone'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-phone {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">phone</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case url -->\r\n <ng-container *ngSwitchCase=\"'url'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-url {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n http://\r\n </div>\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n <!-- case search -->\r\n <ng-container *ngSwitchCase=\"'search'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-search {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">search</s-icon-mat>\r\n </div>\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <!-- <div class=\"content-right\">\r\n <s-icon-mat class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div> -->\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case color -->\r\n <ng-container *ngSwitchCase=\"'color'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-color {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-left\">\r\n <input [readOnly]=\"readOnly\" #color [id]=\"name\" [name]=\"name\" type=\"color\" [disabled]=\"disabled\" [(ngModel)]=\"inputText\"\r\n (ngModelChange)=\"onTextChange()\" style=\"width: 40px; padding: 0;\">\r\n </div>\r\n <div class=\"content-center\" (click)=\"!this.readOnly ? this.color.click() : null\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [type]=\"text\" autocomplete=\"off\" [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" [disabled]=\"disabled\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case date -->\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" (ngModelChange)=\"onTextChangeVal($event)\"\r\n [ngModel]=\"inputText\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case time -->\r\n <ng-container *ngSwitchCase=\"'time'\">\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"content-center\">\r\n <input [id]=\"id ? id : ''\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" (ngModelChange)=\"onTextChangeVal($event)\"\r\n [ngModel]=\"inputText\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case number -->\r\n <ng-container *ngSwitchCase=\"'number'\">\r\n <div class=\"d-flex align-center\">\r\n <div class=\"content-left mr-1\">\r\n <s-button [disabled]=\"disabled\" (click)=\"numberDecrease()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>remove</s-icon-mat></s-button>\r\n </div>\r\n <div class=\"content-input-main-626 content-input-main-text content-input-main-number {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}} w-100\">\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : ''\" #typeNumber [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\"\r\n [max]=\"max\"\r\n [min]=\"min\"\r\n [step]=\"step\"\r\n >\r\n </div>\r\n\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n <div class=\"content-left ml-1\">\r\n <s-button [disabled]=\"disabled\" (click)=\"numberIncrement()\" [size]=\"size\" [pill]=\"true\" [invert]=\"true\" class=\"button-input-626\"><s-icon-mat>add</s-icon-mat></s-button>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case range -->\r\n <ng-container *ngSwitchCase=\"'range'\">\r\n <div class=\"content-input-main-range {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <div class=\"tooltip tooltip-{{disabled}}\" #tooltipContainer>\r\n <input\r\n #rangeField\r\n [readOnly]=\"readOnly\" \r\n [disabled]=\"disabled\" \r\n [type]=\"type\" \r\n [id]=\"id\" \r\n [name]=\"name\" \r\n autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\"\r\n [(ngModel)]=\"inputText\"\r\n [min]=\"min\"\r\n [max]=\"max\"\r\n [step]=\"step\"\r\n (mousemove)=\"changeRange(rangeField.value)\"\r\n (ngModelChange)=\"onTextChange()\"\r\n (input)=\"updateTooltip(rangeField.value)\"\r\n >\r\n <span class=\"tooltiptext\" #tooltip>{{ tooltipValue }}</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- case default -->\r\n <ng-container *ngSwitchDefault>\r\n <div\r\n class=\"content-input-main-626 content-input-main-text {{size}} theme-{{theme}} {{classAdd}} {{disabledstyle}}\">\r\n <!-- <div class=\"content-left\">\r\n <s-icon-mat class=\"icon\">email</s-icon-mat>\r\n </div> -->\r\n <div class=\"content-center\">\r\n <input [readOnly]=\"readOnly\" [id]=\"id ? id : 'generic'\" [disabled]=\"disabled\" [type]=\"type\" [name]=\"name\" autocomplete=\"off\"\r\n [placeholder]=\"placeHolder\" [(ngModel)]=\"inputText\" (ngModelChange)=\"onTextChange()\">\r\n </div>\r\n <div *ngIf=\"theme != 'default'\" class=\"content-right\">\r\n <s-icon-mat [type]=\"inconSymbol?'symbol':'icon'\" class=\"icon report\">{{iconName}}</s-icon-mat>\r\n </div>\r\n\r\n <div *ngIf=\"theme == 'default' && help\" class=\"content-right\">\r\n <s-icon-mat (click)=\"clickIcon()\" class=\"icon cursor\">help_outline</s-icon-mat>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n</ng-container>", styles: [".content-input-main-626:has(input:focus){border:1px solid var(--primary-600);box-shadow:0 0 0 4px #0091fe26,0 1px 2px #1018280d}.content-input-main-626.theme-green:has(input:focus){border:1px solid var(--green-500);box-shadow:0 0 0 4px #36b37e26,0 1px 2px #1018280d}.content-input-main-626.theme-yellow:has(input:focus){border:1px solid var(--yellow-500);box-shadow:0 0 0 4px #ffab0026,0 1px 2px #1018280d}.content-input-main-626.theme-red:has(input:focus){border:1px solid var(--red-500);box-shadow:0 0 0 4px #ff563026,0 1px 2px #1018280d}.content-input-main-626.sm input{height:22px;font-size:.75rem}.content-input-main-626.sm .icon{width:20px;cursor:default}.content-input-main-626.sm .icon span{font-size:1.2em;display:flex}.content-input-main-626{display:flex;border:1px solid var(--primary-500);border-radius:4px;padding:0 8px;margin:3px 0;background-color:var(--neutrals-1200)}.content-input-main-626 input{width:100%;border:0px;color:var(--secondary-600);writing-mode:unset;height:36px;font-size:inherit;background-color:var(--neutrals-1200)}.content-input-main-626 input:focus,.content-input-main-626 input:focus-visible{outline:none}.content-input-main-626 .icon{width:20px;cursor:default}.content-input-main-626 .icon span{display:flex}.content-input-main-626 .content-center{width:100%;background-color:var(--neutrals-1200)}.content-input-main-626 .content-left{display:flex;align-items:center;justify-content:space-evenly;margin-right:8px;color:var(--primary-600)}.content-input-main-626 .content-right{display:flex;align-items:center;justify-content:space-evenly;margin-left:8px;color:var(--secondary-600)}.content-input-main-626.disabled-active{background-color:var(--neutrals-1100);border-color:var(--neutrals-900);color:var(--neutrals-800)}.content-input-main-626.disabled-active input{background-color:var(--neutrals-1100);color:var(--neutrals-800)}.content-input-main-626.disabled-active .content-left{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active .content-right s-icon-mat span{color:var(--neutrals-800)!important}.content-input-main-626.disabled-active.content-input-main-url .content-left,.content-input-main-626.disabled-active.content-input-main-color .content-left{color:var(--neutrals-800)!important;border-right:1px solid var(--neutrals-900)}.content-input-main-626.theme-red{border:1px solid var(--red-500)}.content-input-main-626.theme-red .icon.report span{color:var(--red-600)}.content-input-main-626.theme-green{border:1px solid var(--green-500)}.content-input-main-626.theme-green .icon.report span{color:var(--green-600)}.content-input-main-626.theme-yellow{border:1px solid var(--yellow-500)}.content-input-main-626.theme-yellow .icon.report span{color:var(--yellow-600)}.content-input-main-626.content-input-main-password .content-right .icon span{color:var(--secondary-500)}.content-input-main-url .content-left,.content-input-main-color .content-left{border-right:1px solid var(--secondary-500);padding-right:8px;color:var(--secondary-500);font-size:.9rem;padding-left:8px}.content-input-main-url,.content-input-main-color{padding-left:0}input:-webkit-autofill,input:-webkit-autofill:hover,input:-webkit-autofill:focus,input:-webkit-autofill:active{-webkit-box-shadow:0 0 0 30px var(--neutrals-1200) inset!important}.content-input-main-626.content-input-main-number input::-webkit-outer-spin-button,.content-input-main-626.content-input-main-number input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.content-input-main-626.content-input-main-number input[type=number]{-moz-appearance:textfield}.button-input-626{font-size:15px;font-weight:700}.content-input-main-range input{width:100%;height:36px;margin:0;-webkit-appearance:none}.content-input-main-range input[type=range]::-webkit-slider-runnable-track{border-radius:4px;height:8px}.content-input-main-range input[type=range]::-moz-range-track{appearance:none;background-color:var(--neutrals-1000)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-ms-track{appearance:none;background-color:var(--neutrals-1000)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-moz-range-progress{appearance:none;background-color:var(--primary-600)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-ms-fill-upper{appearance:none;background-color:var(--primary-600)!important;height:8px;border-radius:4px}.content-input-main-range input[type=range]::-webkit-slider-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200);margin-top:-8px}.content-input-main-range input[type=range]::-moz-range-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200)}.content-input-main-range input[type=range]::-ms-thumb{box-sizing:border-box;-webkit-appearance:none;border:unset;outline:unset;box-shadow:unset;width:24px;height:24px;border-radius:50%;border:3px solid var(--primary-600);background:var(--neutrals-1200)}.content-input-main-range input[type=range]::-webkit-slider-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-moz-range-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-ms-thumb:hover{border:3px solid var(--primary-600);background:var(--primary-200)}.content-input-main-range input[type=range]::-webkit-slider-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]::-moz-range-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]::-ms-thumb:active{border:3px solid var(--primary-600);background:var(--primary-600);box-shadow:0 1px 2px #1018280d,0 0 0 4px #0091fe26}.content-input-main-range input[type=range]:disabled{filter:grayscale(1);opacity:.3;cursor:not-allowed}.tooltip{position:relative;display:inline-block;cursor:pointer;width:100%}.tooltip .tooltiptext{visibility:hidden;width:40px;background-color:var(--neutrals-1200);color:var(--secondary-600);font-weight:700;font-size:12px;text-align:center;border-radius:4px;padding:5px;position:absolute;z-index:1;bottom:100%;left:550%;transform:translate(-50%);box-shadow:0 0 16px #17386129}.tooltip-false:hover .tooltiptext{visibility:visible}.tooltip .tooltiptext:before{content:\"\";position:absolute!important;transform:rotate(45deg);height:10px;width:10px;bottom:-5px;background-color:var(--neutrals-1200);box-shadow:0 0 16px #17386129;left:40%}\n"] }]
273
- }], ctorParameters: function () { return []; }, propDecorators: { typeNumber: [{
274
- type: ViewChild,
275
- args: ['typeNumber']
276
- }], tooltipContainer: [{
277
- type: ViewChild,
278
- args: ['tooltipContainer', { static: false }]
279
- }], tooltip: [{
280
- type: ViewChild,
281
- args: ['tooltip', { static: false }]
282
- }], text: [{
283
- type: Input
284
- }], id: [{
285
- type: Input
286
- }], name: [{
287
- type: Input
288
- }], placeHolder: [{
289
- type: Input
290
- }], disabled: [{
291
- type: Input
292
- }], max: [{
293
- type: Input
294
- }], min: [{
295
- type: Input
296
- }], step: [{
297
- type: Input
298
- }], readOnly: [{
299
- type: Input
300
- }], theme: [{
301
- type: Input
302
- }], type: [{
303
- type: Input
304
- }], classAdd: [{
305
- type: Input
306
- }], help: [{
307
- type: Input
308
- }], size: [{
309
- type: Input
310
- }], rangeUnity: [{
311
- type: Input
312
- }], textChangeEvent: [{
313
- type: Output
314
- }], clickHelpIconEvent: [{
315
- type: Output
316
- }] } });
317
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicy1pbnB1dC10ZXh0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NpZGVzeXMtZ2VuZXJpYy11aS9zcmMvbGliL2lucHV0L2NvbXBvbmVudHMvaW5wdXQtdGV4dC9zLWlucHV0LXRleHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2lkZXN5cy1nZW5lcmljLXVpL3NyYy9saWIvaW5wdXQvY29tcG9uZW50cy9pbnB1dC10ZXh0L3MtaW5wdXQtdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQWlCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUssT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7QUFlekUsTUFBTSxPQUFPLG1CQUFtQjtJQWtEOUI7UUFoREEsYUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDM0IsWUFBTyxHQUFHLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQVNYLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsT0FBRSxHQUFTLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzVDLFNBQUksR0FBVyxFQUFFLENBQUM7UUFDbEIsZ0JBQVcsR0FBWSxFQUFFLENBQUM7UUFDMUIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQUUxQixRQUFHLEdBQVcsQ0FBQyxDQUFDO1FBQ2hCLFNBQUksR0FBVyxDQUFDLENBQUM7UUFDakIsYUFBUSxHQUFZLEtBQUssQ0FBQztRQVcxQixhQUFRLEdBQVcsRUFBRSxDQUFDO1FBQ3RCLFNBQUks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dCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMsIFZpZXdDaGlsZCwgVmlld0VuY2Fwc3VsYXRpb24sIGZvcndhcmRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdzLWlucHV0LXRleHQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zLWlucHV0LXRleHQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3MtaW5wdXQtdGV4dC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBTSW5wdXRUZXh0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTSW5wdXRUZXh0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yICwgQWZ0ZXJWaWV3SW5pdCAge1xyXG4gIFxyXG4gIG9uQ2hhbmdlID0gKF86IGFueSkgPT4geyB9O1xyXG4gIG9uVG91Y2ggPSAoKSA9PiB7IH07XHJcblxyXG4gIC8vUkVGIFBBUkEgVFlQRSBOVU1CRVJcclxuICBAVmlld0NoaWxkKCd0eXBlTnVtYmVyJykgdHlwZU51bWJlcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZCA7XHJcbiAgLy9SRUYgUEFSQSBUWVBFIFJBTkdFXHJcbiAgQFZpZXdDaGlsZCgndG9vbHRpcENvbnRhaW5lcicsIHsgc3RhdGljOiBmYWxzZSB9KSB0b29sdGlwQ29udGFpbmVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG4gIEBWaWV3Q2hpbGQoJ3Rvb2x0aXAnLCB7IHN0YXRpYzogZmFsc2UgfSkgdG9vbHRpcDogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcclxuXHJcblxyXG4gIEBJbnB1dCgpIHRleHQ6IHN0cmluZyA9ICcnO1xyXG4gIEBJbnB1dCgpIGlkOiBhbnkgPSAgTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogMTAwMCk7XHJcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgcGxhY2VIb2xkZXI/OiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1heD86IG51bWJlciA7XHJcbiAgQElucHV0KCkgbWluOiBudW1iZXIgPSAwO1xyXG4gIEBJbnB1dCgpIHN0ZXA6IG51bWJlciA9IDE7XHJcbiAgQElucHV0KCkgcmVhZE9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKVxyXG4gIGdldCB0aGVtZSgpOiBzdHJpbmcgeyByZXR1cm4gdGhpcy5fdGhlbWU7IH1cclxuICBzZXQgdGhlbWUodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3RoZW1lID0gWydkZWZhdWx0JywgJ2dyZWVuJywgJ3llbGxvdycsICdyZWQnXS5pbmRleE9mKHZhbCkgIT0gLTEgPyB2YWwgOiAnZGVmYXVsdCc7XHJcbiAgfTtcclxuICBASW5wdXQoKVxyXG4gIGdldCB0eXBlKCk6IHN0cmluZyB7IHJldHVybiB0aGlzLl90eXBlOyB9XHJcbiAgc2V0IHR5cGUodmFsOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX3R5cGUgPSBbJ3RleHQnLCAncGFzc3dvcmQnLCAnZW1haWwnLCAncGhvbmUnLCAndXJsJywgJ3NlYXJjaCcsICdudW1iZXInLCAnY29sb3InLCAnZGF0ZScsICd0aW1lJyAsICdyYW5nZSddLmluZGV4T2YodmFsKSAhPSAtMSA/IHZhbCA6ICd0ZXh0JztcclxuICB9O1xyXG4gIEBJbnB1dCgpIGNsYXNzQWRkOiBzdHJpbmcgPSAnJztcclxuICBASW5wdXQoKSBoZWxwOiBib29sZWFuID0gZmFsc2U7XHJcbiAgQElucHV0KCkgc2l6ZTogJ3NtJyB8ICdtZCcgPSAnbWQnO1xyXG4gIEBJbnB1dCgpIHJhbmdlVW5pdHk6IHN0cmluZyA9ICcnO1xyXG5cclxuICBpbnB1dFRpbWVvdXQ/OiBhbnk7XHJcbiAgaW5wdXRUZXh0OiBzdHJpbmcgPSAnJztcclxuICBpbnB1dE51bWJlcjogbnVtYmVyID0gMDtcclxuICBfdHlwZTogc3RyaW5nID0gJ3RleHQnO1xyXG4gIF90aGVtZTogc3RyaW5nID0gJ2RlZmF1bHQnO1xyXG4gIGRpc2FibGVkc3R5bGU6IHN0cmluZyA9ICcnO1xyXG4gIHZpc2liaWxpdHkgPSBmYWxzZTtcclxuICBpY29uTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gIGluY29uU3ltYm9sOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdG9vbHRpcFZhbHVlOiBzdHJpbmcgPSAnJztcclxuXHJcbiAgQE91dHB1dCgpIHRleHRDaGFuZ2VFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIEBPdXRwdXQoKSBjbGlja0hlbHBJY29uRXZlbnQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyBcclxuICAgIFxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcblxyXG4gICAgLy9BanVzdGUgY3VhbmRvIHR5cGUgbnVtYmVyIHZpZW5lIGNvbiB0ZXh0IHkgbG8gY29udmllcnRlIGEgbnVtZXJvXHJcbiAgICBpZih0aGlzLnRleHQgJiYgdGhpcy50eXBlID09ICdudW1iZXInKXtcclxuICAgICAgICB0aGlzLmlucHV0TnVtYmVyID0gTnVtYmVyKHRoaXMudGV4dClcclxuICAgIH1cclxuXHJcbiAgICAvL0FqdXN0ZSBjdWFuZG8gdHlwZSBjb2xvciB2aWVuZSBjb24gdGV4dCB2YWNpb1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT0gJ2NvbG9yJyAmJiB0aGlzLnRleHQgPT0gJycpIHtcclxuICAgICAgdGhpcy50ZXh0ID0gJyMwMDAwMDAnXHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLnRleHQ7XHJcbiAgICBcclxuICAgIC8vQWN0aXZhIGVsIGVzdGlsbyBkZSBkaXNhYmxlZCBcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWRzdHlsZSA9IFwiZGlzYWJsZWQtYWN0aXZlXCJcclxuICAgIH1cclxuXHJcbiAgICAvL0FqdXN0ZSB0eXBlIGNvbG9yIHNvbG8gc2UgZGVzaGFiaWxpdGEgY29uIGRpc2FibGVkLlxyXG4gICAgaWYodGhpcy50eXBlID09ICdjb2xvcicgJiYgdGhpcy5yZWFkT25seSA9PSB0cnVlKXtcclxuICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWVcclxuICAgIH1cclxuXHJcblxyXG4gICAgdGhpcy5sb2FkVGhlbWUoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgIC8vQWp1c3RlcyBUeXBlIFJhbmdlXHJcbiAgICBpZih0aGlzLnR5cGUgPT0gJ3JhbmdlJyl7XHJcbiAgICAgIHRoaXMucmFuZ2VPbkxvYWQoKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgaWYgKGNoYW5nZXNbJ3RoZW1lJ10pIHtcclxuICAgICAgdGhpcy5sb2FkVGhlbWUoKTtcclxuICAgIH1cclxuXHJcbiAgICBpZihjaGFuZ2VzWyd0ZXh0J10pe1xyXG4gICAgICBpZih0aGlzLnRleHQgJiYgdGhpcy50eXBlID09ICdudW1iZXInKXtcclxuICAgICAgICAgIHRoaXMuaW5wdXROdW1iZXIgPSBOdW1iZXIodGhpcy50ZXh0KVxyXG4gICAgICB9XHJcbiAgXHJcbiAgICAgIGlmICh0aGlzLl90eXBlID09ICdjb2xvcicgJiYgdGhpcy50ZXh0ID09ICcnKSB7XHJcbiAgICAgICAgdGhpcy50ZXh0ID0gJyMwMDAwMDAnXHJcbiAgICAgIH1cclxuICBcclxuICAgICAgdGhpcy5pbnB1dFRleHQgPSB0aGlzLnRleHQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRUaGVtZSgpIHtcclxuICAgIHN3aXRjaCAodGhpcy50aGVtZSkge1xyXG4gICAgICBjYXNlIFwiZGVmYXVsdFwiOlxyXG4gICAgICAgIHRoaXMuaWNvbk5hbWUgPSBcIlwiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgXCJyZWRcIjpcclxuICAgICAgICB0aGlzLmljb25OYW1lID0gXCJlcnJvcl9vdXRsaW5lXCJcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBcImdyZWVuXCI6XHJcbiAgICAgICAgdGhpcy5pY29uTmFtZSA9IFwiY2hlY2tfY2lyY2xlX291dGxpbmVcIlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFwieWVsbG93XCI6XHJcbiAgICAgICAgdGhpcy5pbmNvblN5bWJvbCA9IHRydWVcclxuICAgICAgICB0aGlzLmljb25OYW1lID0gXCJ3YXJuaW5nXCJcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgdGhpcy5pY29uTmFtZSA9IFwiXCJcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVGV4dENoYW5nZSgpIHtcclxuICAgIGlmKHRoaXMudHlwZSA9PSAnbnVtYmVyJyl7XHJcbiAgICAgIHRoaXMudXBkYXRlTnVtYmVyKHRoaXMuaW5wdXRUZXh0KVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlucHV0VGV4dCk7XHJcblxyXG4gICAgaWYgKHRoaXMuaW5wdXRUaW1lb3V0KSB7XHJcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLmlucHV0VGltZW91dCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5pbnB1dFRpbWVvdXQgPSBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy50ZXh0Q2hhbmdlRXZlbnQubmV4dCh0aGlzLmlucHV0VGV4dCk7XHJcbiAgICB9LCA1MDAsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgb25UZXh0Q2hhbmdlVmFsKHZhbDogc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5pbnB1dFRpbWVvdXQpIHtcclxuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMuaW5wdXRUaW1lb3V0KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlucHV0VGltZW91dCA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgdGhpcy5vblRvdWNoKCk7XHJcbiAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWwpO1xyXG4gICAgICAgIHRoaXMudGV4dENoYW5nZUV2ZW50Lm5leHQodmFsKTtcclxuICAgICAgICB0aGlzLmlucHV0VGV4dCA9IHZhbDtcclxuICAgICAgfVxyXG4gICAgICBlbHNlIHtcclxuICAgICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbCk7XHJcbiAgICAgICAgdGhpcy50ZXh0Q2hhbmdlRXZlbnQubmV4dCh0aGlzLmlucHV0VGV4dCk7XHJcbiAgICAgIH1cclxuICAgIH0sIDUwMCwgbnVsbCk7XHJcbiAgfVxyXG5cclxuICBjbGlja0ljb24oKSB7XHJcbiAgICB0aGlzLmNsaWNrSGVscEljb25FdmVudC5uZXh0KCk7XHJcbiAgfVxyXG5cclxuICBjb2xvckNsaWNrKCkge1xyXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5uYW1lKT8uY2xpY2soKTtcclxuICB9XHJcblxyXG4gIC8vRlVOQ0lPTkVTIFBBUkEgVFlQRSBOVU1CRVIgXHJcbiAgbnVtYmVyRGVjcmVhc2UoKXtcclxuICAgIGlmKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLnJlYWRPbmx5KXtcclxuICAgICAgaWYodGhpcy5taW4gPCB0aGlzLmlucHV0TnVtYmVyKXtcclxuICAgICAgICB0aGlzLmlucHV0TnVtYmVyLT10aGlzLnN0ZXBcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucHV0VGV4dCA9IHRoaXMuaW5wdXROdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlucHV0VGV4dCk7XHJcbiAgICAgIHRoaXMudGV4dENoYW5nZUV2ZW50Lm5leHQodGhpcy5pbnB1dFRleHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbnVtYmVySW5jcmVtZW50KCl7XHJcbiAgICBpZighdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5yZWFkT25seSl7XHJcbiAgICAgIGlmKHRoaXMubWF4KXtcclxuICAgICAgICBpZih0aGlzLm1heCA+IHRoaXMuaW5wdXROdW1iZXIpe1xyXG4gICAgICAgICAgdGhpcy5pbnB1dE51bWJlcis9dGhpcy5zdGVwXHJcbiAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICB0aGlzLmlucHV0TnVtYmVyID0gdGhpcy5tYXhcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYoIXRoaXMubWF4KXtcclxuICAgICAgICB0aGlzLmlucHV0TnVtYmVyKz10aGlzLnN0ZXBcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmlucHV0VGV4dCA9IHRoaXMuaW5wdXROdW1iZXIudG9TdHJpbmcoKVxyXG4gICAgICB0aGlzLm9uVG91Y2goKTtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlucHV0VGV4dCk7XHJcbiAgICAgIHRoaXMudGV4dENoYW5nZUV2ZW50Lm5leHQodGhpcy5pbnB1dFRleHQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlTnVtYmVyKHZhbHVlOmFueSl7XHJcbiAgICBsZXQgdmFsdWUyID0gdmFsdWVcclxuICAgIGlmKHRoaXMubWF4KVxyXG4gICAgaWYodmFsdWUgPiB0aGlzLm1heCl7XHJcbiAgICAgIHZhbHVlMiA9IHRoaXMubWF4XHJcbiAgICB9XHJcbiAgICBpZih2YWx1ZSA8IHRoaXMubWluKXtcclxuICAgICAgdmFsdWUyID0gdGhpcy5taW5cclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmlucHV0VGV4dCA9IHZhbHVlMi50b1N0cmluZygpXHJcbiAgICB0aGlzLmlucHV0TnVtYmVyID0gTnVtYmVyKHZhbHVlMik7XHJcbiAgICBpZih0aGlzLnR5cGVOdW1iZXIpXHJcbiAgICB0aGlzLnR5cGVOdW1iZXIubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuaW5wdXROdW1iZXJcclxuICAgIHRoaXMub25Ub3VjaCgpO1xyXG4gICAgdGhpcy5vbkNoYW5nZSh0aGlzLmlucHV0TnVtYmVyKTtcclxuICAgIHRoaXMudGV4dENoYW5nZUV2ZW50Lm5leHQodGhpcy5pbnB1dFRleHQpO1xyXG4gICAgXHJcbiAgfSBcclxuICAvL0ZJTiBGVU5DSU9ORVMgUEFSQSBUWVBFIE5VTUJFUiBcclxuICBcclxuICAvL0ZVTkNJT05FUyBQQVJBIFRZUEUgUkFOR0UgXHJcbiAgcmFuZ2VPbkxvYWQoKXtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAvL1JBTkdPIFRPVEFMXHJcbiAgICAgIGNvbnN0IHJhbmdlTWF4ID0gdGhpcy5tYXggPyB0aGlzLm1heCA6IDEwMDtcclxuICAgICAgLy9DQUxDVUxPIExBIEFNUExJVFVEIFBBUkEgUE9ERVIgUE9TSUNJT05BUiBBTCA1MCUgUE9SIERFRkVDVE9cclxuICAgICAgbGV0IGFtcGxpdHVkVG90YWwgPSByYW5nZU1heCAtIHRoaXMubWluXHJcbiAgICAgIGxldCBwb3JjaW9uID0gKGFtcGxpdHVkVG90YWwgKiA1MCkgLyAxMDAgXHJcbiAgICAgIC8vIElOSUNJQUxJWkEgQUwgNTAlIENVQU5ETyBOTyBIQVkgVkFMT1IgUFJFREVGSU5JRE9cclxuICAgICAgbGV0IHZhbHVlID0gdGhpcy50ZXh0ID09ICcnID8gdGhpcy5taW4gKyBwb3JjaW9uIDogdGhpcy50ZXh0XHJcbiAgICAgIHZhbHVlID0gdGhpcy5pbnB1dFRleHQgPT0gJycgPyB0aGlzLm1pbiArIHBvcmNpb24gOiB0aGlzLmlucHV0VGV4dFxyXG4gICAgICAvL0RFRklOTyBFTCBUT09UTFRJUFxyXG4gICAgICB0aGlzLnRvb2x0aXBWYWx1ZSA9IHRoaXMudGV4dCArIHRoaXMucmFuZ2VVbml0eTtcclxuICAgICAgLy9TSSBFUyBDSFJPTUUgQVBMSUNPIEVMIEZJWFxyXG4gICAgICBjb25zdCBpc0Nocm9tZSA9IC9DaHJvbWUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgL0dvb2dsZSBJbmMvLnRlc3QobmF2aWdhdG9yLnZlbmRvcik7XHJcbiAgICAgIGlmKGlzQ2hyb21lKSB7XHJcbiAgICAgICAgLy9DQUxDQ1VMTyBFTCAlIEEgQVNJR05BUlxyXG4gICAgICAgIGxldCBwb3JjZW50YWplID0gKChOdW1iZXIodmFsdWUpIC0gdGhpcy5taW4pIC8gKHJhbmdlTWF4IC0gdGhpcy5taW4pKSAqIDEwMFxyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpPy5zdHlsZS5zZXRQcm9wZXJ0eSgnbWFyZ2luLXRvcCcgLCAnMTRweCcpO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpPy5zdHlsZS5zZXRQcm9wZXJ0eSgnbWFyZ2luLWJvdHRvbScgLCAnMTRweCcpO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpPy5zdHlsZS5zZXRQcm9wZXJ0eSgnYm9yZGVyLXJhZGl1cycgLCAnNHB4Jyk7XHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCk/LnN0eWxlLnNldFByb3BlcnR5KCdoZWlnaHQnICwgJzhweCcpO1xyXG4gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHRoaXMuaWQpPy5zdHlsZS5zZXRQcm9wZXJ0eSgnYmFja2dyb3VuZCcgLCAnbGluZWFyLWdyYWRpZW50KHRvIHJpZ2h0LCB2YXIoLS1wcmltYXJ5LTYwMCkgMCUsIHZhcigtLXByaW1hcnktNjAwKSAnK3BvcmNlbnRhamUrJyUsIHZhcigtLW5ldXRyYWxzLTEwMDApICcrcG9yY2VudGFqZSsnJSwgdmFyKC0tbmV1dHJhbHMtMTAwMCkgMTAwJSknKTtcclxuICAgICAgfTtcclxuICAgIH0sIDApO1xyXG4gIH1cclxuXHJcbiAgLy9GVU5DSU9OIFBBUkEgQ0hST01FIENVQU5ETyBTRSBERVNMSVpBIEVMIFNMSURFIEZVTkNJT05FIENPUlJFQ1RBTUVOVEVcclxuICBjaGFuZ2VSYW5nZSh2YWx1ZTphbnkpe1xyXG4gICAgaWYodGhpcy50eXBlID09ICdyYW5nZScpe1xyXG4gICAgICBjb25zdCBpc0Nocm9tZSA9IC9DaHJvbWUvLnRlc3QobmF2aWdhdG9yLnVzZXJBZ2VudCkgJiYgL0dvb2dsZSBJbmMvLnRlc3QobmF2aWdhdG9yLnZlbmRvcik7XHJcbiAgICAgIGNvbnN0IHJhbmdlTWF4ID0gdGhpcy5tYXggPyB0aGlzLm1heCA6IDEwMDtcclxuICAgICAgaWYoaXNDaHJvbWUpIHtcclxuICAgICAgICBsZXQgcG9yY2VudGFqZSA9ICgodmFsdWUgLSB0aGlzLm1pbikgLyAocmFuZ2VNYXggLSB0aGlzLm1pbikpICogMTAwXHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5pZCk/LnN0eWxlLnNldFByb3BlcnR5KCdiYWNrZ3JvdW5kJyAsICdsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLXByaW1hcnktNjAwKSAwJSwgdmFyKC0tcHJpbWFyeS02MDApICcrcG9yY2VudGFqZSsnJSwgdmFyKC0tbmV1dHJhbHMtMTAwMCkgJytwb3JjZW50YWplKyclLCB2YXIoLS1uZXV0cmFscy0xMDAwKSAxMDAlKScpO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy9GVU5DSU9OIFFVRSBBQ1RVQUxJWkEgRUwgVE9PTFRJUCBDVUFORE8gU0UgREVTTElaQSBFTCBTTElERVxyXG4gIHVwZGF0ZVRvb2x0aXAodmFsdWU6IHN0cmluZykge1xyXG4gICAgaWYodGhpcy50b29sdGlwQ29udGFpbmVyICYmIHRoaXMudG9vbHRpcCl7XHJcbiAgICAgIGNvbnN0IHJhbmdlV2lkdGggPSB0aGlzLnRvb2x0aXBDb250YWluZXIubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aDtcclxuICAgICAgY29uc3QgcmFuZ2VNYXggPSB0aGlzLm1heCA/IHRoaXMubWF4IDogMTAwO1xyXG4gICAgICBsZXQgcG9yY2VudGFqZSA9ICgoTnVtYmVyKHZhbHVlKSAtIHRoaXMubWluKSAvIChyYW5nZU1heCAtIHRoaXMubWluKSkgKiAxMDBcclxuICAgICAgbGV0IGFqdXN0ZSA9IHBvcmNlbnRhamUgKiByYW5nZVdpZHRoIC8gMTAwO1xyXG4gICAgICB0aGlzLnRvb2x0aXAubmF0aXZlRWxlbWVudC5zdHlsZS5sZWZ0ID0gYCR7YWp1c3RlfXB4YDtcclxuICAgICAgdGhpcy50b29sdGlwVmFsdWUgPSB2YWx1ZSArIHRoaXMucmFuZ2VVbml0eTtcclxuICAgIH1cclxuICB9XHJcbiAgLy9GSU4gRlVOQ0lPTkVTIFBBUkEgVFlQRSBSQU5HRVxyXG5cclxuICAvL0ZVTkNJT05FUyBQQVJBIFFVRSBGVU5DSU9ORSBGT1JNIEJVSUxERVJcclxuICB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpOiB2b2lkIHtcclxuICAgIGlmICh2YWx1ZSkge1xyXG4gICAgICB0aGlzLmlucHV0VGV4dCA9IHZhbHVlO1xyXG4gICAgICB0aGlzLmlucHV0TnVtYmVyID0gdmFsdWVcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoID0gZm47XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cInR5cGVcIj5cclxuICAgIDwhLS0gRWwgc3dpdGNoIGNhc2UgY29uIGNhZGEgY2FzbyBwb3IgaW5wdXQgIFsndGV4dCcsICdwYXNzd29yZCcsICdlbWFpbCcgLCAncGhvbmUnICwgJ3VybCcgLCAnc2VhcmNoJ10tLT5cclxuXHJcbiAgICA8IS0tIGNhc2UgdGV4dCAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid0ZXh0J1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi10ZXh0IHt7c2l6ZX19IHRoZW1lLXt7dGhlbWV9fSB7e2NsYXNzQWRkfX0ge3tkaXNhYmxlZHN0eWxlfX1cIj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBjbGFzcz1cImljb25cIj5lbWFpbDwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBcclxuICAgICAgICAgICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiIFxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgXHJcbiAgICAgICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCIgXHJcbiAgICAgICAgICAgICAgICBbaWRdPVwiaWRcIiBcclxuICAgICAgICAgICAgICAgIFtuYW1lXT1cIm5hbWVcIiBcclxuICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIlxyXG4gICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIlxyXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lICE9ICdkZWZhdWx0J1wiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiaW5jb25TeW1ib2w/J3N5bWJvbCc6J2ljb24nXCIgY2xhc3M9XCJpY29uIHJlcG9ydFwiPnt7aWNvbk5hbWV9fTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgPT0gJ2RlZmF1bHQnICYmIGhlbHBcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IChjbGljayk9XCJjbGlja0ljb24oKVwiIGNsYXNzPVwiaWNvbiBjdXJzb3JcIj5oZWxwX291dGxpbmU8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBjYXNlIHBhc3N3b3JkIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3Bhc3N3b3JkJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi1wYXNzd29yZCB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19IHt7ZGlzYWJsZWRzdHlsZX19XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWxlZnRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IGNsYXNzPVwiaWNvblwiPnZwbl9rZXk8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbcmVhZE9ubHldPVwicmVhZE9ubHlcIiBbaWRdPVwiaWQgPyBpZCA6ICcnXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgdHlwZT1cInt7dmlzaWJpbGl0eSA/ICd0ZXh0JyA6ICdwYXNzd29yZCd9fVwiIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclwiIFsobmdNb2RlbCldPVwiaW5wdXRUZXh0XCJcclxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IFt0eXBlXT1cImluY29uU3ltYm9sPydzeW1ib2wnOidpY29uJ1wiIGNsYXNzPVwiaWNvbiBjdXJzb3JcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJ2aXNpYmlsaXR5ID0gIXZpc2liaWxpdHlcIj57e3Zpc2liaWxpdHkgPyAndmlzaWJpbGl0eScgOlxyXG4gICAgICAgICAgICAgICAgICAgICd2aXNpYmlsaXR5X29mZid9fTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIGNhc2UgZW1haWwgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZW1haWwnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi02MjYgY29udGVudC1pbnB1dC1tYWluLWVtYWlsIHt7c2l6ZX19IHRoZW1lLXt7dGhlbWV9fSB7e2NsYXNzQWRkfX0ge3tkaXNhYmxlZHN0eWxlfX1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgY2xhc3M9XCJpY29uXCI+bWFpbF9vdXRsaW5lPC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCIgIFtpZF09XCJpZCA/IGlkIDogJydcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdHlwZV09XCJ0eXBlXCIgW25hbWVdPVwibmFtZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCIgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lICE9ICdkZWZhdWx0J1wiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiaW5jb25TeW1ib2w/J3N5bWJvbCc6J2ljb24nXCIgY2xhc3M9XCJpY29uIHJlcG9ydFwiPnt7aWNvbk5hbWV9fTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgPT0gJ2RlZmF1bHQnICYmIGhlbHBcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IChjbGljayk9XCJjbGlja0ljb24oKVwiIGNsYXNzPVwiaWNvbiBjdXJzb3JcIj5oZWxwX291dGxpbmU8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgIDwhLS0gY2FzZSBwaG9uZSAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidwaG9uZSdcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1pbnB1dC1tYWluLTYyNiBjb250ZW50LWlucHV0LW1haW4tcGhvbmUge3tzaXplfX0gdGhlbWUte3t0aGVtZX19IHt7Y2xhc3NBZGR9fSB7e2Rpc2FibGVkc3R5bGV9fVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBjbGFzcz1cImljb25cIj5waG9uZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IFtyZWFkT25seV09XCJyZWFkT25seVwiICBbaWRdPVwiaWQgPyBpZCA6ICcnXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3R5cGVdPVwidHlwZVwiIFtuYW1lXT1cIm5hbWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclwiIFsobmdNb2RlbCldPVwiaW5wdXRUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSAhPSAnZGVmYXVsdCdcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IFt0eXBlXT1cImluY29uU3ltYm9sPydzeW1ib2wnOidpY29uJ1wiIGNsYXNzPVwiaWNvbiByZXBvcnRcIj57e2ljb25OYW1lfX08L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lID09ICdkZWZhdWx0JyAmJiBoZWxwXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCAoY2xpY2spPVwiY2xpY2tJY29uKClcIiBjbGFzcz1cImljb24gY3Vyc29yXCI+aGVscF9vdXRsaW5lPC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuXHJcbiAgICA8IS0tIGNhc2UgdXJsIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3VybCdcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICAgIGNsYXNzPVwiY29udGVudC1pbnB1dC1tYWluLTYyNiBjb250ZW50LWlucHV0LW1haW4tdXJsIHt7c2l6ZX19IHRoZW1lLXt7dGhlbWV9fSB7e2NsYXNzQWRkfX0ge3tkaXNhYmxlZHN0eWxlfX1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgaHR0cDovL1xyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtY2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCIgIFtpZF09XCJpZCA/IGlkIDogJydcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdHlwZV09XCJ0eXBlXCIgW25hbWVdPVwibmFtZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCIgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIiAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2UoKVwiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lICE9ICdkZWZhdWx0J1wiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgW3R5cGVdPVwiaW5jb25TeW1ib2w/J3N5bWJvbCc6J2ljb24nXCIgY2xhc3M9XCJpY29uIHJlcG9ydFwiPnt7aWNvbk5hbWV9fTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgPT0gJ2RlZmF1bHQnICYmIGhlbHBcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IChjbGljayk9XCJjbGlja0ljb24oKVwiIGNsYXNzPVwiaWNvbiBjdXJzb3JcIj5oZWxwX291dGxpbmU8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG5cclxuICAgIDwhLS0gY2FzZSBzZWFyY2ggLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInc2VhcmNoJ1wiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi1zZWFyY2gge3tzaXplfX0gdGhlbWUte3t0aGVtZX19IHt7Y2xhc3NBZGR9fSB7e2Rpc2FibGVkc3R5bGV9fVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBjbGFzcz1cImljb25cIj5zZWFyY2g8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbcmVhZE9ubHldPVwicmVhZE9ubHlcIiAgW2lkXT1cImlkID8gaWQgOiAnJ1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0eXBlXT1cInR5cGVcIiBbbmFtZV09XCJuYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBjbGFzcz1cImljb24gY3Vyc29yXCI+aGVscF9vdXRsaW5lPC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIGNhc2UgY29sb3IgLS0+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY29sb3InXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi02MjYgY29udGVudC1pbnB1dC1tYWluLWNvbG9yIHt7c2l6ZX19IHRoZW1lLXt7dGhlbWV9fSB7e2NsYXNzQWRkfX0ge3tkaXNhYmxlZHN0eWxlfX1cIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IFtyZWFkT25seV09XCJyZWFkT25seVwiICNjb2xvciBbaWRdPVwibmFtZVwiIFtuYW1lXT1cIm5hbWVcIiB0eXBlPVwiY29sb3JcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIiBzdHlsZT1cIndpZHRoOiA0MHB4OyBwYWRkaW5nOiAwO1wiPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtY2VudGVyXCIgKGNsaWNrKT1cIiF0aGlzLnJlYWRPbmx5ID8gdGhpcy5jb2xvci5jbGljaygpIDogbnVsbFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IFtyZWFkT25seV09XCJyZWFkT25seVwiIFtpZF09XCJpZCA/IGlkIDogJydcIiBbdHlwZV09XCJ0ZXh0XCIgYXV0b2NvbXBsZXRlPVwib2ZmXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCIgWyhuZ01vZGVsKV09XCJpbnB1dFRleHRcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSAhPSAnZGVmYXVsdCdcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IFt0eXBlXT1cImluY29uU3ltYm9sPydzeW1ib2wnOidpY29uJ1wiIGNsYXNzPVwiaWNvbiByZXBvcnRcIj57e2ljb25OYW1lfX08L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lID09ICdkZWZhdWx0JyAmJiBoZWxwXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCAoY2xpY2spPVwiY2xpY2tJY29uKClcIiBjbGFzcz1cImljb24gY3Vyc29yXCI+aGVscF9vdXRsaW5lPC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gY2FzZSBkYXRlIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi02MjYgY29udGVudC1pbnB1dC1tYWluLXRleHQge3tzaXplfX0gdGhlbWUte3t0aGVtZX19IHt7Y2xhc3NBZGR9fSB7e2Rpc2FibGVkc3R5bGV9fVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbcmVhZE9ubHldPVwicmVhZE9ubHlcIiAgW2lkXT1cImlkID8gaWQgOiAnJ1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0eXBlXT1cInR5cGVcIiBbbmFtZV09XCJuYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2VWYWwoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxdPVwiaW5wdXRUZXh0XCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgIT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJpbmNvblN5bWJvbD8nc3ltYm9sJzonaWNvbidcIiBjbGFzcz1cImljb24gcmVwb3J0XCI+e3tpY29uTmFtZX19PC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lID09ICdkZWZhdWx0JyAmJiBoZWxwXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCAoY2xpY2spPVwiY2xpY2tJY29uKClcIiBjbGFzcz1cImljb24gY3Vyc29yXCI+aGVscF9vdXRsaW5lPC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gY2FzZSB0aW1lIC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3RpbWUnXCI+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi02MjYgY29udGVudC1pbnB1dC1tYWluLXRleHQge3tzaXplfX0gdGhlbWUte3t0aGVtZX19IHt7Y2xhc3NBZGR9fSB7e2Rpc2FibGVkc3R5bGV9fVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbaWRdPVwiaWQgPyBpZCA6ICcnXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3R5cGVdPVwidHlwZVwiIFtuYW1lXT1cIm5hbWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZVZhbCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJpbnB1dFRleHRcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSAhPSAnZGVmYXVsdCdcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IFt0eXBlXT1cImluY29uU3ltYm9sPydzeW1ib2wnOidpY29uJ1wiIGNsYXNzPVwiaWNvbiByZXBvcnRcIj57e2ljb25OYW1lfX08L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgPT0gJ2RlZmF1bHQnICYmIGhlbHBcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgIDxzLWljb24tbWF0IChjbGljayk9XCJjbGlja0ljb24oKVwiIGNsYXNzPVwiaWNvbiBjdXJzb3JcIj5oZWxwX291dGxpbmU8L3MtaWNvbi1tYXQ+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPCEtLSBjYXNlIG51bWJlciAtLT5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidudW1iZXInXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdCBtci0xXCI+XHJcbiAgICAgICAgICAgICAgICA8cy1idXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGNsaWNrKT1cIm51bWJlckRlY3JlYXNlKClcIiBbc2l6ZV09XCJzaXplXCIgW3BpbGxdPVwidHJ1ZVwiIFtpbnZlcnRdPVwidHJ1ZVwiIGNsYXNzPVwiYnV0dG9uLWlucHV0LTYyNlwiPjxzLWljb24tbWF0PnJlbW92ZTwvcy1pY29uLW1hdD48L3MtYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtaW5wdXQtbWFpbi02MjYgY29udGVudC1pbnB1dC1tYWluLXRleHQgY29udGVudC1pbnB1dC1tYWluLW51bWJlciB7e3NpemV9fSB0aGVtZS17e3RoZW1lfX0ge3tjbGFzc0FkZH19IHt7ZGlzYWJsZWRzdHlsZX19IHctMTAwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCIgIFtpZF09XCJpZCA/IGlkIDogJydcIiAjdHlwZU51bWJlciBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBbdHlwZV09XCJ0eXBlXCIgW25hbWVdPVwibmFtZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZUhvbGRlclwiIFsobmdNb2RlbCldPVwiaW5wdXRUZXh0XCIgKG5nTW9kZWxDaGFuZ2UpPVwib25UZXh0Q2hhbmdlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIm1heFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFttaW5dPVwibWluXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW3N0ZXBdPVwic3RlcFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSAhPSAnZGVmYXVsdCdcIiBjbGFzcz1cImNvbnRlbnQtcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJpbmNvblN5bWJvbD8nc3ltYm9sJzonaWNvbidcIiBjbGFzcz1cImljb24gcmVwb3J0XCI+e3tpY29uTmFtZX19PC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cInRoZW1lID09ICdkZWZhdWx0JyAmJiBoZWxwXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgKGNsaWNrKT1cImNsaWNrSWNvbigpXCIgY2xhc3M9XCJpY29uIGN1cnNvclwiPmhlbHBfb3V0bGluZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnQtbGVmdCBtbC0xXCI+XHJcbiAgICAgICAgICAgICAgICA8cy1idXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgKGNsaWNrKT1cIm51bWJlckluY3JlbWVudCgpXCIgW3NpemVdPVwic2l6ZVwiIFtwaWxsXT1cInRydWVcIiBbaW52ZXJ0XT1cInRydWVcIiBjbGFzcz1cImJ1dHRvbi1pbnB1dC02MjZcIj48cy1pY29uLW1hdD5hZGQ8L3MtaWNvbi1tYXQ+PC9zLWJ1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8IS0tIGNhc2UgcmFuZ2UgLS0+XHJcbiAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3JhbmdlJ1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tcmFuZ2Uge3tzaXplfX0gdGhlbWUte3t0aGVtZX19IHt7Y2xhc3NBZGR9fSB7e2Rpc2FibGVkc3R5bGV9fVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9vbHRpcCB0b29sdGlwLXt7ZGlzYWJsZWR9fVwiICN0b29sdGlwQ29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAgICAgI3JhbmdlRmllbGRcclxuICAgICAgICAgICAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIiBcclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiBcclxuICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJ0eXBlXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgW2lkXT1cImlkXCIgXHJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwibmFtZVwiIFxyXG4gICAgICAgICAgICAgICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCJcclxuICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbl09XCJtaW5cIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwibWF4XCJcclxuICAgICAgICAgICAgICAgICAgICBbc3RlcF09XCJzdGVwXCJcclxuICAgICAgICAgICAgICAgICAgICAobW91c2Vtb3ZlKT1cImNoYW5nZVJhbmdlKHJhbmdlRmllbGQudmFsdWUpXCJcclxuICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvblRleHRDaGFuZ2UoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGlucHV0KT1cInVwZGF0ZVRvb2x0aXAocmFuZ2VGaWVsZC52YWx1ZSlcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRvb2x0aXB0ZXh0XCIgI3Rvb2x0aXA+e3sgdG9vbHRpcFZhbHVlIH19PC9zcGFuPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG5cclxuICAgIDwhLS0gY2FzZSBkZWZhdWx0IC0tPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgICAgY2xhc3M9XCJjb250ZW50LWlucHV0LW1haW4tNjI2IGNvbnRlbnQtaW5wdXQtbWFpbi10ZXh0IHt7c2l6ZX19IHRoZW1lLXt7dGhlbWV9fSB7e2NsYXNzQWRkfX0ge3tkaXNhYmxlZHN0eWxlfX1cIj5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiY29udGVudC1sZWZ0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBjbGFzcz1cImljb25cIj5lbWFpbDwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudC1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbcmVhZE9ubHldPVwicmVhZE9ubHlcIiBbaWRdPVwiaWQgPyBpZCA6ICdnZW5lcmljJ1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIFt0eXBlXT1cInR5cGVcIiBbbmFtZV09XCJuYW1lXCIgYXV0b2NvbXBsZXRlPVwib2ZmXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2VIb2xkZXJcIiBbKG5nTW9kZWwpXT1cImlucHV0VGV4dFwiIChuZ01vZGVsQ2hhbmdlKT1cIm9uVGV4dENoYW5nZSgpXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwidGhlbWUgIT0gJ2RlZmF1bHQnXCIgY2xhc3M9XCJjb250ZW50LXJpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICA8cy1pY29uLW1hdCBbdHlwZV09XCJpbmNvblN5bWJvbD8nc3ltYm9sJzonaWNvbidcIiBjbGFzcz1cImljb24gcmVwb3J0XCI+e3tpY29uTmFtZX19PC9zLWljb24tbWF0PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJ0aGVtZSA9PSAnZGVmYXVsdCcgJiYgaGVscFwiIGNsYXNzPVwiY29udGVudC1yaWdodFwiPlxyXG4gICAgICAgICAgICAgICAgPHMtaWNvbi1tYXQgKGNsaWNrKT1cImNsaWNrSWNvbigpXCIgY2xhc3M9XCJpY29uIGN1cnNvclwiPmhlbHBfb3V0bGluZTwvcy1pY29uLW1hdD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbjwvbmctY29udGFpbmVyPiJdfQ==