@updevs/components 1.0.0-alpha.5 → 1.0.0-alpha.8

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 (465) hide show
  1. package/button/button.component.d.ts +43 -0
  2. package/button/upd-button.module.d.ts +8 -0
  3. package/card/card.component.d.ts +54 -0
  4. package/card/directives/card-actions.directive.d.ts +7 -0
  5. package/card/directives/card-footer.directive.d.ts +7 -0
  6. package/card/directives/card-header.directive.d.ts +7 -0
  7. package/card/directives/card-image.directive.d.ts +7 -0
  8. package/card/upd-card.module.d.ts +14 -0
  9. package/dropdown/dropdown.component.d.ts +63 -0
  10. package/dropdown/{src/models/dropdown-item.ts → models/dropdown-item.d.ts} +0 -2
  11. package/dropdown/upd-dropdown.module.d.ts +12 -0
  12. package/esm2022/button/button.component.mjs +163 -0
  13. package/esm2022/button/index.mjs +2 -0
  14. package/esm2022/button/public-api.mjs +3 -0
  15. package/esm2022/button/upd-button.module.mjs +24 -0
  16. package/esm2022/button/updevs-components-button.mjs +5 -0
  17. package/esm2022/card/card.component.mjs +136 -0
  18. package/esm2022/card/directives/card-actions.directive.mjs +16 -0
  19. package/esm2022/card/directives/card-footer.directive.mjs +16 -0
  20. package/esm2022/card/directives/card-header.directive.mjs +16 -0
  21. package/esm2022/card/directives/card-image.directive.mjs +16 -0
  22. package/esm2022/card/directives/public-api.mjs +5 -0
  23. package/esm2022/card/index.mjs +2 -0
  24. package/esm2022/card/public-api.mjs +4 -0
  25. package/esm2022/card/types/card-state.type.mjs +2 -0
  26. package/esm2022/card/types/card-style.type.mjs +2 -0
  27. package/esm2022/card/types/hover-effect.type.mjs +2 -0
  28. package/esm2022/card/types/ribbon-style.type.mjs +2 -0
  29. package/esm2022/card/types/status-position.type.mjs +2 -0
  30. package/esm2022/card/upd-card.module.mjs +50 -0
  31. package/esm2022/card/updevs-components-card.mjs +5 -0
  32. package/esm2022/dropdown/dropdown.component.mjs +145 -0
  33. package/esm2022/dropdown/index.mjs +2 -0
  34. package/esm2022/dropdown/models/dropdown-item.mjs +2 -0
  35. package/esm2022/dropdown/models/dropdown-item.type.mjs +2 -0
  36. package/esm2022/dropdown/models/public-api.mjs +3 -0
  37. package/esm2022/dropdown/public-api.mjs +4 -0
  38. package/esm2022/dropdown/upd-dropdown.module.mjs +40 -0
  39. package/esm2022/dropdown/updevs-components-dropdown.mjs +5 -0
  40. package/esm2022/form/form.module.mjs +18 -0
  41. package/esm2022/form/index.mjs +2 -0
  42. package/esm2022/form/public-api.mjs +2 -0
  43. package/esm2022/form/updevs-components-form.mjs +5 -0
  44. package/esm2022/form-controls/checkbox/checkbox.component.mjs +68 -0
  45. package/esm2022/form-controls/checkbox/index.mjs +2 -0
  46. package/esm2022/form-controls/checkbox/public-api.mjs +3 -0
  47. package/esm2022/form-controls/checkbox/upd-checkbox.module.mjs +28 -0
  48. package/esm2022/form-controls/checkbox/updevs-components-form-controls-checkbox.mjs +5 -0
  49. package/esm2022/form-controls/input/directives/input-append.directive.mjs +16 -0
  50. package/esm2022/form-controls/input/directives/input-prepend.directive.mjs +16 -0
  51. package/esm2022/form-controls/input/directives/public-api.mjs +3 -0
  52. package/esm2022/form-controls/input/index.mjs +2 -0
  53. package/esm2022/form-controls/input/input.component.mjs +155 -0
  54. package/esm2022/form-controls/input/public-api.mjs +5 -0
  55. package/esm2022/form-controls/input/types/input.type.mjs +2 -0
  56. package/esm2022/form-controls/input/types/loader-position.type.mjs +2 -0
  57. package/esm2022/form-controls/input/types/public-api.mjs +3 -0
  58. package/esm2022/form-controls/input/upd-input.module.mjs +46 -0
  59. package/esm2022/form-controls/input/updevs-components-form-controls-input.mjs +5 -0
  60. package/esm2022/form-controls/radio/index.mjs +2 -0
  61. package/esm2022/form-controls/radio/public-api.mjs +3 -0
  62. package/esm2022/form-controls/radio/radio.component.mjs +64 -0
  63. package/esm2022/form-controls/radio/upd-radio.module.mjs +24 -0
  64. package/esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs +5 -0
  65. package/esm2022/form-controls/select/components/multiple/select-multiple.component.mjs +65 -0
  66. package/esm2022/form-controls/select/components/single/select.component.mjs +53 -0
  67. package/esm2022/form-controls/select/index.mjs +2 -0
  68. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +208 -0
  69. package/esm2022/form-controls/select/models/public-api.mjs +2 -0
  70. package/esm2022/form-controls/select/models/select-item.mjs +2 -0
  71. package/esm2022/form-controls/select/public-api.mjs +5 -0
  72. package/esm2022/form-controls/select/upd-select.module.mjs +53 -0
  73. package/esm2022/form-controls/select/updevs-components-form-controls-select.mjs +5 -0
  74. package/esm2022/form-controls/textarea/index.mjs +2 -0
  75. package/esm2022/form-controls/textarea/public-api.mjs +3 -0
  76. package/esm2022/form-controls/textarea/textarea.component.mjs +62 -0
  77. package/esm2022/form-controls/textarea/upd-textarea.module.mjs +24 -0
  78. package/esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs +5 -0
  79. package/esm2022/form-controls/time-picker/index.mjs +2 -0
  80. package/esm2022/form-controls/time-picker/public-api.mjs +4 -0
  81. package/esm2022/form-controls/time-picker/time-picker.component.mjs +130 -0
  82. package/esm2022/form-controls/time-picker/time-selector/time-selector.component.mjs +124 -0
  83. package/esm2022/form-controls/time-picker/upd-time-picker.module.mjs +60 -0
  84. package/esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs +5 -0
  85. package/esm2022/layout/abstractions/base-page.component.mjs +24 -0
  86. package/esm2022/layout/abstractions/public-api.mjs +2 -0
  87. package/esm2022/layout/index.mjs +2 -0
  88. package/esm2022/layout/layouts/blank-layout/blank-layout.component.mjs +11 -0
  89. package/esm2022/layout/layouts/blank-layout/blank-layout.module.mjs +24 -0
  90. package/esm2022/layout/layouts/public-api.mjs +5 -0
  91. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.mjs +31 -0
  92. package/esm2022/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.mjs +81 -0
  93. package/esm2022/layout/models/public-api.mjs +2 -0
  94. package/esm2022/layout/models/upd-layout-config.model.mjs +30 -0
  95. package/esm2022/layout/models/upd-layout.config.mjs +2 -0
  96. package/esm2022/layout/pages/auth-flow/auth-flow-routing.module.mjs +28 -0
  97. package/esm2022/layout/pages/auth-flow/auth-flow.module.mjs +46 -0
  98. package/esm2022/layout/pages/auth-flow/logged-out/logged-out.component.mjs +11 -0
  99. package/esm2022/layout/pages/auth-flow/login/login.component.mjs +27 -0
  100. package/esm2022/layout/pages/auth-flow/oauth-callback/oauth-callback.component.mjs +11 -0
  101. package/esm2022/layout/pages/auth-flow/public-api.mjs +6 -0
  102. package/esm2022/layout/pages/public-api.mjs +2 -0
  103. package/esm2022/layout/partials/footer/footer-copyright.directive.mjs +13 -0
  104. package/esm2022/layout/partials/footer/footer.component.mjs +67 -0
  105. package/esm2022/layout/partials/footer/public-api.mjs +3 -0
  106. package/esm2022/layout/partials/header/header-style.type.mjs +2 -0
  107. package/esm2022/layout/partials/header/header.component.mjs +77 -0
  108. package/esm2022/layout/partials/header/public-api.mjs +3 -0
  109. package/esm2022/layout/partials/page-header/page-header.component.mjs +14 -0
  110. package/esm2022/layout/partials/page-header/public-api.mjs +2 -0
  111. package/esm2022/layout/partials/public-api.mjs +5 -0
  112. package/esm2022/layout/partials/sidebar/public-api.mjs +2 -0
  113. package/esm2022/layout/partials/sidebar/sidebar.component.mjs +143 -0
  114. package/esm2022/layout/public-api.mjs +8 -0
  115. package/esm2022/layout/services/public-api.mjs +2 -0
  116. package/esm2022/layout/services/upd-layout-config.service.mjs +21 -0
  117. package/esm2022/layout/tools/layout.constants.mjs +15 -0
  118. package/esm2022/layout/upd-layout.module.mjs +43 -0
  119. package/esm2022/layout/updevs-components-layout.mjs +5 -0
  120. package/esm2022/lib/index.mjs +2 -0
  121. package/esm2022/lib/public-api.mjs +3 -0
  122. package/esm2022/lib/types/component-size.type.mjs +2 -0
  123. package/esm2022/lib/types/public-api.mjs +3 -0
  124. package/esm2022/lib/types/validation-status.type.mjs +2 -0
  125. package/esm2022/lib/upd-components.module.mjs +14 -0
  126. package/esm2022/link/index.mjs +2 -0
  127. package/esm2022/link/link.component.mjs +51 -0
  128. package/esm2022/link/public-api.mjs +4 -0
  129. package/esm2022/link/target.type.mjs +2 -0
  130. package/esm2022/link/upd-link.module.mjs +24 -0
  131. package/esm2022/link/updevs-components-link.mjs +5 -0
  132. package/esm2022/list/index.mjs +2 -0
  133. package/esm2022/list/list.component.mjs +134 -0
  134. package/esm2022/list/models/badge-position.type.mjs +2 -0
  135. package/esm2022/list/models/list-item.mjs +2 -0
  136. package/esm2022/list/models/list-item.model.mjs +15 -0
  137. package/esm2022/list/models/public-api.mjs +3 -0
  138. package/esm2022/list/public-api.mjs +4 -0
  139. package/esm2022/list/upd-list.module.mjs +43 -0
  140. package/esm2022/list/updevs-components-list.mjs +5 -0
  141. package/esm2022/popover/index.mjs +2 -0
  142. package/esm2022/popover/popover.component.mjs +65 -0
  143. package/esm2022/popover/popover.directive.mjs +129 -0
  144. package/esm2022/popover/public-api.mjs +4 -0
  145. package/esm2022/popover/upd-popover.module.mjs +29 -0
  146. package/esm2022/popover/updevs-components-popover.mjs +5 -0
  147. package/esm2022/public-api.mjs +2 -0
  148. package/esm2022/updevs-components.mjs +5 -0
  149. package/fesm2022/updevs-components-button.mjs +191 -0
  150. package/fesm2022/updevs-components-button.mjs.map +1 -0
  151. package/fesm2022/updevs-components-card.mjs +238 -0
  152. package/fesm2022/updevs-components-card.mjs.map +1 -0
  153. package/fesm2022/updevs-components-dropdown.mjs +189 -0
  154. package/fesm2022/updevs-components-dropdown.mjs.map +1 -0
  155. package/fesm2022/updevs-components-form-controls-checkbox.mjs +100 -0
  156. package/fesm2022/updevs-components-form-controls-checkbox.mjs.map +1 -0
  157. package/fesm2022/updevs-components-form-controls-input.mjs +229 -0
  158. package/fesm2022/updevs-components-form-controls-input.mjs.map +1 -0
  159. package/fesm2022/updevs-components-form-controls-radio.mjs +92 -0
  160. package/fesm2022/updevs-components-form-controls-radio.mjs.map +1 -0
  161. package/fesm2022/updevs-components-form-controls-select.mjs +371 -0
  162. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -0
  163. package/fesm2022/updevs-components-form-controls-textarea.mjs +90 -0
  164. package/fesm2022/updevs-components-form-controls-textarea.mjs.map +1 -0
  165. package/fesm2022/updevs-components-form-controls-time-picker.mjs +344 -0
  166. package/fesm2022/updevs-components-form-controls-time-picker.mjs.map +1 -0
  167. package/fesm2022/updevs-components-form.mjs +25 -0
  168. package/fesm2022/updevs-components-form.mjs.map +1 -0
  169. package/fesm2022/updevs-components-layout.mjs +670 -0
  170. package/fesm2022/updevs-components-layout.mjs.map +1 -0
  171. package/fesm2022/updevs-components-link.mjs +79 -0
  172. package/fesm2022/updevs-components-link.mjs.map +1 -0
  173. package/fesm2022/updevs-components-list.mjs +226 -0
  174. package/fesm2022/updevs-components-list.mjs.map +1 -0
  175. package/fesm2022/updevs-components-popover.mjs +223 -0
  176. package/fesm2022/updevs-components-popover.mjs.map +1 -0
  177. package/fesm2022/updevs-components.mjs +21 -0
  178. package/fesm2022/updevs-components.mjs.map +1 -0
  179. package/form/form.module.d.ts +7 -0
  180. package/form-controls/checkbox/checkbox.component.d.ts +25 -0
  181. package/form-controls/checkbox/{src/public-api.ts → public-api.d.ts} +0 -1
  182. package/form-controls/checkbox/upd-checkbox.module.d.ts +9 -0
  183. package/form-controls/input/directives/input-append.directive.d.ts +7 -0
  184. package/form-controls/input/directives/input-prepend.directive.d.ts +7 -0
  185. package/form-controls/input/input.component.d.ts +54 -0
  186. package/form-controls/input/upd-input.module.d.ts +13 -0
  187. package/form-controls/radio/radio.component.d.ts +24 -0
  188. package/form-controls/radio/upd-radio.module.d.ts +8 -0
  189. package/form-controls/select/components/multiple/select-multiple.component.d.ts +18 -0
  190. package/form-controls/select/components/single/select.component.d.ts +20 -0
  191. package/form-controls/select/models/abstractions/base-select.component.d.ts +80 -0
  192. package/form-controls/select/{src/models/select-item.ts → models/select-item.d.ts} +0 -1
  193. package/form-controls/select/upd-select.module.d.ts +15 -0
  194. package/form-controls/textarea/textarea.component.d.ts +23 -0
  195. package/form-controls/textarea/upd-textarea.module.d.ts +8 -0
  196. package/form-controls/time-picker/time-picker.component.d.ts +78 -0
  197. package/form-controls/time-picker/time-selector/time-selector.component.d.ts +69 -0
  198. package/form-controls/time-picker/upd-time-picker.module.d.ts +17 -0
  199. package/index.d.ts +5 -0
  200. package/layout/abstractions/base-page.component.d.ts +12 -0
  201. package/layout/layouts/blank-layout/blank-layout.component.d.ts +5 -0
  202. package/layout/layouts/blank-layout/blank-layout.module.d.ts +8 -0
  203. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.d.ts +12 -0
  204. package/layout/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.d.ts +20 -0
  205. package/layout/models/upd-layout-config.model.d.ts +39 -0
  206. package/layout/pages/auth-flow/auth-flow-routing.module.d.ts +12 -0
  207. package/layout/pages/auth-flow/auth-flow.module.d.ts +13 -0
  208. package/layout/pages/auth-flow/logged-out/logged-out.component.d.ts +5 -0
  209. package/layout/pages/auth-flow/login/login.component.d.ts +12 -0
  210. package/layout/pages/auth-flow/oauth-callback/oauth-callback.component.d.ts +5 -0
  211. package/layout/partials/footer/footer-copyright.directive.d.ts +5 -0
  212. package/layout/partials/footer/footer.component.d.ts +43 -0
  213. package/layout/partials/header/header.component.d.ts +31 -0
  214. package/layout/partials/page-header/page-header.component.d.ts +7 -0
  215. package/layout/partials/sidebar/sidebar.component.d.ts +19 -0
  216. package/layout/services/upd-layout-config.service.d.ts +15 -0
  217. package/layout/{src/tools/layout.constants.ts → tools/layout.constants.d.ts} +3 -6
  218. package/layout/upd-layout.module.d.ts +18 -0
  219. package/lib/upd-components.module.d.ts +6 -0
  220. package/link/link.component.d.ts +22 -0
  221. package/link/upd-link.module.d.ts +8 -0
  222. package/list/list.component.d.ts +61 -0
  223. package/list/{src/models/list-item.ts → models/list-item.d.ts} +0 -2
  224. package/list/{src/models/list-item.model.ts → models/list-item.model.d.ts} +5 -16
  225. package/list/upd-list.module.d.ts +13 -0
  226. package/package.json +114 -21
  227. package/popover/popover.component.d.ts +22 -0
  228. package/popover/popover.directive.d.ts +33 -0
  229. package/popover/upd-popover.module.d.ts +9 -0
  230. package/CHANGELOG.md +0 -8
  231. package/button/index.ts +0 -1
  232. package/button/ng-package.json +0 -7
  233. package/button/src/button.component.html +0 -8
  234. package/button/src/button.component.scss +0 -5
  235. package/button/src/button.component.spec.ts +0 -23
  236. package/button/src/button.component.ts +0 -154
  237. package/button/src/upd-button.module.ts +0 -17
  238. package/card/index.ts +0 -1
  239. package/card/ng-package.json +0 -7
  240. package/card/src/card.component.html +0 -105
  241. package/card/src/card.component.scss +0 -47
  242. package/card/src/card.component.spec.ts +0 -23
  243. package/card/src/card.component.ts +0 -112
  244. package/card/src/directives/card-actions.directive.spec.ts +0 -8
  245. package/card/src/directives/card-actions.directive.ts +0 -11
  246. package/card/src/directives/card-footer.directive.spec.ts +0 -8
  247. package/card/src/directives/card-footer.directive.ts +0 -11
  248. package/card/src/directives/card-header.directive.spec.ts +0 -8
  249. package/card/src/directives/card-header.directive.ts +0 -11
  250. package/card/src/directives/card-image.directive.spec.ts +0 -8
  251. package/card/src/directives/card-image.directive.ts +0 -11
  252. package/card/src/types/public-api.ts +0 -5
  253. package/card/src/upd-card.module.ts +0 -32
  254. package/dropdown/index.ts +0 -1
  255. package/dropdown/ng-package.json +0 -7
  256. package/dropdown/src/dropdown.component.html +0 -32
  257. package/dropdown/src/dropdown.component.scss +0 -19
  258. package/dropdown/src/dropdown.component.spec.ts +0 -23
  259. package/dropdown/src/dropdown.component.ts +0 -182
  260. package/dropdown/src/upd-dropdown.module.ts +0 -25
  261. package/form/index.ts +0 -1
  262. package/form/ng-package.json +0 -7
  263. package/form/src/form.module.ts +0 -10
  264. package/form-controls/checkbox/index.ts +0 -1
  265. package/form-controls/checkbox/ng-package.json +0 -7
  266. package/form-controls/checkbox/src/checkbox.component.html +0 -7
  267. package/form-controls/checkbox/src/checkbox.component.scss +0 -0
  268. package/form-controls/checkbox/src/checkbox.component.spec.ts +0 -23
  269. package/form-controls/checkbox/src/checkbox.component.ts +0 -48
  270. package/form-controls/checkbox/src/upd-checkbox.module.ts +0 -19
  271. package/form-controls/input/index.ts +0 -1
  272. package/form-controls/input/ng-package.json +0 -7
  273. package/form-controls/input/src/directives/input-append.directive.spec.ts +0 -8
  274. package/form-controls/input/src/directives/input-append.directive.ts +0 -11
  275. package/form-controls/input/src/directives/input-prepend.directive.spec.ts +0 -8
  276. package/form-controls/input/src/directives/input-prepend.directive.ts +0 -11
  277. package/form-controls/input/src/input.component.html +0 -82
  278. package/form-controls/input/src/input.component.scss +0 -13
  279. package/form-controls/input/src/input.component.spec.ts +0 -23
  280. package/form-controls/input/src/input.component.ts +0 -124
  281. package/form-controls/input/src/upd-input.module.ts +0 -29
  282. package/form-controls/radio/index.ts +0 -1
  283. package/form-controls/radio/ng-package.json +0 -7
  284. package/form-controls/radio/src/radio.component.html +0 -7
  285. package/form-controls/radio/src/radio.component.scss +0 -0
  286. package/form-controls/radio/src/radio.component.spec.ts +0 -23
  287. package/form-controls/radio/src/radio.component.ts +0 -47
  288. package/form-controls/radio/src/upd-radio.module.ts +0 -17
  289. package/form-controls/select/index.ts +0 -1
  290. package/form-controls/select/ng-package.json +0 -7
  291. package/form-controls/select/src/components/multiple/select-multiple.component.html +0 -41
  292. package/form-controls/select/src/components/multiple/select-multiple.component.scss +0 -6
  293. package/form-controls/select/src/components/multiple/select-multiple.component.spec.ts +0 -21
  294. package/form-controls/select/src/components/multiple/select-multiple.component.ts +0 -69
  295. package/form-controls/select/src/components/shared.scss +0 -40
  296. package/form-controls/select/src/components/single/select.component.html +0 -53
  297. package/form-controls/select/src/components/single/select.component.scss +0 -3
  298. package/form-controls/select/src/components/single/select.component.spec.ts +0 -23
  299. package/form-controls/select/src/components/single/select.component.ts +0 -58
  300. package/form-controls/select/src/models/abstractions/base-select.component.ts +0 -259
  301. package/form-controls/select/src/upd-select.module.ts +0 -32
  302. package/form-controls/textarea/index.ts +0 -1
  303. package/form-controls/textarea/ng-package.json +0 -7
  304. package/form-controls/textarea/src/textarea.component.html +0 -8
  305. package/form-controls/textarea/src/textarea.component.scss +0 -0
  306. package/form-controls/textarea/src/textarea.component.spec.ts +0 -23
  307. package/form-controls/textarea/src/textarea.component.ts +0 -47
  308. package/form-controls/textarea/src/upd-textarea.module.ts +0 -17
  309. package/form-controls/time-picker/index.ts +0 -1
  310. package/form-controls/time-picker/ng-package.json +0 -7
  311. package/form-controls/time-picker/src/time-picker.component.html +0 -17
  312. package/form-controls/time-picker/src/time-picker.component.scss +0 -10
  313. package/form-controls/time-picker/src/time-picker.component.spec.ts +0 -21
  314. package/form-controls/time-picker/src/time-picker.component.ts +0 -110
  315. package/form-controls/time-picker/src/time-selector/time-selector.component.html +0 -44
  316. package/form-controls/time-picker/src/time-selector/time-selector.component.scss +0 -47
  317. package/form-controls/time-picker/src/time-selector/time-selector.component.spec.ts +0 -21
  318. package/form-controls/time-picker/src/time-selector/time-selector.component.ts +0 -107
  319. package/form-controls/time-picker/src/upd-time-picker.module.ts +0 -39
  320. package/index.ts +0 -1
  321. package/layout/index.ts +0 -1
  322. package/layout/ng-package.json +0 -7
  323. package/layout/src/abstractions/base-page.component.ts +0 -21
  324. package/layout/src/layouts/blank-layout/blank-layout.component.html +0 -1
  325. package/layout/src/layouts/blank-layout/blank-layout.component.scss +0 -0
  326. package/layout/src/layouts/blank-layout/blank-layout.component.spec.ts +0 -23
  327. package/layout/src/layouts/blank-layout/blank-layout.component.ts +0 -10
  328. package/layout/src/layouts/blank-layout/blank-layout.module.ts +0 -17
  329. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.html +0 -14
  330. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.scss +0 -0
  331. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.spec.ts +0 -23
  332. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.component.ts +0 -31
  333. package/layout/src/layouts/vertical-sidebar-layout/vertical-sidebar-layout.module.ts +0 -52
  334. package/layout/src/models/upd-layout-config.model.ts +0 -71
  335. package/layout/src/pages/auth-flow/auth-flow-routing.module.ts +0 -21
  336. package/layout/src/pages/auth-flow/auth-flow.module.ts +0 -29
  337. package/layout/src/pages/auth-flow/logged-out/logged-out.component.html +0 -1
  338. package/layout/src/pages/auth-flow/logged-out/logged-out.component.scss +0 -0
  339. package/layout/src/pages/auth-flow/logged-out/logged-out.component.spec.ts +0 -23
  340. package/layout/src/pages/auth-flow/logged-out/logged-out.component.ts +0 -10
  341. package/layout/src/pages/auth-flow/login/login.component.html +0 -96
  342. package/layout/src/pages/auth-flow/login/login.component.scss +0 -0
  343. package/layout/src/pages/auth-flow/login/login.component.spec.ts +0 -23
  344. package/layout/src/pages/auth-flow/login/login.component.ts +0 -26
  345. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.html +0 -1
  346. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.scss +0 -0
  347. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.spec.ts +0 -23
  348. package/layout/src/pages/auth-flow/oauth-callback/oauth-callback.component.ts +0 -10
  349. package/layout/src/partials/footer/footer-copyright.directive.spec.ts +0 -8
  350. package/layout/src/partials/footer/footer-copyright.directive.ts +0 -9
  351. package/layout/src/partials/footer/footer.component.html +0 -30
  352. package/layout/src/partials/footer/footer.component.scss +0 -0
  353. package/layout/src/partials/footer/footer.component.spec.ts +0 -23
  354. package/layout/src/partials/footer/footer.component.ts +0 -73
  355. package/layout/src/partials/header/header.component.html +0 -163
  356. package/layout/src/partials/header/header.component.scss +0 -0
  357. package/layout/src/partials/header/header.component.spec.ts +0 -23
  358. package/layout/src/partials/header/header.component.ts +0 -86
  359. package/layout/src/partials/page-header/page-header.component.html +0 -19
  360. package/layout/src/partials/page-header/page-header.component.scss +0 -0
  361. package/layout/src/partials/page-header/page-header.component.spec.ts +0 -23
  362. package/layout/src/partials/page-header/page-header.component.ts +0 -11
  363. package/layout/src/partials/sidebar/sidebar.component.html +0 -62
  364. package/layout/src/partials/sidebar/sidebar.component.scss +0 -0
  365. package/layout/src/partials/sidebar/sidebar.component.spec.ts +0 -23
  366. package/layout/src/partials/sidebar/sidebar.component.ts +0 -161
  367. package/layout/src/services/upd-layout-config.service.spec.ts +0 -16
  368. package/layout/src/services/upd-layout-config.service.ts +0 -20
  369. package/layout/src/upd-layout.module.ts +0 -34
  370. package/link/index.ts +0 -1
  371. package/link/ng-package.json +0 -7
  372. package/link/src/link.component.html +0 -3
  373. package/link/src/link.component.scss +0 -3
  374. package/link/src/link.component.spec.ts +0 -23
  375. package/link/src/link.component.ts +0 -48
  376. package/link/src/upd-link.module.ts +0 -17
  377. package/list/index.ts +0 -1
  378. package/list/ng-package.json +0 -7
  379. package/list/src/list.component.html +0 -58
  380. package/list/src/list.component.scss +0 -21
  381. package/list/src/list.component.spec.ts +0 -23
  382. package/list/src/list.component.ts +0 -147
  383. package/list/src/upd-list.module.ts +0 -30
  384. package/ng-package.json +0 -10
  385. package/popover/index.ts +0 -1
  386. package/popover/ng-package.json +0 -7
  387. package/popover/src/popover.component.html +0 -20
  388. package/popover/src/popover.component.scss +0 -8
  389. package/popover/src/popover.component.spec.ts +0 -23
  390. package/popover/src/popover.component.ts +0 -53
  391. package/popover/src/popover.directive.spec.ts +0 -8
  392. package/popover/src/popover.directive.ts +0 -128
  393. package/popover/src/upd-popover.module.ts +0 -20
  394. package/src/lib/upd-components.module.ts +0 -6
  395. package/tsconfig.lib.json +0 -14
  396. package/tsconfig.lib.prod.json +0 -10
  397. package/tsconfig.spec.json +0 -14
  398. /package/button/{src/index.ts → index.d.ts} +0 -0
  399. /package/button/{src/public-api.ts → public-api.d.ts} +0 -0
  400. /package/card/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  401. /package/card/{src/index.ts → index.d.ts} +0 -0
  402. /package/card/{src/public-api.ts → public-api.d.ts} +0 -0
  403. /package/card/{src/types/card-state.type.ts → types/card-state.type.d.ts} +0 -0
  404. /package/card/{src/types/card-style.type.ts → types/card-style.type.d.ts} +0 -0
  405. /package/card/{src/types/hover-effect.type.ts → types/hover-effect.type.d.ts} +0 -0
  406. /package/card/{src/types/ribbon-style.type.ts → types/ribbon-style.type.d.ts} +0 -0
  407. /package/card/{src/types/status-position.type.ts → types/status-position.type.d.ts} +0 -0
  408. /package/dropdown/{src/index.ts → index.d.ts} +0 -0
  409. /package/dropdown/{src/models/dropdown-item.type.ts → models/dropdown-item.type.d.ts} +0 -0
  410. /package/dropdown/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  411. /package/dropdown/{src/public-api.ts → public-api.d.ts} +0 -0
  412. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/en.json +0 -0
  413. /package/{form-controls/time-picker/src → esm2022/form-controls/time-picker}/assets/i18n/pt.json +0 -0
  414. /package/{layout/src → esm2022/layout}/assets/i18n/en.json +0 -0
  415. /package/{layout/src → esm2022/layout}/assets/i18n/pt.json +0 -0
  416. /package/{list/src → esm2022/list}/assets/i18n/en.json +0 -0
  417. /package/{list/src → esm2022/list}/assets/i18n/pt.json +0 -0
  418. /package/form/{src/index.ts → index.d.ts} +0 -0
  419. /package/form/{src/public-api.ts → public-api.d.ts} +0 -0
  420. /package/form-controls/checkbox/{src/index.ts → index.d.ts} +0 -0
  421. /package/form-controls/input/{src/directives/public-api.ts → directives/public-api.d.ts} +0 -0
  422. /package/form-controls/input/{src/index.ts → index.d.ts} +0 -0
  423. /package/form-controls/input/{src/public-api.ts → public-api.d.ts} +0 -0
  424. /package/form-controls/input/{src/types/input.type.ts → types/input.type.d.ts} +0 -0
  425. /package/form-controls/input/{src/types/loader-position.type.ts → types/loader-position.type.d.ts} +0 -0
  426. /package/form-controls/input/{src/types/public-api.ts → types/public-api.d.ts} +0 -0
  427. /package/form-controls/radio/{src/index.ts → index.d.ts} +0 -0
  428. /package/form-controls/radio/{src/public-api.ts → public-api.d.ts} +0 -0
  429. /package/form-controls/select/{src/index.ts → index.d.ts} +0 -0
  430. /package/form-controls/select/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  431. /package/form-controls/select/{src/public-api.ts → public-api.d.ts} +0 -0
  432. /package/form-controls/textarea/{src/index.ts → index.d.ts} +0 -0
  433. /package/form-controls/textarea/{src/public-api.ts → public-api.d.ts} +0 -0
  434. /package/form-controls/time-picker/{src/index.ts → index.d.ts} +0 -0
  435. /package/form-controls/time-picker/{src/public-api.ts → public-api.d.ts} +0 -0
  436. /package/layout/{src/abstractions/public-api.ts → abstractions/public-api.d.ts} +0 -0
  437. /package/layout/{src/index.ts → index.d.ts} +0 -0
  438. /package/layout/{src/layouts/public-api.ts → layouts/public-api.d.ts} +0 -0
  439. /package/layout/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  440. /package/layout/{src/models/upd-layout.config.ts → models/upd-layout.config.d.ts} +0 -0
  441. /package/layout/{src/pages/auth-flow/public-api.ts → pages/auth-flow/public-api.d.ts} +0 -0
  442. /package/layout/{src/pages/public-api.ts → pages/public-api.d.ts} +0 -0
  443. /package/layout/{src/partials/footer/public-api.ts → partials/footer/public-api.d.ts} +0 -0
  444. /package/layout/{src/partials/header/header-style.type.ts → partials/header/header-style.type.d.ts} +0 -0
  445. /package/layout/{src/partials/header/public-api.ts → partials/header/public-api.d.ts} +0 -0
  446. /package/layout/{src/partials/page-header/public-api.ts → partials/page-header/public-api.d.ts} +0 -0
  447. /package/layout/{src/partials/public-api.ts → partials/public-api.d.ts} +0 -0
  448. /package/layout/{src/partials/sidebar/public-api.ts → partials/sidebar/public-api.d.ts} +0 -0
  449. /package/layout/{src/public-api.ts → public-api.d.ts} +0 -0
  450. /package/layout/{src/services/public-api.ts → services/public-api.d.ts} +0 -0
  451. /package/{link/src/index.ts → lib/index.d.ts} +0 -0
  452. /package/{src/lib/public-api.ts → lib/public-api.d.ts} +0 -0
  453. /package/{src/lib/types/component-size.type.ts → lib/types/component-size.type.d.ts} +0 -0
  454. /package/{src/lib/types/public-api.ts → lib/types/public-api.d.ts} +0 -0
  455. /package/{src/lib/types/validation-status.type.ts → lib/types/validation-status.type.d.ts} +0 -0
  456. /package/{list/src/index.ts → link/index.d.ts} +0 -0
  457. /package/link/{src/public-api.ts → public-api.d.ts} +0 -0
  458. /package/link/{src/target.type.ts → target.type.d.ts} +0 -0
  459. /package/{popover/src/index.ts → list/index.d.ts} +0 -0
  460. /package/list/{src/models/badge-position.type.ts → models/badge-position.type.d.ts} +0 -0
  461. /package/list/{src/models/public-api.ts → models/public-api.d.ts} +0 -0
  462. /package/list/{src/public-api.ts → public-api.d.ts} +0 -0
  463. /package/{src/lib/index.ts → popover/index.d.ts} +0 -0
  464. /package/popover/{src/public-api.ts → public-api.d.ts} +0 -0
  465. /package/{src/public-api.ts → public-api.d.ts} +0 -0
@@ -0,0 +1,77 @@
1
+ import { Component, ViewEncapsulation, Input, HostBinding, inject } from '@angular/core';
2
+ import { UpdCoreLayoutConfigService, BaseComponent, LayoutService } from '@updevs/sdk/layout';
3
+ import { TranslocoService } from '@ngneat/transloco';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@updevs/icons";
6
+ import * as i2 from "@updevs/components/link";
7
+ export class HeaderComponent extends BaseComponent {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.wrapperClasses = '';
11
+ this.style = 'light';
12
+ this.showSearchBar = true;
13
+ this.nextThemeIcon = 'moon';
14
+ this.nextThemeColor = 'black';
15
+ this.currentNotificationsIcon = 'bell';
16
+ this.hasNewNotifications = false;
17
+ this.showNotifications = false;
18
+ this.showLanguageSwitcher = true; // TODO: add on config.
19
+ this.showUserMenu = false;
20
+ this.baseWrapperClasses = 'navbar navbar-expand-md d-none d-lg-flex d-print-none';
21
+ this.coreLayoutConfigService = inject(UpdCoreLayoutConfigService);
22
+ this.layoutService = inject(LayoutService);
23
+ this.translocoService = inject(TranslocoService);
24
+ }
25
+ ngOnInit() {
26
+ this.updateWrapperClasses();
27
+ if (this.coreLayoutConfigService.config.showNotificationsButton) {
28
+ this.setupNotifications();
29
+ }
30
+ if (this.coreLayoutConfigService.config.showUserMenu) {
31
+ this.showUserMenu = true;
32
+ }
33
+ }
34
+ ngOnChanges(changes) {
35
+ if (!!changes['style'].currentValue) {
36
+ this.updateWrapperClasses();
37
+ }
38
+ }
39
+ switchTheme() {
40
+ const isDarkMode = this.nextThemeIcon === 'moon';
41
+ this.nextThemeIcon = isDarkMode ? 'sun' : 'moon';
42
+ this.nextThemeColor = isDarkMode ? 'white' : 'black';
43
+ this.layoutService.toggleDarkMode(isDarkMode);
44
+ }
45
+ // TODO: implement.
46
+ switchLanguage() {
47
+ const currentLang = this.translocoService.getActiveLang();
48
+ this.translocoService.setActiveLang(currentLang === 'en' ? 'pt' : 'en');
49
+ }
50
+ openNotifications() {
51
+ this.updateNotificationsIcon();
52
+ }
53
+ setupNotifications() {
54
+ this.showNotifications = true;
55
+ }
56
+ updateNotificationsIcon() {
57
+ this.currentNotificationsIcon = this.currentNotificationsIcon === 'bell' ? 'bell-ringing' : 'bell';
58
+ this.hasNewNotifications = !this.hasNewNotifications;
59
+ }
60
+ updateWrapperClasses() {
61
+ this.wrapperClasses = `${this.baseWrapperClasses} navbar-${this.style}`;
62
+ }
63
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: HeaderComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
64
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: HeaderComponent, selector: "upd-header", inputs: { style: "style", showSearchBar: "showSearchBar" }, host: { properties: { "class": "this.wrapperClasses" } }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-xl\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-nav flex-row order-md-last\">\n <div class=\"d-none d-md-flex me-3\">\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchTheme()\">\n <upd-icon [tablerIcon]=\"nextThemeIcon\"></upd-icon>\n </upd-link>\n </div>\n @if (showLanguageSwitcher) {\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchLanguage()\">\n <upd-icon tablerIcon=\"flag\"></upd-icon>\n </upd-link>\n </div>\n }\n @if (showNotifications) {\n <div class=\"nav-item dropdown d-none d-md-flex\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"openNotifications()\">\n <upd-icon [tablerIcon]=\"currentNotificationsIcon\"></upd-icon>\n @if (hasNewNotifications) {\n <span class=\"badge bg-red\"></span>\n }\n </upd-link>\n <div class=\"dropdown-menu dropdown-menu-arrow dropdown-menu-end dropdown-menu-card\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">Last updates</h3>\n </div>\n <div class=\"list-group list-group-flush list-group-hoverable\">\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-red d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 1</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Change deprecated html tags to text decoration classes (#29604)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 2</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n justify-content:between \u21D2 justify-content:space-between (#29734)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions show\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-yellow\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 3</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Update change-version.js (#29736)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-green d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 4</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Regenerate package-lock.json (#29730)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n @if (showUserMenu) {\n <div class=\"nav-item dropdown\">\n <a href=\"#\" class=\"nav-link d-flex lh-1 text-reset p-0\" data-bs-toggle=\"dropdown\"\n aria-label=\"Open user menu\">\n <!--<span class=\"avatar avatar-sm\" style=\"background-image: url(./static/avatars/000m.jpg)\"></span>-->\n <span class=\"avatar avatar-sm\"></span>\n <div class=\"d-none d-xl-block ps-2\">\n <div>Eros Stein</div>\n <div class=\"mt-1 small text-muted\">Administrator</div>\n </div>\n </a>\n <div class=\"dropdown-menu dropdown-menu-end dropdown-menu-arrow\">\n <a href=\"#\" class=\"dropdown-item\">Status</a>\n <a href=\"./profile.html\" class=\"dropdown-item\">Profile</a>\n <a href=\"#\" class=\"dropdown-item\">Feedback</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"./settings.html\" class=\"dropdown-item\">Settings</a>\n <a href=\"./sign-in.html\" class=\"dropdown-item\">Logout</a>\n </div>\n </div>\n }\n </div>\n @if (showSearchBar) {\n <div class=\"collapse navbar-collapse\">\n <div>\n <form autocomplete=\"off\" novalidate>\n <div class=\"input-icon\">\n <span class=\"input-icon-addon\">\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </span>\n <input type=\"text\" value=\"\" class=\"form-control\" placeholder=\"Search\u2026\">\n </div>\n </form>\n </div>\n </div>\n }\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "removeDefaultClasses", "customClasses", "tablerIcon", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i2.LinkComponent, selector: "upd-link", inputs: ["href", "target", "customClasses", "isNavigation"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
65
+ }
66
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: HeaderComponent, decorators: [{
67
+ type: Component,
68
+ args: [{ selector: 'upd-header', encapsulation: ViewEncapsulation.None, template: "<div class=\"container-xl\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <div class=\"navbar-nav flex-row order-md-last\">\n <div class=\"d-none d-md-flex me-3\">\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchTheme()\">\n <upd-icon [tablerIcon]=\"nextThemeIcon\"></upd-icon>\n </upd-link>\n </div>\n @if (showLanguageSwitcher) {\n <div class=\"nav-item\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"switchLanguage()\">\n <upd-icon tablerIcon=\"flag\"></upd-icon>\n </upd-link>\n </div>\n }\n @if (showNotifications) {\n <div class=\"nav-item dropdown d-none d-md-flex\">\n <upd-link [isNavigation]=\"true\" [customClasses]=\"['px-0']\" (clicked)=\"openNotifications()\">\n <upd-icon [tablerIcon]=\"currentNotificationsIcon\"></upd-icon>\n @if (hasNewNotifications) {\n <span class=\"badge bg-red\"></span>\n }\n </upd-link>\n <div class=\"dropdown-menu dropdown-menu-arrow dropdown-menu-end dropdown-menu-card\">\n <div class=\"card\">\n <div class=\"card-header\">\n <h3 class=\"card-title\">Last updates</h3>\n </div>\n <div class=\"list-group list-group-flush list-group-hoverable\">\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-red d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 1</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Change deprecated html tags to text decoration classes (#29604)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 2</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n justify-content:between \u21D2 justify-content:space-between (#29734)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions show\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-yellow\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span class=\"status-dot d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 3</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Update change-version.js (#29736)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n <div class=\"list-group-item\">\n <div class=\"row align-items-center\">\n <div class=\"col-auto\"><span\n class=\"status-dot status-dot-animated bg-green d-block\"></span></div>\n <div class=\"col text-truncate\">\n <a href=\"#\" class=\"text-body d-block\">Example 4</a>\n <div class=\"d-block text-muted text-truncate mt-n1\">\n Regenerate package-lock.json (#29730)\n </div>\n </div>\n <div class=\"col-auto\">\n <a href=\"#\" class=\"list-group-item-actions\">\n <!-- Download SVG icon from http://tabler-icons.io/i/star -->\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"icon text-muted\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" stroke-width=\"2\"\n stroke=\"currentColor\" fill=\"none\" stroke-linecap=\"round\"\n stroke-linejoin=\"round\">\n <path stroke=\"none\" d=\"M0 0h24v24H0z\" fill=\"none\"/>\n <path\n d=\"M12 17.75l-6.172 3.245l1.179 -6.873l-5 -4.867l6.9 -1l3.086 -6.253l3.086 6.253l6.9 1l-5 4.867l1.179 6.873z\"/>\n </svg>\n </a>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n }\n </div>\n @if (showUserMenu) {\n <div class=\"nav-item dropdown\">\n <a href=\"#\" class=\"nav-link d-flex lh-1 text-reset p-0\" data-bs-toggle=\"dropdown\"\n aria-label=\"Open user menu\">\n <!--<span class=\"avatar avatar-sm\" style=\"background-image: url(./static/avatars/000m.jpg)\"></span>-->\n <span class=\"avatar avatar-sm\"></span>\n <div class=\"d-none d-xl-block ps-2\">\n <div>Eros Stein</div>\n <div class=\"mt-1 small text-muted\">Administrator</div>\n </div>\n </a>\n <div class=\"dropdown-menu dropdown-menu-end dropdown-menu-arrow\">\n <a href=\"#\" class=\"dropdown-item\">Status</a>\n <a href=\"./profile.html\" class=\"dropdown-item\">Profile</a>\n <a href=\"#\" class=\"dropdown-item\">Feedback</a>\n <div class=\"dropdown-divider\"></div>\n <a href=\"./settings.html\" class=\"dropdown-item\">Settings</a>\n <a href=\"./sign-in.html\" class=\"dropdown-item\">Logout</a>\n </div>\n </div>\n }\n </div>\n @if (showSearchBar) {\n <div class=\"collapse navbar-collapse\">\n <div>\n <form autocomplete=\"off\" novalidate>\n <div class=\"input-icon\">\n <span class=\"input-icon-addon\">\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </span>\n <input type=\"text\" value=\"\" class=\"form-control\" placeholder=\"Search\u2026\">\n </div>\n </form>\n </div>\n </div>\n }\n</div>\n" }]
69
+ }], propDecorators: { wrapperClasses: [{
70
+ type: HostBinding,
71
+ args: ['class']
72
+ }], style: [{
73
+ type: Input
74
+ }], showSearchBar: [{
75
+ type: Input
76
+ }] } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL2xheW91dC9zcmMvcGFydGlhbHMvaGVhZGVyL2hlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cGRldnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL2hlYWRlci9oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFvQyxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0gsT0FBTyxFQUFFLDBCQUEwQixFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQVVyRCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxhQUFhO0lBTmxEOztRQU8wQixtQkFBYyxHQUFHLEVBQUUsQ0FBQztRQUVqQyxVQUFLLEdBQW9CLE9BQU8sQ0FBQztRQUNqQyxrQkFBYSxHQUFHLElBQUksQ0FBQztRQUU5QixrQkFBYSxHQUFvQixNQUFNLENBQUM7UUFDeEMsbUJBQWMsR0FBRyxPQUFPLENBQUM7UUFDekIsNkJBQXdCLEdBQW9CLE1BQU0sQ0FBQztRQUNuRCx3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFDNUIsc0JBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQzFCLHlCQUFvQixHQUFHLElBQUksQ0FBQyxDQUFDLHVCQUF1QjtRQUNwRCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUViLHVCQUFrQixHQUFHLHVEQUF1RCxDQUFDO1FBRXBFLDRCQUF1QixHQUFHLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO1FBQzdELGtCQUFhLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0tBa0RoRTtJQWhERyxRQUFRO1FBQ0osSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFFNUIsSUFBSSxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLHVCQUF1QixFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDOUIsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNuRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztRQUM3QixDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDbEMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7UUFDaEMsQ0FBQztJQUNMLENBQUM7SUFFRCxXQUFXO1FBQ1AsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUM7UUFDakQsSUFBSSxDQUFDLGFBQWEsR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ2pELElBQUksQ0FBQyxjQUFjLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQztRQUVyRCxJQUFJLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsbUJBQW1CO0lBQ25CLGNBQWM7UUFDVixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxXQUFXLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVFLENBQUM7SUFFRCxpQkFBaUI7UUFDYixJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVPLHVCQUF1QjtRQUMzQixJQUFJLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixLQUFLLE1BQU0sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFDbkcsSUFBSSxDQUFDLG1CQUFtQixHQUFHLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3pELENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsV0FBVyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDNUUsQ0FBQzs4R0FuRVEsZUFBZTtrR0FBZixlQUFlLG9OQ2I1Qix1dFhBNktBOzsyRkRoS2EsZUFBZTtrQkFOM0IsU0FBUzsrQkFDSSxZQUFZLGlCQUdQLGlCQUFpQixDQUFDLElBQUk7OEJBR2YsY0FBYztzQkFBbkMsV0FBVzt1QkFBQyxPQUFPO2dCQUVYLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3RW5jYXBzdWxhdGlvbiwgSW5wdXQsIEhvc3RCaW5kaW5nLCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBVcGRDb3JlTGF5b3V0Q29uZmlnU2VydmljZSwgQmFzZUNvbXBvbmVudCwgTGF5b3V0U2VydmljZSB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBUYWJsZXJJY29uc1R5cGUgfSBmcm9tICdAdXBkZXZzL2ljb25zJztcbmltcG9ydCB7IFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAbmduZWF0L3RyYW5zbG9jbyc7XG5cbmltcG9ydCB7IEhlYWRlclN0eWxlVHlwZSB9IGZyb20gJy4vaGVhZGVyLXN0eWxlLnR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2hlYWRlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgSGVhZGVyQ29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgd3JhcHBlckNsYXNzZXMgPSAnJztcblxuICAgIEBJbnB1dCgpIHN0eWxlOiBIZWFkZXJTdHlsZVR5cGUgPSAnbGlnaHQnO1xuICAgIEBJbnB1dCgpIHNob3dTZWFyY2hCYXIgPSB0cnVlO1xuXG4gICAgbmV4dFRoZW1lSWNvbjogVGFibGVySWNvbnNUeXBlID0gJ21vb24nO1xuICAgIG5leHRUaGVtZUNvbG9yID0gJ2JsYWNrJztcbiAgICBjdXJyZW50Tm90aWZpY2F0aW9uc0ljb246IFRhYmxlckljb25zVHlwZSA9ICdiZWxsJztcbiAgICBoYXNOZXdOb3RpZmljYXRpb25zID0gZmFsc2U7XG4gICAgc2hvd05vdGlmaWNhdGlvbnMgPSBmYWxzZTtcbiAgICBzaG93TGFuZ3VhZ2VTd2l0Y2hlciA9IHRydWU7IC8vIFRPRE86IGFkZCBvbiBjb25maWcuXG4gICAgc2hvd1VzZXJNZW51ID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGJhc2VXcmFwcGVyQ2xhc3NlcyA9ICduYXZiYXIgbmF2YmFyLWV4cGFuZC1tZCBkLW5vbmUgZC1sZy1mbGV4IGQtcHJpbnQtbm9uZSc7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvcmVMYXlvdXRDb25maWdTZXJ2aWNlID0gaW5qZWN0KFVwZENvcmVMYXlvdXRDb25maWdTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGxheW91dFNlcnZpY2UgPSBpbmplY3QoTGF5b3V0U2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlV3JhcHBlckNsYXNzZXMoKTtcblxuICAgICAgICBpZiAodGhpcy5jb3JlTGF5b3V0Q29uZmlnU2VydmljZS5jb25maWcuc2hvd05vdGlmaWNhdGlvbnNCdXR0b24pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBOb3RpZmljYXRpb25zKCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5jb3JlTGF5b3V0Q29uZmlnU2VydmljZS5jb25maWcuc2hvd1VzZXJNZW51KSB7XG4gICAgICAgICAgICB0aGlzLnNob3dVc2VyTWVudSA9IHRydWU7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIGlmICghIWNoYW5nZXNbJ3N0eWxlJ10uY3VycmVudFZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVdyYXBwZXJDbGFzc2VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzd2l0Y2hUaGVtZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXNEYXJrTW9kZSA9IHRoaXMubmV4dFRoZW1lSWNvbiA9PT0gJ21vb24nO1xuICAgICAgICB0aGlzLm5leHRUaGVtZUljb24gPSBpc0RhcmtNb2RlID8gJ3N1bicgOiAnbW9vbic7XG4gICAgICAgIHRoaXMubmV4dFRoZW1lQ29sb3IgPSBpc0RhcmtNb2RlID8gJ3doaXRlJyA6ICdibGFjayc7XG5cbiAgICAgICAgdGhpcy5sYXlvdXRTZXJ2aWNlLnRvZ2dsZURhcmtNb2RlKGlzRGFya01vZGUpO1xuICAgIH1cblxuICAgIC8vIFRPRE86IGltcGxlbWVudC5cbiAgICBzd2l0Y2hMYW5ndWFnZSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudExhbmcgPSB0aGlzLnRyYW5zbG9jb1NlcnZpY2UuZ2V0QWN0aXZlTGFuZygpO1xuICAgICAgICB0aGlzLnRyYW5zbG9jb1NlcnZpY2Uuc2V0QWN0aXZlTGFuZyhjdXJyZW50TGFuZyA9PT0gJ2VuJyA/ICdwdCcgOiAnZW4nKTtcbiAgICB9XG5cbiAgICBvcGVuTm90aWZpY2F0aW9ucygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVOb3RpZmljYXRpb25zSWNvbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBOb3RpZmljYXRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNob3dOb3RpZmljYXRpb25zID0gdHJ1ZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZU5vdGlmaWNhdGlvbnNJY29uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnROb3RpZmljYXRpb25zSWNvbiA9IHRoaXMuY3VycmVudE5vdGlmaWNhdGlvbnNJY29uID09PSAnYmVsbCcgPyAnYmVsbC1yaW5naW5nJyA6ICdiZWxsJztcbiAgICAgICAgdGhpcy5oYXNOZXdOb3RpZmljYXRpb25zID0gIXRoaXMuaGFzTmV3Tm90aWZpY2F0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVdyYXBwZXJDbGFzc2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLndyYXBwZXJDbGFzc2VzID0gYCR7dGhpcy5iYXNlV3JhcHBlckNsYXNzZXN9IG5hdmJhci0ke3RoaXMuc3R5bGV9YDtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLXhsXCI+XG4gICAgPGJ1dHRvbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyXCIgdHlwZT1cImJ1dHRvblwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdmJhci10b2dnbGVyLWljb25cIj48L3NwYW4+XG4gICAgPC9idXR0b24+XG4gICAgPGRpdiBjbGFzcz1cIm5hdmJhci1uYXYgZmxleC1yb3cgb3JkZXItbWQtbGFzdFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ub25lIGQtbWQtZmxleCBtZS0zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWl0ZW1cIj5cbiAgICAgICAgICAgICAgICA8dXBkLWxpbmsgW2lzTmF2aWdhdGlvbl09XCJ0cnVlXCIgW2N1c3RvbUNsYXNzZXNdPVwiWydweC0wJ11cIiAoY2xpY2tlZCk9XCJzd2l0Y2hUaGVtZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDx1cGQtaWNvbiBbdGFibGVySWNvbl09XCJuZXh0VGhlbWVJY29uXCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L3VwZC1saW5rPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKHNob3dMYW5ndWFnZVN3aXRjaGVyKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtXCI+XG4gICAgICAgICAgICAgICAgICAgIDx1cGQtbGluayBbaXNOYXZpZ2F0aW9uXT1cInRydWVcIiBbY3VzdG9tQ2xhc3Nlc109XCJbJ3B4LTAnXVwiIChjbGlja2VkKT1cInN3aXRjaExhbmd1YWdlKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDx1cGQtaWNvbiB0YWJsZXJJY29uPVwiZmxhZ1wiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvdXBkLWxpbms+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHNob3dOb3RpZmljYXRpb25zKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5hdi1pdGVtIGRyb3Bkb3duIGQtbm9uZSBkLW1kLWZsZXhcIj5cbiAgICAgICAgICAgICAgICAgICAgPHVwZC1saW5rIFtpc05hdmlnYXRpb25dPVwidHJ1ZVwiIFtjdXN0b21DbGFzc2VzXT1cIlsncHgtMCddXCIgKGNsaWNrZWQpPVwib3Blbk5vdGlmaWNhdGlvbnMoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1pY29uIFt0YWJsZXJJY29uXT1cImN1cnJlbnROb3RpZmljYXRpb25zSWNvblwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICBAaWYgKGhhc05ld05vdGlmaWNhdGlvbnMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJnLXJlZFwiPjwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC91cGQtbGluaz5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1hcnJvdyBkcm9wZG93bi1tZW51LWVuZCBkcm9wZG93bi1tZW51LWNhcmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cImNhcmQtdGl0bGVcIj5MYXN0IHVwZGF0ZXM8L2gzPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWdyb3VwIGxpc3QtZ3JvdXAtZmx1c2ggbGlzdC1ncm91cC1ob3ZlcmFibGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj48c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXR1cy1kb3Qgc3RhdHVzLWRvdC1hbmltYXRlZCBiZy1yZWQgZC1ibG9ja1wiPjwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHRleHQtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cInRleHQtYm9keSBkLWJsb2NrXCI+RXhhbXBsZSAxPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ibG9jayB0ZXh0LW11dGVkIHRleHQtdHJ1bmNhdGUgbXQtbjFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIENoYW5nZSBkZXByZWNhdGVkIGh0bWwgdGFncyB0byB0ZXh0IGRlY29yYXRpb24gY2xhc3NlcyAoIzI5NjA0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIERvd25sb2FkIFNWRyBpY29uIGZyb20gaHR0cDovL3RhYmxlci1pY29ucy5pby9pL3N0YXIgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImljb24gdGV4dC1tdXRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIiBmaWxsPVwibm9uZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE3Ljc1bC02LjE3MiAzLjI0NWwxLjE3OSAtNi44NzNsLTUgLTQuODY3bDYuOSAtMWwzLjA4NiAtNi4yNTNsMy4wODYgNi4yNTNsNi45IDFsLTUgNC44NjdsMS4xNzkgNi44NzN6XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj48c3BhbiBjbGFzcz1cInN0YXR1cy1kb3QgZC1ibG9ja1wiPjwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHRleHQtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cInRleHQtYm9keSBkLWJsb2NrXCI+RXhhbXBsZSAyPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ibG9jayB0ZXh0LW11dGVkIHRleHQtdHJ1bmNhdGUgbXQtbjFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGp1c3RpZnktY29udGVudDpiZXR3ZWVuIOKHkiBqdXN0aWZ5LWNvbnRlbnQ6c3BhY2UtYmV0d2VlbiAoIzI5NzM0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbS1hY3Rpb25zIHNob3dcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gRG93bmxvYWQgU1ZHIGljb24gZnJvbSBodHRwOi8vdGFibGVyLWljb25zLmlvL2kvc3RhciAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIGNsYXNzPVwiaWNvbiB0ZXh0LXllbGxvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIiBmaWxsPVwibm9uZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE3Ljc1bC02LjE3MiAzLjI0NWwxLjE3OSAtNi44NzNsLTUgLTQuODY3bDYuOSAtMWwzLjA4NiAtNi4yNTNsMy4wODYgNi4yNTNsNi45IDFsLTUgNC44NjdsMS4xNzkgNi44NzN6XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj48c3BhbiBjbGFzcz1cInN0YXR1cy1kb3QgZC1ibG9ja1wiPjwvc3Bhbj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHRleHQtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cInRleHQtYm9keSBkLWJsb2NrXCI+RXhhbXBsZSAzPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ibG9jayB0ZXh0LW11dGVkIHRleHQtdHJ1bmNhdGUgbXQtbjFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVwZGF0ZSBjaGFuZ2UtdmVyc2lvbi5qcyAoIzI5NzM2KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIERvd25sb2FkIFNWRyBpY29uIGZyb20gaHR0cDovL3RhYmxlci1pY29ucy5pby9pL3N0YXIgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImljb24gdGV4dC1tdXRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIiBmaWxsPVwibm9uZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE3Ljc1bC02LjE3MiAzLjI0NWwxLjE3OSAtNi44NzNsLTUgLTQuODY3bDYuOSAtMWwzLjA4NiAtNi4yNTNsMy4wODYgNi4yNTNsNi45IDFsLTUgNC44NjdsMS4xNzkgNi44NzN6XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj48c3BhblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInN0YXR1cy1kb3Qgc3RhdHVzLWRvdC1hbmltYXRlZCBiZy1ncmVlbiBkLWJsb2NrXCI+PC9zcGFuPjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdGV4dC10cnVuY2F0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwidGV4dC1ib2R5IGQtYmxvY2tcIj5FeGFtcGxlIDQ8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWJsb2NrIHRleHQtbXV0ZWQgdGV4dC10cnVuY2F0ZSBtdC1uMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgUmVnZW5lcmF0ZSBwYWNrYWdlLWxvY2suanNvbiAoIzI5NzMwKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbS1hY3Rpb25zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIERvd25sb2FkIFNWRyBpY29uIGZyb20gaHR0cDovL3RhYmxlci1pY29ucy5pby9pL3N0YXIgLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiBjbGFzcz1cImljb24gdGV4dC1tdXRlZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIyNFwiIGhlaWdodD1cIjI0XCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIHN0cm9rZS13aWR0aD1cIjJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIGZpbGw9XCJub25lXCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBzdHJva2U9XCJub25lXCIgZD1cIk0wIDBoMjR2MjRIMHpcIiBmaWxsPVwibm9uZVwiLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTEyIDE3Ljc1bC02LjE3MiAzLjI0NWwxLjE3OSAtNi44NzNsLTUgLTQuODY3bDYuOSAtMWwzLjA4NiAtNi4yNTNsMy4wODYgNi4yNTNsNi45IDFsLTUgNC44NjdsMS4xNzkgNi44NzN6XCIvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIEBpZiAoc2hvd1VzZXJNZW51KSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmF2LWl0ZW0gZHJvcGRvd25cIj5cbiAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwibmF2LWxpbmsgZC1mbGV4IGxoLTEgdGV4dC1yZXNldCBwLTBcIiBkYXRhLWJzLXRvZ2dsZT1cImRyb3Bkb3duXCJcbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIk9wZW4gdXNlciBtZW51XCI+XG4gICAgICAgICAgICAgICAgICAgIDwhLS08c3BhbiBjbGFzcz1cImF2YXRhciBhdmF0YXItc21cIiBzdHlsZT1cImJhY2tncm91bmQtaW1hZ2U6IHVybCguL3N0YXRpYy9hdmF0YXJzLzAwMG0uanBnKVwiPjwvc3Bhbj4tLT5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdmF0YXIgYXZhdGFyLXNtXCI+PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1ub25lIGQteGwtYmxvY2sgcHMtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5Fcm9zIFN0ZWluPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMSBzbWFsbCB0ZXh0LW11dGVkXCI+QWRtaW5pc3RyYXRvcjwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLW1lbnUgZHJvcGRvd24tbWVudS1lbmQgZHJvcGRvd24tbWVudS1hcnJvd1wiPlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiI1wiIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiPlN0YXR1czwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi4vcHJvZmlsZS5odG1sXCIgY2xhc3M9XCJkcm9wZG93bi1pdGVtXCI+UHJvZmlsZTwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIiNcIiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIj5GZWVkYmFjazwvYT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3Bkb3duLWRpdmlkZXJcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGEgaHJlZj1cIi4vc2V0dGluZ3MuaHRtbFwiIGNsYXNzPVwiZHJvcGRvd24taXRlbVwiPlNldHRpbmdzPC9hPlxuICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiLi9zaWduLWluLmh0bWxcIiBjbGFzcz1cImRyb3Bkb3duLWl0ZW1cIj5Mb2dvdXQ8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuICAgIEBpZiAoc2hvd1NlYXJjaEJhcikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sbGFwc2UgbmF2YmFyLWNvbGxhcHNlXCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxmb3JtIGF1dG9jb21wbGV0ZT1cIm9mZlwiIG5vdmFsaWRhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1pY29uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWljb24tYWRkb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cInNlYXJjaFwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiB2YWx1ZT1cIlwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJTZWFyY2jigKZcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvZGl2PlxuIl19
@@ -0,0 +1,3 @@
1
+ export * from './header.component';
2
+ export * from './header-style.type';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL2xheW91dC9zcmMvcGFydGlhbHMvaGVhZGVyL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZWFkZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vaGVhZGVyLXN0eWxlLnR5cGUnO1xuIl19
@@ -0,0 +1,14 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@updevs/components/button";
4
+ export class PageHeaderComponent {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: PageHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: PageHeaderComponent, selector: "upd-page-header", inputs: { model: "model" }, ngImport: i0, template: "<div class=\"page-header d-print-none\">\n <div class=\"container-xl\">\n <div class=\"row g-2 align-items-center\">\n <div class=\"col\">\n <div class=\"page-pretitle\">\n {{ model.titleHeader }}\n </div>\n <h2 class=\"page-title\">\n {{ model.title }}\n </h2>\n </div>\n @if ((model.actionButtons?.length || 0) > 0) {\n <div class=\"col-auto ms-auto d-print-none\">\n <div class=\"btn-list\">\n @for (btn of model.actionButtons; track btn) {\n <upd-button [model]=\"btn!\"></upd-button>\n }\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: i1.ButtonComponent, selector: "upd-button", inputs: ["text", "model", "colorStyle", "brandColorStyle", "customClasses", "isActive", "isDisabled", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "shouldIgnoreBtnClass"], outputs: ["clicked"] }] }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: PageHeaderComponent, decorators: [{
9
+ type: Component,
10
+ args: [{ selector: 'upd-page-header', template: "<div class=\"page-header d-print-none\">\n <div class=\"container-xl\">\n <div class=\"row g-2 align-items-center\">\n <div class=\"col\">\n <div class=\"page-pretitle\">\n {{ model.titleHeader }}\n </div>\n <h2 class=\"page-title\">\n {{ model.title }}\n </h2>\n </div>\n @if ((model.actionButtons?.length || 0) > 0) {\n <div class=\"col-auto ms-auto d-print-none\">\n <div class=\"btn-list\">\n @for (btn of model.actionButtons; track btn) {\n <upd-button [model]=\"btn!\"></upd-button>\n }\n </div>\n </div>\n }\n </div>\n </div>\n</div>\n" }]
11
+ }], propDecorators: { model: [{
12
+ type: Input
13
+ }] } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXBkZXZzL2NvbXBvbmVudHMvbGF5b3V0L3NyYy9wYXJ0aWFscy9wYWdlLWhlYWRlci9wYWdlLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cGRldnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL3BhZ2UtaGVhZGVyL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFRakQsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1CO2tHQUFuQixtQkFBbUIsbUZDUmhDLCswQkF1QkE7OzJGRGZhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDSSxpQkFBaUI7OEJBS2xCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhZ2VIZWFkZXJNb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLXBhZ2UtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcGFnZS1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3BhZ2UtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFnZUhlYWRlckNvbXBvbmVudCB7XG4gICAgQElucHV0KCkgbW9kZWwhOiBQYWdlSGVhZGVyTW9kZWw7XG59XG4iLCI8ZGl2IGNsYXNzPVwicGFnZS1oZWFkZXIgZC1wcmludC1ub25lXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci14bFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMiBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicGFnZS1wcmV0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBtb2RlbC50aXRsZUhlYWRlciB9fVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInBhZ2UtdGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAge3sgbW9kZWwudGl0bGUgfX1cbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKChtb2RlbC5hY3Rpb25CdXR0b25zPy5sZW5ndGggfHwgMCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIG1zLWF1dG8gZC1wcmludC1ub25lXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG4tbGlzdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQGZvciAoYnRuIG9mIG1vZGVsLmFjdGlvbkJ1dHRvbnM7IHRyYWNrIGJ0bikge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1cGQtYnV0dG9uIFttb2RlbF09XCJidG4hXCI+PC91cGQtYnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './page-header.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL2xheW91dC9zcmMvcGFydGlhbHMvcGFnZS1oZWFkZXIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wYWdlLWhlYWRlci5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,5 @@
1
+ export * from './footer/public-api';
2
+ export * from './header/public-api';
3
+ export * from './page-header/public-api';
4
+ export * from './sidebar/public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL2xheW91dC9zcmMvcGFydGlhbHMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLHNCQUFzQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb290ZXIvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2hlYWRlci9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZS1oZWFkZXIvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3NpZGViYXIvcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './sidebar.component';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL2xheW91dC9zcmMvcGFydGlhbHMvc2lkZWJhci9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3NpZGViYXIuY29tcG9uZW50JztcbiJdfQ==
@@ -0,0 +1,143 @@
1
+ import { Component, HostBinding, ViewEncapsulation, inject } from '@angular/core';
2
+ import { Router, NavigationStart } from '@angular/router';
3
+ import { RouteDataModel } from '@updevs/sdk/routes';
4
+ import { BaseComponent } from '@updevs/sdk/layout';
5
+ import { filter } from 'rxjs';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@updevs/icons";
9
+ import * as i3 from "@updevs/components/link";
10
+ export class SidebarComponent extends BaseComponent {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.wrapperClasses = 'navbar navbar-vertical navbar-expand-lg';
14
+ this.theme = 'dark';
15
+ this.menuItems = [];
16
+ this.router = inject(Router);
17
+ }
18
+ ngOnInit() {
19
+ // TODO: remove demo code.
20
+ const sampleCardsItem = new RouteDataModel({
21
+ title: 'Sample cards',
22
+ icon: { tablerIcon: 'home' }
23
+ });
24
+ const cardActionsItem = new RouteDataModel({
25
+ title: 'Card actions',
26
+ icon: { tablerIcon: 'folder' }
27
+ });
28
+ const emptyPageItem = new RouteDataModel({
29
+ title: 'Empty page',
30
+ icon: { tablerIcon: 'home' }
31
+ });
32
+ const cardsItem = new RouteDataModel({
33
+ title: 'Cards',
34
+ icon: { tablerIcon: 'user' },
35
+ children: [
36
+ sampleCardsItem,
37
+ cardActionsItem
38
+ ]
39
+ });
40
+ const interfaceItem = new RouteDataModel({
41
+ title: 'Interface',
42
+ icon: { tablerIcon: 'device-desktop' },
43
+ children: [
44
+ emptyPageItem,
45
+ cardsItem
46
+ ]
47
+ });
48
+ sampleCardsItem.parent = cardsItem;
49
+ cardActionsItem.parent = cardsItem;
50
+ emptyPageItem.parent = interfaceItem;
51
+ cardsItem.parent = interfaceItem;
52
+ this.menuItems = [
53
+ new RouteDataModel({
54
+ title: 'Home',
55
+ icon: { tablerIcon: 'home' }
56
+ }),
57
+ new RouteDataModel({
58
+ title: 'Archives',
59
+ icon: { tablerIcon: 'folder' }
60
+ }),
61
+ interfaceItem,
62
+ new RouteDataModel({
63
+ title: 'Library',
64
+ icon: { tablerIcon: 'building' }
65
+ })
66
+ ];
67
+ // END demo code
68
+ const routerSub = this.router.events.pipe(filter(event => event instanceof NavigationStart)).subscribe(event => this.updateActiveRoute(event.url));
69
+ this.updateActiveRoute(this.router.url);
70
+ this.addSubscriptions(routerSub);
71
+ }
72
+ onMenuItemClick(item) {
73
+ this.resetMenuState(this.menuItems);
74
+ item.isActive = true;
75
+ this.updateParents(item);
76
+ if (!!item.clickFunction) {
77
+ item.clickFunction();
78
+ return;
79
+ }
80
+ if ((item.children?.length || 0) > 0) {
81
+ return;
82
+ }
83
+ this.router.navigate(item.getFullPath()).then();
84
+ }
85
+ hasChildren(item) {
86
+ return (item.children?.length || 0) > 0;
87
+ }
88
+ findActiveNode(item, fullPath) {
89
+ if (item.fullPath === fullPath) {
90
+ return item;
91
+ }
92
+ else if (item.children.length > 0) {
93
+ let result;
94
+ for (let i = 0; !result && i < item.children.length; i++) {
95
+ result = this.findActiveNode(item.children[i], fullPath);
96
+ }
97
+ return result;
98
+ }
99
+ return undefined;
100
+ }
101
+ updateActiveRoute(newPath) {
102
+ this.resetMenuState(this.menuItems);
103
+ let item;
104
+ for (const mi of this.menuItems) {
105
+ item = this.findActiveNode(mi, newPath);
106
+ if (!!item) {
107
+ break;
108
+ }
109
+ }
110
+ while (!!item) {
111
+ item.isActive = true;
112
+ item = item.parent;
113
+ }
114
+ }
115
+ resetMenuState(items) {
116
+ items.forEach(i => {
117
+ i.isActive = false;
118
+ if (i.children.length > 0) {
119
+ this.resetMenuState(i.children);
120
+ }
121
+ });
122
+ }
123
+ updateParents(menuItem) {
124
+ let item = menuItem;
125
+ while (!!item) {
126
+ item.isActive = true;
127
+ item = item.parent;
128
+ }
129
+ }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SidebarComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
131
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.1", type: SidebarComponent, selector: "upd-sidebar", host: { properties: { "class": "this.wrapperClasses", "attr.data-bs-theme": "this.theme" } }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-fluid\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <h1 class=\"navbar-brand navbar-brand-autodark\">\n <a href=\".\">\n <img width=\"110\" height=\"32\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </h1>\n <div class=\"collapse navbar-collapse\">\n <ul class=\"navbar-nav pt-lg-3\">\n @for (item of menuItems; track item) {\n <li class=\"nav-item\" [class.dropdown]=\"hasChildren(item)\" [class.active]=\"item.isActive\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n </li>\n }\n </ul>\n </div>\n</div>\n\n<ng-template #itemTpl let-item=\"menuItem\">\n <upd-link [isNavigation]=\"true\" (clicked)=\"onMenuItemClick(item)\"\n [customClasses]=\"[hasChildren(item) ? 'dropdown-toggle' : '', item.isActive ? 'show' : '']\">\n <span class=\"nav-link-icon d-md-none d-lg-inline-block\">\n <upd-icon [model]=\"item.icon\"></upd-icon>\n </span>\n <span class=\"nav-link-title\">{{ item.title }}</span>\n </upd-link>\n @if (hasChildren(item)) {\n <ng-container [ngTemplateOutlet]=\"childrenTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n }\n</ng-template>\n\n<ng-template #childrenTpl let-item=\"menuItem\">\n <div class=\"dropdown-menu\" [class.show]=\"item.isActive\">\n <div class=\"dropdown-menu-columns\">\n <div class=\"dropdown-menu-column\">\n @for (child of item.children; track child) {\n @if (!hasChildren(child)) {\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', child.isActive ? 'active' : '']\">\n {{ child.title }}\n </upd-link>\n } @else {\n <div class=\"dropend\">\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', 'dropdown-toggle', child.isActive ? 'active' : '']\">\n {{ child.title }}\n </upd-link>\n <div class=\"dropdown-menu\" [class.show]=\"child.isActive\">\n @for (grandchild of child.children; track grandchild) {\n <upd-link (clicked)=\"onMenuItemClick(grandchild)\"\n [customClasses]=\"['dropdown-item', grandchild.isActive ? 'active' : '']\">\n {{ grandchild.title }}\n </upd-link>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n </div>\n</ng-template>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "removeDefaultClasses", "customClasses", "tablerIcon", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i3.LinkComponent, selector: "upd-link", inputs: ["href", "target", "customClasses", "isNavigation"], outputs: ["clicked"] }], encapsulation: i0.ViewEncapsulation.None }); }
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: SidebarComponent, decorators: [{
134
+ type: Component,
135
+ args: [{ selector: 'upd-sidebar', encapsulation: ViewEncapsulation.None, template: "<div class=\"container-fluid\">\n <button class=\"navbar-toggler\" type=\"button\">\n <span class=\"navbar-toggler-icon\"></span>\n </button>\n <h1 class=\"navbar-brand navbar-brand-autodark\">\n <a href=\".\">\n <img width=\"110\" height=\"32\" class=\"navbar-brand-image upd-brand-logo\"/>\n </a>\n </h1>\n <div class=\"collapse navbar-collapse\">\n <ul class=\"navbar-nav pt-lg-3\">\n @for (item of menuItems; track item) {\n <li class=\"nav-item\" [class.dropdown]=\"hasChildren(item)\" [class.active]=\"item.isActive\">\n <ng-container [ngTemplateOutlet]=\"itemTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n </li>\n }\n </ul>\n </div>\n</div>\n\n<ng-template #itemTpl let-item=\"menuItem\">\n <upd-link [isNavigation]=\"true\" (clicked)=\"onMenuItemClick(item)\"\n [customClasses]=\"[hasChildren(item) ? 'dropdown-toggle' : '', item.isActive ? 'show' : '']\">\n <span class=\"nav-link-icon d-md-none d-lg-inline-block\">\n <upd-icon [model]=\"item.icon\"></upd-icon>\n </span>\n <span class=\"nav-link-title\">{{ item.title }}</span>\n </upd-link>\n @if (hasChildren(item)) {\n <ng-container [ngTemplateOutlet]=\"childrenTpl\" [ngTemplateOutletContext]=\"{menuItem: item}\">\n </ng-container>\n }\n</ng-template>\n\n<ng-template #childrenTpl let-item=\"menuItem\">\n <div class=\"dropdown-menu\" [class.show]=\"item.isActive\">\n <div class=\"dropdown-menu-columns\">\n <div class=\"dropdown-menu-column\">\n @for (child of item.children; track child) {\n @if (!hasChildren(child)) {\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', child.isActive ? 'active' : '']\">\n {{ child.title }}\n </upd-link>\n } @else {\n <div class=\"dropend\">\n <upd-link (clicked)=\"onMenuItemClick(child)\"\n [customClasses]=\"['dropdown-item', 'dropdown-toggle', child.isActive ? 'active' : '']\">\n {{ child.title }}\n </upd-link>\n <div class=\"dropdown-menu\" [class.show]=\"child.isActive\">\n @for (grandchild of child.children; track grandchild) {\n <upd-link (clicked)=\"onMenuItemClick(grandchild)\"\n [customClasses]=\"['dropdown-item', grandchild.isActive ? 'active' : '']\">\n {{ grandchild.title }}\n </upd-link>\n }\n </div>\n </div>\n }\n }\n </div>\n </div>\n </div>\n</ng-template>\n" }]
136
+ }], propDecorators: { wrapperClasses: [{
137
+ type: HostBinding,
138
+ args: ['class']
139
+ }], theme: [{
140
+ type: HostBinding,
141
+ args: ['attr.data-bs-theme']
142
+ }] } });
143
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2lkZWJhci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cGRldnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cGRldnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3BhcnRpYWxzL3NpZGViYXIvc2lkZWJhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLE1BQU0sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7O0FBUTlCLE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxhQUFhO0lBTm5EOztRQU8wQixtQkFBYyxHQUFHLHlDQUF5QyxDQUFDO1FBQzlDLFVBQUssR0FBRyxNQUFNLENBQUM7UUFFbEQsY0FBUyxHQUFxQixFQUFFLENBQUM7UUFFaEIsV0FBTSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztLQXlJNUM7SUF2SUcsUUFBUTtRQUNKLDBCQUEwQjtRQUMxQixNQUFNLGVBQWUsR0FBRyxJQUFJLGNBQWMsQ0FBQztZQUN2QyxLQUFLLEVBQUUsY0FBYztZQUNyQixJQUFJLEVBQUUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFO1NBQy9CLENBQUMsQ0FBQztRQUNILE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFDO1lBQ3ZDLEtBQUssRUFBRSxjQUFjO1lBQ3JCLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUU7U0FDakMsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxhQUFhLEdBQUcsSUFBSSxjQUFjLENBQUM7WUFDckMsS0FBSyxFQUFFLFlBQVk7WUFDbkIsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTtTQUMvQixDQUFDLENBQUM7UUFDSCxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBQztZQUNqQyxLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7WUFDNUIsUUFBUSxFQUFFO2dCQUNOLGVBQWU7Z0JBQ2YsZUFBZTthQUNsQjtTQUNKLENBQUMsQ0FBQztRQUNILE1BQU0sYUFBYSxHQUFHLElBQUksY0FBYyxDQUFDO1lBQ3JDLEtBQUssRUFBRSxXQUFXO1lBQ2xCLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxnQkFBZ0IsRUFBRTtZQUN0QyxRQUFRLEVBQUU7Z0JBQ04sYUFBYTtnQkFDYixTQUFTO2FBQ1o7U0FDSixDQUFDLENBQUM7UUFDSCxlQUFlLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUNuQyxlQUFlLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQztRQUNuQyxhQUFhLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztRQUNyQyxTQUFTLENBQUMsTUFBTSxHQUFHLGFBQWEsQ0FBQztRQUNqQyxJQUFJLENBQUMsU0FBUyxHQUFHO1lBQ2IsSUFBSSxjQUFjLENBQUM7Z0JBQ2YsS0FBSyxFQUFFLE1BQU07Z0JBQ2IsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTthQUMvQixDQUFDO1lBQ0YsSUFBSSxjQUFjLENBQUM7Z0JBQ2YsS0FBSyxFQUFFLFVBQVU7Z0JBQ2pCLElBQUksRUFBRSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUU7YUFDakMsQ0FBQztZQUNGLGFBQWE7WUFDYixJQUFJLGNBQWMsQ0FBQztnQkFDZixLQUFLLEVBQUUsU0FBUztnQkFDaEIsSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRTthQUNuQyxDQUFDO1NBQ0wsQ0FBQztRQUNGLGdCQUFnQjtRQUVoQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQ3JDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssWUFBWSxlQUFlLENBQUMsQ0FDcEQsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQW9CLEtBQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTVFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsZUFBZSxDQUFDLElBQW9CO1FBQ2hDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBRXJCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUNyQixPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUNuQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxXQUFXLENBQUMsSUFBb0I7UUFDNUIsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRU8sY0FBYyxDQUFDLElBQW9CLEVBQUUsUUFBZ0I7UUFDekQsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzdCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ2xDLElBQUksTUFBTSxDQUFDO1lBRVgsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxNQUFNLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQ3ZELE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7WUFDN0QsQ0FBQztZQUVELE9BQU8sTUFBTSxDQUFDO1FBQ2xCLENBQUM7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDO0lBRU8saUJBQWlCLENBQUMsT0FBZTtRQUNyQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUVwQyxJQUFJLElBQWtDLENBQUM7UUFFdkMsS0FBSyxNQUFNLEVBQUUsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDOUIsSUFBSSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBRXhDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNULE1BQU07WUFDVixDQUFDO1FBQ0wsQ0FBQztRQUVELE9BQU8sQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDdkIsQ0FBQztJQUNMLENBQUM7SUFFTyxjQUFjLENBQUMsS0FBdUI7UUFDMUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNkLENBQUMsQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1lBRW5CLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7Z0JBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3BDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyxhQUFhLENBQUMsUUFBd0I7UUFDMUMsSUFBSSxJQUFJLEdBQWlDLFFBQVEsQ0FBQztRQUVsRCxPQUFPLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQ3ZCLENBQUM7SUFDTCxDQUFDOzhHQTlJUSxnQkFBZ0I7a0dBQWhCLGdCQUFnQix3S0NiN0Isd2pHQWtFQTs7MkZEckRhLGdCQUFnQjtrQkFONUIsU0FBUzsrQkFDSSxhQUFhLGlCQUdSLGlCQUFpQixDQUFDLElBQUk7OEJBR2YsY0FBYztzQkFBbkMsV0FBVzt1QkFBQyxPQUFPO2dCQUNlLEtBQUs7c0JBQXZDLFdBQVc7dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBIb3N0QmluZGluZywgVmlld0VuY2Fwc3VsYXRpb24sIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25TdGFydCB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBPcHRpb25hbFR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5pbXBvcnQgeyBSb3V0ZURhdGFNb2RlbCB9IGZyb20gJ0B1cGRldnMvc2RrL3JvdXRlcyc7XG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnQHVwZGV2cy9zZGsvbGF5b3V0JztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1zaWRlYmFyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2lkZWJhci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2lkZWJhci5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2lkZWJhckNvbXBvbmVudCBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSB3cmFwcGVyQ2xhc3NlcyA9ICduYXZiYXIgbmF2YmFyLXZlcnRpY2FsIG5hdmJhci1leHBhbmQtbGcnO1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5kYXRhLWJzLXRoZW1lJykgdGhlbWUgPSAnZGFyayc7XG5cbiAgICBtZW51SXRlbXM6IFJvdXRlRGF0YU1vZGVsW10gPSBbXTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgLy8gVE9ETzogcmVtb3ZlIGRlbW8gY29kZS5cbiAgICAgICAgY29uc3Qgc2FtcGxlQ2FyZHNJdGVtID0gbmV3IFJvdXRlRGF0YU1vZGVsKHtcbiAgICAgICAgICAgIHRpdGxlOiAnU2FtcGxlIGNhcmRzJyxcbiAgICAgICAgICAgIGljb246IHsgdGFibGVySWNvbjogJ2hvbWUnIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNhcmRBY3Rpb25zSXRlbSA9IG5ldyBSb3V0ZURhdGFNb2RlbCh7XG4gICAgICAgICAgICB0aXRsZTogJ0NhcmQgYWN0aW9ucycsXG4gICAgICAgICAgICBpY29uOiB7IHRhYmxlckljb246ICdmb2xkZXInIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGVtcHR5UGFnZUl0ZW0gPSBuZXcgUm91dGVEYXRhTW9kZWwoe1xuICAgICAgICAgICAgdGl0bGU6ICdFbXB0eSBwYWdlJyxcbiAgICAgICAgICAgIGljb246IHsgdGFibGVySWNvbjogJ2hvbWUnIH1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGNhcmRzSXRlbSA9IG5ldyBSb3V0ZURhdGFNb2RlbCh7XG4gICAgICAgICAgICB0aXRsZTogJ0NhcmRzJyxcbiAgICAgICAgICAgIGljb246IHsgdGFibGVySWNvbjogJ3VzZXInIH0sXG4gICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgIHNhbXBsZUNhcmRzSXRlbSxcbiAgICAgICAgICAgICAgICBjYXJkQWN0aW9uc0l0ZW1cbiAgICAgICAgICAgIF1cbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IGludGVyZmFjZUl0ZW0gPSBuZXcgUm91dGVEYXRhTW9kZWwoe1xuICAgICAgICAgICAgdGl0bGU6ICdJbnRlcmZhY2UnLFxuICAgICAgICAgICAgaWNvbjogeyB0YWJsZXJJY29uOiAnZGV2aWNlLWRlc2t0b3AnIH0sXG4gICAgICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAgICAgICAgIGVtcHR5UGFnZUl0ZW0sXG4gICAgICAgICAgICAgICAgY2FyZHNJdGVtXG4gICAgICAgICAgICBdXG4gICAgICAgIH0pO1xuICAgICAgICBzYW1wbGVDYXJkc0l0ZW0ucGFyZW50ID0gY2FyZHNJdGVtO1xuICAgICAgICBjYXJkQWN0aW9uc0l0ZW0ucGFyZW50ID0gY2FyZHNJdGVtO1xuICAgICAgICBlbXB0eVBhZ2VJdGVtLnBhcmVudCA9IGludGVyZmFjZUl0ZW07XG4gICAgICAgIGNhcmRzSXRlbS5wYXJlbnQgPSBpbnRlcmZhY2VJdGVtO1xuICAgICAgICB0aGlzLm1lbnVJdGVtcyA9IFtcbiAgICAgICAgICAgIG5ldyBSb3V0ZURhdGFNb2RlbCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdIb21lJyxcbiAgICAgICAgICAgICAgICBpY29uOiB7IHRhYmxlckljb246ICdob21lJyB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBSb3V0ZURhdGFNb2RlbCh7XG4gICAgICAgICAgICAgICAgdGl0bGU6ICdBcmNoaXZlcycsXG4gICAgICAgICAgICAgICAgaWNvbjogeyB0YWJsZXJJY29uOiAnZm9sZGVyJyB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIGludGVyZmFjZUl0ZW0sXG4gICAgICAgICAgICBuZXcgUm91dGVEYXRhTW9kZWwoe1xuICAgICAgICAgICAgICAgIHRpdGxlOiAnTGlicmFyeScsXG4gICAgICAgICAgICAgICAgaWNvbjogeyB0YWJsZXJJY29uOiAnYnVpbGRpbmcnIH1cbiAgICAgICAgICAgIH0pXG4gICAgICAgIF07XG4gICAgICAgIC8vIEVORCBkZW1vIGNvZGVcblxuICAgICAgICBjb25zdCByb3V0ZXJTdWIgPSB0aGlzLnJvdXRlci5ldmVudHMucGlwZShcbiAgICAgICAgICAgIGZpbHRlcihldmVudCA9PiBldmVudCBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydClcbiAgICAgICAgKS5zdWJzY3JpYmUoZXZlbnQgPT4gdGhpcy51cGRhdGVBY3RpdmVSb3V0ZSgoPE5hdmlnYXRpb25TdGFydD4gZXZlbnQpLnVybCkpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlQWN0aXZlUm91dGUodGhpcy5yb3V0ZXIudXJsKTtcbiAgICAgICAgdGhpcy5hZGRTdWJzY3JpcHRpb25zKHJvdXRlclN1Yik7XG4gICAgfVxuXG4gICAgb25NZW51SXRlbUNsaWNrKGl0ZW06IFJvdXRlRGF0YU1vZGVsKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzZXRNZW51U3RhdGUodGhpcy5tZW51SXRlbXMpO1xuXG4gICAgICAgIGl0ZW0uaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMudXBkYXRlUGFyZW50cyhpdGVtKTtcblxuICAgICAgICBpZiAoISFpdGVtLmNsaWNrRnVuY3Rpb24pIHtcbiAgICAgICAgICAgIGl0ZW0uY2xpY2tGdW5jdGlvbigpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChpdGVtLmNoaWxkcmVuPy5sZW5ndGggfHwgMCkgPiAwKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShpdGVtLmdldEZ1bGxQYXRoKCkpLnRoZW4oKTtcbiAgICB9XG5cbiAgICBoYXNDaGlsZHJlbihpdGVtOiBSb3V0ZURhdGFNb2RlbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCB8fCAwKSA+IDA7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kQWN0aXZlTm9kZShpdGVtOiBSb3V0ZURhdGFNb2RlbCwgZnVsbFBhdGg6IHN0cmluZyk6IE9wdGlvbmFsVHlwZTxSb3V0ZURhdGFNb2RlbD4ge1xuICAgICAgICBpZiAoaXRlbS5mdWxsUGF0aCA9PT0gZnVsbFBhdGgpIHtcbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9IGVsc2UgaWYgKGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgbGV0IHJlc3VsdDtcblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7ICFyZXN1bHQgJiYgaSA8IGl0ZW0uY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICByZXN1bHQgPSB0aGlzLmZpbmRBY3RpdmVOb2RlKGl0ZW0uY2hpbGRyZW5baV0sIGZ1bGxQYXRoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVBY3RpdmVSb3V0ZShuZXdQYXRoOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5yZXNldE1lbnVTdGF0ZSh0aGlzLm1lbnVJdGVtcyk7XG5cbiAgICAgICAgbGV0IGl0ZW06IE9wdGlvbmFsVHlwZTxSb3V0ZURhdGFNb2RlbD47XG5cbiAgICAgICAgZm9yIChjb25zdCBtaSBvZiB0aGlzLm1lbnVJdGVtcykge1xuICAgICAgICAgICAgaXRlbSA9IHRoaXMuZmluZEFjdGl2ZU5vZGUobWksIG5ld1BhdGgpO1xuXG4gICAgICAgICAgICBpZiAoISFpdGVtKSB7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB3aGlsZSAoISFpdGVtKSB7XG4gICAgICAgICAgICBpdGVtLmlzQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnBhcmVudDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgcmVzZXRNZW51U3RhdGUoaXRlbXM6IFJvdXRlRGF0YU1vZGVsW10pOiB2b2lkIHtcbiAgICAgICAgaXRlbXMuZm9yRWFjaChpID0+IHtcbiAgICAgICAgICAgIGkuaXNBY3RpdmUgPSBmYWxzZTtcblxuICAgICAgICAgICAgaWYgKGkuY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVzZXRNZW51U3RhdGUoaS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlUGFyZW50cyhtZW51SXRlbTogUm91dGVEYXRhTW9kZWwpOiB2b2lkIHtcbiAgICAgICAgbGV0IGl0ZW06IE9wdGlvbmFsVHlwZTxSb3V0ZURhdGFNb2RlbD4gPSBtZW51SXRlbTtcblxuICAgICAgICB3aGlsZSAoISFpdGVtKSB7XG4gICAgICAgICAgICBpdGVtLmlzQWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIGl0ZW0gPSBpdGVtLnBhcmVudDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJjb250YWluZXItZmx1aWRcIj5cbiAgICA8YnV0dG9uIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXJcIiB0eXBlPVwiYnV0dG9uXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmF2YmFyLXRvZ2dsZXItaWNvblwiPjwvc3Bhbj5cbiAgICA8L2J1dHRvbj5cbiAgICA8aDEgY2xhc3M9XCJuYXZiYXItYnJhbmQgbmF2YmFyLWJyYW5kLWF1dG9kYXJrXCI+XG4gICAgICAgIDxhIGhyZWY9XCIuXCI+XG4gICAgICAgICAgICA8aW1nIHdpZHRoPVwiMTEwXCIgaGVpZ2h0PVwiMzJcIiBjbGFzcz1cIm5hdmJhci1icmFuZC1pbWFnZSB1cGQtYnJhbmQtbG9nb1wiLz5cbiAgICAgICAgPC9hPlxuICAgIDwvaDE+XG4gICAgPGRpdiBjbGFzcz1cImNvbGxhcHNlIG5hdmJhci1jb2xsYXBzZVwiPlxuICAgICAgICA8dWwgY2xhc3M9XCJuYXZiYXItbmF2IHB0LWxnLTNcIj5cbiAgICAgICAgICAgIEBmb3IgKGl0ZW0gb2YgbWVudUl0ZW1zOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwibmF2LWl0ZW1cIiBbY2xhc3MuZHJvcGRvd25dPVwiaGFzQ2hpbGRyZW4oaXRlbSlcIiBbY2xhc3MuYWN0aXZlXT1cIml0ZW0uaXNBY3RpdmVcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtVHBsXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cInttZW51SXRlbTogaXRlbX1cIj5cbiAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2l0ZW1UcGwgbGV0LWl0ZW09XCJtZW51SXRlbVwiPlxuICAgIDx1cGQtbGluayBbaXNOYXZpZ2F0aW9uXT1cInRydWVcIiAoY2xpY2tlZCk9XCJvbk1lbnVJdGVtQ2xpY2soaXRlbSlcIlxuICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCJbaGFzQ2hpbGRyZW4oaXRlbSkgPyAnZHJvcGRvd24tdG9nZ2xlJyA6ICcnLCBpdGVtLmlzQWN0aXZlID8gJ3Nob3cnIDogJyddXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwibmF2LWxpbmstaWNvbiBkLW1kLW5vbmUgZC1sZy1pbmxpbmUtYmxvY2tcIj5cbiAgICAgICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwiaXRlbS5pY29uXCI+PC91cGQtaWNvbj5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgICA8c3BhbiBjbGFzcz1cIm5hdi1saW5rLXRpdGxlXCI+e3sgaXRlbS50aXRsZSB9fTwvc3Bhbj5cbiAgICA8L3VwZC1saW5rPlxuICAgIEBpZiAoaGFzQ2hpbGRyZW4oaXRlbSkpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjaGlsZHJlblRwbFwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7bWVudUl0ZW06IGl0ZW19XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY2hpbGRyZW5UcGwgbGV0LWl0ZW09XCJtZW51SXRlbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi1tZW51XCIgW2NsYXNzLnNob3ddPVwiaXRlbS5pc0FjdGl2ZVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudS1jb2x1bW5zXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudS1jb2x1bW5cIj5cbiAgICAgICAgICAgICAgICBAZm9yIChjaGlsZCBvZiBpdGVtLmNoaWxkcmVuOyB0cmFjayBjaGlsZCkge1xuICAgICAgICAgICAgICAgICAgICBAaWYgKCFoYXNDaGlsZHJlbihjaGlsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1cGQtbGluayAoY2xpY2tlZCk9XCJvbk1lbnVJdGVtQ2xpY2soY2hpbGQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY3VzdG9tQ2xhc3Nlc109XCJbJ2Ryb3Bkb3duLWl0ZW0nLCBjaGlsZC5pc0FjdGl2ZSA/ICdhY3RpdmUnIDogJyddXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY2hpbGQudGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvdXBkLWxpbms+XG4gICAgICAgICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImRyb3BlbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWxpbmsgKGNsaWNrZWQpPVwib25NZW51SXRlbUNsaWNrKGNoaWxkKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIlsnZHJvcGRvd24taXRlbScsICdkcm9wZG93bi10b2dnbGUnLCBjaGlsZC5pc0FjdGl2ZSA/ICdhY3RpdmUnIDogJyddXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNoaWxkLnRpdGxlIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC91cGQtbGluaz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd24tbWVudVwiIFtjbGFzcy5zaG93XT1cImNoaWxkLmlzQWN0aXZlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBmb3IgKGdyYW5kY2hpbGQgb2YgY2hpbGQuY2hpbGRyZW47IHRyYWNrIGdyYW5kY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx1cGQtbGluayAoY2xpY2tlZCk9XCJvbk1lbnVJdGVtQ2xpY2soZ3JhbmRjaGlsZClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjdXN0b21DbGFzc2VzXT1cIlsnZHJvcGRvd24taXRlbScsIGdyYW5kY2hpbGQuaXNBY3RpdmUgPyAnYWN0aXZlJyA6ICcnXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdyYW5kY2hpbGQudGl0bGUgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdXBkLWxpbms+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ export * from './abstractions/public-api';
2
+ export * from './layouts/public-api';
3
+ export * from './models/public-api';
4
+ export * from './pages/public-api';
5
+ export * from './partials/public-api';
6
+ export * from './services/public-api';
7
+ export * from './upd-layout.module';
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL2xheW91dC9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMsdUJBQXVCLENBQUM7QUFDdEMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hYnN0cmFjdGlvbnMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL2xheW91dHMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vcGFnZXMvcHVibGljLWFwaSc7XG5leHBvcnQgKiBmcm9tICcuL3BhcnRpYWxzL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi9zZXJ2aWNlcy9wdWJsaWMtYXBpJztcbmV4cG9ydCAqIGZyb20gJy4vdXBkLWxheW91dC5tb2R1bGUnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export * from './upd-layout-config.service';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL2xheW91dC9zcmMvc2VydmljZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi91cGQtbGF5b3V0LWNvbmZpZy5zZXJ2aWNlJztcbiJdfQ==
@@ -0,0 +1,21 @@
1
+ import { Injectable, Inject } from '@angular/core';
2
+ import { UpdLayoutConfigModel } from '../models/upd-layout-config.model';
3
+ import { LayoutConstants } from '../tools/layout.constants';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Layout configuration data.
7
+ */
8
+ export class UpdLayoutConfigService {
9
+ constructor(layoutConfig) {
10
+ this.config = new UpdLayoutConfigModel(layoutConfig);
11
+ }
12
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutConfigService, deps: [{ token: LayoutConstants.defaultOptionsInjectionToken }], target: i0.ɵɵFactoryTarget.Injectable }); }
13
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutConfigService }); }
14
+ }
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutConfigService, decorators: [{
16
+ type: Injectable
17
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
18
+ type: Inject,
19
+ args: [LayoutConstants.defaultOptionsInjectionToken]
20
+ }] }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLWxheW91dC1jb25maWcuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL2xheW91dC9zcmMvc2VydmljZXMvdXBkLWxheW91dC1jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN6RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBRzVEOztHQUVHO0FBRUgsTUFBTSxPQUFPLHNCQUFzQjtJQU0vQixZQUFrRSxZQUE2QjtRQUMzRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksb0JBQW9CLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDekQsQ0FBQzs4R0FSUSxzQkFBc0Isa0JBTVgsZUFBZSxDQUFDLDRCQUE0QjtrSEFOdkQsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQURsQyxVQUFVOzswQkFPTSxNQUFNOzJCQUFDLGVBQWUsQ0FBQyw0QkFBNEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgVXBkTGF5b3V0Q29uZmlnTW9kZWwgfSBmcm9tICcuLi9tb2RlbHMvdXBkLWxheW91dC1jb25maWcubW9kZWwnO1xuaW1wb3J0IHsgTGF5b3V0Q29uc3RhbnRzIH0gZnJvbSAnLi4vdG9vbHMvbGF5b3V0LmNvbnN0YW50cyc7XG5pbXBvcnQgeyBVcGRMYXlvdXRDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvdXBkLWxheW91dC5jb25maWcnO1xuXG4vKipcbiAqIExheW91dCBjb25maWd1cmF0aW9uIGRhdGEuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBVcGRMYXlvdXRDb25maWdTZXJ2aWNlIHtcbiAgICAvKipcbiAgICAgKiBDb25maWd1cmF0aW9uIChTZWU6ICN1cHNlZVtwOm1vZGVscywgaTpVcGRDb3JlTGF5b3V0Q29uZmlnTW9kZWxdKS5cbiAgICAgKi9cbiAgICByZWFkb25seSBjb25maWc6IFVwZExheW91dENvbmZpZ01vZGVsO1xuXG4gICAgY29uc3RydWN0b3IoQEluamVjdChMYXlvdXRDb25zdGFudHMuZGVmYXVsdE9wdGlvbnNJbmplY3Rpb25Ub2tlbikgbGF5b3V0Q29uZmlnOiBVcGRMYXlvdXRDb25maWcpIHtcbiAgICAgICAgdGhpcy5jb25maWcgPSBuZXcgVXBkTGF5b3V0Q29uZmlnTW9kZWwobGF5b3V0Q29uZmlnKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,15 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Layout constants.
4
+ */
5
+ export class LayoutConstants {
6
+ /**
7
+ * Key to inject the default configuration.
8
+ */
9
+ static { this.defaultOptionsKey = 'upd-layout-default-options'; }
10
+ /**
11
+ * Injection token for the default configuration.
12
+ */
13
+ static { this.defaultOptionsInjectionToken = new InjectionToken(LayoutConstants.defaultOptionsKey); }
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbnN0YW50cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL2xheW91dC9zcmMvdG9vbHMvbGF5b3V0LmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DOztHQUVHO0FBQ0gsTUFBTSxPQUFPLGVBQWU7SUFDeEI7O09BRUc7YUFDSSxzQkFBaUIsR0FBRyw0QkFBNEIsQ0FBQztJQUV4RDs7T0FFRzthQUNJLGlDQUE0QixHQUFHLElBQUksY0FBYyxDQUFrQixlQUFlLENBQUMsaUJBQWlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFVwZExheW91dENvbmZpZyB9IGZyb20gJy4uL21vZGVscy91cGQtbGF5b3V0LmNvbmZpZyc7XG5cbi8qKlxuICogTGF5b3V0IGNvbnN0YW50cy5cbiAqL1xuZXhwb3J0IGNsYXNzIExheW91dENvbnN0YW50cyB7XG4gICAgLyoqXG4gICAgICogS2V5IHRvIGluamVjdCB0aGUgZGVmYXVsdCBjb25maWd1cmF0aW9uLlxuICAgICAqL1xuICAgIHN0YXRpYyBkZWZhdWx0T3B0aW9uc0tleSA9ICd1cGQtbGF5b3V0LWRlZmF1bHQtb3B0aW9ucyc7XG5cbiAgICAvKipcbiAgICAgKiBJbmplY3Rpb24gdG9rZW4gZm9yIHRoZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb24uXG4gICAgICovXG4gICAgc3RhdGljIGRlZmF1bHRPcHRpb25zSW5qZWN0aW9uVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48VXBkTGF5b3V0Q29uZmlnPihMYXlvdXRDb25zdGFudHMuZGVmYXVsdE9wdGlvbnNLZXkpO1xufVxuIl19
@@ -0,0 +1,43 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { UpdCoreLayoutModule } from '@updevs/sdk/layout';
4
+ import { LayoutConstants } from './tools/layout.constants';
5
+ import { UpdLayoutConfigService } from './services/upd-layout-config.service';
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Layout module.
9
+ */
10
+ export class UpdLayoutModule {
11
+ /**
12
+ * Sets up the layout module with the provided configuration.
13
+ * @param config Configuration (See: #updsee[p:abstractions, i:UpdCoreLayoutConfig]).
14
+ */
15
+ static forRoot(config) {
16
+ return {
17
+ ngModule: UpdLayoutModule,
18
+ providers: [
19
+ { provide: LayoutConstants.defaultOptionsInjectionToken, useValue: config }
20
+ ]
21
+ };
22
+ }
23
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
24
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutModule, imports: [CommonModule,
25
+ UpdCoreLayoutModule] }); }
26
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutModule, providers: [
27
+ UpdLayoutConfigService
28
+ ], imports: [CommonModule,
29
+ UpdCoreLayoutModule] }); }
30
+ }
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdLayoutModule, decorators: [{
32
+ type: NgModule,
33
+ args: [{
34
+ imports: [
35
+ CommonModule,
36
+ UpdCoreLayoutModule
37
+ ],
38
+ providers: [
39
+ UpdLayoutConfigService
40
+ ]
41
+ }]
42
+ }] });
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLWxheW91dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cGRldnMvY29tcG9uZW50cy9sYXlvdXQvc3JjL3VwZC1sYXlvdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUd6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBRTlFOztHQUVHO0FBVUgsTUFBTSxPQUFPLGVBQWU7SUFDeEI7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUF1QjtRQUNsQyxPQUFPO1lBQ0gsUUFBUSxFQUFFLGVBQWU7WUFDekIsU0FBUyxFQUFFO2dCQUNQLEVBQUUsT0FBTyxFQUFFLGVBQWUsQ0FBQyw0QkFBNEIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFO2FBQzlFO1NBQ0osQ0FBQztJQUNOLENBQUM7OEdBWlEsZUFBZTsrR0FBZixlQUFlLFlBUHBCLFlBQVk7WUFDWixtQkFBbUI7K0dBTWQsZUFBZSxhQUpiO1lBQ1Asc0JBQXNCO1NBQ3pCLFlBTEcsWUFBWTtZQUNaLG1CQUFtQjs7MkZBTWQsZUFBZTtrQkFUM0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUU7d0JBQ0wsWUFBWTt3QkFDWixtQkFBbUI7cUJBQ3RCO29CQUNELFNBQVMsRUFBRTt3QkFDUCxzQkFBc0I7cUJBQ3pCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBVcGRDb3JlTGF5b3V0TW9kdWxlIH0gZnJvbSAnQHVwZGV2cy9zZGsvbGF5b3V0JztcblxuaW1wb3J0IHsgVXBkTGF5b3V0Q29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvdXBkLWxheW91dC5jb25maWcnO1xuaW1wb3J0IHsgTGF5b3V0Q29uc3RhbnRzIH0gZnJvbSAnLi90b29scy9sYXlvdXQuY29uc3RhbnRzJztcbmltcG9ydCB7IFVwZExheW91dENvbmZpZ1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3VwZC1sYXlvdXQtY29uZmlnLnNlcnZpY2UnO1xuXG4vKipcbiAqIExheW91dCBtb2R1bGUuXG4gKi9cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIFVwZENvcmVMYXlvdXRNb2R1bGVcbiAgICBdLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBVcGRMYXlvdXRDb25maWdTZXJ2aWNlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBVcGRMYXlvdXRNb2R1bGUge1xuICAgIC8qKlxuICAgICAqIFNldHMgdXAgdGhlIGxheW91dCBtb2R1bGUgd2l0aCB0aGUgcHJvdmlkZWQgY29uZmlndXJhdGlvbi5cbiAgICAgKiBAcGFyYW0gY29uZmlnIENvbmZpZ3VyYXRpb24gKFNlZTogI3VwZHNlZVtwOmFic3RyYWN0aW9ucywgaTpVcGRDb3JlTGF5b3V0Q29uZmlnXSkuXG4gICAgICovXG4gICAgc3RhdGljIGZvclJvb3QoY29uZmlnOiBVcGRMYXlvdXRDb25maWcpOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFVwZExheW91dE1vZHVsZT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmdNb2R1bGU6IFVwZExheW91dE1vZHVsZSxcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHsgcHJvdmlkZTogTGF5b3V0Q29uc3RhbnRzLmRlZmF1bHRPcHRpb25zSW5qZWN0aW9uVG9rZW4sIHVzZVZhbHVlOiBjb25maWcgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkZXZzLWNvbXBvbmVudHMtbGF5b3V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXBkZXZzL2NvbXBvbmVudHMvbGF5b3V0L3NyYy91cGRldnMtY29tcG9uZW50cy1sYXlvdXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLFNBQVMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9pbmRleCc7XG4iXX0=
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cGRldnMvY29tcG9uZW50cy9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './types/public-api';
2
+ export * from './upd-components.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL3NyYy9saWIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLG9CQUFvQixDQUFDO0FBQ25DLGNBQWMseUJBQXlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL3R5cGVzL3B1YmxpYy1hcGknO1xuZXhwb3J0ICogZnJvbSAnLi91cGQtY29tcG9uZW50cy5tb2R1bGUnO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXNpemUudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL3NyYy9saWIvdHlwZXMvY29tcG9uZW50LXNpemUudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ29tcG9uZW50U2l6ZVR5cGUgPSAnc21hbGwnIHwgJ2RlZmF1bHQnIHwgJ2xhcmdlJztcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './component-size.type';
2
+ export * from './validation-status.type';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL3NyYy9saWIvdHlwZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudC1zaXplLnR5cGUnO1xuZXhwb3J0ICogZnJvbSAnLi92YWxpZGF0aW9uLXN0YXR1cy50eXBlJztcbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdGlvbi1zdGF0dXMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VwZGV2cy9jb21wb25lbnRzL3NyYy9saWIvdHlwZXMvdmFsaWRhdGlvbi1zdGF0dXMudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgVmFsaWRhdGlvblN0YXR1c1R5cGUgPSAndmFsaWQnIHwgJ2ludmFsaWQnO1xuIl19
@@ -0,0 +1,14 @@
1
+ import { NgModule } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class UpdComponentsModule {
4
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
5
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.0.1", ngImport: i0, type: UpdComponentsModule }); }
6
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdComponentsModule }); }
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: UpdComponentsModule, decorators: [{
9
+ type: NgModule,
10
+ args: [{
11
+ imports: []
12
+ }]
13
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBkLWNvbXBvbmVudHMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdXBkZXZzL2NvbXBvbmVudHMvc3JjL2xpYi91cGQtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFLekMsTUFBTSxPQUFPLG1CQUFtQjs4R0FBbkIsbUJBQW1COytHQUFuQixtQkFBbUI7K0dBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFIL0IsUUFBUTttQkFBQztvQkFDTixPQUFPLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBOZ01vZHVsZSh7XG4gICAgaW1wb3J0czogW11cbn0pXG5leHBvcnQgY2xhc3MgVXBkQ29tcG9uZW50c01vZHVsZSB7fVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91cGRldnMvY29tcG9uZW50cy9saW5rL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=