aril 0.0.7 → 0.0.9

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 (339) hide show
  1. package/README.md +48 -48
  2. package/aril-0.0.9.tgz +0 -0
  3. package/esm2022/http/index.mjs +1 -1
  4. package/esm2022/http/lib/enums.mjs +6 -6
  5. package/esm2022/http/lib/interfaces.mjs +10 -31
  6. package/esm2022/http/src/httpClient.mjs +3 -3
  7. package/esm2022/http/src/serviceBase.mjs +25 -27
  8. package/esm2022/http/src/serviceStateMethods.mjs +4 -7
  9. package/esm2022/i18n/aril-i18n.mjs +5 -0
  10. package/esm2022/i18n/index.mjs +6 -0
  11. package/esm2022/i18n/src/file-url-token.mjs +3 -0
  12. package/esm2022/i18n/src/i18n.module.mjs +17 -0
  13. package/esm2022/i18n/src/loader.mjs +20 -0
  14. package/esm2022/i18n/src/provideI18n.mjs +16 -0
  15. package/esm2022/i18n/src/provideScope.mjs +18 -0
  16. package/esm2022/public-api.mjs +2 -2
  17. package/esm2022/theme/layout/app/breadcrumb/app.breadcrumb.component.mjs +3 -3
  18. package/esm2022/theme/layout/app/config/app.config.component.mjs +12 -14
  19. package/esm2022/theme/layout/app/layout/app.layout.component.mjs +15 -9
  20. package/esm2022/theme/layout/app/menu/app.menu.component.mjs +148 -166
  21. package/esm2022/theme/layout/app/profileSidebar/app.profilesidebar.component.mjs +3 -3
  22. package/esm2022/theme/layout/app/sidebar/app.sidebar.component.mjs +4 -4
  23. package/esm2022/theme/layout/app/topbar/app.topbar.component.mjs +4 -4
  24. package/esm2022/theme/layout/index.mjs +1 -1
  25. package/esm2022/theme/layout/service/app.layout.service.mjs +10 -15
  26. package/esm2022/theme/layout/service/app.menu.service.mjs +1 -1
  27. package/esm2022/theme/layout/service/menuchangeevent.mjs +1 -1
  28. package/esm2022/ui/badge/index.mjs +1 -1
  29. package/esm2022/ui/badge/src/badge.component.mjs +3 -3
  30. package/esm2022/ui/button/index.mjs +1 -1
  31. package/esm2022/ui/button/src/button.component.mjs +4 -4
  32. package/esm2022/ui/button/src/split-button.component.mjs +3 -3
  33. package/esm2022/ui/calendar/index.mjs +1 -1
  34. package/esm2022/ui/calendar/src/calendar.component.mjs +27 -14
  35. package/esm2022/ui/checkbox/index.mjs +1 -1
  36. package/esm2022/ui/checkbox/src/check-box.component.mjs +4 -4
  37. package/esm2022/ui/checkbox/src/tri-state-checkbox.component.mjs +4 -4
  38. package/esm2022/ui/dxField/index.mjs +1 -1
  39. package/esm2022/ui/dxField/src/dx-field.component.mjs +5 -5
  40. package/esm2022/ui/field/index.mjs +1 -1
  41. package/esm2022/ui/field/src/field.component.mjs +11 -9
  42. package/esm2022/ui/fileUpload/index.mjs +1 -1
  43. package/esm2022/ui/fileUpload/src/file-upload.component.mjs +12 -12
  44. package/esm2022/ui/form/index.mjs +7 -7
  45. package/esm2022/ui/form/src/form-submit-button.component.mjs +22 -27
  46. package/esm2022/ui/form/src/form.component.mjs +2 -2
  47. package/esm2022/ui/index.mjs +2 -2
  48. package/esm2022/ui/lib/index.mjs +1 -1
  49. package/esm2022/ui/lib/src/form/form-error-message.component.mjs +9 -9
  50. package/esm2022/ui/lib/src/form/form-error-message.directive.mjs +1 -1
  51. package/esm2022/ui/lib/src/form/form-field-builder.mjs +4 -4
  52. package/esm2022/ui/lib/src/form/form-validation.mjs +3 -3
  53. package/esm2022/ui/lib/src/grid/flex-grid.directive.mjs +2 -2
  54. package/esm2022/ui/lib/src/input/baseInput.mjs +4 -4
  55. package/esm2022/ui/lib/src/input/common-input-validators.service.mjs +6 -6
  56. package/esm2022/ui/lib/src/input/dx-input-error-message.pipe.mjs +3 -3
  57. package/esm2022/ui/lib/src/input/input-disabled.directive.mjs +1 -1
  58. package/esm2022/ui/lib/src/input/input-error-message.pipe.mjs +3 -2
  59. package/esm2022/ui/lib/src/input/input-transforms.mjs +1 -1
  60. package/esm2022/ui/lib/src/input/value-accessor.directive.mjs +12 -6
  61. package/esm2022/ui/mask/index.mjs +1 -1
  62. package/esm2022/ui/mask/src/mask.component.mjs +8 -8
  63. package/esm2022/ui/number/index.mjs +1 -1
  64. package/esm2022/ui/number/src/number.component.mjs +10 -10
  65. package/esm2022/ui/overlayPanel/index.mjs +1 -1
  66. package/esm2022/ui/overlayPanel/src/overlay-panel.component.mjs +4 -7
  67. package/esm2022/ui/panel/index.mjs +1 -1
  68. package/esm2022/ui/panel/src/panel.component.mjs +3 -3
  69. package/esm2022/ui/password/index.mjs +1 -1
  70. package/esm2022/ui/password/src/password.component.mjs +7 -7
  71. package/esm2022/ui/radioButton/index.mjs +1 -1
  72. package/esm2022/ui/radioButton/src/radio-button.component.mjs +8 -8
  73. package/esm2022/ui/selectBox/index.mjs +1 -1
  74. package/esm2022/ui/selectBox/src/select-box.component.mjs +8 -8
  75. package/esm2022/ui/switch/index.mjs +1 -1
  76. package/esm2022/ui/switch/src/switch.component.mjs +7 -7
  77. package/esm2022/ui/table/index.mjs +3 -5
  78. package/esm2022/ui/table/src/i18n.mjs +53 -90
  79. package/esm2022/ui/table/src/table-column.component.mjs +4 -8
  80. package/esm2022/ui/table/src/table.component.mjs +13 -10
  81. package/esm2022/ui/tagBox/index.mjs +1 -1
  82. package/esm2022/ui/tagBox/src/tag-box.component.mjs +13 -13
  83. package/esm2022/ui/text/index.mjs +1 -1
  84. package/esm2022/ui/text/src/text.component.mjs +5 -5
  85. package/esm2022/ui/textArea/index.mjs +1 -1
  86. package/esm2022/ui/textArea/src/text-area.component.mjs +4 -4
  87. package/esm2022/ui/tree/index.mjs +1 -1
  88. package/esm2022/ui/tree/src/tree.component.mjs +5 -5
  89. package/esm2022/ui/treeTable/index.mjs +1 -1
  90. package/esm2022/ui/treeTable/src/tree-table.component.mjs +3 -3
  91. package/esm2022/ui/value/index.mjs +1 -1
  92. package/esm2022/ui/value/src/value.component.mjs +13 -13
  93. package/esm2022/util/index.mjs +2 -2
  94. package/esm2022/util/init-event/index.mjs +1 -1
  95. package/esm2022/util/init-event/src/init-event.directive.mjs +1 -1
  96. package/esm2022/util/lib/index.mjs +2 -1
  97. package/esm2022/util/lib/src/interfaces.mjs +1 -1
  98. package/esm2022/util/lib/src/module-router.mjs +16 -0
  99. package/esm2022/util/lib/src/types.mjs +1 -1
  100. package/esm2022/util/primitive-extensions/index.mjs +5 -5
  101. package/esm2022/util/primitive-extensions/src/boolean.extensions.mjs +1 -1
  102. package/esm2022/util/primitive-extensions/src/date.extensions.mjs +68 -47
  103. package/esm2022/util/primitive-extensions/src/number.extensions.mjs +13 -7
  104. package/esm2022/util/primitive-extensions/src/string.extensions.mjs +4 -4
  105. package/esm2022/util/pub-sub/index.mjs +1 -1
  106. package/esm2022/util/pub-sub/src/pub-sub.service.mjs +7 -5
  107. package/fesm2022/aril-http.mjs +39 -63
  108. package/fesm2022/aril-http.mjs.map +1 -1
  109. package/fesm2022/aril-i18n.mjs +72 -0
  110. package/fesm2022/aril-i18n.mjs.map +1 -0
  111. package/fesm2022/aril-theme-layout.mjs +190 -209
  112. package/fesm2022/aril-theme-layout.mjs.map +1 -1
  113. package/fesm2022/aril-ui-badge.mjs +2 -2
  114. package/fesm2022/aril-ui-badge.mjs.map +1 -1
  115. package/fesm2022/aril-ui-button.mjs +5 -5
  116. package/fesm2022/aril-ui-button.mjs.map +1 -1
  117. package/fesm2022/aril-ui-calendar.mjs +25 -12
  118. package/fesm2022/aril-ui-calendar.mjs.map +1 -1
  119. package/fesm2022/aril-ui-checkbox.mjs +5 -5
  120. package/fesm2022/aril-ui-checkbox.mjs.map +1 -1
  121. package/fesm2022/aril-ui-dxField.mjs +4 -4
  122. package/fesm2022/aril-ui-dxField.mjs.map +1 -1
  123. package/fesm2022/aril-ui-field.mjs +9 -7
  124. package/fesm2022/aril-ui-field.mjs.map +1 -1
  125. package/fesm2022/aril-ui-fileUpload.mjs +11 -11
  126. package/fesm2022/aril-ui-fileUpload.mjs.map +1 -1
  127. package/fesm2022/aril-ui-form.mjs +28 -34
  128. package/fesm2022/aril-ui-form.mjs.map +1 -1
  129. package/fesm2022/aril-ui-lib.mjs +30 -23
  130. package/fesm2022/aril-ui-lib.mjs.map +1 -1
  131. package/fesm2022/aril-ui-mask.mjs +8 -8
  132. package/fesm2022/aril-ui-mask.mjs.map +1 -1
  133. package/fesm2022/aril-ui-number.mjs +10 -10
  134. package/fesm2022/aril-ui-number.mjs.map +1 -1
  135. package/fesm2022/aril-ui-overlayPanel.mjs +2 -5
  136. package/fesm2022/aril-ui-overlayPanel.mjs.map +1 -1
  137. package/fesm2022/aril-ui-panel.mjs +2 -2
  138. package/fesm2022/aril-ui-panel.mjs.map +1 -1
  139. package/fesm2022/aril-ui-password.mjs +7 -7
  140. package/fesm2022/aril-ui-password.mjs.map +1 -1
  141. package/fesm2022/aril-ui-radioButton.mjs +7 -7
  142. package/fesm2022/aril-ui-radioButton.mjs.map +1 -1
  143. package/fesm2022/aril-ui-selectBox.mjs +5 -5
  144. package/fesm2022/aril-ui-selectBox.mjs.map +1 -1
  145. package/fesm2022/aril-ui-switch.mjs +7 -7
  146. package/fesm2022/aril-ui-switch.mjs.map +1 -1
  147. package/fesm2022/aril-ui-table.mjs +66 -105
  148. package/fesm2022/aril-ui-table.mjs.map +1 -1
  149. package/fesm2022/aril-ui-tagBox.mjs +11 -11
  150. package/fesm2022/aril-ui-tagBox.mjs.map +1 -1
  151. package/fesm2022/aril-ui-text.mjs +4 -4
  152. package/fesm2022/aril-ui-text.mjs.map +1 -1
  153. package/fesm2022/aril-ui-textArea.mjs +3 -3
  154. package/fesm2022/aril-ui-textArea.mjs.map +1 -1
  155. package/fesm2022/aril-ui-tree.mjs +3 -3
  156. package/fesm2022/aril-ui-tree.mjs.map +1 -1
  157. package/fesm2022/aril-ui-treeTable.mjs +2 -2
  158. package/fesm2022/aril-ui-treeTable.mjs.map +1 -1
  159. package/fesm2022/aril-ui-value.mjs +11 -11
  160. package/fesm2022/aril-ui-value.mjs.map +1 -1
  161. package/fesm2022/aril-ui.mjs +1 -1
  162. package/fesm2022/aril-ui.mjs.map +1 -1
  163. package/fesm2022/aril-util-init-event.mjs.map +1 -1
  164. package/fesm2022/aril-util-lib.mjs +19 -0
  165. package/fesm2022/aril-util-lib.mjs.map +1 -1
  166. package/fesm2022/aril-util-primitive-extensions.mjs +82 -55
  167. package/fesm2022/aril-util-primitive-extensions.mjs.map +1 -1
  168. package/fesm2022/aril-util-pub-sub.mjs +6 -4
  169. package/fesm2022/aril-util-pub-sub.mjs.map +1 -1
  170. package/fesm2022/aril-util.mjs +1 -1
  171. package/fesm2022/aril-util.mjs.map +1 -1
  172. package/fesm2022/aril.mjs +1 -1
  173. package/fesm2022/aril.mjs.map +1 -1
  174. package/http/lib/enums.d.ts +5 -5
  175. package/http/lib/interfaces.d.ts +9 -31
  176. package/http/src/httpClient.d.ts +3 -3
  177. package/http/src/serviceBase.d.ts +2 -1
  178. package/http/src/serviceStateMethods.d.ts +2 -3
  179. package/i18n/index.d.ts +5 -0
  180. package/i18n/src/file-url-token.d.ts +2 -0
  181. package/i18n/src/i18n.module.d.ts +7 -0
  182. package/i18n/src/loader.d.ts +9 -0
  183. package/i18n/src/provideI18n.d.ts +2 -0
  184. package/i18n/src/provideScope.d.ts +9 -0
  185. package/package.json +13 -7
  186. package/styles/ui/ui.common.scss +8 -8
  187. package/theme/layout/app/breadcrumb/app.breadcrumb.component.ts +2 -4
  188. package/theme/layout/app/config/app.config.component.html +13 -62
  189. package/theme/layout/app/config/app.config.component.ts +12 -21
  190. package/theme/layout/app/layout/app.layout.component.ts +39 -52
  191. package/theme/layout/app/menu/app.menu.component.ts +147 -121
  192. package/theme/layout/app/profileSidebar/app.profilesidebar.component.html +5 -18
  193. package/theme/layout/app/profileSidebar/app.profilesidebar.component.ts +2 -3
  194. package/theme/layout/app/sidebar/app.sidebar.component.html +9 -31
  195. package/theme/layout/app/sidebar/app.sidebar.component.ts +6 -3
  196. package/theme/layout/app/topbar/app.topbar.component.html +1 -5
  197. package/theme/layout/app/topbar/app.topbar.component.ts +4 -5
  198. package/theme/layout/index.ts +1 -1
  199. package/theme/layout/ng-package.json +6 -6
  200. package/theme/layout/service/app.layout.service.ts +12 -31
  201. package/theme/layout/service/app.menu.service.ts +0 -1
  202. package/theme/layout/service/menuchangeevent.ts +1 -1
  203. package/theme/styles/layout/_animation.scss +53 -53
  204. package/theme/styles/layout/_breadcrumb.scss +21 -21
  205. package/theme/styles/layout/_config.scss +42 -42
  206. package/theme/styles/layout/_content.scss +3 -3
  207. package/theme/styles/layout/_fonts.scss +40 -36
  208. package/theme/styles/layout/_layout_dark.scss +5 -5
  209. package/theme/styles/layout/_layout_dim.scss +5 -5
  210. package/theme/styles/layout/_layout_light.scss +5 -5
  211. package/theme/styles/layout/_main.scss +28 -28
  212. package/theme/styles/layout/_profile.scss +10 -10
  213. package/theme/styles/layout/_responsive.scss +111 -113
  214. package/theme/styles/layout/_sidebar_drawer.scss +234 -236
  215. package/theme/styles/layout/_sidebar_horizontal.scss +163 -163
  216. package/theme/styles/layout/_sidebar_reveal.scss +201 -203
  217. package/theme/styles/layout/_sidebar_slim.scss +144 -145
  218. package/theme/styles/layout/_sidebar_slim_plus.scss +162 -163
  219. package/theme/styles/layout/_sidebar_vertical.scss +153 -153
  220. package/theme/styles/layout/_topbar.scss +78 -78
  221. package/theme/styles/layout/_typography.scss +68 -63
  222. package/theme/styles/layout/_utils.scss +24 -24
  223. package/theme/styles/layout/layout.scss +24 -24
  224. package/theme/styles/layout/menutheme/_colorscheme.scss +11 -11
  225. package/theme/styles/layout/menutheme/_menutheme.scss +3 -3
  226. package/theme/styles/layout/menutheme/_primarycolor.scss +16 -16
  227. package/theme/styles/layout/menutheme/_transparent.scss +26 -26
  228. package/theme/styles/layout/preloading.scss +84 -84
  229. package/theme/styles/theme/base/_colors.scss +14 -15
  230. package/theme/styles/theme/base/_common.scss +39 -38
  231. package/theme/styles/theme/base/_components.scss +97 -97
  232. package/theme/styles/theme/base/_mixins.scss +281 -281
  233. package/theme/styles/theme/base/components/button/_button.scss +535 -535
  234. package/theme/styles/theme/base/components/button/_speeddial.scss +60 -60
  235. package/theme/styles/theme/base/components/button/_splitbutton.scss +328 -334
  236. package/theme/styles/theme/base/components/data/_carousel.scss +31 -31
  237. package/theme/styles/theme/base/components/data/_datatable.scss +336 -336
  238. package/theme/styles/theme/base/components/data/_dataview.scss +38 -38
  239. package/theme/styles/theme/base/components/data/_filter.scss +124 -125
  240. package/theme/styles/theme/base/components/data/_organizationchart.scss +48 -48
  241. package/theme/styles/theme/base/components/data/_paginator.scss +78 -78
  242. package/theme/styles/theme/base/components/data/_timeline.scss +33 -36
  243. package/theme/styles/theme/base/components/data/_treetable.scss +253 -254
  244. package/theme/styles/theme/base/components/data/_virtualscroller.scss +24 -24
  245. package/theme/styles/theme/base/components/file/_fileupload.scss +51 -51
  246. package/theme/styles/theme/base/components/input/_autocomplete.scss +120 -120
  247. package/theme/styles/theme/base/components/input/_calendar.scss +250 -250
  248. package/theme/styles/theme/base/components/input/_cascadeselect.scss +117 -118
  249. package/theme/styles/theme/base/components/input/_checkbox.scss +71 -71
  250. package/theme/styles/theme/base/components/input/_chips.scss +49 -49
  251. package/theme/styles/theme/base/components/input/_colorpicker.scss +11 -11
  252. package/theme/styles/theme/base/components/input/_dropdown.scss +141 -141
  253. package/theme/styles/theme/base/components/input/_editor.scss +120 -120
  254. package/theme/styles/theme/base/components/input/_inputgroup.scss +42 -42
  255. package/theme/styles/theme/base/components/input/_inputmask.scss +10 -10
  256. package/theme/styles/theme/base/components/input/_inputnumber.scss +21 -21
  257. package/theme/styles/theme/base/components/input/_inputswitch.scss +54 -54
  258. package/theme/styles/theme/base/components/input/_inputtext.scss +62 -62
  259. package/theme/styles/theme/base/components/input/_listbox.scss +80 -80
  260. package/theme/styles/theme/base/components/input/_multiselect.scss +158 -160
  261. package/theme/styles/theme/base/components/input/_password.scss +42 -42
  262. package/theme/styles/theme/base/components/input/_radiobutton.scss +57 -57
  263. package/theme/styles/theme/base/components/input/_rating.scss +53 -53
  264. package/theme/styles/theme/base/components/input/_selectbutton.scss +46 -46
  265. package/theme/styles/theme/base/components/input/_slider.scss +59 -55
  266. package/theme/styles/theme/base/components/input/_togglebutton.scss +44 -44
  267. package/theme/styles/theme/base/components/input/_treeselect.scss +119 -119
  268. package/theme/styles/theme/base/components/menu/_breadcrumb.scss +33 -33
  269. package/theme/styles/theme/base/components/menu/_contextmenu.scss +31 -31
  270. package/theme/styles/theme/base/components/menu/_dock.scss +80 -80
  271. package/theme/styles/theme/base/components/menu/_megamenu.scss +54 -54
  272. package/theme/styles/theme/base/components/menu/_menu.scss +30 -30
  273. package/theme/styles/theme/base/components/menu/_menubar.scss +136 -137
  274. package/theme/styles/theme/base/components/menu/_panelmenu.scss +151 -151
  275. package/theme/styles/theme/base/components/menu/_slidemenu.scss +57 -57
  276. package/theme/styles/theme/base/components/menu/_steps.scss +46 -46
  277. package/theme/styles/theme/base/components/menu/_tabmenu.scss +60 -61
  278. package/theme/styles/theme/base/components/menu/_tieredmenu.scss +34 -34
  279. package/theme/styles/theme/base/components/messages/_inlinemessage.scss +55 -55
  280. package/theme/styles/theme/base/components/messages/_message.scss +105 -105
  281. package/theme/styles/theme/base/components/messages/_toast.scss +97 -98
  282. package/theme/styles/theme/base/components/misc/_avatar.scss +22 -22
  283. package/theme/styles/theme/base/components/misc/_badge.scss +40 -40
  284. package/theme/styles/theme/base/components/misc/_chip.scss +39 -39
  285. package/theme/styles/theme/base/components/misc/_inplace.scss +12 -13
  286. package/theme/styles/theme/base/components/misc/_progressbar.scss +13 -13
  287. package/theme/styles/theme/base/components/misc/_scrolltop.scss +20 -20
  288. package/theme/styles/theme/base/components/misc/_skeleton.scss +6 -6
  289. package/theme/styles/theme/base/components/misc/_tag.scss +31 -31
  290. package/theme/styles/theme/base/components/misc/_terminal.scss +1 -1
  291. package/theme/styles/theme/base/components/multimedia/_galleria.scss +150 -150
  292. package/theme/styles/theme/base/components/multimedia/_image.scss +35 -35
  293. package/theme/styles/theme/base/components/overlay/_confirmpopup.scss +57 -59
  294. package/theme/styles/theme/base/components/overlay/_dialog.scss +56 -56
  295. package/theme/styles/theme/base/components/overlay/_overlaypanel.scss +58 -60
  296. package/theme/styles/theme/base/components/overlay/_sidebar.scss +20 -20
  297. package/theme/styles/theme/base/components/overlay/_tooltip.scss +27 -27
  298. package/theme/styles/theme/base/components/panel/_accordion.scss +104 -104
  299. package/theme/styles/theme/base/components/panel/_card.scss +23 -23
  300. package/theme/styles/theme/base/components/panel/_divider.scss +24 -24
  301. package/theme/styles/theme/base/components/panel/_fieldset.scss +38 -38
  302. package/theme/styles/theme/base/components/panel/_panel.scss +61 -61
  303. package/theme/styles/theme/base/components/panel/_scrollpanel.scss +5 -5
  304. package/theme/styles/theme/base/components/panel/_splitter.scss +15 -15
  305. package/theme/styles/theme/base/components/panel/_tabview.scss +68 -68
  306. package/theme/styles/theme/base/components/panel/_toolbar.scss +8 -8
  307. package/theme/styles/theme/dark/_extensions.scss +134 -120
  308. package/theme/styles/theme/dark/_variables.scss +918 -896
  309. package/theme/styles/theme/dark/blue/theme.scss +14 -14
  310. package/theme/styles/theme/dark/indigo/theme.scss +14 -14
  311. package/theme/styles/theme/light/_extensions.scss +116 -102
  312. package/theme/styles/theme/light/_variables.scss +911 -898
  313. package/theme/styles/theme/light/blue/theme.scss +14 -14
  314. package/theme/styles/theme/light/indigo/theme.scss +14 -14
  315. package/ui/button/src/button.component.d.ts +1 -1
  316. package/ui/calendar/src/calendar.component.d.ts +1 -1
  317. package/ui/form/index.d.ts +4 -4
  318. package/ui/form/src/form-submit-button.component.d.ts +5 -5
  319. package/ui/lib/src/form/form-validation.d.ts +1 -1
  320. package/ui/lib/src/input/baseInput.d.ts +2 -2
  321. package/ui/lib/src/input/common-input-validators.service.d.ts +3 -3
  322. package/ui/lib/src/input/dx-input-error-message.pipe.d.ts +2 -2
  323. package/ui/lib/src/input/input-transforms.d.ts +1 -1
  324. package/ui/mask/src/mask.component.d.ts +3 -3
  325. package/ui/number/src/number.component.d.ts +4 -4
  326. package/ui/overlayPanel/src/overlay-panel.component.d.ts +1 -1
  327. package/ui/password/src/password.component.d.ts +3 -3
  328. package/ui/selectBox/src/select-box.component.d.ts +2 -2
  329. package/ui/switch/src/switch.component.d.ts +3 -3
  330. package/ui/table/index.d.ts +0 -1
  331. package/ui/table/src/table-column.component.d.ts +1 -1
  332. package/ui/table/src/table.component.d.ts +4 -3
  333. package/ui/tree/src/tree.component.d.ts +1 -1
  334. package/ui/value/src/value.component.d.ts +2 -2
  335. package/util/lib/index.d.ts +1 -0
  336. package/util/lib/src/module-router.d.ts +5 -0
  337. package/util/lib/src/types.d.ts +2 -2
  338. package/util/primitive-extensions/index.d.ts +4 -4
  339. package/aril-0.0.7.tgz +0 -0
@@ -33,7 +33,7 @@ export class AppConfigComponent {
33
33
  set scale(_val) {
34
34
  this.layoutService.config.update((config) => ({
35
35
  ...config,
36
- scale: _val,
36
+ scale: _val
37
37
  }));
38
38
  }
39
39
  get menuMode() {
@@ -42,11 +42,9 @@ export class AppConfigComponent {
42
42
  set menuMode(_val) {
43
43
  this.layoutService.config.update((config) => ({
44
44
  ...config,
45
- menuMode: _val,
45
+ menuMode: _val
46
46
  }));
47
- if (this.layoutService.isSlimPlus() ||
48
- this.layoutService.isSlim() ||
49
- this.layoutService.isHorizontal()) {
47
+ if (this.layoutService.isSlimPlus() || this.layoutService.isSlim() || this.layoutService.isHorizontal()) {
50
48
  this.menuService.reset();
51
49
  }
52
50
  }
@@ -56,7 +54,7 @@ export class AppConfigComponent {
56
54
  set colorScheme(_val) {
57
55
  this.layoutService.config.update((config) => ({
58
56
  ...config,
59
- colorScheme: _val,
57
+ colorScheme: _val
60
58
  }));
61
59
  }
62
60
  get inputStyle() {
@@ -65,7 +63,7 @@ export class AppConfigComponent {
65
63
  set inputStyle(_val) {
66
64
  this.layoutService.config.update((config) => ({
67
65
  ...config,
68
- inputStyle: _val,
66
+ inputStyle: _val
69
67
  }));
70
68
  }
71
69
  get ripple() {
@@ -74,7 +72,7 @@ export class AppConfigComponent {
74
72
  set ripple(_val) {
75
73
  this.layoutService.config.update((config) => ({
76
74
  ...config,
77
- ripple: _val,
75
+ ripple: _val
78
76
  }));
79
77
  }
80
78
  get menuTheme() {
@@ -83,7 +81,7 @@ export class AppConfigComponent {
83
81
  set menuTheme(_val) {
84
82
  this.layoutService.config.update((config) => ({
85
83
  ...config,
86
- menuTheme: _val,
84
+ menuTheme: _val
87
85
  }));
88
86
  }
89
87
  get theme() {
@@ -92,7 +90,7 @@ export class AppConfigComponent {
92
90
  set theme(_val) {
93
91
  this.layoutService.config.update((config) => ({
94
92
  ...config,
95
- theme: _val,
93
+ theme: _val
96
94
  }));
97
95
  }
98
96
  ngOnInit() {
@@ -104,7 +102,7 @@ export class AppConfigComponent {
104
102
  { name: 'cyan', color: '#06b6d4' },
105
103
  { name: 'green', color: '#10b981' },
106
104
  { name: 'orange', color: '#f59e0b' },
107
- { name: 'pink', color: '#d946ef' },
105
+ { name: 'pink', color: '#d946ef' }
108
106
  ];
109
107
  }
110
108
  onConfigButtonClick() {
@@ -123,12 +121,12 @@ export class AppConfigComponent {
123
121
  this.scale++;
124
122
  }
125
123
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppConfigComponent, deps: [{ token: i1.LayoutService }, { token: i2.MenuService }], target: i0.ɵɵFactoryTarget.Component }); }
126
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppConfigComponent, isStandalone: true, selector: "app-config", inputs: { minimal: "minimal" }, ngImport: i0, template: "<button\n\tclass=\"layout-config-button p-link\"\n\ttype=\"button\"\n\t(click)=\"onConfigButtonClick()\">\n\t<i class=\"pi pi-cog\"></i>\n</button>\n\n<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-config-sidebar w-18rem\">\n\t<h5>Themes</h5>\n\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t@for (theme of componentThemes; track theme) {\n\t\t\t<div class=\"w-3\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"cursor-pointer p-link w-2rem h-2rem border-circle flex-shrink-0 flex align-items-center justify-content-center\"\n\t\t\t\t\t(click)=\"changeTheme(theme.name)\"\n\t\t\t\t\t[ngStyle]=\"{ 'background-color': theme.color }\">\n\t\t\t\t\t@if (theme.name == this.layoutService.config().theme) {\n\t\t\t\t\t\t<i class=\"pi pi-check text-white\"></i>\n\t\t\t\t\t}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t}\n\t</div>\n\n\t<h5>Scale</h5>\n\t<div class=\"flex align-items-center\">\n\t\t<button\n\t\t\ticon=\"pi pi-minus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"decrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem mr-2\"\n\t\t\t[disabled]=\"scale === scales[0]\"></button>\n\t\t<div class=\"flex gap-2 align-items-center\">\n\t\t\t@for (s of scales; track s) {\n\t\t\t\t<i\n\t\t\t\t\tclass=\"pi pi-circle-fill text-300\"\n\t\t\t\t\t[ngClass]=\"{ 'text-primary-500': s === scale }\"></i>\n\t\t\t}\n\t\t</div>\n\t\t<button\n\t\t\ticon=\"pi pi-plus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"incrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem ml-2\"\n\t\t\t[disabled]=\"scale === scales[scales.length - 1]\"></button>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Menu Type</h5>\n\t\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"static\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode1\"></p-radioButton>\n\t\t\t\t<label for=\"mode1\">Static</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"overlay\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode2\"></p-radioButton>\n\t\t\t\t<label for=\"mode2\">Overlay</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"slim\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode3\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"slim-plus\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode4\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim +</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"reveal\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode6\"></p-radioButton>\n\t\t\t\t<label for=\"mode5\">Reveal</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"drawer\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode7\"></p-radioButton>\n\t\t\t\t<label for=\"mode6\">Drawer</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"horizontal\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode5\"></p-radioButton>\n\t\t\t\t<label for=\"mode4\">Horizontal</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Menu Theme</h5>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"colorScheme\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-colorscheme\"></p-radioButton>\n\t\t\t<label for=\"menutheme-colorscheme\">Color Scheme</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"primaryColor\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-primarycolor\"></p-radioButton>\n\t\t\t<label for=\"menutheme-primarycolor\">Primary Color</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"transparent\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-transparent\"></p-radioButton>\n\t\t\t<label for=\"menutheme-transparent\">Transparent</label>\n\t\t</div>\n\t}\n\n\t<h5>Color Scheme</h5>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"light\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-light\"></p-radioButton>\n\t\t<label for=\"mode-light\">Light</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"dim\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-dim\"></p-radioButton>\n\t\t<label for=\"mode-dim\">Dim</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"dark\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-dark\"></p-radioButton>\n\t\t<label for=\"mode-dark\">Dark</label>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Input Style</h5>\n\t\t<div class=\"flex\">\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"inputStyle\"\n\t\t\t\t\tvalue=\"outlined\"\n\t\t\t\t\t[(ngModel)]=\"inputStyle\"\n\t\t\t\t\tinputId=\"outlined_input\"></p-radioButton>\n\t\t\t\t<label for=\"outlined_input\">Outlined</label>\n\t\t\t</div>\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"inputStyle\"\n\t\t\t\t\tvalue=\"filled\"\n\t\t\t\t\t[(ngModel)]=\"inputStyle\"\n\t\t\t\t\tinputId=\"filled_input\"></p-radioButton>\n\t\t\t\t<label for=\"filled_input\">Filled</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Ripple Effect</h5>\n\t\t<p-inputSwitch [(ngModel)]=\"ripple\"></p-inputSwitch>\n\t}\n</p-sidebar>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i4.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i5.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "ngmodule", type: InputSwitchModule }, { kind: "component", type: i7.InputSwitch, selector: "p-inputSwitch", inputs: ["style", "styleClass", "tabindex", "inputId", "name", "disabled", "readonly", "trueValue", "falseValue", "ariaLabel", "ariaLabelledBy"], outputs: ["onChange"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
124
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.2", type: AppConfigComponent, isStandalone: true, selector: "app-config", inputs: { minimal: "minimal" }, ngImport: i0, template: "<button class=\"layout-config-button p-link\" type=\"button\" (click)=\"onConfigButtonClick()\">\n\t<i class=\"pi pi-cog\"></i>\n</button>\n\n<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-config-sidebar w-18rem\">\n\t<h5>Themes</h5>\n\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t@for (theme of componentThemes; track theme) {\n\t\t\t<div class=\"w-3\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"cursor-pointer p-link w-2rem h-2rem border-circle flex-shrink-0 flex align-items-center justify-content-center\"\n\t\t\t\t\t(click)=\"changeTheme(theme.name)\"\n\t\t\t\t\t[ngStyle]=\"{ 'background-color': theme.color }\">\n\t\t\t\t\t@if (theme.name == this.layoutService.config().theme) {\n\t\t\t\t\t\t<i class=\"pi pi-check text-white\"></i>\n\t\t\t\t\t}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t}\n\t</div>\n\n\t<h5>Scale</h5>\n\t<div class=\"flex align-items-center\">\n\t\t<button\n\t\t\ticon=\"pi pi-minus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"decrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem mr-2\"\n\t\t\t[disabled]=\"scale === scales[0]\"></button>\n\t\t<div class=\"flex gap-2 align-items-center\">\n\t\t\t@for (s of scales; track s) {\n\t\t\t\t<i class=\"pi pi-circle-fill text-300\" [ngClass]=\"{ 'text-primary-500': s === scale }\"></i>\n\t\t\t}\n\t\t</div>\n\t\t<button\n\t\t\ticon=\"pi pi-plus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"incrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem ml-2\"\n\t\t\t[disabled]=\"scale === scales[scales.length - 1]\"></button>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Menu Type</h5>\n\t\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"static\" [(ngModel)]=\"menuMode\" inputId=\"mode1\"></p-radioButton>\n\t\t\t\t<label for=\"mode1\">Static</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"overlay\" [(ngModel)]=\"menuMode\" inputId=\"mode2\"></p-radioButton>\n\t\t\t\t<label for=\"mode2\">Overlay</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"slim\" [(ngModel)]=\"menuMode\" inputId=\"mode3\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"slim-plus\" [(ngModel)]=\"menuMode\" inputId=\"mode4\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim +</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"reveal\" [(ngModel)]=\"menuMode\" inputId=\"mode6\"></p-radioButton>\n\t\t\t\t<label for=\"mode5\">Reveal</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"drawer\" [(ngModel)]=\"menuMode\" inputId=\"mode7\"></p-radioButton>\n\t\t\t\t<label for=\"mode6\">Drawer</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"horizontal\" [(ngModel)]=\"menuMode\" inputId=\"mode5\"></p-radioButton>\n\t\t\t\t<label for=\"mode4\">Horizontal</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Menu Theme</h5>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"colorScheme\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-colorscheme\"></p-radioButton>\n\t\t\t<label for=\"menutheme-colorscheme\">Color Scheme</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"primaryColor\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-primarycolor\"></p-radioButton>\n\t\t\t<label for=\"menutheme-primarycolor\">Primary Color</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"transparent\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-transparent\"></p-radioButton>\n\t\t\t<label for=\"menutheme-transparent\">Transparent</label>\n\t\t</div>\n\t}\n\n\t<h5>Color Scheme</h5>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton name=\"colorScheme\" value=\"light\" [(ngModel)]=\"colorScheme\" inputId=\"mode-light\"></p-radioButton>\n\t\t<label for=\"mode-light\">Light</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton name=\"colorScheme\" value=\"dim\" [(ngModel)]=\"colorScheme\" inputId=\"mode-dim\"></p-radioButton>\n\t\t<label for=\"mode-dim\">Dim</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton name=\"colorScheme\" value=\"dark\" [(ngModel)]=\"colorScheme\" inputId=\"mode-dark\"></p-radioButton>\n\t\t<label for=\"mode-dark\">Dark</label>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Input Style</h5>\n\t\t<div class=\"flex\">\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"inputStyle\"\n\t\t\t\t\tvalue=\"outlined\"\n\t\t\t\t\t[(ngModel)]=\"inputStyle\"\n\t\t\t\t\tinputId=\"outlined_input\"></p-radioButton>\n\t\t\t\t<label for=\"outlined_input\">Outlined</label>\n\t\t\t</div>\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton name=\"inputStyle\" value=\"filled\" [(ngModel)]=\"inputStyle\" inputId=\"filled_input\"></p-radioButton>\n\t\t\t\t<label for=\"filled_input\">Filled</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Ripple Effect</h5>\n\t\t<p-inputSwitch [(ngModel)]=\"ripple\"></p-inputSwitch>\n\t}\n</p-sidebar>\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: SidebarModule }, { kind: "component", type: i4.Sidebar, selector: "p-sidebar", inputs: ["appendTo", "blockScroll", "style", "styleClass", "ariaCloseLabel", "autoZIndex", "baseZIndex", "modal", "dismissible", "showCloseIcon", "closeOnEscape", "transitionOptions", "visible", "position", "fullScreen"], outputs: ["onShow", "onHide", "visibleChange"] }, { kind: "ngmodule", type: RadioButtonModule }, { kind: "component", type: i5.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "ngmodule", type: InputSwitchModule }, { kind: "component", type: i7.InputSwitch, selector: "p-inputSwitch", inputs: ["style", "styleClass", "tabindex", "inputId", "name", "disabled", "readonly", "trueValue", "falseValue", "ariaLabel", "ariaLabelledBy"], outputs: ["onChange"] }, { kind: "directive", type: NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] }); }
127
125
  }
128
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppConfigComponent, decorators: [{
129
127
  type: Component,
130
- args: [{ standalone: true, selector: 'app-config', imports: [FormsModule, SidebarModule, RadioButtonModule, ButtonModule, InputSwitchModule, NgStyle, NgClass], template: "<button\n\tclass=\"layout-config-button p-link\"\n\ttype=\"button\"\n\t(click)=\"onConfigButtonClick()\">\n\t<i class=\"pi pi-cog\"></i>\n</button>\n\n<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-config-sidebar w-18rem\">\n\t<h5>Themes</h5>\n\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t@for (theme of componentThemes; track theme) {\n\t\t\t<div class=\"w-3\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"cursor-pointer p-link w-2rem h-2rem border-circle flex-shrink-0 flex align-items-center justify-content-center\"\n\t\t\t\t\t(click)=\"changeTheme(theme.name)\"\n\t\t\t\t\t[ngStyle]=\"{ 'background-color': theme.color }\">\n\t\t\t\t\t@if (theme.name == this.layoutService.config().theme) {\n\t\t\t\t\t\t<i class=\"pi pi-check text-white\"></i>\n\t\t\t\t\t}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t}\n\t</div>\n\n\t<h5>Scale</h5>\n\t<div class=\"flex align-items-center\">\n\t\t<button\n\t\t\ticon=\"pi pi-minus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"decrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem mr-2\"\n\t\t\t[disabled]=\"scale === scales[0]\"></button>\n\t\t<div class=\"flex gap-2 align-items-center\">\n\t\t\t@for (s of scales; track s) {\n\t\t\t\t<i\n\t\t\t\t\tclass=\"pi pi-circle-fill text-300\"\n\t\t\t\t\t[ngClass]=\"{ 'text-primary-500': s === scale }\"></i>\n\t\t\t}\n\t\t</div>\n\t\t<button\n\t\t\ticon=\"pi pi-plus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"incrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem ml-2\"\n\t\t\t[disabled]=\"scale === scales[scales.length - 1]\"></button>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Menu Type</h5>\n\t\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"static\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode1\"></p-radioButton>\n\t\t\t\t<label for=\"mode1\">Static</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"overlay\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode2\"></p-radioButton>\n\t\t\t\t<label for=\"mode2\">Overlay</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"slim\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode3\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"slim-plus\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode4\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim +</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"reveal\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode6\"></p-radioButton>\n\t\t\t\t<label for=\"mode5\">Reveal</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"drawer\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode7\"></p-radioButton>\n\t\t\t\t<label for=\"mode6\">Drawer</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"menuMode\"\n\t\t\t\t\tvalue=\"horizontal\"\n\t\t\t\t\t[(ngModel)]=\"menuMode\"\n\t\t\t\t\tinputId=\"mode5\"></p-radioButton>\n\t\t\t\t<label for=\"mode4\">Horizontal</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Menu Theme</h5>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"colorScheme\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-colorscheme\"></p-radioButton>\n\t\t\t<label for=\"menutheme-colorscheme\">Color Scheme</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"primaryColor\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-primarycolor\"></p-radioButton>\n\t\t\t<label for=\"menutheme-primarycolor\">Primary Color</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"transparent\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-transparent\"></p-radioButton>\n\t\t\t<label for=\"menutheme-transparent\">Transparent</label>\n\t\t</div>\n\t}\n\n\t<h5>Color Scheme</h5>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"light\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-light\"></p-radioButton>\n\t\t<label for=\"mode-light\">Light</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"dim\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-dim\"></p-radioButton>\n\t\t<label for=\"mode-dim\">Dim</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton\n\t\t\tname=\"colorScheme\"\n\t\t\tvalue=\"dark\"\n\t\t\t[(ngModel)]=\"colorScheme\"\n\t\t\tinputId=\"mode-dark\"></p-radioButton>\n\t\t<label for=\"mode-dark\">Dark</label>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Input Style</h5>\n\t\t<div class=\"flex\">\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"inputStyle\"\n\t\t\t\t\tvalue=\"outlined\"\n\t\t\t\t\t[(ngModel)]=\"inputStyle\"\n\t\t\t\t\tinputId=\"outlined_input\"></p-radioButton>\n\t\t\t\t<label for=\"outlined_input\">Outlined</label>\n\t\t\t</div>\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"inputStyle\"\n\t\t\t\t\tvalue=\"filled\"\n\t\t\t\t\t[(ngModel)]=\"inputStyle\"\n\t\t\t\t\tinputId=\"filled_input\"></p-radioButton>\n\t\t\t\t<label for=\"filled_input\">Filled</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Ripple Effect</h5>\n\t\t<p-inputSwitch [(ngModel)]=\"ripple\"></p-inputSwitch>\n\t}\n</p-sidebar>\n" }]
128
+ args: [{ standalone: true, selector: 'app-config', imports: [FormsModule, SidebarModule, RadioButtonModule, ButtonModule, InputSwitchModule, NgStyle, NgClass], template: "<button class=\"layout-config-button p-link\" type=\"button\" (click)=\"onConfigButtonClick()\">\n\t<i class=\"pi pi-cog\"></i>\n</button>\n\n<p-sidebar\n\t[(visible)]=\"visible\"\n\tposition=\"right\"\n\t[transitionOptions]=\"'.3s cubic-bezier(0, 0, 0.2, 1)'\"\n\tstyleClass=\"layout-config-sidebar w-18rem\">\n\t<h5>Themes</h5>\n\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t@for (theme of componentThemes; track theme) {\n\t\t\t<div class=\"w-3\">\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tclass=\"cursor-pointer p-link w-2rem h-2rem border-circle flex-shrink-0 flex align-items-center justify-content-center\"\n\t\t\t\t\t(click)=\"changeTheme(theme.name)\"\n\t\t\t\t\t[ngStyle]=\"{ 'background-color': theme.color }\">\n\t\t\t\t\t@if (theme.name == this.layoutService.config().theme) {\n\t\t\t\t\t\t<i class=\"pi pi-check text-white\"></i>\n\t\t\t\t\t}\n\t\t\t\t</button>\n\t\t\t</div>\n\t\t}\n\t</div>\n\n\t<h5>Scale</h5>\n\t<div class=\"flex align-items-center\">\n\t\t<button\n\t\t\ticon=\"pi pi-minus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"decrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem mr-2\"\n\t\t\t[disabled]=\"scale === scales[0]\"></button>\n\t\t<div class=\"flex gap-2 align-items-center\">\n\t\t\t@for (s of scales; track s) {\n\t\t\t\t<i class=\"pi pi-circle-fill text-300\" [ngClass]=\"{ 'text-primary-500': s === scale }\"></i>\n\t\t\t}\n\t\t</div>\n\t\t<button\n\t\t\ticon=\"pi pi-plus\"\n\t\t\ttype=\"button\"\n\t\t\tpButton\n\t\t\t(click)=\"incrementScale()\"\n\t\t\tclass=\"p-button-text p-button-rounded w-2rem h-2rem ml-2\"\n\t\t\t[disabled]=\"scale === scales[scales.length - 1]\"></button>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Menu Type</h5>\n\t\t<div class=\"flex flex-wrap row-gap-3\">\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"static\" [(ngModel)]=\"menuMode\" inputId=\"mode1\"></p-radioButton>\n\t\t\t\t<label for=\"mode1\">Static</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"overlay\" [(ngModel)]=\"menuMode\" inputId=\"mode2\"></p-radioButton>\n\t\t\t\t<label for=\"mode2\">Overlay</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"slim\" [(ngModel)]=\"menuMode\" inputId=\"mode3\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"slim-plus\" [(ngModel)]=\"menuMode\" inputId=\"mode4\"></p-radioButton>\n\t\t\t\t<label for=\"mode3\">Slim +</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"reveal\" [(ngModel)]=\"menuMode\" inputId=\"mode6\"></p-radioButton>\n\t\t\t\t<label for=\"mode5\">Reveal</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"drawer\" [(ngModel)]=\"menuMode\" inputId=\"mode7\"></p-radioButton>\n\t\t\t\t<label for=\"mode6\">Drawer</label>\n\t\t\t</div>\n\t\t\t<div class=\"flex align-items-center gap-2 w-6\">\n\t\t\t\t<p-radioButton name=\"menuMode\" value=\"horizontal\" [(ngModel)]=\"menuMode\" inputId=\"mode5\"></p-radioButton>\n\t\t\t\t<label for=\"mode4\">Horizontal</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Menu Theme</h5>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"colorScheme\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-colorscheme\"></p-radioButton>\n\t\t\t<label for=\"menutheme-colorscheme\">Color Scheme</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"primaryColor\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-primarycolor\"></p-radioButton>\n\t\t\t<label for=\"menutheme-primarycolor\">Primary Color</label>\n\t\t</div>\n\t\t<div class=\"field-radiobutton\">\n\t\t\t<p-radioButton\n\t\t\t\tname=\"menuTheme\"\n\t\t\t\tvalue=\"transparent\"\n\t\t\t\t[(ngModel)]=\"menuTheme\"\n\t\t\t\tinputId=\"menutheme-transparent\"></p-radioButton>\n\t\t\t<label for=\"menutheme-transparent\">Transparent</label>\n\t\t</div>\n\t}\n\n\t<h5>Color Scheme</h5>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton name=\"colorScheme\" value=\"light\" [(ngModel)]=\"colorScheme\" inputId=\"mode-light\"></p-radioButton>\n\t\t<label for=\"mode-light\">Light</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton name=\"colorScheme\" value=\"dim\" [(ngModel)]=\"colorScheme\" inputId=\"mode-dim\"></p-radioButton>\n\t\t<label for=\"mode-dim\">Dim</label>\n\t</div>\n\t<div class=\"field-radiobutton\">\n\t\t<p-radioButton name=\"colorScheme\" value=\"dark\" [(ngModel)]=\"colorScheme\" inputId=\"mode-dark\"></p-radioButton>\n\t\t<label for=\"mode-dark\">Dark</label>\n\t</div>\n\n\t@if (!minimal) {\n\t\t<h5>Input Style</h5>\n\t\t<div class=\"flex\">\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton\n\t\t\t\t\tname=\"inputStyle\"\n\t\t\t\t\tvalue=\"outlined\"\n\t\t\t\t\t[(ngModel)]=\"inputStyle\"\n\t\t\t\t\tinputId=\"outlined_input\"></p-radioButton>\n\t\t\t\t<label for=\"outlined_input\">Outlined</label>\n\t\t\t</div>\n\t\t\t<div class=\"field-radiobutton flex-1\">\n\t\t\t\t<p-radioButton name=\"inputStyle\" value=\"filled\" [(ngModel)]=\"inputStyle\" inputId=\"filled_input\"></p-radioButton>\n\t\t\t\t<label for=\"filled_input\">Filled</label>\n\t\t\t</div>\n\t\t</div>\n\t\t<h5>Ripple Effect</h5>\n\t\t<p-inputSwitch [(ngModel)]=\"ripple\"></p-inputSwitch>\n\t}\n</p-sidebar>\n" }]
131
129
  }], ctorParameters: () => [{ type: i1.LayoutService }, { type: i2.MenuService }], propDecorators: { minimal: [{
132
130
  type: Input
133
131
  }] } });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbmZpZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvY29uZmlnL2FwcC5jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2NvbmZpZy9hcHAuY29uZmlnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7OztBQWdCeEQsTUFBTSxPQUFPLGtCQUFrQjtJQU85QixZQUNRLGFBQTRCLEVBQzVCLFdBQXdCO1FBRHhCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBUnZCLFlBQU8sR0FBWSxLQUFLLENBQUM7UUFFbEMsb0JBQWUsR0FBVSxFQUFFLENBQUM7UUFFNUIsV0FBTSxHQUFhLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBS3BDLENBQUM7SUFFTCxJQUFJLE9BQU87UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLG9CQUFv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QWM7UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsY0FBYztRQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNkLENBQUM7OEdBL0hXLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHNHQ3ZCL0IsbWxNQStMQSwyQ0QzS1csV0FBVyw4VkFBRSxhQUFhLDRXQUFFLGlCQUFpQixvVEFBRSxZQUFZLHNLQUFFLGlCQUFpQixnUkFBRSxPQUFPLDJFQUFFLE9BQU87OzJGQUc5RixrQkFBa0I7a0JBTjlCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLFlBQVksV0FDYixDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7NEdBSWxHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU2lkZWJhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2lkZWJhcic7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcmFkaW9idXR0b24nO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgSW5wdXRTd2l0Y2hNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0c3dpdGNoJztcblxuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHtcblx0Q29sb3JTY2hlbWUsXG5cdExheW91dFNlcnZpY2UsXG5cdE1lbnVDb2xvclNjaGVtZSxcblx0TWVudU1vZGUsXG59IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLmxheW91dC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG5cdHN0YW5kYWxvbmU6IHRydWUsXG5cdHNlbGVjdG9yOiAnYXBwLWNvbmZpZycsXG5cdGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgU2lkZWJhck1vZHVsZSwgUmFkaW9CdXR0b25Nb2R1bGUsIEJ1dHRvbk1vZHVsZSwgSW5wdXRTd2l0Y2hNb2R1bGUsIE5nU3R5bGUsIE5nQ2xhc3NdLFxuXHR0ZW1wbGF0ZVVybDogJy4vYXBwLmNvbmZpZy5jb21wb25lbnQuaHRtbCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbmZpZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBJbnB1dCgpIG1pbmltYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRjb21wb25lbnRUaGVtZXM6IGFueVtdID0gW107XG5cblx0c2NhbGVzOiBudW1iZXJbXSA9IFsxMiwgMTMsIDE0LCAxNSwgMTZdO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxuXHRcdHB1YmxpYyBtZW51U2VydmljZTogTWVudVNlcnZpY2Vcblx0KSB7IH1cblxuXHRnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLmNvbmZpZ1NpZGViYXJWaXNpYmxlO1xuXHR9XG5cdHNldCB2aXNpYmxlKF92YWw6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuY29uZmlnU2lkZWJhclZpc2libGUgPSBfdmFsO1xuXHR9XG5cblx0Z2V0IHNjYWxlKCk6IG51bWJlciB7XG5cdFx0cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5zY2FsZTtcblx0fVxuXHRzZXQgc2NhbGUoX3ZhbDogbnVtYmVyKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHtcblx0XHRcdC4uLmNvbmZpZyxcblx0XHRcdHNjYWxlOiBfdmFsLFxuXHRcdH0pKTtcblx0fVxuXG5cdGdldCBtZW51TW9kZSgpOiBNZW51TW9kZSB7XG5cdFx0cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZTtcblx0fVxuXHRzZXQgbWVudU1vZGUoX3ZhbDogTWVudU1vZGUpIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiAoe1xuXHRcdFx0Li4uY29uZmlnLFxuXHRcdFx0bWVudU1vZGU6IF92YWwsXG5cdFx0fSkpO1xuXHRcdGlmIChcblx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW1QbHVzKCkgfHxcblx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fFxuXHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmlzSG9yaXpvbnRhbCgpXG5cdFx0KSB7XG5cdFx0XHR0aGlzLm1lbnVTZXJ2aWNlLnJlc2V0KCk7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IGNvbG9yU2NoZW1lKCk6IENvbG9yU2NoZW1lIHtcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lO1xuXHR9XG5cdHNldCBjb2xvclNjaGVtZShfdmFsOiBDb2xvclNjaGVtZSkge1xuXHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcudXBkYXRlKChjb25maWcpID0+ICh7XG5cdFx0XHQuLi5jb25maWcsXG5cdFx0XHRjb2xvclNjaGVtZTogX3ZhbCxcblx0XHR9KSk7XG5cdH1cblxuXHRnZXQgaW5wdXRTdHlsZSgpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuaW5wdXRTdHlsZTtcblx0fVxuXHRzZXQgaW5wdXRTdHlsZShfdmFsOiBzdHJpbmcpIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiAoe1xuXHRcdFx0Li4uY29uZmlnLFxuXHRcdFx0aW5wdXRTdHlsZTogX3ZhbCxcblx0XHR9KSk7XG5cdH1cblxuXHRnZXQgcmlwcGxlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkucmlwcGxlO1xuXHR9XG5cdHNldCByaXBwbGUoX3ZhbDogYm9vbGVhbikge1xuXHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcudXBkYXRlKChjb25maWcpID0+ICh7XG5cdFx0XHQuLi5jb25maWcsXG5cdFx0XHRyaXBwbGU6IF92YWwsXG5cdFx0fSkpO1xuXHR9XG5cblx0Z2V0IG1lbnVUaGVtZSgpOiBNZW51Q29sb3JTY2hlbWUge1xuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudVRoZW1lO1xuXHR9XG5cdHNldCBtZW51VGhlbWUoX3ZhbDogTWVudUNvbG9yU2NoZW1lKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHtcblx0XHRcdC4uLmNvbmZpZyxcblx0XHRcdG1lbnVUaGVtZTogX3ZhbCxcblx0XHR9KSk7XG5cdH1cblxuXHRnZXQgdGhlbWUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLnRoZW1lO1xuXHR9XG5cdHNldCB0aGVtZShfdmFsOiBzdHJpbmcpIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiAoe1xuXHRcdFx0Li4uY29uZmlnLFxuXHRcdFx0dGhlbWU6IF92YWwsXG5cdFx0fSkpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5jb21wb25lbnRUaGVtZXMgPSBbXG5cdFx0XHR7IG5hbWU6ICdpbmRpZ28nLCBjb2xvcjogJyM2MzY2RjEnIH0sXG5cdFx0XHR7IG5hbWU6ICdibHVlJywgY29sb3I6ICcjM0I4MkY2JyB9LFxuXHRcdFx0eyBuYW1lOiAncHVycGxlJywgY29sb3I6ICcjOEI1Q0Y2JyB9LFxuXHRcdFx0eyBuYW1lOiAndGVhbCcsIGNvbG9yOiAnIzE0QjhBNicgfSxcblx0XHRcdHsgbmFtZTogJ2N5YW4nLCBjb2xvcjogJyMwNmI2ZDQnIH0sXG5cdFx0XHR7IG5hbWU6ICdncmVlbicsIGNvbG9yOiAnIzEwYjk4MScgfSxcblx0XHRcdHsgbmFtZTogJ29yYW5nZScsIGNvbG9yOiAnI2Y1OWUwYicgfSxcblx0XHRcdHsgbmFtZTogJ3BpbmsnLCBjb2xvcjogJyNkOTQ2ZWYnIH0sXG5cdFx0XTtcblx0fVxuXG5cdG9uQ29uZmlnQnV0dG9uQ2xpY2soKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnNob3dDb25maWdTaWRlYmFyKCk7XG5cdH1cblxuXHRjaGFuZ2VDb2xvclNjaGVtZShjb2xvclNjaGVtZTogQ29sb3JTY2hlbWUpIHtcblx0XHR0aGlzLmNvbG9yU2NoZW1lID0gY29sb3JTY2hlbWU7XG5cdH1cblxuXHRjaGFuZ2VUaGVtZSh0aGVtZTogc3RyaW5nKSB7XG5cdFx0dGhpcy50aGVtZSA9IHRoZW1lO1xuXHR9XG5cblx0ZGVjcmVtZW50U2NhbGUoKSB7XG5cdFx0dGhpcy5zY2FsZS0tO1xuXHR9XG5cblx0aW5jcmVtZW50U2NhbGUoKSB7XG5cdFx0dGhpcy5zY2FsZSsrO1xuXHR9XG59XG4iLCI8YnV0dG9uXG5cdGNsYXNzPVwibGF5b3V0LWNvbmZpZy1idXR0b24gcC1saW5rXCJcblx0dHlwZT1cImJ1dHRvblwiXG5cdChjbGljayk9XCJvbkNvbmZpZ0J1dHRvbkNsaWNrKClcIj5cblx0PGkgY2xhc3M9XCJwaSBwaS1jb2dcIj48L2k+XG48L2J1dHRvbj5cblxuPHAtc2lkZWJhclxuXHRbKHZpc2libGUpXT1cInZpc2libGVcIlxuXHRwb3NpdGlvbj1cInJpZ2h0XCJcblx0W3RyYW5zaXRpb25PcHRpb25zXT1cIicuM3MgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknXCJcblx0c3R5bGVDbGFzcz1cImxheW91dC1jb25maWctc2lkZWJhciB3LTE4cmVtXCI+XG5cdDxoNT5UaGVtZXM8L2g1PlxuXHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgcm93LWdhcC0zXCI+XG5cdFx0QGZvciAodGhlbWUgb2YgY29tcG9uZW50VGhlbWVzOyB0cmFjayB0aGVtZSkge1xuXHRcdFx0PGRpdiBjbGFzcz1cInctM1wiPlxuXHRcdFx0XHQ8YnV0dG9uXG5cdFx0XHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRcdFx0Y2xhc3M9XCJjdXJzb3ItcG9pbnRlciBwLWxpbmsgdy0ycmVtIGgtMnJlbSBib3JkZXItY2lyY2xlIGZsZXgtc2hyaW5rLTAgZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiXG5cdFx0XHRcdFx0KGNsaWNrKT1cImNoYW5nZVRoZW1lKHRoZW1lLm5hbWUpXCJcblx0XHRcdFx0XHRbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogdGhlbWUuY29sb3IgfVwiPlxuXHRcdFx0XHRcdEBpZiAodGhlbWUubmFtZSA9PSB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkudGhlbWUpIHtcblx0XHRcdFx0XHRcdDxpIGNsYXNzPVwicGkgcGktY2hlY2sgdGV4dC13aGl0ZVwiPjwvaT5cblx0XHRcdFx0XHR9XG5cdFx0XHRcdDwvYnV0dG9uPlxuXHRcdFx0PC9kaXY+XG5cdFx0fVxuXHQ8L2Rpdj5cblxuXHQ8aDU+U2NhbGU8L2g1PlxuXHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cblx0XHQ8YnV0dG9uXG5cdFx0XHRpY29uPVwicGkgcGktbWludXNcIlxuXHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRwQnV0dG9uXG5cdFx0XHQoY2xpY2spPVwiZGVjcmVtZW50U2NhbGUoKVwiXG5cdFx0XHRjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCB3LTJyZW0gaC0ycmVtIG1yLTJcIlxuXHRcdFx0W2Rpc2FibGVkXT1cInNjYWxlID09PSBzY2FsZXNbMF1cIj48L2J1dHRvbj5cblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBnYXAtMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cblx0XHRcdEBmb3IgKHMgb2Ygc2NhbGVzOyB0cmFjayBzKSB7XG5cdFx0XHRcdDxpXG5cdFx0XHRcdFx0Y2xhc3M9XCJwaSBwaS1jaXJjbGUtZmlsbCB0ZXh0LTMwMFwiXG5cdFx0XHRcdFx0W25nQ2xhc3NdPVwieyAndGV4dC1wcmltYXJ5LTUwMCc6IHMgPT09IHNjYWxlIH1cIj48L2k+XG5cdFx0XHR9XG5cdFx0PC9kaXY+XG5cdFx0PGJ1dHRvblxuXHRcdFx0aWNvbj1cInBpIHBpLXBsdXNcIlxuXHRcdFx0dHlwZT1cImJ1dHRvblwiXG5cdFx0XHRwQnV0dG9uXG5cdFx0XHQoY2xpY2spPVwiaW5jcmVtZW50U2NhbGUoKVwiXG5cdFx0XHRjbGFzcz1cInAtYnV0dG9uLXRleHQgcC1idXR0b24tcm91bmRlZCB3LTJyZW0gaC0ycmVtIG1sLTJcIlxuXHRcdFx0W2Rpc2FibGVkXT1cInNjYWxlID09PSBzY2FsZXNbc2NhbGVzLmxlbmd0aCAtIDFdXCI+PC9idXR0b24+XG5cdDwvZGl2PlxuXG5cdEBpZiAoIW1pbmltYWwpIHtcblx0XHQ8aDU+TWVudSBUeXBlPC9oNT5cblx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgcm93LWdhcC0zXCI+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgdy02XCI+XG5cdFx0XHRcdDxwLXJhZGlvQnV0dG9uXG5cdFx0XHRcdFx0bmFtZT1cIm1lbnVNb2RlXCJcblx0XHRcdFx0XHR2YWx1ZT1cInN0YXRpY1wiXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0aW5wdXRJZD1cIm1vZGUxXCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdFx0XHQ8bGFiZWwgZm9yPVwibW9kZTFcIj5TdGF0aWM8L2xhYmVsPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgdy02XCI+XG5cdFx0XHRcdDxwLXJhZGlvQnV0dG9uXG5cdFx0XHRcdFx0bmFtZT1cIm1lbnVNb2RlXCJcblx0XHRcdFx0XHR2YWx1ZT1cIm92ZXJsYXlcIlxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwibWVudU1vZGVcIlxuXHRcdFx0XHRcdGlucHV0SWQ9XCJtb2RlMlwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGUyXCI+T3ZlcmxheTwvbGFiZWw+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiB3LTZcIj5cblx0XHRcdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdFx0XHRuYW1lPVwibWVudU1vZGVcIlxuXHRcdFx0XHRcdHZhbHVlPVwic2xpbVwiXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0aW5wdXRJZD1cIm1vZGUzXCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdFx0XHQ8bGFiZWwgZm9yPVwibW9kZTNcIj5TbGltPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHctNlwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRcdG5hbWU9XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0dmFsdWU9XCJzbGltLXBsdXNcIlxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwibWVudU1vZGVcIlxuXHRcdFx0XHRcdGlucHV0SWQ9XCJtb2RlNFwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGUzXCI+U2xpbSArPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHctNlwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRcdG5hbWU9XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0dmFsdWU9XCJyZXZlYWxcIlxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwibWVudU1vZGVcIlxuXHRcdFx0XHRcdGlucHV0SWQ9XCJtb2RlNlwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGU1XCI+UmV2ZWFsPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHctNlwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRcdG5hbWU9XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0dmFsdWU9XCJkcmF3ZXJcIlxuXHRcdFx0XHRcdFsobmdNb2RlbCldPVwibWVudU1vZGVcIlxuXHRcdFx0XHRcdGlucHV0SWQ9XCJtb2RlN1wiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGU2XCI+RHJhd2VyPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHctNlwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRcdG5hbWU9XCJtZW51TW9kZVwiXG5cdFx0XHRcdFx0dmFsdWU9XCJob3Jpem9udGFsXCJcblx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cIm1lbnVNb2RlXCJcblx0XHRcdFx0XHRpbnB1dElkPVwibW9kZTVcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHRcdDxsYWJlbCBmb3I9XCJtb2RlNFwiPkhvcml6b250YWw8L2xhYmVsPlxuXHRcdFx0PC9kaXY+XG5cdFx0PC9kaXY+XG5cdFx0PGg1Pk1lbnUgVGhlbWU8L2g1PlxuXHRcdDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuXHRcdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdFx0bmFtZT1cIm1lbnVUaGVtZVwiXG5cdFx0XHRcdHZhbHVlPVwiY29sb3JTY2hlbWVcIlxuXHRcdFx0XHRbKG5nTW9kZWwpXT1cIm1lbnVUaGVtZVwiXG5cdFx0XHRcdGlucHV0SWQ9XCJtZW51dGhlbWUtY29sb3JzY2hlbWVcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHQ8bGFiZWwgZm9yPVwibWVudXRoZW1lLWNvbG9yc2NoZW1lXCI+Q29sb3IgU2NoZW1lPC9sYWJlbD5cblx0XHQ8L2Rpdj5cblx0XHQ8ZGl2IGNsYXNzPVwiZmllbGQtcmFkaW9idXR0b25cIj5cblx0XHRcdDxwLXJhZGlvQnV0dG9uXG5cdFx0XHRcdG5hbWU9XCJtZW51VGhlbWVcIlxuXHRcdFx0XHR2YWx1ZT1cInByaW1hcnlDb2xvclwiXG5cdFx0XHRcdFsobmdNb2RlbCldPVwibWVudVRoZW1lXCJcblx0XHRcdFx0aW5wdXRJZD1cIm1lbnV0aGVtZS1wcmltYXJ5Y29sb3JcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHQ8bGFiZWwgZm9yPVwibWVudXRoZW1lLXByaW1hcnljb2xvclwiPlByaW1hcnkgQ29sb3I8L2xhYmVsPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuXHRcdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdFx0bmFtZT1cIm1lbnVUaGVtZVwiXG5cdFx0XHRcdHZhbHVlPVwidHJhbnNwYXJlbnRcIlxuXHRcdFx0XHRbKG5nTW9kZWwpXT1cIm1lbnVUaGVtZVwiXG5cdFx0XHRcdGlucHV0SWQ9XCJtZW51dGhlbWUtdHJhbnNwYXJlbnRcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHQ8bGFiZWwgZm9yPVwibWVudXRoZW1lLXRyYW5zcGFyZW50XCI+VHJhbnNwYXJlbnQ8L2xhYmVsPlxuXHRcdDwvZGl2PlxuXHR9XG5cblx0PGg1PkNvbG9yIFNjaGVtZTwvaDU+XG5cdDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuXHRcdDxwLXJhZGlvQnV0dG9uXG5cdFx0XHRuYW1lPVwiY29sb3JTY2hlbWVcIlxuXHRcdFx0dmFsdWU9XCJsaWdodFwiXG5cdFx0XHRbKG5nTW9kZWwpXT1cImNvbG9yU2NoZW1lXCJcblx0XHRcdGlucHV0SWQ9XCJtb2RlLWxpZ2h0XCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdDxsYWJlbCBmb3I9XCJtb2RlLWxpZ2h0XCI+TGlnaHQ8L2xhYmVsPlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uXCI+XG5cdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdG5hbWU9XCJjb2xvclNjaGVtZVwiXG5cdFx0XHR2YWx1ZT1cImRpbVwiXG5cdFx0XHRbKG5nTW9kZWwpXT1cImNvbG9yU2NoZW1lXCJcblx0XHRcdGlucHV0SWQ9XCJtb2RlLWRpbVwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHQ8bGFiZWwgZm9yPVwibW9kZS1kaW1cIj5EaW08L2xhYmVsPlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uXCI+XG5cdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdG5hbWU9XCJjb2xvclNjaGVtZVwiXG5cdFx0XHR2YWx1ZT1cImRhcmtcIlxuXHRcdFx0WyhuZ01vZGVsKV09XCJjb2xvclNjaGVtZVwiXG5cdFx0XHRpbnB1dElkPVwibW9kZS1kYXJrXCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdDxsYWJlbCBmb3I9XCJtb2RlLWRhcmtcIj5EYXJrPC9sYWJlbD5cblx0PC9kaXY+XG5cblx0QGlmICghbWluaW1hbCkge1xuXHRcdDxoNT5JbnB1dCBTdHlsZTwvaDU+XG5cdFx0PGRpdiBjbGFzcz1cImZsZXhcIj5cblx0XHRcdDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvbiBmbGV4LTFcIj5cblx0XHRcdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdFx0XHRuYW1lPVwiaW5wdXRTdHlsZVwiXG5cdFx0XHRcdFx0dmFsdWU9XCJvdXRsaW5lZFwiXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJpbnB1dFN0eWxlXCJcblx0XHRcdFx0XHRpbnB1dElkPVwib3V0bGluZWRfaW5wdXRcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHRcdDxsYWJlbCBmb3I9XCJvdXRsaW5lZF9pbnB1dFwiPk91dGxpbmVkPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uIGZsZXgtMVwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRcdG5hbWU9XCJpbnB1dFN0eWxlXCJcblx0XHRcdFx0XHR2YWx1ZT1cImZpbGxlZFwiXG5cdFx0XHRcdFx0WyhuZ01vZGVsKV09XCJpbnB1dFN0eWxlXCJcblx0XHRcdFx0XHRpbnB1dElkPVwiZmlsbGVkX2lucHV0XCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdFx0XHQ8bGFiZWwgZm9yPVwiZmlsbGVkX2lucHV0XCI+RmlsbGVkPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxoNT5SaXBwbGUgRWZmZWN0PC9oNT5cblx0XHQ8cC1pbnB1dFN3aXRjaCBbKG5nTW9kZWwpXT1cInJpcHBsZVwiPjwvcC1pbnB1dFN3aXRjaD5cblx0fVxuPC9wLXNpZGViYXI+XG4iXX0=
132
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmNvbmZpZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvY29uZmlnL2FwcC5jb25maWcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2NvbmZpZy9hcHAuY29uZmlnLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7Ozs7OztBQVd4RCxNQUFNLE9BQU8sa0JBQWtCO0lBTzlCLFlBQ1EsYUFBNEIsRUFDNUIsV0FBd0I7UUFEeEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFSdkIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUVsQyxvQkFBZSxHQUFVLEVBQUUsQ0FBQztRQUU1QixXQUFNLEdBQWEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFLckMsQ0FBQztJQUVKLElBQUksT0FBTztRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsb0JBQW9C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UUFDYixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZCxDQUFDO0lBRUQsY0FBYztRQUNiLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNkLENBQUM7OEdBM0hXLGtCQUFrQjtrR0FBbEIsa0JBQWtCLHNHQ2xCL0IsZ29MQThJQSwyQ0QvSFcsV0FBVyw4VkFBRSxhQUFhLDRXQUFFLGlCQUFpQixvVEFBRSxZQUFZLHNLQUFFLGlCQUFpQixnUkFBRSxPQUFPLDJFQUFFLE9BQU87OzJGQUc5RixrQkFBa0I7a0JBTjlCLFNBQVM7aUNBQ0csSUFBSSxZQUNOLFlBQVksV0FDYixDQUFDLFdBQVcsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7NEdBSWxHLE9BQU87c0JBQWYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdTdHlsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgU2lkZWJhck1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvc2lkZWJhcic7XG5pbXBvcnQgeyBSYWRpb0J1dHRvbk1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcmFkaW9idXR0b24nO1xuaW1wb3J0IHsgQnV0dG9uTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9idXR0b24nO1xuaW1wb3J0IHsgSW5wdXRTd2l0Y2hNb2R1bGUgfSBmcm9tICdwcmltZW5nL2lucHV0c3dpdGNoJztcblxuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29sb3JTY2hlbWUsIExheW91dFNlcnZpY2UsIE1lbnVDb2xvclNjaGVtZSwgTWVudU1vZGUgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzZWxlY3RvcjogJ2FwcC1jb25maWcnLFxuXHRpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFNpZGViYXJNb2R1bGUsIFJhZGlvQnV0dG9uTW9kdWxlLCBCdXR0b25Nb2R1bGUsIElucHV0U3dpdGNoTW9kdWxlLCBOZ1N0eWxlLCBOZ0NsYXNzXSxcblx0dGVtcGxhdGVVcmw6ICcuL2FwcC5jb25maWcuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFwcENvbmZpZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cdEBJbnB1dCgpIG1pbmltYWw6IGJvb2xlYW4gPSBmYWxzZTtcblxuXHRjb21wb25lbnRUaGVtZXM6IGFueVtdID0gW107XG5cblx0c2NhbGVzOiBudW1iZXJbXSA9IFsxMiwgMTMsIDE0LCAxNSwgMTZdO1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxuXHRcdHB1YmxpYyBtZW51U2VydmljZTogTWVudVNlcnZpY2Vcblx0KSB7fVxuXG5cdGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuY29uZmlnU2lkZWJhclZpc2libGU7XG5cdH1cblx0c2V0IHZpc2libGUoX3ZhbDogYm9vbGVhbikge1xuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5jb25maWdTaWRlYmFyVmlzaWJsZSA9IF92YWw7XG5cdH1cblxuXHRnZXQgc2NhbGUoKTogbnVtYmVyIHtcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLnNjYWxlO1xuXHR9XG5cdHNldCBzY2FsZShfdmFsOiBudW1iZXIpIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiAoe1xuXHRcdFx0Li4uY29uZmlnLFxuXHRcdFx0c2NhbGU6IF92YWxcblx0XHR9KSk7XG5cdH1cblxuXHRnZXQgbWVudU1vZGUoKTogTWVudU1vZGUge1xuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGU7XG5cdH1cblx0c2V0IG1lbnVNb2RlKF92YWw6IE1lbnVNb2RlKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHtcblx0XHRcdC4uLmNvbmZpZyxcblx0XHRcdG1lbnVNb2RlOiBfdmFsXG5cdFx0fSkpO1xuXHRcdGlmICh0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNIb3Jpem9udGFsKCkpIHtcblx0XHRcdHRoaXMubWVudVNlcnZpY2UucmVzZXQoKTtcblx0XHR9XG5cdH1cblxuXHRnZXQgY29sb3JTY2hlbWUoKTogQ29sb3JTY2hlbWUge1xuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuY29sb3JTY2hlbWU7XG5cdH1cblx0c2V0IGNvbG9yU2NoZW1lKF92YWw6IENvbG9yU2NoZW1lKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHtcblx0XHRcdC4uLmNvbmZpZyxcblx0XHRcdGNvbG9yU2NoZW1lOiBfdmFsXG5cdFx0fSkpO1xuXHR9XG5cblx0Z2V0IGlucHV0U3R5bGUoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmlucHV0U3R5bGU7XG5cdH1cblx0c2V0IGlucHV0U3R5bGUoX3ZhbDogc3RyaW5nKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHtcblx0XHRcdC4uLmNvbmZpZyxcblx0XHRcdGlucHV0U3R5bGU6IF92YWxcblx0XHR9KSk7XG5cdH1cblxuXHRnZXQgcmlwcGxlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkucmlwcGxlO1xuXHR9XG5cdHNldCByaXBwbGUoX3ZhbDogYm9vbGVhbikge1xuXHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcudXBkYXRlKChjb25maWcpID0+ICh7XG5cdFx0XHQuLi5jb25maWcsXG5cdFx0XHRyaXBwbGU6IF92YWxcblx0XHR9KSk7XG5cdH1cblxuXHRnZXQgbWVudVRoZW1lKCk6IE1lbnVDb2xvclNjaGVtZSB7XG5cdFx0cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51VGhlbWU7XG5cdH1cblx0c2V0IG1lbnVUaGVtZShfdmFsOiBNZW51Q29sb3JTY2hlbWUpIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnLnVwZGF0ZSgoY29uZmlnKSA9PiAoe1xuXHRcdFx0Li4uY29uZmlnLFxuXHRcdFx0bWVudVRoZW1lOiBfdmFsXG5cdFx0fSkpO1xuXHR9XG5cblx0Z2V0IHRoZW1lKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS50aGVtZTtcblx0fVxuXHRzZXQgdGhlbWUoX3ZhbDogc3RyaW5nKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZy51cGRhdGUoKGNvbmZpZykgPT4gKHtcblx0XHRcdC4uLmNvbmZpZyxcblx0XHRcdHRoZW1lOiBfdmFsXG5cdFx0fSkpO1xuXHR9XG5cblx0bmdPbkluaXQoKSB7XG5cdFx0dGhpcy5jb21wb25lbnRUaGVtZXMgPSBbXG5cdFx0XHR7IG5hbWU6ICdpbmRpZ28nLCBjb2xvcjogJyM2MzY2RjEnIH0sXG5cdFx0XHR7IG5hbWU6ICdibHVlJywgY29sb3I6ICcjM0I4MkY2JyB9LFxuXHRcdFx0eyBuYW1lOiAncHVycGxlJywgY29sb3I6ICcjOEI1Q0Y2JyB9LFxuXHRcdFx0eyBuYW1lOiAndGVhbCcsIGNvbG9yOiAnIzE0QjhBNicgfSxcblx0XHRcdHsgbmFtZTogJ2N5YW4nLCBjb2xvcjogJyMwNmI2ZDQnIH0sXG5cdFx0XHR7IG5hbWU6ICdncmVlbicsIGNvbG9yOiAnIzEwYjk4MScgfSxcblx0XHRcdHsgbmFtZTogJ29yYW5nZScsIGNvbG9yOiAnI2Y1OWUwYicgfSxcblx0XHRcdHsgbmFtZTogJ3BpbmsnLCBjb2xvcjogJyNkOTQ2ZWYnIH1cblx0XHRdO1xuXHR9XG5cblx0b25Db25maWdCdXR0b25DbGljaygpIHtcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc2hvd0NvbmZpZ1NpZGViYXIoKTtcblx0fVxuXG5cdGNoYW5nZUNvbG9yU2NoZW1lKGNvbG9yU2NoZW1lOiBDb2xvclNjaGVtZSkge1xuXHRcdHRoaXMuY29sb3JTY2hlbWUgPSBjb2xvclNjaGVtZTtcblx0fVxuXG5cdGNoYW5nZVRoZW1lKHRoZW1lOiBzdHJpbmcpIHtcblx0XHR0aGlzLnRoZW1lID0gdGhlbWU7XG5cdH1cblxuXHRkZWNyZW1lbnRTY2FsZSgpIHtcblx0XHR0aGlzLnNjYWxlLS07XG5cdH1cblxuXHRpbmNyZW1lbnRTY2FsZSgpIHtcblx0XHR0aGlzLnNjYWxlKys7XG5cdH1cbn1cbiIsIjxidXR0b24gY2xhc3M9XCJsYXlvdXQtY29uZmlnLWJ1dHRvbiBwLWxpbmtcIiB0eXBlPVwiYnV0dG9uXCIgKGNsaWNrKT1cIm9uQ29uZmlnQnV0dG9uQ2xpY2soKVwiPlxuXHQ8aSBjbGFzcz1cInBpIHBpLWNvZ1wiPjwvaT5cbjwvYnV0dG9uPlxuXG48cC1zaWRlYmFyXG5cdFsodmlzaWJsZSldPVwidmlzaWJsZVwiXG5cdHBvc2l0aW9uPVwicmlnaHRcIlxuXHRbdHJhbnNpdGlvbk9wdGlvbnNdPVwiJy4zcyBjdWJpYy1iZXppZXIoMCwgMCwgMC4yLCAxKSdcIlxuXHRzdHlsZUNsYXNzPVwibGF5b3V0LWNvbmZpZy1zaWRlYmFyIHctMThyZW1cIj5cblx0PGg1PlRoZW1lczwvaDU+XG5cdDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCByb3ctZ2FwLTNcIj5cblx0XHRAZm9yICh0aGVtZSBvZiBjb21wb25lbnRUaGVtZXM7IHRyYWNrIHRoZW1lKSB7XG5cdFx0XHQ8ZGl2IGNsYXNzPVwidy0zXCI+XG5cdFx0XHRcdDxidXR0b25cblx0XHRcdFx0XHR0eXBlPVwiYnV0dG9uXCJcblx0XHRcdFx0XHRjbGFzcz1cImN1cnNvci1wb2ludGVyIHAtbGluayB3LTJyZW0gaC0ycmVtIGJvcmRlci1jaXJjbGUgZmxleC1zaHJpbmstMCBmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCJcblx0XHRcdFx0XHQoY2xpY2spPVwiY2hhbmdlVGhlbWUodGhlbWUubmFtZSlcIlxuXHRcdFx0XHRcdFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiB0aGVtZS5jb2xvciB9XCI+XG5cdFx0XHRcdFx0QGlmICh0aGVtZS5uYW1lID09IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS50aGVtZSkge1xuXHRcdFx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1jaGVjayB0ZXh0LXdoaXRlXCI+PC9pPlxuXHRcdFx0XHRcdH1cblx0XHRcdFx0PC9idXR0b24+XG5cdFx0XHQ8L2Rpdj5cblx0XHR9XG5cdDwvZGl2PlxuXG5cdDxoNT5TY2FsZTwvaDU+XG5cdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuXHRcdDxidXR0b25cblx0XHRcdGljb249XCJwaSBwaS1taW51c1wiXG5cdFx0XHR0eXBlPVwiYnV0dG9uXCJcblx0XHRcdHBCdXR0b25cblx0XHRcdChjbGljayk9XCJkZWNyZW1lbnRTY2FsZSgpXCJcblx0XHRcdGNsYXNzPVwicC1idXR0b24tdGV4dCBwLWJ1dHRvbi1yb3VuZGVkIHctMnJlbSBoLTJyZW0gbXItMlwiXG5cdFx0XHRbZGlzYWJsZWRdPVwic2NhbGUgPT09IHNjYWxlc1swXVwiPjwvYnV0dG9uPlxuXHRcdDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuXHRcdFx0QGZvciAocyBvZiBzY2FsZXM7IHRyYWNrIHMpIHtcblx0XHRcdFx0PGkgY2xhc3M9XCJwaSBwaS1jaXJjbGUtZmlsbCB0ZXh0LTMwMFwiIFtuZ0NsYXNzXT1cInsgJ3RleHQtcHJpbWFyeS01MDAnOiBzID09PSBzY2FsZSB9XCI+PC9pPlxuXHRcdFx0fVxuXHRcdDwvZGl2PlxuXHRcdDxidXR0b25cblx0XHRcdGljb249XCJwaSBwaS1wbHVzXCJcblx0XHRcdHR5cGU9XCJidXR0b25cIlxuXHRcdFx0cEJ1dHRvblxuXHRcdFx0KGNsaWNrKT1cImluY3JlbWVudFNjYWxlKClcIlxuXHRcdFx0Y2xhc3M9XCJwLWJ1dHRvbi10ZXh0IHAtYnV0dG9uLXJvdW5kZWQgdy0ycmVtIGgtMnJlbSBtbC0yXCJcblx0XHRcdFtkaXNhYmxlZF09XCJzY2FsZSA9PT0gc2NhbGVzW3NjYWxlcy5sZW5ndGggLSAxXVwiPjwvYnV0dG9uPlxuXHQ8L2Rpdj5cblxuXHRAaWYgKCFtaW5pbWFsKSB7XG5cdFx0PGg1Pk1lbnUgVHlwZTwvaDU+XG5cdFx0PGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIHJvdy1nYXAtM1wiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHctNlwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvbiBuYW1lPVwibWVudU1vZGVcIiB2YWx1ZT1cInN0YXRpY1wiIFsobmdNb2RlbCldPVwibWVudU1vZGVcIiBpbnB1dElkPVwibW9kZTFcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHRcdDxsYWJlbCBmb3I9XCJtb2RlMVwiPlN0YXRpYzwvbGFiZWw+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiB3LTZcIj5cblx0XHRcdFx0PHAtcmFkaW9CdXR0b24gbmFtZT1cIm1lbnVNb2RlXCIgdmFsdWU9XCJvdmVybGF5XCIgWyhuZ01vZGVsKV09XCJtZW51TW9kZVwiIGlucHV0SWQ9XCJtb2RlMlwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGUyXCI+T3ZlcmxheTwvbGFiZWw+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiB3LTZcIj5cblx0XHRcdFx0PHAtcmFkaW9CdXR0b24gbmFtZT1cIm1lbnVNb2RlXCIgdmFsdWU9XCJzbGltXCIgWyhuZ01vZGVsKV09XCJtZW51TW9kZVwiIGlucHV0SWQ9XCJtb2RlM1wiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGUzXCI+U2xpbTwvbGFiZWw+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiB3LTZcIj5cblx0XHRcdFx0PHAtcmFkaW9CdXR0b24gbmFtZT1cIm1lbnVNb2RlXCIgdmFsdWU9XCJzbGltLXBsdXNcIiBbKG5nTW9kZWwpXT1cIm1lbnVNb2RlXCIgaW5wdXRJZD1cIm1vZGU0XCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdFx0XHQ8bGFiZWwgZm9yPVwibW9kZTNcIj5TbGltICs8L2xhYmVsPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTIgdy02XCI+XG5cdFx0XHRcdDxwLXJhZGlvQnV0dG9uIG5hbWU9XCJtZW51TW9kZVwiIHZhbHVlPVwicmV2ZWFsXCIgWyhuZ01vZGVsKV09XCJtZW51TW9kZVwiIGlucHV0SWQ9XCJtb2RlNlwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGU1XCI+UmV2ZWFsPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiBjbGFzcz1cImZsZXggYWxpZ24taXRlbXMtY2VudGVyIGdhcC0yIHctNlwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvbiBuYW1lPVwibWVudU1vZGVcIiB2YWx1ZT1cImRyYXdlclwiIFsobmdNb2RlbCldPVwibWVudU1vZGVcIiBpbnB1dElkPVwibW9kZTdcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0XHRcdDxsYWJlbCBmb3I9XCJtb2RlNlwiPkRyYXdlcjwvbGFiZWw+XG5cdFx0XHQ8L2Rpdj5cblx0XHRcdDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMiB3LTZcIj5cblx0XHRcdFx0PHAtcmFkaW9CdXR0b24gbmFtZT1cIm1lbnVNb2RlXCIgdmFsdWU9XCJob3Jpem9udGFsXCIgWyhuZ01vZGVsKV09XCJtZW51TW9kZVwiIGlucHV0SWQ9XCJtb2RlNVwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm1vZGU0XCI+SG9yaXpvbnRhbDwvbGFiZWw+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L2Rpdj5cblx0XHQ8aDU+TWVudSBUaGVtZTwvaDU+XG5cdFx0PGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uXCI+XG5cdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRuYW1lPVwibWVudVRoZW1lXCJcblx0XHRcdFx0dmFsdWU9XCJjb2xvclNjaGVtZVwiXG5cdFx0XHRcdFsobmdNb2RlbCldPVwibWVudVRoZW1lXCJcblx0XHRcdFx0aW5wdXRJZD1cIm1lbnV0aGVtZS1jb2xvcnNjaGVtZVwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdDxsYWJlbCBmb3I9XCJtZW51dGhlbWUtY29sb3JzY2hlbWVcIj5Db2xvciBTY2hlbWU8L2xhYmVsPlxuXHRcdDwvZGl2PlxuXHRcdDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuXHRcdFx0PHAtcmFkaW9CdXR0b25cblx0XHRcdFx0bmFtZT1cIm1lbnVUaGVtZVwiXG5cdFx0XHRcdHZhbHVlPVwicHJpbWFyeUNvbG9yXCJcblx0XHRcdFx0WyhuZ01vZGVsKV09XCJtZW51VGhlbWVcIlxuXHRcdFx0XHRpbnB1dElkPVwibWVudXRoZW1lLXByaW1hcnljb2xvclwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdDxsYWJlbCBmb3I9XCJtZW51dGhlbWUtcHJpbWFyeWNvbG9yXCI+UHJpbWFyeSBDb2xvcjwvbGFiZWw+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uXCI+XG5cdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRuYW1lPVwibWVudVRoZW1lXCJcblx0XHRcdFx0dmFsdWU9XCJ0cmFuc3BhcmVudFwiXG5cdFx0XHRcdFsobmdNb2RlbCldPVwibWVudVRoZW1lXCJcblx0XHRcdFx0aW5wdXRJZD1cIm1lbnV0aGVtZS10cmFuc3BhcmVudFwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdDxsYWJlbCBmb3I9XCJtZW51dGhlbWUtdHJhbnNwYXJlbnRcIj5UcmFuc3BhcmVudDwvbGFiZWw+XG5cdFx0PC9kaXY+XG5cdH1cblxuXHQ8aDU+Q29sb3IgU2NoZW1lPC9oNT5cblx0PGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uXCI+XG5cdFx0PHAtcmFkaW9CdXR0b24gbmFtZT1cImNvbG9yU2NoZW1lXCIgdmFsdWU9XCJsaWdodFwiIFsobmdNb2RlbCldPVwiY29sb3JTY2hlbWVcIiBpbnB1dElkPVwibW9kZS1saWdodFwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHQ8bGFiZWwgZm9yPVwibW9kZS1saWdodFwiPkxpZ2h0PC9sYWJlbD5cblx0PC9kaXY+XG5cdDxkaXYgY2xhc3M9XCJmaWVsZC1yYWRpb2J1dHRvblwiPlxuXHRcdDxwLXJhZGlvQnV0dG9uIG5hbWU9XCJjb2xvclNjaGVtZVwiIHZhbHVlPVwiZGltXCIgWyhuZ01vZGVsKV09XCJjb2xvclNjaGVtZVwiIGlucHV0SWQ9XCJtb2RlLWRpbVwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHQ8bGFiZWwgZm9yPVwibW9kZS1kaW1cIj5EaW08L2xhYmVsPlxuXHQ8L2Rpdj5cblx0PGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uXCI+XG5cdFx0PHAtcmFkaW9CdXR0b24gbmFtZT1cImNvbG9yU2NoZW1lXCIgdmFsdWU9XCJkYXJrXCIgWyhuZ01vZGVsKV09XCJjb2xvclNjaGVtZVwiIGlucHV0SWQ9XCJtb2RlLWRhcmtcIj48L3AtcmFkaW9CdXR0b24+XG5cdFx0PGxhYmVsIGZvcj1cIm1vZGUtZGFya1wiPkRhcms8L2xhYmVsPlxuXHQ8L2Rpdj5cblxuXHRAaWYgKCFtaW5pbWFsKSB7XG5cdFx0PGg1PklucHV0IFN0eWxlPC9oNT5cblx0XHQ8ZGl2IGNsYXNzPVwiZmxleFwiPlxuXHRcdFx0PGRpdiBjbGFzcz1cImZpZWxkLXJhZGlvYnV0dG9uIGZsZXgtMVwiPlxuXHRcdFx0XHQ8cC1yYWRpb0J1dHRvblxuXHRcdFx0XHRcdG5hbWU9XCJpbnB1dFN0eWxlXCJcblx0XHRcdFx0XHR2YWx1ZT1cIm91dGxpbmVkXCJcblx0XHRcdFx0XHRbKG5nTW9kZWwpXT1cImlucHV0U3R5bGVcIlxuXHRcdFx0XHRcdGlucHV0SWQ9XCJvdXRsaW5lZF9pbnB1dFwiPjwvcC1yYWRpb0J1dHRvbj5cblx0XHRcdFx0PGxhYmVsIGZvcj1cIm91dGxpbmVkX2lucHV0XCI+T3V0bGluZWQ8L2xhYmVsPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2IGNsYXNzPVwiZmllbGQtcmFkaW9idXR0b24gZmxleC0xXCI+XG5cdFx0XHRcdDxwLXJhZGlvQnV0dG9uIG5hbWU9XCJpbnB1dFN0eWxlXCIgdmFsdWU9XCJmaWxsZWRcIiBbKG5nTW9kZWwpXT1cImlucHV0U3R5bGVcIiBpbnB1dElkPVwiZmlsbGVkX2lucHV0XCI+PC9wLXJhZGlvQnV0dG9uPlxuXHRcdFx0XHQ8bGFiZWwgZm9yPVwiZmlsbGVkX2lucHV0XCI+RmlsbGVkPC9sYWJlbD5cblx0XHRcdDwvZGl2PlxuXHRcdDwvZGl2PlxuXHRcdDxoNT5SaXBwbGUgRWZmZWN0PC9oNT5cblx0XHQ8cC1pbnB1dFN3aXRjaCBbKG5nTW9kZWwpXT1cInJpcHBsZVwiPjwvcC1pbnB1dFN3aXRjaD5cblx0fVxuPC9wLXNpZGViYXI+XG4iXX0=
@@ -31,7 +31,8 @@ export class AppLayoutComponent {
31
31
  }
32
32
  });
33
33
  }
34
- if ((this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus()) && !this.menuScrollListener) {
34
+ if ((this.layoutService.isHorizontal() || this.layoutService.isSlim() || this.layoutService.isSlimPlus()) &&
35
+ !this.menuScrollListener) {
35
36
  this.menuScrollListener = this.renderer.listen(this.appSidebar.menuContainer.nativeElement, 'scroll', (event) => {
36
37
  if (this.layoutService.isDesktop()) {
37
38
  this.hideMenu();
@@ -62,9 +63,7 @@ export class AppLayoutComponent {
62
63
  document.body.classList.remove('blocked-scroll');
63
64
  }
64
65
  else {
65
- document.body.className = document.body.className.replace(new RegExp('(^|\\b)' +
66
- 'blocked-scroll'.split(' ').join('|') +
67
- '(\\b|$)', 'gi'), ' ');
66
+ document.body.className = document.body.className.replace(new RegExp('(^|\\b)' + 'blocked-scroll'.split(' ').join('|') + '(\\b|$)', 'gi'), ' ');
68
67
  }
69
68
  }
70
69
  hideMenu() {
@@ -97,14 +96,13 @@ export class AppLayoutComponent {
97
96
  'layout-horizontal': this.layoutService.config().menuMode === 'horizontal',
98
97
  'layout-reveal': this.layoutService.config().menuMode === 'reveal',
99
98
  'layout-drawer': this.layoutService.config().menuMode === 'drawer',
100
- 'layout-static-inactive': this.layoutService.state.staticMenuDesktopInactive &&
101
- this.layoutService.config().menuMode === 'static',
99
+ 'layout-static-inactive': this.layoutService.state.staticMenuDesktopInactive && this.layoutService.config().menuMode === 'static',
102
100
  'layout-overlay-active': this.layoutService.state.overlayMenuActive,
103
101
  'layout-mobile-active': this.layoutService.state.staticMenuMobileActive,
104
102
  'p-input-filled': this.layoutService.config().inputStyle === 'filled',
105
103
  'p-ripple-disabled': !this.layoutService.config().ripple,
106
104
  'layout-sidebar-active': this.layoutService.state.sidebarActive,
107
- 'layout-sidebar-anchored': this.layoutService.state.anchored,
105
+ 'layout-sidebar-anchored': this.layoutService.state.anchored
108
106
  };
109
107
  }
110
108
  ngOnDestroy() {
@@ -120,7 +118,15 @@ export class AppLayoutComponent {
120
118
  }
121
119
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImport: i0, type: AppLayoutComponent, decorators: [{
122
120
  type: Component,
123
- args: [{ standalone: true, selector: 'app-layout', imports: [NgClass, RouterOutlet, AppSidebarComponent, AppTopbarComponent, AppBreadcrumbComponent, AppProfileSidebarComponent, AppConfigComponent], template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\n\t<app-sidebar></app-sidebar>\n\t<div class=\"layout-content-wrapper\">\n\t\t<app-topbar></app-topbar>\n\t\t<!-- <app-breadcrumb class=\"content-breadcrumb\"></app-breadcrumb> -->\n\t\t<div class=\"layout-content\">\n\t\t\t<router-outlet></router-outlet>\n\t\t</div>\n\t</div>\n\t<app-profilemenu></app-profilemenu>\n\t<app-config></app-config>\n\t<div class=\"layout-mask\"></div>\n</div>\n" }]
121
+ args: [{ standalone: true, selector: 'app-layout', imports: [
122
+ NgClass,
123
+ RouterOutlet,
124
+ AppSidebarComponent,
125
+ AppTopbarComponent,
126
+ AppBreadcrumbComponent,
127
+ AppProfileSidebarComponent,
128
+ AppConfigComponent
129
+ ], template: "<div class=\"layout-container\" [ngClass]=\"containerClass\">\n\t<app-sidebar></app-sidebar>\n\t<div class=\"layout-content-wrapper\">\n\t\t<app-topbar></app-topbar>\n\t\t<!-- <app-breadcrumb class=\"content-breadcrumb\"></app-breadcrumb> -->\n\t\t<div class=\"layout-content\">\n\t\t\t<router-outlet></router-outlet>\n\t\t</div>\n\t</div>\n\t<app-profilemenu></app-profilemenu>\n\t<app-config></app-config>\n\t<div class=\"layout-mask\"></div>\n</div>\n" }]
124
130
  }], ctorParameters: () => [{ type: i1.MenuService }, { type: i2.LayoutService }, { type: i0.Renderer2 }, { type: i3.Router }, { type: i3.ActivatedRoute }], propDecorators: { appSidebar: [{
125
131
  type: ViewChild,
126
132
  args: [AppSidebarComponent]
@@ -128,4 +134,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.2", ngImpor
128
134
  type: ViewChild,
129
135
  args: [AppTopbarComponent]
130
136
  }] } });
131
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbGF5b3V0L2FwcC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2xheW91dC9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUF3QixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWtCLGFBQWEsRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd0RixPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUc1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFRcEUsTUFBTSxPQUFPLGtCQUFrQjtJQWE5QixZQUNTLFdBQXdCLEVBQ3pCLGFBQTRCLEVBQzVCLFFBQW1CLEVBQ25CLE1BQWMsRUFDYixLQUFxQjtRQUpyQixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN6QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDYixV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RSxrQkFBa0IsRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxrQkFBa0IsQ0FBQztzTEFZakgsVUFBVTtzQkFBekMsU0FBUzt1QkFBQyxtQkFBbUI7Z0JBRUMsU0FBUztzQkFBdkMsU0FBUzt1QkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgT25EZXN0cm95LCBSZW5kZXJlcjIsIFZpZXdDaGlsZCwgZWZmZWN0LCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIE5hdmlnYXRpb25FbmQsIFJvdXRlciwgUm91dGVyT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgTWVudUl0ZW0gfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQgeyBmaWx0ZXIsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBNZW51U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLm1lbnUuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBTaWRlYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vc2lkZWJhci9hcHAuc2lkZWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwVG9wYmFyQ29tcG9uZW50IH0gZnJvbSAnLi4vdG9wYmFyL2FwcC50b3BiYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuLi9icmVhZGNydW1iL2FwcC5icmVhZGNydW1iLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBQcm9maWxlU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4uL3Byb2ZpbGVTaWRlYmFyL2FwcC5wcm9maWxlc2lkZWJhci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGF5b3V0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2UvYXBwLmxheW91dC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcENvbmZpZ0NvbXBvbmVudCB9IGZyb20gJy4uL2NvbmZpZy9hcHAuY29uZmlnLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuXHRzdGFuZGFsb25lOiB0cnVlLFxuXHRzZWxlY3RvcjogJ2FwcC1sYXlvdXQnLFxuXHRpbXBvcnRzOiBbTmdDbGFzcywgUm91dGVyT3V0bGV0LCBBcHBTaWRlYmFyQ29tcG9uZW50LCBBcHBUb3BiYXJDb21wb25lbnQsIEFwcEJyZWFkY3J1bWJDb21wb25lbnQsIEFwcFByb2ZpbGVTaWRlYmFyQ29tcG9uZW50LCBBcHBDb25maWdDb21wb25lbnRdLFxuXHR0ZW1wbGF0ZVVybDogJy4vYXBwLmxheW91dC5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQXBwTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcblx0c2lkZWJhckl0ZW1zID0gaW5wdXQ8TWVudUl0ZW1bXT4oW10pO1xuXG5cdG92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG5cdG1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcjogYW55O1xuXG5cdG1lbnVTY3JvbGxMaXN0ZW5lcjogYW55O1xuXG5cdEBWaWV3Q2hpbGQoQXBwU2lkZWJhckNvbXBvbmVudCkgYXBwU2lkZWJhciE6IEFwcFNpZGViYXJDb21wb25lbnQ7XG5cblx0QFZpZXdDaGlsZChBcHBUb3BiYXJDb21wb25lbnQpIGFwcFRvcGJhciE6IEFwcFRvcGJhckNvbXBvbmVudDtcblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwcml2YXRlIG1lbnVTZXJ2aWNlOiBNZW51U2VydmljZSxcblx0XHRwdWJsaWMgbGF5b3V0U2VydmljZTogTGF5b3V0U2VydmljZSxcblx0XHRwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRwdWJsaWMgcm91dGVyOiBSb3V0ZXIsXG5cdFx0cHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGVcblx0KSB7XG5cdFx0dGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24gPSB0aGlzLmxheW91dFNlcnZpY2Uub3ZlcmxheU9wZW4kLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHRpZiAoIXRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XG5cdFx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oXG5cdFx0XHRcdFx0J2RvY3VtZW50Jyxcblx0XHRcdFx0XHQnY2xpY2snLFxuXHRcdFx0XHRcdChldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0Y29uc3QgaXNPdXRzaWRlQ2xpY2tlZCA9ICEoXG5cdFx0XHRcdFx0XHRcdHRoaXMuYXBwU2lkZWJhci5lbC5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQudGFyZ2V0XG5cdFx0XHRcdFx0XHRcdCkgfHxcblx0XHRcdFx0XHRcdFx0dGhpcy5hcHBTaWRlYmFyLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQudGFyZ2V0XG5cdFx0XHRcdFx0XHRcdCkgfHxcblx0XHRcdFx0XHRcdFx0dGhpcy5hcHBUb3BiYXIubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoXG5cdFx0XHRcdFx0XHRcdFx0ZXZlbnQudGFyZ2V0XG5cdFx0XHRcdFx0XHRcdCkgfHxcblx0XHRcdFx0XHRcdFx0dGhpcy5hcHBUb3BiYXIubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKFxuXHRcdFx0XHRcdFx0XHRcdGV2ZW50LnRhcmdldFxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdFx0aWYgKGlzT3V0c2lkZUNsaWNrZWQpIHtcblx0XHRcdFx0XHRcdFx0dGhpcy5oaWRlTWVudSgpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH1cblx0XHRcdFx0KTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHQodGhpcy5sYXlvdXRTZXJ2aWNlLmlzSG9yaXpvbnRhbCgpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSAmJiAhdGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIpIHtcblx0XHRcdFx0dGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbihcblx0XHRcdFx0XHR0aGlzLmFwcFNpZGViYXIubWVudUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxuXHRcdFx0XHRcdCdzY3JvbGwnLFxuXHRcdFx0XHRcdChldmVudCkgPT4ge1xuXHRcdFx0XHRcdFx0aWYgKHRoaXMubGF5b3V0U2VydmljZS5pc0Rlc2t0b3AoKSkge1xuXHRcdFx0XHRcdFx0XHR0aGlzLmhpZGVNZW51KCk7XG5cdFx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUpIHtcblx0XHRcdFx0dGhpcy5ibG9ja0JvZHlTY3JvbGwoKTtcblx0XHRcdH1cblx0XHR9KTtcblxuXHRcdHRoaXMucm91dGVyLmV2ZW50cy5waXBlKGZpbHRlcigoZXZlbnQpID0+IGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkpLnN1YnNjcmliZSgoKSA9PiB7XG5cdFx0XHR0aGlzLmhpZGVNZW51KCk7XG5cdFx0fSk7XG5cblx0XHRlZmZlY3QoKCkgPT4ge1xuXHRcdFx0dGhpcy5tZW51U2VydmljZS5tZW51SXRlbXMuc2V0KHRoaXMuc2lkZWJhckl0ZW1zKCkpO1xuXHRcdH0sIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSk7XG5cdH1cblxuXHRibG9ja0JvZHlTY3JvbGwoKTogdm9pZCB7XG5cdFx0aWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2Jsb2NrZWQtc2Nyb2xsJyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lICs9ICcgYmxvY2tlZC1zY3JvbGwnO1xuXHRcdH1cblx0fVxuXG5cdHVuYmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xuXHRcdGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCkge1xuXHRcdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdibG9ja2VkLXNjcm9sbCcpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSA9IGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lLnJlcGxhY2UoXG5cdFx0XHRcdG5ldyBSZWdFeHAoXG5cdFx0XHRcdFx0JyhefFxcXFxiKScgK1xuXHRcdFx0XHRcdCdibG9ja2VkLXNjcm9sbCcuc3BsaXQoJyAnKS5qb2luKCd8JykgK1xuXHRcdFx0XHRcdCcoXFxcXGJ8JCknLFxuXHRcdFx0XHRcdCdnaSdcblx0XHRcdFx0KSxcblx0XHRcdFx0JyAnXG5cdFx0XHQpO1xuXHRcdH1cblx0fVxuXG5cdGhpZGVNZW51KCkge1xuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5vdmVybGF5TWVudUFjdGl2ZSA9IGZhbHNlO1xuXHRcdHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlID0gZmFsc2U7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm1lbnVIb3ZlckFjdGl2ZSA9IGZhbHNlO1xuXHRcdHRoaXMubWVudVNlcnZpY2UucmVzZXQoKTtcblxuXHRcdGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuXHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcblx0XHRcdHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyID0gbnVsbDtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIpIHtcblx0XHRcdHRoaXMubWVudVNjcm9sbExpc3RlbmVyKCk7XG5cdFx0XHR0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lciA9IG51bGw7XG5cdFx0fVxuXG5cdFx0dGhpcy51bmJsb2NrQm9keVNjcm9sbCgpO1xuXHR9XG5cblx0Z2V0IGNvbnRhaW5lckNsYXNzKCkge1xuXHRcdHJldHVybiB7XG5cdFx0XHQnbGF5b3V0LWxpZ2h0JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lID09PSAnbGlnaHQnLFxuXHRcdFx0J2xheW91dC1kaW0nOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuY29sb3JTY2hlbWUgPT09ICdkaW0nLFxuXHRcdFx0J2xheW91dC1kYXJrJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmNvbG9yU2NoZW1lID09PSAnZGFyaycsXG5cdFx0XHQnbGF5b3V0LWNvbG9yc2NoZW1lLW1lbnUnOlxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudVRoZW1lID09PSAnY29sb3JTY2hlbWUnLFxuXHRcdFx0J2xheW91dC1wcmltYXJ5Y29sb3ItbWVudSc6XG5cdFx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51VGhlbWUgPT09ICdwcmltYXJ5Q29sb3InLFxuXHRcdFx0J2xheW91dC10cmFuc3BhcmVudC1tZW51Jzpcblx0XHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVUaGVtZSA9PT0gJ3RyYW5zcGFyZW50Jyxcblx0XHRcdCdsYXlvdXQtb3ZlcmxheSc6XG5cdFx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ292ZXJsYXknLFxuXHRcdFx0J2xheW91dC1zdGF0aWMnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdzdGF0aWMnLFxuXHRcdFx0J2xheW91dC1zbGltJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc2xpbScsXG5cdFx0XHQnbGF5b3V0LXNsaW0tcGx1cyc6XG5cdFx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3NsaW0tcGx1cycsXG5cdFx0XHQnbGF5b3V0LWhvcml6b250YWwnOlxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdob3Jpem9udGFsJyxcblx0XHRcdCdsYXlvdXQtcmV2ZWFsJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAncmV2ZWFsJyxcblx0XHRcdCdsYXlvdXQtZHJhd2VyJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnZHJhd2VyJyxcblx0XHRcdCdsYXlvdXQtc3RhdGljLWluYWN0aXZlJzpcblx0XHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVEZXNrdG9wSW5hY3RpdmUgJiZcblx0XHRcdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc3RhdGljJyxcblx0XHRcdCdsYXlvdXQtb3ZlcmxheS1hY3RpdmUnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUub3ZlcmxheU1lbnVBY3RpdmUsXG5cdFx0XHQnbGF5b3V0LW1vYmlsZS1hY3RpdmUnOlxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSxcblx0XHRcdCdwLWlucHV0LWZpbGxlZCc6XG5cdFx0XHRcdHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5pbnB1dFN0eWxlID09PSAnZmlsbGVkJyxcblx0XHRcdCdwLXJpcHBsZS1kaXNhYmxlZCc6ICF0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkucmlwcGxlLFxuXHRcdFx0J2xheW91dC1zaWRlYmFyLWFjdGl2ZSc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zaWRlYmFyQWN0aXZlLFxuXHRcdFx0J2xheW91dC1zaWRlYmFyLWFuY2hvcmVkJzogdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLmFuY2hvcmVkLFxuXHRcdH07XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpIHtcblx0XHRpZiAodGhpcy5vdmVybGF5TWVudU9wZW5TdWJzY3JpcHRpb24pIHtcblx0XHRcdHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XG5cdFx0XHR0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xuXHRcdH1cblx0fVxufVxuIiwiPGRpdiBjbGFzcz1cImxheW91dC1jb250YWluZXJcIiBbbmdDbGFzc109XCJjb250YWluZXJDbGFzc1wiPlxuXHQ8YXBwLXNpZGViYXI+PC9hcHAtc2lkZWJhcj5cblx0PGRpdiBjbGFzcz1cImxheW91dC1jb250ZW50LXdyYXBwZXJcIj5cblx0XHQ8YXBwLXRvcGJhcj48L2FwcC10b3BiYXI+XG5cdFx0PCEtLSA8YXBwLWJyZWFkY3J1bWIgY2xhc3M9XCJjb250ZW50LWJyZWFkY3J1bWJcIj48L2FwcC1icmVhZGNydW1iPiAtLT5cblx0XHQ8ZGl2IGNsYXNzPVwibGF5b3V0LWNvbnRlbnRcIj5cblx0XHRcdDxyb3V0ZXItb3V0bGV0Pjwvcm91dGVyLW91dGxldD5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG5cdDxhcHAtcHJvZmlsZW1lbnU+PC9hcHAtcHJvZmlsZW1lbnU+XG5cdDxhcHAtY29uZmlnPjwvYXBwLWNvbmZpZz5cblx0PGRpdiBjbGFzcz1cImxheW91dC1tYXNrXCI+PC9kaXY+XG48L2Rpdj5cbiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBwLmxheW91dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hcmlsL3RoZW1lL2xheW91dC9hcHAvbGF5b3V0L2FwcC5sYXlvdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXJpbC90aGVtZS9sYXlvdXQvYXBwL2xheW91dC9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsU0FBUyxFQUF3QixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRixPQUFPLEVBQWtCLGFBQWEsRUFBVSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUd0RixPQUFPLEVBQUUsTUFBTSxFQUFnQixNQUFNLE1BQU0sQ0FBQztBQUc1QyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUNoRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxnREFBZ0QsQ0FBQztBQUU1RixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7Ozs7QUFnQnBFLE1BQU0sT0FBTyxrQkFBa0I7SUFhOUIsWUFDUyxXQUF3QixFQUN6QixhQUE0QixFQUM1QixRQUFtQixFQUNuQixNQUFjLEVBQ2IsS0FBcUI7UUFKckIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDekIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFDNUIsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ2Is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LGtCQUFrQjt3QkFDbEIsc0JBQXNCO3dCQUN0QiwwQkFBMEI7d0JBQzFCLGtCQUFrQjtxQkFDbEI7c0xBWStCLFVBQVU7c0JBQXpDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUVDLFNBQVM7c0JBQXZDLFNBQVM7dUJBQUMsa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgUmVuZGVyZXIyLCBWaWV3Q2hpbGQsIGVmZmVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlLCBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXIsIFJvdXRlck91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IE1lbnVJdGVtIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHsgZmlsdGVyLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgTWVudVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgQXBwU2lkZWJhckNvbXBvbmVudCB9IGZyb20gJy4uL3NpZGViYXIvYXBwLnNpZGViYXIuY29tcG9uZW50JztcbmltcG9ydCB7IEFwcFRvcGJhckNvbXBvbmVudCB9IGZyb20gJy4uL3RvcGJhci9hcHAudG9wYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBcHBCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi4vYnJlYWRjcnVtYi9hcHAuYnJlYWRjcnVtYi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQXBwUHJvZmlsZVNpZGViYXJDb21wb25lbnQgfSBmcm9tICcuLi9wcm9maWxlU2lkZWJhci9hcHAucHJvZmlsZXNpZGViYXIuY29tcG9uZW50JztcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlL2FwcC5sYXlvdXQuc2VydmljZSc7XG5pbXBvcnQgeyBBcHBDb25maWdDb21wb25lbnQgfSBmcm9tICcuLi9jb25maWcvYXBwLmNvbmZpZy5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcblx0c3RhbmRhbG9uZTogdHJ1ZSxcblx0c2VsZWN0b3I6ICdhcHAtbGF5b3V0Jyxcblx0aW1wb3J0czogW1xuXHRcdE5nQ2xhc3MsXG5cdFx0Um91dGVyT3V0bGV0LFxuXHRcdEFwcFNpZGViYXJDb21wb25lbnQsXG5cdFx0QXBwVG9wYmFyQ29tcG9uZW50LFxuXHRcdEFwcEJyZWFkY3J1bWJDb21wb25lbnQsXG5cdFx0QXBwUHJvZmlsZVNpZGViYXJDb21wb25lbnQsXG5cdFx0QXBwQ29uZmlnQ29tcG9uZW50XG5cdF0sXG5cdHRlbXBsYXRlVXJsOiAnLi9hcHAubGF5b3V0LmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBBcHBMYXlvdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuXHRzaWRlYmFySXRlbXMgPSBpbnB1dDxNZW51SXRlbVtdPihbXSk7XG5cblx0b3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cblx0bWVudU91dHNpZGVDbGlja0xpc3RlbmVyOiBhbnk7XG5cblx0bWVudVNjcm9sbExpc3RlbmVyOiBhbnk7XG5cblx0QFZpZXdDaGlsZChBcHBTaWRlYmFyQ29tcG9uZW50KSBhcHBTaWRlYmFyITogQXBwU2lkZWJhckNvbXBvbmVudDtcblxuXHRAVmlld0NoaWxkKEFwcFRvcGJhckNvbXBvbmVudCkgYXBwVG9wYmFyITogQXBwVG9wYmFyQ29tcG9uZW50O1xuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuXHRcdHB1YmxpYyBsYXlvdXRTZXJ2aWNlOiBMYXlvdXRTZXJ2aWNlLFxuXHRcdHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxuXHRcdHB1YmxpYyByb3V0ZXI6IFJvdXRlcixcblx0XHRwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVxuXHQpIHtcblx0XHR0aGlzLm92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbiA9IHRoaXMubGF5b3V0U2VydmljZS5vdmVybGF5T3BlbiQuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdGlmICghdGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIpIHtcblx0XHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCAoZXZlbnQpID0+IHtcblx0XHRcdFx0XHRjb25zdCBpc091dHNpZGVDbGlja2VkID0gIShcblx0XHRcdFx0XHRcdHRoaXMuYXBwU2lkZWJhci5lbC5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoZXZlbnQudGFyZ2V0KSB8fFxuXHRcdFx0XHRcdFx0dGhpcy5hcHBTaWRlYmFyLmVsLm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KSB8fFxuXHRcdFx0XHRcdFx0dGhpcy5hcHBUb3BiYXIubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50LmlzU2FtZU5vZGUoZXZlbnQudGFyZ2V0KSB8fFxuXHRcdFx0XHRcdFx0dGhpcy5hcHBUb3BiYXIubWVudUJ1dHRvbi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmIChpc091dHNpZGVDbGlja2VkKSB7XG5cdFx0XHRcdFx0XHR0aGlzLmhpZGVNZW51KCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9KTtcblx0XHRcdH1cblxuXHRcdFx0aWYgKFxuXHRcdFx0XHQodGhpcy5sYXlvdXRTZXJ2aWNlLmlzSG9yaXpvbnRhbCgpIHx8IHRoaXMubGF5b3V0U2VydmljZS5pc1NsaW0oKSB8fCB0aGlzLmxheW91dFNlcnZpY2UuaXNTbGltUGx1cygpKSAmJlxuXHRcdFx0XHQhdGhpcy5tZW51U2Nyb2xsTGlzdGVuZXJcblx0XHRcdCkge1xuXHRcdFx0XHR0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKFxuXHRcdFx0XHRcdHRoaXMuYXBwU2lkZWJhci5tZW51Q29udGFpbmVyLm5hdGl2ZUVsZW1lbnQsXG5cdFx0XHRcdFx0J3Njcm9sbCcsXG5cdFx0XHRcdFx0KGV2ZW50KSA9PiB7XG5cdFx0XHRcdFx0XHRpZiAodGhpcy5sYXlvdXRTZXJ2aWNlLmlzRGVza3RvcCgpKSB7XG5cdFx0XHRcdFx0XHRcdHRoaXMuaGlkZU1lbnUoKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9XG5cdFx0XHRcdCk7XG5cdFx0XHR9XG5cblx0XHRcdGlmICh0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudU1vYmlsZUFjdGl2ZSkge1xuXHRcdFx0XHR0aGlzLmJsb2NrQm9keVNjcm9sbCgpO1xuXHRcdFx0fVxuXHRcdH0pO1xuXG5cdFx0dGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKChldmVudCkgPT4gZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSkuc3Vic2NyaWJlKCgpID0+IHtcblx0XHRcdHRoaXMuaGlkZU1lbnUoKTtcblx0XHR9KTtcblxuXHRcdGVmZmVjdChcblx0XHRcdCgpID0+IHtcblx0XHRcdFx0dGhpcy5tZW51U2VydmljZS5tZW51SXRlbXMuc2V0KHRoaXMuc2lkZWJhckl0ZW1zKCkpO1xuXHRcdFx0fSxcblx0XHRcdHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuXHRcdCk7XG5cdH1cblxuXHRibG9ja0JvZHlTY3JvbGwoKTogdm9pZCB7XG5cdFx0aWYgKGRvY3VtZW50LmJvZHkuY2xhc3NMaXN0KSB7XG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoJ2Jsb2NrZWQtc2Nyb2xsJyk7XG5cdFx0fSBlbHNlIHtcblx0XHRcdGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lICs9ICcgYmxvY2tlZC1zY3JvbGwnO1xuXHRcdH1cblx0fVxuXG5cdHVuYmxvY2tCb2R5U2Nyb2xsKCk6IHZvaWQge1xuXHRcdGlmIChkb2N1bWVudC5ib2R5LmNsYXNzTGlzdCkge1xuXHRcdFx0ZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QucmVtb3ZlKCdibG9ja2VkLXNjcm9sbCcpO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRkb2N1bWVudC5ib2R5LmNsYXNzTmFtZSA9IGRvY3VtZW50LmJvZHkuY2xhc3NOYW1lLnJlcGxhY2UoXG5cdFx0XHRcdG5ldyBSZWdFeHAoJyhefFxcXFxiKScgKyAnYmxvY2tlZC1zY3JvbGwnLnNwbGl0KCcgJykuam9pbignfCcpICsgJyhcXFxcYnwkKScsICdnaScpLFxuXHRcdFx0XHQnICdcblx0XHRcdCk7XG5cdFx0fVxuXHR9XG5cblx0aGlkZU1lbnUoKSB7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLm92ZXJsYXlNZW51QWN0aXZlID0gZmFsc2U7XG5cdFx0dGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnN0YXRpY01lbnVNb2JpbGVBY3RpdmUgPSBmYWxzZTtcblx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUubWVudUhvdmVyQWN0aXZlID0gZmFsc2U7XG5cdFx0dGhpcy5tZW51U2VydmljZS5yZXNldCgpO1xuXG5cdFx0aWYgKHRoaXMubWVudU91dHNpZGVDbGlja0xpc3RlbmVyKSB7XG5cdFx0XHR0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcigpO1xuXHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIgPSBudWxsO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLm1lbnVTY3JvbGxMaXN0ZW5lcikge1xuXHRcdFx0dGhpcy5tZW51U2Nyb2xsTGlzdGVuZXIoKTtcblx0XHRcdHRoaXMubWVudVNjcm9sbExpc3RlbmVyID0gbnVsbDtcblx0XHR9XG5cblx0XHR0aGlzLnVuYmxvY2tCb2R5U2Nyb2xsKCk7XG5cdH1cblxuXHRnZXQgY29udGFpbmVyQ2xhc3MoKSB7XG5cdFx0cmV0dXJuIHtcblx0XHRcdCdsYXlvdXQtbGlnaHQnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuY29sb3JTY2hlbWUgPT09ICdsaWdodCcsXG5cdFx0XHQnbGF5b3V0LWRpbSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5jb2xvclNjaGVtZSA9PT0gJ2RpbScsXG5cdFx0XHQnbGF5b3V0LWRhcmsnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkuY29sb3JTY2hlbWUgPT09ICdkYXJrJyxcblx0XHRcdCdsYXlvdXQtY29sb3JzY2hlbWUtbWVudSc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51VGhlbWUgPT09ICdjb2xvclNjaGVtZScsXG5cdFx0XHQnbGF5b3V0LXByaW1hcnljb2xvci1tZW51JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVUaGVtZSA9PT0gJ3ByaW1hcnlDb2xvcicsXG5cdFx0XHQnbGF5b3V0LXRyYW5zcGFyZW50LW1lbnUnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudVRoZW1lID09PSAndHJhbnNwYXJlbnQnLFxuXHRcdFx0J2xheW91dC1vdmVybGF5JzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnb3ZlcmxheScsXG5cdFx0XHQnbGF5b3V0LXN0YXRpYyc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ3N0YXRpYycsXG5cdFx0XHQnbGF5b3V0LXNsaW0nOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdzbGltJyxcblx0XHRcdCdsYXlvdXQtc2xpbS1wbHVzJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLm1lbnVNb2RlID09PSAnc2xpbS1wbHVzJyxcblx0XHRcdCdsYXlvdXQtaG9yaXpvbnRhbCc6IHRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5tZW51TW9kZSA9PT0gJ2hvcml6b250YWwnLFxuXHRcdFx0J2xheW91dC1yZXZlYWwnOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdyZXZlYWwnLFxuXHRcdFx0J2xheW91dC1kcmF3ZXInOiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdkcmF3ZXInLFxuXHRcdFx0J2xheW91dC1zdGF0aWMtaW5hY3RpdmUnOlxuXHRcdFx0XHR0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuc3RhdGljTWVudURlc2t0b3BJbmFjdGl2ZSAmJiB0aGlzLmxheW91dFNlcnZpY2UuY29uZmlnKCkubWVudU1vZGUgPT09ICdzdGF0aWMnLFxuXHRcdFx0J2xheW91dC1vdmVybGF5LWFjdGl2ZSc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5vdmVybGF5TWVudUFjdGl2ZSxcblx0XHRcdCdsYXlvdXQtbW9iaWxlLWFjdGl2ZSc6IHRoaXMubGF5b3V0U2VydmljZS5zdGF0ZS5zdGF0aWNNZW51TW9iaWxlQWN0aXZlLFxuXHRcdFx0J3AtaW5wdXQtZmlsbGVkJzogdGhpcy5sYXlvdXRTZXJ2aWNlLmNvbmZpZygpLmlucHV0U3R5bGUgPT09ICdmaWxsZWQnLFxuXHRcdFx0J3AtcmlwcGxlLWRpc2FibGVkJzogIXRoaXMubGF5b3V0U2VydmljZS5jb25maWcoKS5yaXBwbGUsXG5cdFx0XHQnbGF5b3V0LXNpZGViYXItYWN0aXZlJzogdGhpcy5sYXlvdXRTZXJ2aWNlLnN0YXRlLnNpZGViYXJBY3RpdmUsXG5cdFx0XHQnbGF5b3V0LXNpZGViYXItYW5jaG9yZWQnOiB0aGlzLmxheW91dFNlcnZpY2Uuc3RhdGUuYW5jaG9yZWRcblx0XHR9O1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKSB7XG5cdFx0aWYgKHRoaXMub3ZlcmxheU1lbnVPcGVuU3Vic2NyaXB0aW9uKSB7XG5cdFx0XHR0aGlzLm92ZXJsYXlNZW51T3BlblN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLm1lbnVPdXRzaWRlQ2xpY2tMaXN0ZW5lcikge1xuXHRcdFx0dGhpcy5tZW51T3V0c2lkZUNsaWNrTGlzdGVuZXIoKTtcblx0XHR9XG5cdH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJsYXlvdXQtY29udGFpbmVyXCIgW25nQ2xhc3NdPVwiY29udGFpbmVyQ2xhc3NcIj5cblx0PGFwcC1zaWRlYmFyPjwvYXBwLXNpZGViYXI+XG5cdDxkaXYgY2xhc3M9XCJsYXlvdXQtY29udGVudC13cmFwcGVyXCI+XG5cdFx0PGFwcC10b3BiYXI+PC9hcHAtdG9wYmFyPlxuXHRcdDwhLS0gPGFwcC1icmVhZGNydW1iIGNsYXNzPVwiY29udGVudC1icmVhZGNydW1iXCI+PC9hcHAtYnJlYWRjcnVtYj4gLS0+XG5cdFx0PGRpdiBjbGFzcz1cImxheW91dC1jb250ZW50XCI+XG5cdFx0XHQ8cm91dGVyLW91dGxldD48L3JvdXRlci1vdXRsZXQ+XG5cdFx0PC9kaXY+XG5cdDwvZGl2PlxuXHQ8YXBwLXByb2ZpbGVtZW51PjwvYXBwLXByb2ZpbGVtZW51PlxuXHQ8YXBwLWNvbmZpZz48L2FwcC1jb25maWc+XG5cdDxkaXYgY2xhc3M9XCJsYXlvdXQtbWFza1wiPjwvZGl2PlxuPC9kaXY+XG4iXX0=