verben-ng-ui 0.0.1 → 0.0.3

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 (362) hide show
  1. package/esm2022/lib/Verbena-input/verbena-input.component.mjs +231 -0
  2. package/esm2022/lib/Verbena-input/verbena-input.module.mjs +20 -0
  3. package/esm2022/lib/components/TemplateDirective.directive.mjs +20 -0
  4. package/esm2022/lib/components/card/card.component.mjs +62 -0
  5. package/esm2022/lib/components/card/card.module.mjs +18 -0
  6. package/esm2022/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.mjs +11 -0
  7. package/esm2022/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.mjs +11 -0
  8. package/esm2022/lib/components/card-data-view/card-data-view.component.mjs +105 -0
  9. package/esm2022/lib/components/card-data-view/card-data-view.module.mjs +32 -0
  10. package/esm2022/lib/components/card-data-view/card-data.mjs +7 -0
  11. package/esm2022/lib/components/card-data-view/left-card-data/left-card-data.component.mjs +37 -0
  12. package/esm2022/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.mjs +14 -0
  13. package/esm2022/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.mjs +11 -0
  14. package/esm2022/lib/components/chip/ChipChangeEvent.mjs +2 -0
  15. package/esm2022/lib/components/chip/chip.component.mjs +209 -0
  16. package/esm2022/lib/components/chip/chip.module.mjs +41 -0
  17. package/esm2022/lib/components/data-export/data-export.component.mjs +204 -0
  18. package/esm2022/lib/components/data-export/data-export.module.mjs +49 -0
  19. package/esm2022/lib/components/data-export/data-export.service.mjs +135 -0
  20. package/esm2022/lib/components/data-export/data-export.types.mjs +11 -0
  21. package/esm2022/lib/components/data-table/column.directive.mjs +33 -0
  22. package/esm2022/lib/components/data-table/data-table.component.mjs +340 -0
  23. package/esm2022/lib/components/data-table/data-table.module.mjs +19 -0
  24. package/esm2022/lib/components/data-table/data-table.types.mjs +2 -0
  25. package/esm2022/lib/components/data-table/style.types.mjs +2 -0
  26. package/esm2022/lib/components/data-view/data-view-click-outside.directive.mjs +41 -0
  27. package/esm2022/lib/components/data-view/data-view.component.mjs +167 -0
  28. package/esm2022/lib/components/data-view/data-view.module.mjs +24 -0
  29. package/esm2022/lib/components/date-picker/date-picker.component.mjs +140 -0
  30. package/esm2022/lib/components/date-picker/date-picker.module.mjs +21 -0
  31. package/esm2022/lib/components/drop-down/DropdownChangeEvent.mjs +2 -0
  32. package/esm2022/lib/components/drop-down/DropdownLoadEvent.mjs +16 -0
  33. package/esm2022/lib/components/drop-down/DropdownMenuItem.mjs +2 -0
  34. package/esm2022/lib/components/drop-down/drop-down-item/drop-down-item.component.mjs +97 -0
  35. package/esm2022/lib/components/drop-down/drop-down.component.mjs +760 -0
  36. package/esm2022/lib/components/drop-down/drop-down.module.mjs +43 -0
  37. package/esm2022/lib/components/image/image.component.mjs +54 -0
  38. package/esm2022/lib/components/image/image.module.mjs +19 -0
  39. package/esm2022/lib/components/notification/notification.component.mjs +174 -0
  40. package/esm2022/lib/components/notification/notification.module.mjs +20 -0
  41. package/esm2022/lib/components/shared.module.mjs +17 -0
  42. package/esm2022/lib/components/sort-table/sort-table.component.mjs +225 -0
  43. package/esm2022/lib/components/sort-table/sort-table.module.mjs +20 -0
  44. package/esm2022/lib/components/svg/svg.component.mjs +111 -0
  45. package/esm2022/lib/components/svg/svg.module.mjs +18 -0
  46. package/esm2022/lib/components/table-filter/table-filter.component.mjs +216 -0
  47. package/esm2022/lib/components/table-filter/table-filter.module.mjs +44 -0
  48. package/esm2022/lib/components/tooltip/tooltip.component.mjs +103 -0
  49. package/esm2022/lib/components/tooltip/tooltip.module.mjs +19 -0
  50. package/esm2022/lib/components/verben-mail/verben-mail.component.mjs +170 -0
  51. package/esm2022/lib/components/verben-mail/verben-mail.module.mjs +35 -0
  52. package/esm2022/lib/components/visible-column/visible-column.component.mjs +130 -0
  53. package/esm2022/lib/components/visible-column/visible-column.module.mjs +20 -0
  54. package/esm2022/lib/config.mjs +34 -0
  55. package/esm2022/lib/control-options/control-options.directive.mjs +162 -0
  56. package/esm2022/lib/control-options/control-options.module.mjs +18 -0
  57. package/esm2022/lib/convert-to-integer/convert-to-integer.directive.mjs +38 -0
  58. package/esm2022/lib/convert-to-integer/convert-to-integer.module.mjs +18 -0
  59. package/esm2022/lib/convert-to-number/convert-to-number.directive.mjs +36 -0
  60. package/esm2022/lib/convert-to-number/convert-to-number.module.mjs +16 -0
  61. package/esm2022/lib/email-validator/email-validator.directive.mjs +31 -0
  62. package/esm2022/lib/email-validator/email-validator.module.mjs +16 -0
  63. package/esm2022/lib/models/data-filter.mjs +2 -0
  64. package/esm2022/lib/models/mail-model.mjs +2 -0
  65. package/esm2022/lib/models/table-filter.mjs +23 -0
  66. package/esm2022/lib/number-range/number-range.directive.mjs +42 -0
  67. package/esm2022/lib/number-range/number-range.module.mjs +18 -0
  68. package/esm2022/lib/phone-number/phone-number.directive.mjs +32 -0
  69. package/esm2022/lib/phone-number/phone-number.module.mjs +18 -0
  70. package/esm2022/lib/required-input/required-input.directive.mjs +31 -0
  71. package/esm2022/lib/required-input/required-input.module.mjs +16 -0
  72. package/esm2022/lib/validate/error-message.service.mjs +95 -0
  73. package/esm2022/lib/validate/validate.directive.mjs +130 -0
  74. package/esm2022/lib/validate/validate.module.mjs +26 -0
  75. package/esm2022/lib/validate-input/validate-input.directive.mjs +13 -0
  76. package/esm2022/lib/validate-input/validate-input.module.mjs +16 -0
  77. package/esm2022/lib/verbena-badge/verbena-badge.component.mjs +37 -0
  78. package/esm2022/lib/verbena-badge/verbena-badge.module.mjs +18 -0
  79. package/esm2022/lib/verbena-button/verbena-button.component.mjs +129 -0
  80. package/esm2022/lib/verbena-button/verbena-button.module.mjs +19 -0
  81. package/esm2022/lib/verbena-switch/verbena-switch.component.mjs +45 -0
  82. package/esm2022/lib/verbena-switch/verbena-switch.module.mjs +18 -0
  83. package/esm2022/lib/verbena-textarea/verbena-textarea.component.mjs +70 -0
  84. package/esm2022/lib/verbena-textarea/verbena-textarea.module.mjs +19 -0
  85. package/esm2022/public-api.mjs +97 -0
  86. package/esm2022/verben-ng-ui.mjs +5 -0
  87. package/fesm2022/verben-ng-ui.mjs +5193 -0
  88. package/fesm2022/verben-ng-ui.mjs.map +1 -0
  89. package/index.d.ts +5 -0
  90. package/lib/Verbena-input/verbena-input.component.d.ts +65 -0
  91. package/lib/Verbena-input/verbena-input.module.d.ts +10 -0
  92. package/lib/components/TemplateDirective.directive.d.ts +9 -0
  93. package/lib/components/card/card.component.d.ts +23 -0
  94. package/lib/components/card/card.module.d.ts +8 -0
  95. package/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.d.ts +5 -0
  96. package/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.d.ts +5 -0
  97. package/lib/components/card-data-view/card-data-view.component.d.ts +33 -0
  98. package/lib/components/card-data-view/card-data-view.module.d.ts +14 -0
  99. package/lib/components/card-data-view/card-data.d.ts +9 -0
  100. package/lib/components/card-data-view/left-card-data/left-card-data.component.d.ts +15 -0
  101. package/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.d.ts +7 -0
  102. package/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.d.ts +5 -0
  103. package/lib/components/chip/ChipChangeEvent.d.ts +4 -0
  104. package/lib/components/chip/chip.component.d.ts +45 -0
  105. package/lib/components/chip/chip.module.d.ts +7 -0
  106. package/lib/components/data-export/data-export.component.d.ts +63 -0
  107. package/lib/components/data-export/data-export.module.d.ts +14 -0
  108. package/lib/components/data-export/data-export.service.d.ts +26 -0
  109. package/lib/components/data-export/data-export.types.d.ts +27 -0
  110. package/lib/components/data-table/column.directive.d.ts +11 -0
  111. package/lib/components/data-table/data-table.component.d.ts +70 -0
  112. package/lib/components/data-table/data-table.module.d.ts +9 -0
  113. package/lib/components/data-table/data-table.types.d.ts +12 -0
  114. package/lib/components/data-table/style.types.d.ts +77 -0
  115. package/lib/components/data-view/data-view-click-outside.directive.d.ts +15 -0
  116. package/lib/components/data-view/data-view.component.d.ts +49 -0
  117. package/lib/components/data-view/data-view.module.d.ts +14 -0
  118. package/lib/components/date-picker/date-picker.component.d.ts +36 -0
  119. package/lib/components/date-picker/date-picker.module.d.ts +11 -0
  120. package/lib/components/drop-down/DropdownChangeEvent.d.ts +4 -0
  121. package/lib/components/drop-down/DropdownLoadEvent.d.ts +7 -0
  122. package/lib/components/drop-down/DropdownMenuItem.d.ts +11 -0
  123. package/lib/components/drop-down/drop-down-item/drop-down-item.component.d.ts +28 -0
  124. package/lib/components/drop-down/drop-down.component.d.ts +112 -0
  125. package/lib/components/drop-down/drop-down.module.d.ts +9 -0
  126. package/lib/components/image/image.component.d.ts +16 -0
  127. package/lib/components/image/image.module.d.ts +9 -0
  128. package/lib/components/notification/notification.component.d.ts +56 -0
  129. package/lib/components/notification/notification.module.d.ts +10 -0
  130. package/lib/components/shared.module.d.ts +7 -0
  131. package/lib/components/sort-table/sort-table.component.d.ts +58 -0
  132. package/lib/components/sort-table/sort-table.module.d.ts +10 -0
  133. package/lib/components/svg/svg.component.d.ts +23 -0
  134. package/lib/components/svg/svg.module.d.ts +8 -0
  135. package/lib/components/table-filter/table-filter.component.d.ts +58 -0
  136. package/lib/components/table-filter/table-filter.module.d.ts +14 -0
  137. package/lib/components/tooltip/tooltip.component.d.ts +43 -0
  138. package/lib/components/tooltip/tooltip.module.d.ts +9 -0
  139. package/lib/components/verben-mail/verben-mail.component.d.ts +44 -0
  140. package/lib/components/verben-mail/verben-mail.module.d.ts +11 -0
  141. package/lib/components/visible-column/visible-column.component.d.ts +46 -0
  142. package/lib/components/visible-column/visible-column.module.d.ts +10 -0
  143. package/lib/config.d.ts +5 -0
  144. package/lib/control-options/control-options.directive.d.ts +33 -0
  145. package/lib/control-options/control-options.module.d.ts +8 -0
  146. package/lib/convert-to-integer/convert-to-integer.directive.d.ts +11 -0
  147. package/lib/convert-to-integer/convert-to-integer.module.d.ts +8 -0
  148. package/lib/convert-to-number/convert-to-number.directive.d.ts +11 -0
  149. package/lib/convert-to-number/convert-to-number.module.d.ts +7 -0
  150. package/lib/email-validator/email-validator.directive.d.ts +11 -0
  151. package/lib/email-validator/email-validator.module.d.ts +7 -0
  152. package/lib/models/data-filter.d.ts +7 -0
  153. package/lib/models/mail-model.d.ts +8 -0
  154. package/lib/models/table-filter.d.ts +31 -0
  155. package/lib/number-range/number-range.directive.d.ts +12 -0
  156. package/lib/number-range/number-range.module.d.ts +8 -0
  157. package/lib/phone-number/phone-number.directive.d.ts +11 -0
  158. package/lib/phone-number/phone-number.module.d.ts +8 -0
  159. package/lib/required-input/required-input.directive.d.ts +10 -0
  160. package/lib/required-input/required-input.module.d.ts +7 -0
  161. package/lib/validate/error-message.service.d.ts +8 -0
  162. package/lib/validate/validate.directive.d.ts +28 -0
  163. package/lib/validate/validate.module.d.ts +7 -0
  164. package/lib/validate-input/validate-input.directive.d.ts +5 -0
  165. package/lib/validate-input/validate-input.module.d.ts +7 -0
  166. package/lib/verbena-badge/verbena-badge.component.d.ts +13 -0
  167. package/lib/verbena-badge/verbena-badge.module.d.ts +8 -0
  168. package/lib/verbena-button/verbena-button.component.d.ts +36 -0
  169. package/lib/verbena-button/verbena-button.module.d.ts +9 -0
  170. package/lib/verbena-switch/verbena-switch.component.d.ts +15 -0
  171. package/lib/verbena-switch/verbena-switch.module.d.ts +8 -0
  172. package/lib/verbena-textarea/verbena-textarea.component.d.ts +24 -0
  173. package/lib/verbena-textarea/verbena-textarea.module.d.ts +9 -0
  174. package/package.json +14 -8
  175. package/{src/public-api.ts → public-api.d.ts} +1 -41
  176. package/ng-package.json +0 -10
  177. package/src/lib/Verbena-input/error.service.ts +0 -23
  178. package/src/lib/Verbena-input/verbena-input.component.css +0 -59
  179. package/src/lib/Verbena-input/verbena-input.component.html +0 -64
  180. package/src/lib/Verbena-input/verbena-input.component.spec.ts +0 -25
  181. package/src/lib/Verbena-input/verbena-input.component.ts +0 -162
  182. package/src/lib/Verbena-input/verbena-input.module.ts +0 -12
  183. package/src/lib/components/TemplateDirective.directive.ts +0 -10
  184. package/src/lib/components/card/card.component.css +0 -20
  185. package/src/lib/components/card/card.component.html +0 -23
  186. package/src/lib/components/card/card.component.spec.ts +0 -23
  187. package/src/lib/components/card/card.component.ts +0 -33
  188. package/src/lib/components/card/card.module.ts +0 -10
  189. package/src/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.css +0 -3
  190. package/src/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.html +0 -1
  191. package/src/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.spec.ts +0 -23
  192. package/src/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.ts +0 -10
  193. package/src/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.css +0 -7
  194. package/src/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.html +0 -1
  195. package/src/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.spec.ts +0 -23
  196. package/src/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.ts +0 -10
  197. package/src/lib/components/card-data-view/card-data-view.component.css +0 -39
  198. package/src/lib/components/card-data-view/card-data-view.component.html +0 -29
  199. package/src/lib/components/card-data-view/card-data-view.component.spec.ts +0 -23
  200. package/src/lib/components/card-data-view/card-data-view.component.ts +0 -66
  201. package/src/lib/components/card-data-view/card-data-view.module.ts +0 -20
  202. package/src/lib/components/card-data-view/card-data.ts +0 -7
  203. package/src/lib/components/card-data-view/left-card-data/left-card-data.component.css +0 -15
  204. package/src/lib/components/card-data-view/left-card-data/left-card-data.component.html +0 -4
  205. package/src/lib/components/card-data-view/left-card-data/left-card-data.component.spec.ts +0 -23
  206. package/src/lib/components/card-data-view/left-card-data/left-card-data.component.ts +0 -19
  207. package/src/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.css +0 -0
  208. package/src/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.html +0 -4
  209. package/src/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.spec.ts +0 -23
  210. package/src/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.ts +0 -12
  211. package/src/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.css +0 -3
  212. package/src/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.html +0 -1
  213. package/src/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.spec.ts +0 -23
  214. package/src/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.ts +0 -10
  215. package/src/lib/components/chip/ChipChangeEvent.ts +0 -4
  216. package/src/lib/components/chip/chip.component.css +0 -94
  217. package/src/lib/components/chip/chip.component.html +0 -49
  218. package/src/lib/components/chip/chip.component.spec.ts +0 -23
  219. package/src/lib/components/chip/chip.component.ts +0 -209
  220. package/src/lib/components/chip/chip.module.ts +0 -24
  221. package/src/lib/components/chip/documentation.md +0 -26
  222. package/src/lib/components/data-export/data-export.component.css +0 -0
  223. package/src/lib/components/data-export/data-export.component.html +0 -90
  224. package/src/lib/components/data-export/data-export.component.spec.ts +0 -23
  225. package/src/lib/components/data-export/data-export.component.ts +0 -158
  226. package/src/lib/components/data-export/data-export.module.ts +0 -13
  227. package/src/lib/components/data-export/data-export.service.spec.ts +0 -16
  228. package/src/lib/components/data-export/data-export.service.ts +0 -152
  229. package/src/lib/components/data-export/data-export.types.ts +0 -21
  230. package/src/lib/components/data-table/column.directive.spec.ts +0 -8
  231. package/src/lib/components/data-table/column.directive.ts +0 -19
  232. package/src/lib/components/data-table/data-table.component.css +0 -0
  233. package/src/lib/components/data-table/data-table.component.html +0 -55
  234. package/src/lib/components/data-table/data-table.component.spec.ts +0 -21
  235. package/src/lib/components/data-table/data-table.component.ts +0 -336
  236. package/src/lib/components/data-table/data-table.module.ts +0 -11
  237. package/src/lib/components/data-table/data-table.types.ts +0 -13
  238. package/src/lib/components/data-table/style.types.ts +0 -55
  239. package/src/lib/components/data-view/data-view-click-outside.directive.ts +0 -44
  240. package/src/lib/components/data-view/data-view.component.css +0 -74
  241. package/src/lib/components/data-view/data-view.component.html +0 -161
  242. package/src/lib/components/data-view/data-view.component.spec.ts +0 -23
  243. package/src/lib/components/data-view/data-view.component.ts +0 -136
  244. package/src/lib/components/data-view/data-view.module.ts +0 -16
  245. package/src/lib/components/date-picker/date-picker.component.css +0 -65
  246. package/src/lib/components/date-picker/date-picker.component.html +0 -60
  247. package/src/lib/components/date-picker/date-picker.component.specs.ts +0 -23
  248. package/src/lib/components/date-picker/date-picker.component.ts +0 -143
  249. package/src/lib/components/date-picker/date-picker.module.ts +0 -12
  250. package/src/lib/components/drop-down/DropdownChangeEvent.ts +0 -4
  251. package/src/lib/components/drop-down/DropdownLoadEvent.ts +0 -19
  252. package/src/lib/components/drop-down/DropdownMenuItem.ts +0 -42
  253. package/src/lib/components/drop-down/documentation.md +0 -69
  254. package/src/lib/components/drop-down/drop-down-item/drop-down-item.component.css +0 -123
  255. package/src/lib/components/drop-down/drop-down-item/drop-down-item.component.html +0 -133
  256. package/src/lib/components/drop-down/drop-down-item/drop-down-item.component.spec.ts +0 -23
  257. package/src/lib/components/drop-down/drop-down-item/drop-down-item.component.ts +0 -88
  258. package/src/lib/components/drop-down/drop-down.component.css +0 -317
  259. package/src/lib/components/drop-down/drop-down.component.html +0 -177
  260. package/src/lib/components/drop-down/drop-down.component.spec.ts +0 -23
  261. package/src/lib/components/drop-down/drop-down.component.ts +0 -757
  262. package/src/lib/components/drop-down/drop-down.module.ts +0 -24
  263. package/src/lib/components/image/image.component.css +0 -12
  264. package/src/lib/components/image/image.component.html +0 -18
  265. package/src/lib/components/image/image.component.spec.ts +0 -23
  266. package/src/lib/components/image/image.component.ts +0 -45
  267. package/src/lib/components/image/image.module.ts +0 -11
  268. package/src/lib/components/notification/notification.component.css +0 -3
  269. package/src/lib/components/notification/notification.component.html +0 -19
  270. package/src/lib/components/notification/notification.component.spec.ts +0 -23
  271. package/src/lib/components/notification/notification.component.ts +0 -77
  272. package/src/lib/components/notification/notification.module.ts +0 -14
  273. package/src/lib/components/shared.module.ts +0 -9
  274. package/src/lib/components/sort-table/sort-table.component.css +0 -67
  275. package/src/lib/components/sort-table/sort-table.component.html +0 -164
  276. package/src/lib/components/sort-table/sort-table.component.spec.ts +0 -23
  277. package/src/lib/components/sort-table/sort-table.component.ts +0 -204
  278. package/src/lib/components/sort-table/sort-table.module.ts +0 -11
  279. package/src/lib/components/svg/svg.component.css +0 -0
  280. package/src/lib/components/svg/svg.component.html +0 -1
  281. package/src/lib/components/svg/svg.component.spec.ts +0 -23
  282. package/src/lib/components/svg/svg.component.ts +0 -64
  283. package/src/lib/components/svg/svg.module.ts +0 -10
  284. package/src/lib/components/table-filter/table-filter.component.css +0 -93
  285. package/src/lib/components/table-filter/table-filter.component.html +0 -293
  286. package/src/lib/components/table-filter/table-filter.component.spec.ts +0 -23
  287. package/src/lib/components/table-filter/table-filter.component.ts +0 -221
  288. package/src/lib/components/table-filter/table-filter.module.ts +0 -25
  289. package/src/lib/components/tooltip/tooltip.component.css +0 -8
  290. package/src/lib/components/tooltip/tooltip.component.html +0 -13
  291. package/src/lib/components/tooltip/tooltip.component.spec.ts +0 -23
  292. package/src/lib/components/tooltip/tooltip.component.ts +0 -84
  293. package/src/lib/components/tooltip/tooltip.module.ts +0 -11
  294. package/src/lib/components/verben-mail/verben-mail.component.config.ts +0 -11
  295. package/src/lib/components/verben-mail/verben-mail.component.css +0 -71
  296. package/src/lib/components/verben-mail/verben-mail.component.html +0 -139
  297. package/src/lib/components/verben-mail/verben-mail.component.ts +0 -151
  298. package/src/lib/components/verben-mail/verben-mail.module.ts +0 -18
  299. package/src/lib/components/visible-column/visible-column.component.css +0 -83
  300. package/src/lib/components/visible-column/visible-column.component.html +0 -77
  301. package/src/lib/components/visible-column/visible-column.component.spec.ts +0 -23
  302. package/src/lib/components/visible-column/visible-column.component.ts +0 -106
  303. package/src/lib/components/visible-column/visible-column.module.ts +0 -11
  304. package/src/lib/config.ts +0 -37
  305. package/src/lib/control-options/control-options.directive.ts +0 -129
  306. package/src/lib/control-options/control-options.module.ts +0 -10
  307. package/src/lib/convert-to-integer/convert-to-integer.directive.ts +0 -28
  308. package/src/lib/convert-to-integer/convert-to-integer.module.ts +0 -10
  309. package/src/lib/convert-to-integer/public-api.ts +0 -1
  310. package/src/lib/convert-to-number/convert-to-number.directive.ts +0 -22
  311. package/src/lib/convert-to-number/convert-to-number.module.ts +0 -8
  312. package/src/lib/convert-to-number/public-api.ts +0 -1
  313. package/src/lib/email-validator/email-validator.directive.ts +0 -24
  314. package/src/lib/email-validator/email-validator.module.ts +0 -14
  315. package/src/lib/models/column-filter.ts +0 -5
  316. package/src/lib/models/data-filter.ts +0 -8
  317. package/src/lib/models/mail-model.ts +0 -8
  318. package/src/lib/models/sort-filter.ts +0 -0
  319. package/src/lib/models/table-filter.ts +0 -34
  320. package/src/lib/number-range/number-range.directive.ts +0 -35
  321. package/src/lib/number-range/number-range.module.ts +0 -11
  322. package/src/lib/phone-number/phone-number.directive.ts +0 -22
  323. package/src/lib/phone-number/phone-number.module.ts +0 -10
  324. package/src/lib/phone-number/public-api.ts +0 -1
  325. package/src/lib/required-input/required-input.directive.ts +0 -18
  326. package/src/lib/required-input/required-input.module.ts +0 -8
  327. package/src/lib/theme-switcher/theme-switcher.directive.spec.ts +0 -8
  328. package/src/lib/theme-switcher/theme-switcher.directive.ts +0 -70
  329. package/src/lib/theme-switcher/theme-switcher.module.ts +0 -8
  330. package/src/lib/validate/error-message.service.ts +0 -104
  331. package/src/lib/validate/validate.directive.ts +0 -110
  332. package/src/lib/validate/validate.module.ts +0 -17
  333. package/src/lib/validate-input/validate-input.directive.ts +0 -8
  334. package/src/lib/validate-input/validate-input.module.ts +0 -8
  335. package/src/lib/verben-ng-ui.component.spec.ts +0 -23
  336. package/src/lib/verben-ng-ui.component.ts +0 -16
  337. package/src/lib/verben-ng-ui.service.spec.ts +0 -16
  338. package/src/lib/verben-ng-ui.service.ts +0 -9
  339. package/src/lib/verbena-badge/verbena-badge.component.css +0 -16
  340. package/src/lib/verbena-badge/verbena-badge.component.html +0 -13
  341. package/src/lib/verbena-badge/verbena-badge.component.spec.ts +0 -25
  342. package/src/lib/verbena-badge/verbena-badge.component.ts +0 -18
  343. package/src/lib/verbena-badge/verbena-badge.module.ts +0 -10
  344. package/src/lib/verbena-button/verbena-button.component.css +0 -20
  345. package/src/lib/verbena-button/verbena-button.component.html +0 -25
  346. package/src/lib/verbena-button/verbena-button.component.spec.ts +0 -25
  347. package/src/lib/verbena-button/verbena-button.component.ts +0 -92
  348. package/src/lib/verbena-button/verbena-button.module.ts +0 -11
  349. package/src/lib/verbena-switch/verbena-switch.component.css +0 -45
  350. package/src/lib/verbena-switch/verbena-switch.component.html +0 -8
  351. package/src/lib/verbena-switch/verbena-switch.component.spec.ts +0 -25
  352. package/src/lib/verbena-switch/verbena-switch.component.ts +0 -31
  353. package/src/lib/verbena-switch/verbena-switch.module.ts +0 -10
  354. package/src/lib/verbena-textarea/verbena-textarea.component.css +0 -0
  355. package/src/lib/verbena-textarea/verbena-textarea.component.html +0 -19
  356. package/src/lib/verbena-textarea/verbena-textarea.component.spec.ts +0 -33
  357. package/src/lib/verbena-textarea/verbena-textarea.component.ts +0 -44
  358. package/src/lib/verbena-textarea/verbena-textarea.module.ts +0 -11
  359. package/src/styles.css +0 -103
  360. package/tsconfig.lib.json +0 -15
  361. package/tsconfig.lib.prod.json +0 -11
  362. package/tsconfig.spec.json +0 -15
@@ -0,0 +1,231 @@
1
+ import { Component, Input, Output, EventEmitter, forwardRef } from '@angular/core';
2
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "@angular/forms";
6
+ import * as i3 from "../components/tooltip/tooltip.component";
7
+ export class VerbenaInputComponent {
8
+ label = '';
9
+ placeHolder = '';
10
+ required = false;
11
+ svgPosition = 'left';
12
+ minLength;
13
+ maxLength;
14
+ type = 'text';
15
+ bgColor = '#f9f9f9';
16
+ border = '1px solid #ccc';
17
+ borderRadius = '5px';
18
+ textColor = '#333';
19
+ value = '';
20
+ labelPosition = 'start';
21
+ labelColor = 'black';
22
+ disable = false;
23
+ min;
24
+ max;
25
+ showBorder = true;
26
+ showErrorMessage = true;
27
+ errorMessageColor = 'red';
28
+ errorBorderColor = 'red';
29
+ errorPosition = 'bottom';
30
+ svg = '';
31
+ svgWidth = 20;
32
+ svgHeight = 20;
33
+ svgColor = '';
34
+ capitalization = 'none';
35
+ // New input properties to expose custom classes
36
+ inputContainerClass = ''; // Expose custom class for input container
37
+ inputFieldClass = ''; // Expose custom class for input field
38
+ inputWrapperClass = ''; // Expose custom class for input wrapper
39
+ // New property for custom error messages
40
+ customErrorMessages = {};
41
+ valueChange = new EventEmitter();
42
+ errorMessage;
43
+ inputId = '';
44
+ onChange = () => { };
45
+ onTouch = () => { };
46
+ ngOnInit() {
47
+ this.inputId = `verbena-input-${Math.random().toString(36).substr(2, 9)}`;
48
+ }
49
+ onInput(event) {
50
+ const target = event.target;
51
+ if (this.type === 'file' && target.files) {
52
+ const files = target.files;
53
+ this.onChange(files); // Emit the selected files
54
+ this.valueChange.emit(files); // Emit selected files
55
+ }
56
+ else {
57
+ this.value = target.value.trim();
58
+ this.value = this.applyCapitalization(this.value, this.capitalization);
59
+ this.validate();
60
+ const sanitizedValue = this.sanitizeValue(this.value);
61
+ this.onChange(sanitizedValue);
62
+ this.valueChange.emit(sanitizedValue);
63
+ }
64
+ }
65
+ applyCapitalization(value, format) {
66
+ switch (format) {
67
+ case 'uppercase': return value.toUpperCase();
68
+ case 'lowercase': return value.toLowerCase();
69
+ case 'sentencecase': return value.charAt(0).toUpperCase() + value.slice(1).toLowerCase();
70
+ case 'pascalcase': return value.replace(/\w+/g, (w) => w[0].toUpperCase() + w.slice(1).toLowerCase());
71
+ case 'camelcase': return value.replace(/(?:^\w|[A-Z]|\b\w|\s+)/g, (match, index) => index === 0 ? match.toLowerCase() : match.toUpperCase()).replace(/\s+/g, '');
72
+ default: return value;
73
+ }
74
+ }
75
+ sanitizeValue(value) {
76
+ if (['number', 'decimal', 'integer'].includes(this.type)) {
77
+ return value.replace(/,/g, '');
78
+ }
79
+ return value;
80
+ }
81
+ validate() {
82
+ this.errorMessage = '';
83
+ if (this.required && !this.value) {
84
+ this.errorMessage = this.customErrorMessages.required || 'This field is required.';
85
+ return;
86
+ }
87
+ if (this.minLength && this.value.length < this.minLength) {
88
+ this.errorMessage = this.customErrorMessages.minLength || `Minimum length is ${this.minLength}.`;
89
+ return;
90
+ }
91
+ if (this.maxLength && this.value.length > this.maxLength) {
92
+ this.errorMessage = this.customErrorMessages.maxLength || `Maximum length is ${this.maxLength}.`;
93
+ return;
94
+ }
95
+ const sanitizedValue = this.sanitizeValue(this.value);
96
+ const numericValue = parseFloat(sanitizedValue);
97
+ if (['integer', 'number', 'decimal'].includes(this.type)) {
98
+ if (this.min !== undefined && numericValue < this.min) {
99
+ this.errorMessage = this.customErrorMessages.minValue || `Minimum value is ${this.min}.`;
100
+ return;
101
+ }
102
+ else if (this.max !== undefined && numericValue > this.max) {
103
+ this.errorMessage = this.customErrorMessages.maxValue || `Maximum value is ${this.max}.`;
104
+ return;
105
+ }
106
+ }
107
+ if (this.type === 'integer' && !/^\d+$/.test(this.value)) {
108
+ this.errorMessage = this.customErrorMessages.integer || 'Please enter a valid integer.';
109
+ return;
110
+ }
111
+ if (this.type === 'number' && !/^\d+(\.\d+)?$/.test(this.value)) {
112
+ this.errorMessage = this.customErrorMessages.number || 'Please enter a valid number.';
113
+ return;
114
+ }
115
+ if (this.type === 'decimal' && !/^\d+(\.\d+)?$/.test(this.value)) {
116
+ this.errorMessage = this.customErrorMessages.decimal || 'Please enter a valid decimal.';
117
+ return;
118
+ }
119
+ if (this.type === 'email' && !/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(this.value)) {
120
+ this.errorMessage = this.customErrorMessages.email || 'Please enter a valid email address.';
121
+ return;
122
+ }
123
+ if (this.type === 'password' && this.value.length < 8) {
124
+ this.errorMessage = this.customErrorMessages.password || 'Password must be at least 8 characters long.';
125
+ return;
126
+ }
127
+ if (this.type === 'tel' && !/^\+?[1-9]\d{1,14}$/.test(this.value)) {
128
+ this.errorMessage = this.customErrorMessages.tel || 'Please enter a valid telephone number.';
129
+ return;
130
+ }
131
+ if (this.type === 'url' && !/^(https?|ftp):\/\/[^\s/$.?#].[^\s]*$/.test(this.value)) {
132
+ this.errorMessage = this.customErrorMessages.url || 'Please enter a valid URL.';
133
+ return;
134
+ }
135
+ }
136
+ writeValue(value) {
137
+ this.value = value ? this.applyCapitalization(value.trim(), this.capitalization) : '';
138
+ }
139
+ registerOnChange(fn) {
140
+ this.onChange = fn;
141
+ }
142
+ registerOnTouched(fn) {
143
+ this.onTouch = fn;
144
+ }
145
+ setDisabledState(isDisabled) {
146
+ this.disable = isDisabled;
147
+ }
148
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
149
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: VerbenaInputComponent, selector: "verbena-input", inputs: { label: "label", placeHolder: "placeHolder", required: "required", svgPosition: "svgPosition", minLength: "minLength", maxLength: "maxLength", type: "type", bgColor: "bgColor", border: "border", borderRadius: "borderRadius", textColor: "textColor", value: "value", labelPosition: "labelPosition", labelColor: "labelColor", disable: "disable", min: "min", max: "max", showBorder: "showBorder", showErrorMessage: "showErrorMessage", errorMessageColor: "errorMessageColor", errorBorderColor: "errorBorderColor", errorPosition: "errorPosition", svg: "svg", svgWidth: "svgWidth", svgHeight: "svgHeight", svgColor: "svgColor", capitalization: "capitalization", inputContainerClass: "inputContainerClass", inputFieldClass: "inputFieldClass", inputWrapperClass: "inputWrapperClass", customErrorMessages: "customErrorMessages" }, outputs: { valueChange: "valueChange" }, providers: [
150
+ {
151
+ provide: NG_VALUE_ACCESSOR,
152
+ useExisting: forwardRef(() => VerbenaInputComponent),
153
+ multi: true
154
+ }
155
+ ], ngImport: i0, template: "<div class=\"input-container {{ inputContainerClass }}\"\n [ngStyle]=\"{\n 'display': 'flex',\n 'flex-direction': 'column',\n\n }\"\n>\n <div\n [ngStyle]=\"{\n 'display': 'flex',\n 'justify-content': labelPosition,\n 'color': labelColor,\n 'padding': '0'\n }\"\n class=\"input-field\"\n >\n <label [for]=\"label\">{{ label }}</label>\n </div>\n\n <div class=\"input-wrapper {{ inputWrapperClass }}\">\n <input\n [id]=\"label\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeHolder\"\n [required]=\"required\"\n [attr.minlength]=\"minLength?.toString()\"\n [attr.maxlength]=\"maxLength?.toString()\"\n (input)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"{\n 'background-color': bgColor,\n 'border': showBorder ? (errorMessage ? '1px solid ' + errorBorderColor : border) : 'none',\n 'border-radius': borderRadius,\n 'color': textColor\n }\"\n class=\"input-field\"\n />\n\n <!-- Conditional red dot for error when showErrorMessage is false -->\n <verben-tooltip *ngIf=\"errorMessage && !showErrorMessage\"\n [tooltipContent]=\"tooltipTemplate\"\n customClass=\"error-tooltip\">\n <div class=\"error-dot\"\n [ngStyle]=\"{ 'background-color': errorBorderColor }\">\n </div>\n </verben-tooltip>\n\n <!-- Tooltip template for error message -->\n <ng-template #tooltipTemplate>\n {{ errorMessage }}\n </ng-template>\n\n <!-- Conditional error message display -->\n <span *ngIf=\"errorMessage && showErrorMessage\"\n [ngStyle]=\"{ 'color': errorMessageColor }\"\n [ngClass]=\"{'error-message': true,\n 'error-top': errorPosition === 'top',\n 'error-bottom': errorPosition === 'bottom',\n 'error-left': errorPosition === 'left',\n 'error-right': errorPosition === 'right'}\">\n {{ errorMessage }}\n </span>\n </div>\n</div>\n", styles: [".input-container{display:flex;flex-direction:column;gap:5px;position:relative}.input-field{width:100%;padding:6px}.error-message{font-size:12px;margin:0}.error-top{position:absolute;top:0;left:50%}.error-bottom{position:relative;margin-top:5px}.error-left{position:absolute;left:-10px}.error-right{position:absolute;right:-10px;top:0}.input-wrapper{position:relative}.input-field{width:100%;padding:8px}.error-dot{position:absolute;top:0%;right:-10px;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "border", "width", "top", "bottom", "left", "right"] }] });
156
+ }
157
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputComponent, decorators: [{
158
+ type: Component,
159
+ args: [{ selector: 'verbena-input', providers: [
160
+ {
161
+ provide: NG_VALUE_ACCESSOR,
162
+ useExisting: forwardRef(() => VerbenaInputComponent),
163
+ multi: true
164
+ }
165
+ ], template: "<div class=\"input-container {{ inputContainerClass }}\"\n [ngStyle]=\"{\n 'display': 'flex',\n 'flex-direction': 'column',\n\n }\"\n>\n <div\n [ngStyle]=\"{\n 'display': 'flex',\n 'justify-content': labelPosition,\n 'color': labelColor,\n 'padding': '0'\n }\"\n class=\"input-field\"\n >\n <label [for]=\"label\">{{ label }}</label>\n </div>\n\n <div class=\"input-wrapper {{ inputWrapperClass }}\">\n <input\n [id]=\"label\"\n [attr.type]=\"type\"\n [attr.placeholder]=\"placeHolder\"\n [required]=\"required\"\n [attr.minlength]=\"minLength?.toString()\"\n [attr.maxlength]=\"maxLength?.toString()\"\n (input)=\"onInput($event)\"\n [(ngModel)]=\"value\"\n [ngStyle]=\"{\n 'background-color': bgColor,\n 'border': showBorder ? (errorMessage ? '1px solid ' + errorBorderColor : border) : 'none',\n 'border-radius': borderRadius,\n 'color': textColor\n }\"\n class=\"input-field\"\n />\n\n <!-- Conditional red dot for error when showErrorMessage is false -->\n <verben-tooltip *ngIf=\"errorMessage && !showErrorMessage\"\n [tooltipContent]=\"tooltipTemplate\"\n customClass=\"error-tooltip\">\n <div class=\"error-dot\"\n [ngStyle]=\"{ 'background-color': errorBorderColor }\">\n </div>\n </verben-tooltip>\n\n <!-- Tooltip template for error message -->\n <ng-template #tooltipTemplate>\n {{ errorMessage }}\n </ng-template>\n\n <!-- Conditional error message display -->\n <span *ngIf=\"errorMessage && showErrorMessage\"\n [ngStyle]=\"{ 'color': errorMessageColor }\"\n [ngClass]=\"{'error-message': true,\n 'error-top': errorPosition === 'top',\n 'error-bottom': errorPosition === 'bottom',\n 'error-left': errorPosition === 'left',\n 'error-right': errorPosition === 'right'}\">\n {{ errorMessage }}\n </span>\n </div>\n</div>\n", styles: [".input-container{display:flex;flex-direction:column;gap:5px;position:relative}.input-field{width:100%;padding:6px}.error-message{font-size:12px;margin:0}.error-top{position:absolute;top:0;left:50%}.error-bottom{position:relative;margin-top:5px}.error-left{position:absolute;left:-10px}.error-right{position:absolute;right:-10px;top:0}.input-wrapper{position:relative}.input-field{width:100%;padding:8px}.error-dot{position:absolute;top:0%;right:-10px;transform:translateY(-50%);width:8px;height:8px;border-radius:50%;cursor:pointer}\n"] }]
166
+ }], propDecorators: { label: [{
167
+ type: Input
168
+ }], placeHolder: [{
169
+ type: Input
170
+ }], required: [{
171
+ type: Input
172
+ }], svgPosition: [{
173
+ type: Input
174
+ }], minLength: [{
175
+ type: Input
176
+ }], maxLength: [{
177
+ type: Input
178
+ }], type: [{
179
+ type: Input
180
+ }], bgColor: [{
181
+ type: Input
182
+ }], border: [{
183
+ type: Input
184
+ }], borderRadius: [{
185
+ type: Input
186
+ }], textColor: [{
187
+ type: Input
188
+ }], value: [{
189
+ type: Input
190
+ }], labelPosition: [{
191
+ type: Input
192
+ }], labelColor: [{
193
+ type: Input
194
+ }], disable: [{
195
+ type: Input
196
+ }], min: [{
197
+ type: Input
198
+ }], max: [{
199
+ type: Input
200
+ }], showBorder: [{
201
+ type: Input
202
+ }], showErrorMessage: [{
203
+ type: Input
204
+ }], errorMessageColor: [{
205
+ type: Input
206
+ }], errorBorderColor: [{
207
+ type: Input
208
+ }], errorPosition: [{
209
+ type: Input
210
+ }], svg: [{
211
+ type: Input
212
+ }], svgWidth: [{
213
+ type: Input
214
+ }], svgHeight: [{
215
+ type: Input
216
+ }], svgColor: [{
217
+ type: Input
218
+ }], capitalization: [{
219
+ type: Input
220
+ }], inputContainerClass: [{
221
+ type: Input
222
+ }], inputFieldClass: [{
223
+ type: Input
224
+ }], inputWrapperClass: [{
225
+ type: Input
226
+ }], customErrorMessages: [{
227
+ type: Input
228
+ }], valueChange: [{
229
+ type: Output
230
+ }] } });
231
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmVuYS1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9WZXJiZW5hLWlucHV0L3ZlcmJlbmEtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvVmVyYmVuYS1pbnB1dC92ZXJiZW5hLWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNGLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUFjekUsTUFBTSxPQUFPLHFCQUFxQjtJQUN2QixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLFdBQVcsR0FBVyxFQUFFLENBQUM7SUFDekIsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixXQUFXLEdBQXFCLE1BQU0sQ0FBQztJQUN2QyxTQUFTLENBQVU7SUFDbkIsU0FBUyxDQUFVO0lBQ25CLElBQUksR0FBaUgsTUFBTSxDQUFDO0lBQzVILE9BQU8sR0FBVyxTQUFTLENBQUM7SUFDNUIsTUFBTSxHQUFXLGdCQUFnQixDQUFDO0lBQ2xDLFlBQVksR0FBVyxLQUFLLENBQUM7SUFDN0IsU0FBUyxHQUFXLE1BQU0sQ0FBQztJQUMzQixLQUFLLEdBQVcsRUFBRSxDQUFDO0lBQ25CLGFBQWEsR0FBVyxPQUFPLENBQUM7SUFDaEMsVUFBVSxHQUFXLE9BQU8sQ0FBQztJQUM3QixPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLEdBQUcsQ0FBVTtJQUNiLEdBQUcsQ0FBVTtJQUViLFVBQVUsR0FBWSxJQUFJLENBQUM7SUFDM0IsZ0JBQWdCLEdBQVksSUFBSSxDQUFDO0lBQ2pDLGlCQUFp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LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgZm9yd2FyZFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW5hLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3ZlcmJlbmEtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi92ZXJiZW5hLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBWZXJiZW5hSW5wdXRDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgVmVyYmVuYUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uSW5pdCB7XG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgcGxhY2VIb2xkZXI6IHN0cmluZyA9ICcnO1xuICBASW5wdXQoKSByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzdmdQb3NpdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyA9ICdsZWZ0JztcbiAgQElucHV0KCkgbWluTGVuZ3RoPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXhMZW5ndGg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIHR5cGU6ICd0ZXh0JyB8ICdwYXNzd29yZCcgfCAnaW50ZWdlcicgfCAnbnVtYmVyJyB8ICdkZWNpbWFsJyB8ICdlbWFpbCcgfCAnZGF0ZScgfCAndGVsJyB8ICd1cmwnIHwgJ2ZpbGUnIHwgJ2NvbG9yJyA9ICd0ZXh0JztcbiAgQElucHV0KCkgYmdDb2xvcjogc3RyaW5nID0gJyNmOWY5ZjknO1xuICBASW5wdXQoKSBib3JkZXI6IHN0cmluZyA9ICcxcHggc29saWQgI2NjYyc7XG4gIEBJbnB1dCgpIGJvcmRlclJhZGl1czogc3RyaW5nID0gJzVweCc7XG4gIEBJbnB1dCgpIHRleHRDb2xvcjogc3RyaW5nID0gJyMzMzMnO1xuICBASW5wdXQoKSB2YWx1ZTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGxhYmVsUG9zaXRpb246IHN0cmluZyA9ICdzdGFydCc7XG4gIEBJbnB1dCgpIGxhYmVsQ29sb3I6IHN0cmluZyA9ICdibGFjayc7XG4gIEBJbnB1dCgpIGRpc2FibGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWluPzogbnVtYmVyO1xuICBASW5wdXQoKSBtYXg/OiBudW1iZXI7XG5cbiAgQElucHV0KCkgc2hvd0JvcmRlcjogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIHNob3dFcnJvck1lc3NhZ2U6IGJvb2xlYW4gPSB0cnVlO1xuICBASW5wdXQoKSBlcnJvck1lc3NhZ2VDb2xvcjogc3RyaW5nID0gJ3JlZCc7XG4gIEBJbnB1dCgpIGVycm9yQm9yZGVyQ29sb3I6IHN0cmluZyA9ICdyZWQnO1xuICBASW5wdXQoKSBlcnJvclBvc2l0aW9uOiAnbGVmdCcgfCAncmlnaHQnIHwgJ3RvcCcgfCAnYm90dG9tJyA9ICdib3R0b20nO1xuXG4gIEBJbnB1dCgpIHN2Zzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIHN2Z1dpZHRoOiBudW1iZXIgPSAyMDtcbiAgQElucHV0KCkgc3ZnSGVpZ2h0OiBudW1iZXIgPSAyMDtcbiAgQElucHV0KCkgc3ZnQ29sb3I6IHN0cmluZyA9ICcnO1xuXG4gIEBJbnB1dCgpIGNhcGl0YWxpemF0aW9uOiAnbm9uZScgfCAndXBwZXJjYXNlJyB8ICdsb3dlcmNhc2UnIHwgJ3NlbnRlbmNlY2FzZScgfCAncGFzY2FsY2FzZScgfCAnY2FtZWxjYXNlJyA9ICdub25lJztcblxuICAgLy8gTmV3IGlucHV0IHByb3BlcnRpZXMgdG8gZXhwb3NlIGN1c3RvbSBjbGFzc2VzXG4gICBASW5wdXQoKSBpbnB1dENvbnRhaW5lckNsYXNzOiBzdHJpbmcgPSAnJzsgLy8gRXhwb3NlIGN1c3RvbSBjbGFzcyBmb3IgaW5wdXQgY29udGFpbmVyXG4gICBASW5wdXQoKSBpbnB1dEZpZWxkQ2xhc3M6IHN0cmluZyA9ICcnOyAvLyBFeHBvc2UgY3VzdG9tIGNsYXNzIGZvciBpbnB1dCBmaWVsZFxuICAgQElucHV0KCkgaW5wdXRXcmFwcGVyQ2xhc3M6IHN0cmluZyA9ICcnOyAvLyBFeHBvc2UgY3VzdG9tIGNsYXNzIGZvciBpbnB1dCB3cmFwcGVyXG4gXG5cbiAgLy8gTmV3IHByb3BlcnR5IGZvciBjdXN0b20gZXJyb3IgbWVzc2FnZXNcbiAgQElucHV0KCkgY3VzdG9tRXJyb3JNZXNzYWdlczoge1xuICAgIHJlcXVpcmVkPzogc3RyaW5nO1xuICAgIG1pbkxlbmd0aD86IHN0cmluZztcbiAgICBtYXhMZW5ndGg/OiBzdHJpbmc7XG4gICAgbWluVmFsdWU/OiBzdHJpbmc7XG4gICAgbWF4VmFsdWU/OiBzdHJpbmc7XG4gICAgaW50ZWdlcj86IHN0cmluZztcbiAgICBudW1iZXI/OiBzdHJpbmc7XG4gICAgZGVjaW1hbD86IHN0cmluZztcbiAgICBlbWFpbD86IHN0cmluZztcbiAgICBwYXNzd29yZD86IHN0cmluZztcbiAgICB0ZWw/OiBzdHJpbmc7XG4gICAgdXJsPzogc3RyaW5nO1xuICB9ID0ge307XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBGaWxlTGlzdD4oKTtcblxuICBlcnJvck1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgaW5wdXRJZDogc3RyaW5nID0gJyc7XG5cbiAgb25DaGFuZ2U6IGFueSA9ICgpID0+IHt9O1xuICBvblRvdWNoOiBhbnkgPSAoKSA9PiB7fTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmlucHV0SWQgPSBgdmVyYmVuYS1pbnB1dC0ke01hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cigyLCA5KX1gO1xuICB9XG5cbiAgb25JbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdmaWxlJyAmJiB0YXJnZXQuZmlsZXMpIHtcbiAgICAgIGNvbnN0IGZpbGVzID0gdGFyZ2V0LmZpbGVzO1xuICAgICAgdGhpcy5vbkNoYW5nZShmaWxlcyk7IC8vIEVtaXQgdGhlIHNlbGVjdGVkIGZpbGVzXG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZmlsZXMpOyAvLyBFbWl0IHNlbGVjdGVkIGZpbGVzXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0YXJnZXQudmFsdWUudHJpbSgpO1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuYXBwbHlDYXBpdGFsaXphdGlvbih0aGlzLnZhbHVlLCB0aGlzLmNhcGl0YWxpemF0aW9uKTtcbiAgICAgIHRoaXMudmFsaWRhdGUoKTtcbiAgICAgIGNvbnN0IHNhbml0aXplZFZhbHVlID0gdGhpcy5zYW5pdGl6ZVZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5vbkNoYW5nZShzYW5pdGl6ZWRWYWx1ZSk7XG4gICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoc2FuaXRpemVkVmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIGFwcGx5Q2FwaXRhbGl6YXRpb24odmFsdWU6IHN0cmluZywgZm9ybWF0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAoZm9ybWF0KSB7XG4gICAgICBjYXNlICd1cHBlcmNhc2UnOiByZXR1cm4gdmFsdWUudG9VcHBlckNhc2UoKTtcbiAgICAgIGNhc2UgJ2xvd2VyY2FzZSc6IHJldHVybiB2YWx1ZS50b0xvd2VyQ2FzZSgpO1xuICAgICAgY2FzZSAnc2VudGVuY2VjYXNlJzogcmV0dXJuIHZhbHVlLmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdmFsdWUuc2xpY2UoMSkudG9Mb3dlckNhc2UoKTtcbiAgICAgIGNhc2UgJ3Bhc2NhbGNhc2UnOiByZXR1cm4gdmFsdWUucmVwbGFjZSgvXFx3Ky9nLCAodykgPT4gd1swXS50b1VwcGVyQ2FzZSgpICsgdy5zbGljZSgxKS50b0xvd2VyQ2FzZSgpKTtcbiAgICAgIGNhc2UgJ2NhbWVsY2FzZSc6IHJldHVybiB2YWx1ZS5yZXBsYWNlKC8oPzpeXFx3fFtBLVpdfFxcYlxcd3xcXHMrKS9nLCAobWF0Y2gsIGluZGV4KSA9PlxuICAgICAgICBpbmRleCA9PT0gMCA/IG1hdGNoLnRvTG93ZXJDYXNlKCkgOiBtYXRjaC50b1VwcGVyQ2FzZSgpKS5yZXBsYWNlKC9cXHMrL2csICcnKTtcbiAgICAgIGRlZmF1bHQ6IHJldHVybiB2YWx1ZTtcbiAgICB9XG4gIH1cblxuICBzYW5pdGl6ZVZhbHVlKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmIChbJ251bWJlcicsICdkZWNpbWFsJywgJ2ludGVnZXInXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XG4gICAgICByZXR1cm4gdmFsdWUucmVwbGFjZSgvLC9nLCAnJyk7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZTtcbiAgfVxuXG4gIHZhbGlkYXRlKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJyc7XG5cbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiAhdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMucmVxdWlyZWQgfHwgJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5taW5MZW5ndGggJiYgdGhpcy52YWx1ZS5sZW5ndGggPCB0aGlzLm1pbkxlbmd0aCkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWluTGVuZ3RoIHx8IGBNaW5pbXVtIGxlbmd0aCBpcyAke3RoaXMubWluTGVuZ3RofS5gO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1heExlbmd0aCAmJiB0aGlzLnZhbHVlLmxlbmd0aCA+IHRoaXMubWF4TGVuZ3RoKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy5tYXhMZW5ndGggfHwgYE1heGltdW0gbGVuZ3RoIGlzICR7dGhpcy5tYXhMZW5ndGh9LmA7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc2FuaXRpemVkVmFsdWUgPSB0aGlzLnNhbml0aXplVmFsdWUodGhpcy52YWx1ZSk7XG4gICAgY29uc3QgbnVtZXJpY1ZhbHVlID0gcGFyc2VGbG9hdChzYW5pdGl6ZWRWYWx1ZSk7XG5cbiAgICBpZiAoWydpbnRlZ2VyJywgJ251bWJlcicsICdkZWNpbWFsJ10uaW5jbHVkZXModGhpcy50eXBlKSkge1xuICAgICAgaWYgKHRoaXMubWluICE9PSB1bmRlZmluZWQgJiYgbnVtZXJpY1ZhbHVlIDwgdGhpcy5taW4pIHtcbiAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMubWluVmFsdWUgfHwgYE1pbmltdW0gdmFsdWUgaXMgJHt0aGlzLm1pbn0uYDtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLm1heCAhPT0gdW5kZWZpbmVkICYmIG51bWVyaWNWYWx1ZSA+IHRoaXMubWF4KSB7XG4gICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLm1heFZhbHVlIHx8IGBNYXhpbXVtIHZhbHVlIGlzICR7dGhpcy5tYXh9LmA7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnaW50ZWdlcicgJiYgIS9eXFxkKyQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLmludGVnZXIgfHwgJ1BsZWFzZSBlbnRlciBhIHZhbGlkIGludGVnZXIuJztcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy50eXBlID09PSAnbnVtYmVyJyAmJiAhL15cXGQrKFxcLlxcZCspPyQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLm51bWJlciB8fCAnUGxlYXNlIGVudGVyIGEgdmFsaWQgbnVtYmVyLic7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RlY2ltYWwnICYmICEvXlxcZCsoXFwuXFxkKyk/JC8udGVzdCh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMuZGVjaW1hbCB8fCAnUGxlYXNlIGVudGVyIGEgdmFsaWQgZGVjaW1hbC4nO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdlbWFpbCcgJiYgIS9eW15cXHNAXStAW15cXHNAXStcXC5bXlxcc0BdKyQvLnRlc3QodGhpcy52YWx1ZSkpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLmVtYWlsIHx8ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCBlbWFpbCBhZGRyZXNzLic7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3Bhc3N3b3JkJyAmJiB0aGlzLnZhbHVlLmxlbmd0aCA8IDgpIHtcbiAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gdGhpcy5jdXN0b21FcnJvck1lc3NhZ2VzLnBhc3N3b3JkIHx8ICdQYXNzd29yZCBtdXN0IGJlIGF0IGxlYXN0IDggY2hhcmFjdGVycyBsb25nLic7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3RlbCcgJiYgIS9eXFwrP1sxLTldXFxkezEsMTR9JC8udGVzdCh0aGlzLnZhbHVlKSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0aGlzLmN1c3RvbUVycm9yTWVzc2FnZXMudGVsIHx8ICdQbGVhc2UgZW50ZXIgYSB2YWxpZCB0ZWxlcGhvbmUgbnVtYmVyLic7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ3VybCcgJiYgIS9eKGh0dHBzP3xmdHApOlxcL1xcL1teXFxzLyQuPyNdLlteXFxzXSokLy50ZXN0KHRoaXMudmFsdWUpKSB7XG4gICAgICB0aGlzLmVycm9yTWVzc2FnZSA9IHRoaXMuY3VzdG9tRXJyb3JNZXNzYWdlcy51cmwgfHwgJ1BsZWFzZSBlbnRlciBhIHZhbGlkIFVSTC4nO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSA/IHRoaXMuYXBwbHlDYXBpdGFsaXphdGlvbih2YWx1ZS50cmltKCksIHRoaXMuY2FwaXRhbGl6YXRpb24pIDogJyc7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGUgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyIHt7IGlucHV0Q29udGFpbmVyQ2xhc3MgfX1cIlxuICAgICBbbmdTdHlsZV09XCJ7XG4gICAgICAnZGlzcGxheSc6ICdmbGV4JyxcbiAgICAgICdmbGV4LWRpcmVjdGlvbic6ICdjb2x1bW4nLFxuXG4gICAgIH1cIlxuPlxuICA8ZGl2XG4gICAgW25nU3R5bGVdPVwie1xuICAgICAgJ2Rpc3BsYXknOiAnZmxleCcsXG4gICAgICAnanVzdGlmeS1jb250ZW50JzogbGFiZWxQb3NpdGlvbixcbiAgICAgICdjb2xvcic6IGxhYmVsQ29sb3IsXG4gICAgICAncGFkZGluZyc6ICcwJ1xuICAgIH1cIlxuICAgIGNsYXNzPVwiaW5wdXQtZmllbGRcIlxuICA+XG4gICAgPGxhYmVsIFtmb3JdPVwibGFiZWxcIj57eyBsYWJlbCB9fTwvbGFiZWw+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJpbnB1dC13cmFwcGVyIHt7IGlucHV0V3JhcHBlckNsYXNzIH19XCI+XG4gICAgPGlucHV0XG4gICAgICBbaWRdPVwibGFiZWxcIlxuICAgICAgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlSG9sZGVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWluTGVuZ3RoPy50b1N0cmluZygpXCJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGg/LnRvU3RyaW5nKClcIlxuICAgICAgKGlucHV0KT1cIm9uSW5wdXQoJGV2ZW50KVwiXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2JhY2tncm91bmQtY29sb3InOiBiZ0NvbG9yLFxuICAgICAgICAnYm9yZGVyJzogc2hvd0JvcmRlciA/IChlcnJvck1lc3NhZ2UgPyAnMXB4IHNvbGlkICcgKyBlcnJvckJvcmRlckNvbG9yIDogYm9yZGVyKSA6ICdub25lJyxcbiAgICAgICAgJ2JvcmRlci1yYWRpdXMnOiBib3JkZXJSYWRpdXMsXG4gICAgICAgICdjb2xvcic6IHRleHRDb2xvclxuICAgICAgfVwiXG4gICAgICBjbGFzcz1cImlucHV0LWZpZWxkXCJcbiAgICAvPlxuXG4gICAgPCEtLSBDb25kaXRpb25hbCByZWQgZG90IGZvciBlcnJvciB3aGVuIHNob3dFcnJvck1lc3NhZ2UgaXMgZmFsc2UgLS0+XG4gICAgPHZlcmJlbi10b29sdGlwICpuZ0lmPVwiZXJyb3JNZXNzYWdlICYmICFzaG93RXJyb3JNZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgW3Rvb2x0aXBDb250ZW50XT1cInRvb2x0aXBUZW1wbGF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzPVwiZXJyb3ItdG9vbHRpcFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImVycm9yLWRvdFwiXG4gICAgICAgICAgIFtuZ1N0eWxlXT1cInsgJ2JhY2tncm91bmQtY29sb3InOiBlcnJvckJvcmRlckNvbG9yIH1cIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvdmVyYmVuLXRvb2x0aXA+XG5cbiAgICA8IS0tIFRvb2x0aXAgdGVtcGxhdGUgZm9yIGVycm9yIG1lc3NhZ2UgLS0+XG4gICAgPG5nLXRlbXBsYXRlICN0b29sdGlwVGVtcGxhdGU+XG4gICAgICB7eyBlcnJvck1lc3NhZ2UgfX1cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPCEtLSBDb25kaXRpb25hbCBlcnJvciBtZXNzYWdlIGRpc3BsYXkgLS0+XG4gICAgPHNwYW4gKm5nSWY9XCJlcnJvck1lc3NhZ2UgJiYgc2hvd0Vycm9yTWVzc2FnZVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwieyAnY29sb3InOiBlcnJvck1lc3NhZ2VDb2xvciB9XCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7J2Vycm9yLW1lc3NhZ2UnOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICdlcnJvci10b3AnOiBlcnJvclBvc2l0aW9uID09PSAndG9wJyxcbiAgICAgICAgICAgICAgICAgICAgICAnZXJyb3ItYm90dG9tJzogZXJyb3JQb3NpdGlvbiA9PT0gJ2JvdHRvbScsXG4gICAgICAgICAgICAgICAgICAgICAgJ2Vycm9yLWxlZnQnOiBlcnJvclBvc2l0aW9uID09PSAnbGVmdCcsXG4gICAgICAgICAgICAgICAgICAgICAgJ2Vycm9yLXJpZ2h0JzogZXJyb3JQb3NpdGlvbiA9PT0gJ3JpZ2h0J31cIj5cbiAgICAgIHt7IGVycm9yTWVzc2FnZSB9fVxuICAgIDwvc3Bhbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,20 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { FormsModule } from '@angular/forms';
3
+ import { CommonModule } from '@angular/common';
4
+ import { TooltipModule } from '../components/tooltip/tooltip.module';
5
+ import { VerbenaInputComponent } from './verbena-input.component';
6
+ import * as i0 from "@angular/core";
7
+ export class VerbenaInputModule {
8
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputModule, declarations: [VerbenaInputComponent], imports: [CommonModule, FormsModule, TooltipModule], exports: [VerbenaInputComponent] });
10
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputModule, imports: [CommonModule, FormsModule, TooltipModule] });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: VerbenaInputModule, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ declarations: [VerbenaInputComponent],
16
+ imports: [CommonModule, FormsModule, TooltipModule],
17
+ exports: [VerbenaInputComponent],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmVuYS1pbnB1dC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9WZXJiZW5hLWlucHV0L3ZlcmJlbmEtaW5wdXQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7O0FBT2xFLE1BQU0sT0FBTyxrQkFBa0I7dUdBQWxCLGtCQUFrQjt3R0FBbEIsa0JBQWtCLGlCQUpkLHFCQUFxQixhQUMxQixZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsYUFDeEMscUJBQXFCO3dHQUVwQixrQkFBa0IsWUFIbkIsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhOzsyRkFHdkMsa0JBQWtCO2tCQUw5QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO29CQUNyQyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWEsQ0FBQztvQkFDbkQsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7aUJBQ2pDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICcuLi9jb21wb25lbnRzL3Rvb2x0aXAvdG9vbHRpcC5tb2R1bGUnO1xuaW1wb3J0IHsgVmVyYmVuYUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi92ZXJiZW5hLWlucHV0LmNvbXBvbmVudCc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1ZlcmJlbmFJbnB1dENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBUb29sdGlwTW9kdWxlXSxcbiAgZXhwb3J0czogW1ZlcmJlbmFJbnB1dENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFZlcmJlbmFJbnB1dE1vZHVsZSB7fVxuIl19
@@ -0,0 +1,20 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TemplateDirective {
4
+ template;
5
+ vTemplate; // The name of the template
6
+ constructor(template) {
7
+ this.template = template;
8
+ }
9
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
10
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.5", type: TemplateDirective, selector: "[vTemplate]", inputs: { vTemplate: "vTemplate" }, ngImport: i0 });
11
+ }
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TemplateDirective, decorators: [{
13
+ type: Directive,
14
+ args: [{
15
+ selector: '[vTemplate]',
16
+ }]
17
+ }], ctorParameters: () => [{ type: i0.TemplateRef }], propDecorators: { vTemplate: [{
18
+ type: Input
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVGVtcGxhdGVEaXJlY3RpdmUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9UZW1wbGF0ZURpcmVjdGl2ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7O0FBSzlELE1BQU0sT0FBTyxpQkFBaUI7SUFHVDtJQUZWLFNBQVMsQ0FBVSxDQUFDLDJCQUEyQjtJQUV4RCxZQUFtQixRQUEwQjtRQUExQixhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUFHLENBQUM7dUdBSHRDLGlCQUFpQjsyRkFBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQUg3QixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxhQUFhO2lCQUN4QjtnRkFFVSxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3ZUZW1wbGF0ZV0nLFxufSlcbmV4cG9ydCBjbGFzcyBUZW1wbGF0ZURpcmVjdGl2ZSB7XG4gIEBJbnB1dCgpIHZUZW1wbGF0ZSE6IHN0cmluZzsgLy8gVGhlIG5hbWUgb2YgdGhlIHRlbXBsYXRlXG5cbiAgY29uc3RydWN0b3IocHVibGljIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+KSB7fVxufVxuIl19
@@ -0,0 +1,62 @@
1
+ import { Component, ContentChild, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class CardComponent {
5
+ hasHeader = false;
6
+ hasFooter = false;
7
+ hasBody = false;
8
+ pd = '10px';
9
+ mg = '0px';
10
+ height;
11
+ width;
12
+ textColor;
13
+ bgColor;
14
+ border;
15
+ borderRadius;
16
+ disabled = false;
17
+ aspectRatio;
18
+ cardHeader;
19
+ cardBody;
20
+ cardFooter;
21
+ ngAfterContentInit() {
22
+ this.hasHeader = !this.cardHeader;
23
+ this.hasBody = !this.cardBody;
24
+ this.hasFooter = !this.cardFooter;
25
+ }
26
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
27
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: CardComponent, selector: "verben-card", inputs: { pd: "pd", mg: "mg", height: "height", width: "width", textColor: "textColor", bgColor: "bgColor", border: "border", borderRadius: "borderRadius", disabled: "disabled", aspectRatio: "aspectRatio" }, queries: [{ propertyName: "cardHeader", first: true, predicate: ["card-header"], descendants: true }, { propertyName: "cardBody", first: true, predicate: ["card-body"], descendants: true }, { propertyName: "cardFooter", first: true, predicate: ["card-footer"], descendants: true }], ngImport: i0, template: " <div class=\"card\"\n [style.background-color]=\"bgColor\"\n [style.margin]=\"mg\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [ngClass]=\"disabled?'disable':''\"\n [style.aspect-ratio]=\"aspectRatio\"\n [style.padding]=\"pd\"\n >\n <div class=\"card-header\" *ngIf=\"hasHeader\">\n <ng-content select=\"[card-header]\"></ng-content>\n </div>\n <div class=\"card-body\" *ngIf=\"hasBody\">\n <ng-content select=\"[card-body]\"></ng-content>\n </div>\n <div class=\"card-footer\" *ngIf=\"hasFooter\">\n <ng-content select=\"[card-footer]\"></ng-content>\n </div>\n </div>\n ", styles: [".card{border:1px solid #ddd;border-radius:4px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.card-header{background-color:#f8f9fa;padding:10px 15px;border-bottom:1px solid #ddd}.card-body{padding:15px}.card-footer{background-color:#f8f9fa;padding:10px 15px;border-top:1px solid #ddd}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardComponent, decorators: [{
30
+ type: Component,
31
+ args: [{ selector: 'verben-card', template: " <div class=\"card\"\n [style.background-color]=\"bgColor\"\n [style.margin]=\"mg\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [ngClass]=\"disabled?'disable':''\"\n [style.aspect-ratio]=\"aspectRatio\"\n [style.padding]=\"pd\"\n >\n <div class=\"card-header\" *ngIf=\"hasHeader\">\n <ng-content select=\"[card-header]\"></ng-content>\n </div>\n <div class=\"card-body\" *ngIf=\"hasBody\">\n <ng-content select=\"[card-body]\"></ng-content>\n </div>\n <div class=\"card-footer\" *ngIf=\"hasFooter\">\n <ng-content select=\"[card-footer]\"></ng-content>\n </div>\n </div>\n ", styles: [".card{border:1px solid #ddd;border-radius:4px;overflow:hidden;box-shadow:0 2px 4px #0000001a}.card-header{background-color:#f8f9fa;padding:10px 15px;border-bottom:1px solid #ddd}.card-body{padding:15px}.card-footer{background-color:#f8f9fa;padding:10px 15px;border-top:1px solid #ddd}\n"] }]
32
+ }], propDecorators: { pd: [{
33
+ type: Input
34
+ }], mg: [{
35
+ type: Input
36
+ }], height: [{
37
+ type: Input
38
+ }], width: [{
39
+ type: Input
40
+ }], textColor: [{
41
+ type: Input
42
+ }], bgColor: [{
43
+ type: Input
44
+ }], border: [{
45
+ type: Input
46
+ }], borderRadius: [{
47
+ type: Input
48
+ }], disabled: [{
49
+ type: Input
50
+ }], aspectRatio: [{
51
+ type: Input
52
+ }], cardHeader: [{
53
+ type: ContentChild,
54
+ args: ['card-header', { static: false }]
55
+ }], cardBody: [{
56
+ type: ContentChild,
57
+ args: ['card-body', { static: false }]
58
+ }], cardFooter: [{
59
+ type: ContentChild,
60
+ args: ['card-footer', { static: false }]
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBZ0MsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFRN0YsTUFBTSxPQUFPLGFBQWE7SUFDeEIsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUNsQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDUCxFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ1osRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNYLE1BQU0sQ0FBVTtJQUNoQixLQUFLLENBQVU7SUFDZixTQUFTLENBQVU7SUFDbkIsT0FBTyxDQUFVO0lBQ2pCLE1BQU0sQ0FBVTtJQUNoQixZQUFZLENBQVU7SUFDdEIsUUFBUSxHQUFTLEtBQUssQ0FBRTtJQUN4QixXQUFXLENBQVU7SUFDa0IsVUFBVSxDQUF5QjtJQUNyQyxRQUFRLENBQXlCO0lBQy9CLFVBQVUsQ0FBeUI7SUFFbkYsa0JBQWtCO1FBQ2hCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzlCLElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3BDLENBQUM7dUdBdEJVLGFBQWE7MkZBQWIsYUFBYSw4aEJDVDFCLDZ0QkFzQkU7OzJGRGJXLGFBQWE7a0JBTnpCLFNBQVM7K0JBQ0UsYUFBYTs4QkFTZCxFQUFFO3NCQUFWLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUMwQyxVQUFVO3NCQUF6RCxZQUFZO3VCQUFDLGFBQWEsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0EsUUFBUTtzQkFBckQsWUFBWTt1QkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNJLFVBQVU7c0JBQXpELFlBQVk7dUJBQUMsYUFBYSxFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIENvbnRlbnRDaGlsZCwgRWxlbWVudFJlZiwgQWZ0ZXJDb250ZW50SW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVyYmVuLWNhcmQnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQuY29tcG9uZW50LmNzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgQ2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBoYXNIZWFkZXIgPSBmYWxzZTtcbiAgaGFzRm9vdGVyID0gZmFsc2U7XG4gIGhhc0JvZHkgPSBmYWxzZTtcbiAgQElucHV0KCkgcGQgPSAnMTBweCc7XG4gIEBJbnB1dCgpIG1nID0gJzBweCc7XG4gIEBJbnB1dCgpIGhlaWdodD86c3RyaW5nIDtcbiAgQElucHV0KCkgd2lkdGg/OnN0cmluZyA7XG4gIEBJbnB1dCgpIHRleHRDb2xvcj86c3RyaW5nIDtcbiAgQElucHV0KCkgYmdDb2xvcj86c3RyaW5nIDtcbiAgQElucHV0KCkgYm9yZGVyPzpzdHJpbmcgO1xuICBASW5wdXQoKSBib3JkZXJSYWRpdXM/OnN0cmluZyA7XG4gIEBJbnB1dCgpIGRpc2FibGVkOmJvb2xlYW49ZmFsc2UgO1xuICBASW5wdXQoKSBhc3BlY3RSYXRpbz86bnVtYmVyIDtcbiAgQENvbnRlbnRDaGlsZCgnY2FyZC1oZWFkZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY2FyZEhlYWRlcjogRWxlbWVudFJlZiB8IHVuZGVmaW5lZDtcbiAgQENvbnRlbnRDaGlsZCgnY2FyZC1ib2R5JywgeyBzdGF0aWM6IGZhbHNlIH0pIGNhcmRCb2R5OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuICBAQ29udGVudENoaWxkKCdjYXJkLWZvb3RlcicsIHsgc3RhdGljOiBmYWxzZSB9KSBjYXJkRm9vdGVyOiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICB0aGlzLmhhc0hlYWRlciA9ICF0aGlzLmNhcmRIZWFkZXI7XG4gICAgdGhpcy5oYXNCb2R5ID0gIXRoaXMuY2FyZEJvZHk7XG4gICAgdGhpcy5oYXNGb290ZXIgPSAhdGhpcy5jYXJkRm9vdGVyO1xuICB9XG59IiwiICA8ZGl2IGNsYXNzPVwiY2FyZFwiXG4gIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJnQ29sb3JcIlxuICBbc3R5bGUubWFyZ2luXT1cIm1nXCJcbiAgW3N0eWxlLmJvcmRlcl09XCJib3JkZXJcIlxuICBbc3R5bGUuYm9yZGVyLXJhZGl1c109XCJib3JkZXJSYWRpdXNcIlxuICBbc3R5bGUuY29sb3JdPVwidGV4dENvbG9yXCJcbiAgW3N0eWxlLndpZHRoXT1cIndpZHRoXCJcbiAgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIlxuICBbbmdDbGFzc109XCJkaXNhYmxlZD8nZGlzYWJsZSc6JydcIlxuICBbc3R5bGUuYXNwZWN0LXJhdGlvXT1cImFzcGVjdFJhdGlvXCJcbiAgW3N0eWxlLnBhZGRpbmddPVwicGRcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyXCIgKm5nSWY9XCJoYXNIZWFkZXJcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjYXJkLWhlYWRlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiICpuZ0lmPVwiaGFzQm9keVwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NhcmQtYm9keV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImNhcmQtZm9vdGVyXCIgKm5nSWY9XCJoYXNGb290ZXJcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjYXJkLWZvb3Rlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICAiXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { CardComponent } from './card.component';
4
+ import * as i0 from "@angular/core";
5
+ export class CardModule {
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
7
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: CardModule, declarations: [CardComponent], imports: [CommonModule], exports: [CardComponent] });
8
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardModule, imports: [CommonModule] });
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardModule, decorators: [{
11
+ type: NgModule,
12
+ args: [{
13
+ declarations: [CardComponent],
14
+ imports: [CommonModule],
15
+ exports: [CardComponent]
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQvY2FyZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQU9qRCxNQUFNLE9BQU8sVUFBVTt1R0FBVixVQUFVO3dHQUFWLFVBQVUsaUJBSlAsYUFBYSxhQUNoQixZQUFZLGFBQ2IsYUFBYTt3R0FFWixVQUFVLFlBSFYsWUFBWTs7MkZBR1osVUFBVTtrQkFMdEIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUMsQ0FBQyxhQUFhLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFFLFlBQVksQ0FBQztvQkFDeEIsT0FBTyxFQUFFLENBQUMsYUFBYSxDQUFDO2lCQUN6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2FyZENvbXBvbmVudCB9IGZyb20gJy4vY2FyZC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6W0NhcmRDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbIENvbW1vbk1vZHVsZV0sXG4gIGV4cG9ydHM6IFtDYXJkQ29tcG9uZW50XVxufSlcbmV4cG9ydCBjbGFzcyBDYXJkTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class CardDataViewFooterComponent {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardDataViewFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: CardDataViewFooterComponent, selector: "verben-card-data-view-footer", ngImport: i0, template: " <ng-content></ng-content> \n", styles: [":host{padding:0 15px}\n"] });
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardDataViewFooterComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'verben-card-data-view-footer', template: " <ng-content></ng-content> \n", styles: [":host{padding:0 15px}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1kYXRhLXZpZXctZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC1kYXRhLXZpZXcvY2FyZC1kYXRhLXZpZXctZm9vdGVyL2NhcmQtZGF0YS12aWV3LWZvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtZGF0YS12aWV3L2NhcmQtZGF0YS12aWV3LWZvb3Rlci9jYXJkLWRhdGEtdmlldy1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLDJCQUEyQjt1R0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkIsb0VDUHhDLGlDQUNBOzsyRkRNYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi1jYXJkLWRhdGEtdmlldy1mb290ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1kYXRhLXZpZXctZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NhcmQtZGF0YS12aWV3LWZvb3Rlci5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDYXJkRGF0YVZpZXdGb290ZXJDb21wb25lbnQge1xuXG59XG4iLCIgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gIFxuIl19
@@ -0,0 +1,11 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class CardDataViewHeaderComponent {
4
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardDataViewHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: CardDataViewHeaderComponent, selector: "verben-card-data-view-header", ngImport: i0, template: " <ng-content></ng-content> \n", styles: [":host{padding:15px;position:absolute;top:0;width:100%}\n"] });
6
+ }
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardDataViewHeaderComponent, decorators: [{
8
+ type: Component,
9
+ args: [{ selector: 'verben-card-data-view-header', template: " <ng-content></ng-content> \n", styles: [":host{padding:15px;position:absolute;top:0;width:100%}\n"] }]
10
+ }] });
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1kYXRhLXZpZXctaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvY2FyZC1kYXRhLXZpZXcvY2FyZC1kYXRhLXZpZXctaGVhZGVyL2NhcmQtZGF0YS12aWV3LWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtZGF0YS12aWV3L2NhcmQtZGF0YS12aWV3LWhlYWRlci9jYXJkLWRhdGEtdmlldy1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFPMUMsTUFBTSxPQUFPLDJCQUEyQjt1R0FBM0IsMkJBQTJCOzJGQUEzQiwyQkFBMkIsb0VDUHhDLGlDQUNBOzsyRkRNYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsOEJBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi1jYXJkLWRhdGEtdmlldy1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1kYXRhLXZpZXctaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2NhcmQtZGF0YS12aWV3LWhlYWRlci5jb21wb25lbnQuY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBDYXJkRGF0YVZpZXdIZWFkZXJDb21wb25lbnQge1xuXG59XG4iLCIgIDxuZy1jb250ZW50PjwvbmctY29udGVudD4gIFxuIl19
@@ -0,0 +1,105 @@
1
+ import { Component, ContentChild, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "../svg/svg.component";
5
+ export class CardDataViewComponent {
6
+ pd = '10px';
7
+ mg = '0px';
8
+ lHeight = "100%";
9
+ rHeight = "100%";
10
+ rWidth = "70%";
11
+ lWidth = "30%";
12
+ textColor;
13
+ lbgColor;
14
+ rbgColor;
15
+ border;
16
+ display;
17
+ borderRadius = "12px";
18
+ activeCss;
19
+ inActiveCss;
20
+ displayAsRow = true;
21
+ cardDataList = [];
22
+ dataId;
23
+ totalRecords = 0;
24
+ footer = false;
25
+ card;
26
+ // @ContentChild('content') content!: TemplateRef<any>;
27
+ currentItem = {};
28
+ hasCurrentItem() {
29
+ return !!Object.keys(this.currentItem).length;
30
+ }
31
+ clearData() {
32
+ this.currentItem = {};
33
+ this.cardDataList.forEach(_ => {
34
+ _.selected = false;
35
+ });
36
+ }
37
+ onItemClick(item) {
38
+ item.selected = true;
39
+ this.cardDataList.forEach(element => {
40
+ if (element.data[this.dataId] == item.data[this.dataId]) {
41
+ this.currentItem = item;
42
+ }
43
+ else {
44
+ element.selected = false;
45
+ }
46
+ });
47
+ return this.currentItem;
48
+ }
49
+ loadMoreClick = new EventEmitter();
50
+ onLoadMoreClick() {
51
+ this.loadMoreClick.emit();
52
+ }
53
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardDataViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: CardDataViewComponent, selector: "verben-card-data-view", inputs: { pd: "pd", mg: "mg", lHeight: "lHeight", rHeight: "rHeight", rWidth: "rWidth", lWidth: "lWidth", textColor: "textColor", lbgColor: "lbgColor", rbgColor: "rbgColor", border: "border", display: "display", borderRadius: "borderRadius", activeCss: "activeCss", inActiveCss: "inActiveCss", displayAsRow: "displayAsRow", cardDataList: "cardDataList", dataId: "dataId", totalRecords: "totalRecords", footer: "footer", onItemClick: "onItemClick" }, outputs: { loadMoreClick: "loadMoreClick" }, queries: [{ propertyName: "card", first: true, predicate: ["card"], descendants: true }], ngImport: i0, template: "\n<div class=\"container flex-col\" [style.display]=\"'flex'\" [style.margin]=\"mg\" > \n <!-- Header -->\n <ng-container ngProjectAs=\"verben-card-data-view-header\">\n <ng-content select='verben-card-data-view-header'></ng-content>\n </ng-container>\n\n <div [style.padding]=\"pd\" [ngClass]=\"!hasCurrentItem()?'master-only-container':'master-detail-container'\" >\n <!-- Card and Footer -->\n <div [style.borderRadius]=\"borderRadius\" [style.backgroundColor]=\"lbgColor\" class=\"flex-col \">\n <!-- Card section -->\n <ng-container ngProjectAs=\"verben-left-card-data-view\">\n <ng-content select='verben-left-card-data-view'></ng-content>\n </ng-container>\n\n <!-- Footer-->\n <ng-container ngProjectAs=\"verben-card-data-view-footer\">\n <ng-content select='verben-card-data-view-footer'></ng-content>\n </ng-container>\n </div>\n <!-- Detail Section-->\n <div [style.backgroundColor]=\"rbgColor\" *ngIf=\"hasCurrentItem()\" [style.borderRadius]=\"borderRadius\">\n <verben-svg (click)=\"clearData()\" class=\"cursor-pointer toRight\" icon=\"close\" [width]=\"20\" [height]=\"20\" color=\"black\"></verben-svg> \n <ng-container ngProjectAs=\"verben-right-card-data-view\">\n <ng-content select='verben-right-card-data-view'></ng-content>\n </ng-container>\n </div>\n </div>\n</div>", styles: [".container{gap:10px;min-height:100vh}:host{border-radius:12px}.master-detail-container{display:grid;grid-template-columns:30% 70%;gap:15px;justify-content:center;margin-top:20px}.master-only-container{display:grid;grid-template-columns:100%;justify-content:center;margin-top:20px}.paginator-text{margin-left:auto;margin-right:auto}.cursor-pointer{cursor:pointer}.toRight{float:right;margin:5px 10px 0 0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "size"] }] });
55
+ }
56
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CardDataViewComponent, decorators: [{
57
+ type: Component,
58
+ args: [{ selector: 'verben-card-data-view', template: "\n<div class=\"container flex-col\" [style.display]=\"'flex'\" [style.margin]=\"mg\" > \n <!-- Header -->\n <ng-container ngProjectAs=\"verben-card-data-view-header\">\n <ng-content select='verben-card-data-view-header'></ng-content>\n </ng-container>\n\n <div [style.padding]=\"pd\" [ngClass]=\"!hasCurrentItem()?'master-only-container':'master-detail-container'\" >\n <!-- Card and Footer -->\n <div [style.borderRadius]=\"borderRadius\" [style.backgroundColor]=\"lbgColor\" class=\"flex-col \">\n <!-- Card section -->\n <ng-container ngProjectAs=\"verben-left-card-data-view\">\n <ng-content select='verben-left-card-data-view'></ng-content>\n </ng-container>\n\n <!-- Footer-->\n <ng-container ngProjectAs=\"verben-card-data-view-footer\">\n <ng-content select='verben-card-data-view-footer'></ng-content>\n </ng-container>\n </div>\n <!-- Detail Section-->\n <div [style.backgroundColor]=\"rbgColor\" *ngIf=\"hasCurrentItem()\" [style.borderRadius]=\"borderRadius\">\n <verben-svg (click)=\"clearData()\" class=\"cursor-pointer toRight\" icon=\"close\" [width]=\"20\" [height]=\"20\" color=\"black\"></verben-svg> \n <ng-container ngProjectAs=\"verben-right-card-data-view\">\n <ng-content select='verben-right-card-data-view'></ng-content>\n </ng-container>\n </div>\n </div>\n</div>", styles: [".container{gap:10px;min-height:100vh}:host{border-radius:12px}.master-detail-container{display:grid;grid-template-columns:30% 70%;gap:15px;justify-content:center;margin-top:20px}.master-only-container{display:grid;grid-template-columns:100%;justify-content:center;margin-top:20px}.paginator-text{margin-left:auto;margin-right:auto}.cursor-pointer{cursor:pointer}.toRight{float:right;margin:5px 10px 0 0}\n"] }]
59
+ }], propDecorators: { pd: [{
60
+ type: Input
61
+ }], mg: [{
62
+ type: Input
63
+ }], lHeight: [{
64
+ type: Input
65
+ }], rHeight: [{
66
+ type: Input
67
+ }], rWidth: [{
68
+ type: Input
69
+ }], lWidth: [{
70
+ type: Input
71
+ }], textColor: [{
72
+ type: Input
73
+ }], lbgColor: [{
74
+ type: Input
75
+ }], rbgColor: [{
76
+ type: Input
77
+ }], border: [{
78
+ type: Input
79
+ }], display: [{
80
+ type: Input
81
+ }], borderRadius: [{
82
+ type: Input
83
+ }], activeCss: [{
84
+ type: Input
85
+ }], inActiveCss: [{
86
+ type: Input
87
+ }], displayAsRow: [{
88
+ type: Input
89
+ }], cardDataList: [{
90
+ type: Input
91
+ }], dataId: [{
92
+ type: Input
93
+ }], totalRecords: [{
94
+ type: Input
95
+ }], footer: [{
96
+ type: Input
97
+ }], card: [{
98
+ type: ContentChild,
99
+ args: ['card']
100
+ }], onItemClick: [{
101
+ type: Input
102
+ }], loadMoreClick: [{
103
+ type: Output
104
+ }] } });
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1kYXRhLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWRhdGEtdmlldy9jYXJkLWRhdGEtdmlldy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtZGF0YS12aWV3L2NhcmQtZGF0YS12aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLFlBQVksRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBMEIsTUFBTSxlQUFlLENBQUM7Ozs7QUFVM0ksTUFBTSxPQUFPLHFCQUFxQjtJQUN2QixFQUFFLEdBQUcsTUFBTSxDQUFDO0lBQ1osRUFBRSxHQUFHLEtBQUssQ0FBQztJQUNYLE9BQU8sR0FBUyxNQUFNLENBQUM7SUFDdkIsT0FBTyxHQUFTLE1BQU0sQ0FBQztJQUN2QixNQUFNLEdBQVMsS0FBSyxDQUFDO0lBQ3JCLE1BQU0sR0FBUyxLQUFLLENBQUM7SUFDckIsU0FBUyxDQUFVO0lBQ25CLFFBQVEsQ0FBVTtJQUNsQixRQUFRLENBQVU7SUFDbEIsTUFBTSxDQUFVO0lBQ2hCLE9BQU8sQ0FBVTtJQUNqQixZQUFZLEdBQVMsTUFBTSxDQUFDO0lBQzVCLFNBQVMsQ0FBVTtJQUNuQixXQUFXLENBQVU7SUFDckIsWUFBWSxHQUFXLElBQUksQ0FBQztJQUM1QixZQUFZLEdBQVksRUFBRSxDQUFDO0lBQzNCLE1BQU0sQ0FBUztJQUNmLFlBQVksR0FBUSxDQUFDLENBQUM7SUFDdEIsTUFBTSxHQUFTLEtBQUssQ0FBQztJQUdSLElBQUksQ0FBb0I7SUFDOUMsdURBQXVEO0lBQ3ZELFdBQVcsR0FBSyxFQUFFLENBQUM7SUFDbkIsY0FBYztRQUVaLE9BQU8sQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLE1BQU0sQ0FBQTtJQUMvQyxDQUFDO0lBQ0QsU0FBUztRQUVQLElBQUksQ0FBQyxXQUFXLEdBQUMsRUFBYyxDQUFBO1FBQy9CLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQSxFQUFFO1lBQzNCLENBQUMsQ0FBQyxRQUFRLEdBQUMsS0FBSyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUNPLFdBQVcsQ0FBQyxJQUFhO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUUsSUFBSSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ2xDLElBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQ3BELENBQUM7Z0JBQ0MsSUFBSSxDQUFDLFdBQVcsR0FBRSxJQUFJLENBQUM7WUFDekIsQ0FBQztpQkFFRCxDQUFDO2dCQUNDLE9BQU8sQ0FBQyxRQUFRLEdBQUMsS0FBSyxDQUFDO1lBQ3pCLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQTtJQUN6QixDQUFDO0lBQ1MsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDN0MsZUFBZTtRQUViLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDNUIsQ0FBQzt1R0F0RFUscUJBQXFCOzJGQUFyQixxQkFBcUIsc29CQ1ZsQywrN0NBNEJNOzsyRkRsQk8scUJBQXFCO2tCQU5qQyxTQUFTOytCQUNFLHVCQUF1Qjs4QkFNeEIsRUFBRTtzQkFBVixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUdnQixJQUFJO3NCQUF6QixZQUFZO3VCQUFDLE1BQU07Z0JBY1gsV0FBVztzQkFBbkIsS0FBSztnQkFjSSxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgVGVtcGxhdGVSZWYsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2FyZERhdGEgfSBmcm9tICcuL2NhcmQtZGF0YSc7XG5pbXBvcnQgeyBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tY2FyZC1kYXRhLXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1kYXRhLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vY2FyZC1kYXRhLXZpZXcuY29tcG9uZW50LmNzcydcbn0pXG5cbmV4cG9ydCBjbGFzcyBDYXJkRGF0YVZpZXdDb21wb25lbnQgIHtcbiAgQElucHV0KCkgcGQgPSAnMTBweCc7XG4gIEBJbnB1dCgpIG1nID0gJzBweCc7XG4gIEBJbnB1dCgpIGxIZWlnaHQ/OnN0cmluZz1cIjEwMCVcIjtcbiAgQElucHV0KCkgckhlaWdodD86c3RyaW5nPVwiMTAwJVwiO1xuICBASW5wdXQoKSByV2lkdGg/OnN0cmluZz1cIjcwJVwiO1xuICBASW5wdXQoKSBsV2lkdGg/OnN0cmluZz1cIjMwJVwiO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I/OnN0cmluZyA7XG4gIEBJbnB1dCgpIGxiZ0NvbG9yPzpzdHJpbmcgO1xuICBASW5wdXQoKSByYmdDb2xvcj86c3RyaW5nIDtcbiAgQElucHV0KCkgYm9yZGVyPzpzdHJpbmcgO1xuICBASW5wdXQoKSBkaXNwbGF5PzpzdHJpbmcgO1xuICBASW5wdXQoKSBib3JkZXJSYWRpdXM/OnN0cmluZz1cIjEycHhcIjtcbiAgQElucHV0KCkgYWN0aXZlQ3NzPzpzdHJpbmcgO1xuICBASW5wdXQoKSBpbkFjdGl2ZUNzcz86c3RyaW5nIDtcbiAgQElucHV0KCkgZGlzcGxheUFzUm93Pzpib29sZWFuID10cnVlO1xuICBASW5wdXQoKSBjYXJkRGF0YUxpc3Q6Q2FyZERhdGFbXT1bXTtcbiAgQElucHV0KCkgZGF0YUlkITpzdHJpbmc7XG4gIEBJbnB1dCgpIHRvdGFsUmVjb3JkczpudW1iZXI9MDtcbiAgQElucHV0KCkgZm9vdGVyOmJvb2xlYW49ZmFsc2U7XG5cblxuICBAQ29udGVudENoaWxkKCdjYXJkJykgY2FyZCE6IFRlbXBsYXRlUmVmPGFueT47XG4gIC8vIEBDb250ZW50Q2hpbGQoJ2NvbnRlbnQnKSBjb250ZW50ITogVGVtcGxhdGVSZWY8YW55PjtcbiAgY3VycmVudEl0ZW06YW55PXt9O1xuICBoYXNDdXJyZW50SXRlbSgpXG4gIHtcbiAgICByZXR1cm4gISFPYmplY3Qua2V5cyh0aGlzLmN1cnJlbnRJdGVtKS5sZW5ndGhcbiAgfVxuICBjbGVhckRhdGEoKVxuICAge1xuICAgIHRoaXMuY3VycmVudEl0ZW09e30gYXMgQ2FyZERhdGFcbiAgICB0aGlzLmNhcmREYXRhTGlzdC5mb3JFYWNoKF89PntcbiAgICAgIF8uc2VsZWN0ZWQ9ZmFsc2U7XG4gICAgfSk7XG4gICB9XG4gIEBJbnB1dCgpIG9uSXRlbUNsaWNrKGl0ZW06Q2FyZERhdGEpe1xuICAgIGl0ZW0uc2VsZWN0ZWQ9IHRydWU7XG4gICAgdGhpcy5jYXJkRGF0YUxpc3QuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGlmKGVsZW1lbnQuZGF0YVt0aGlzLmRhdGFJZF09PWl0ZW0uZGF0YVt0aGlzLmRhdGFJZF0pXG4gICAgICB7XG4gICAgICAgIHRoaXMuY3VycmVudEl0ZW09IGl0ZW07XG4gICAgICB9XG4gICAgICBlbHNlXG4gICAgICB7XG4gICAgICAgIGVsZW1lbnQuc2VsZWN0ZWQ9ZmFsc2U7XG4gICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIHRoaXMuY3VycmVudEl0ZW1cbiAgfVxuICBAT3V0cHV0KCkgbG9hZE1vcmVDbGljayA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgb25Mb2FkTW9yZUNsaWNrKClcbiAge1xuICAgIHRoaXMubG9hZE1vcmVDbGljay5lbWl0KCk7XG4gIH1cbn1cbiIsIlxuPGRpdiBjbGFzcz1cImNvbnRhaW5lciBmbGV4LWNvbFwiIFtzdHlsZS5kaXNwbGF5XT1cIidmbGV4J1wiIFtzdHlsZS5tYXJnaW5dPVwibWdcIiA+IFxuICAgICA8IS0tIEhlYWRlciAtLT5cbiAgICAgPG5nLWNvbnRhaW5lciBuZ1Byb2plY3RBcz1cInZlcmJlbi1jYXJkLWRhdGEtdmlldy1oZWFkZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSd2ZXJiZW4tY2FyZC1kYXRhLXZpZXctaGVhZGVyJz48L25nLWNvbnRlbnQ+XG4gICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgIDxkaXYgW3N0eWxlLnBhZGRpbmddPVwicGRcIiAgW25nQ2xhc3NdPVwiIWhhc0N1cnJlbnRJdGVtKCk/J21hc3Rlci1vbmx5LWNvbnRhaW5lcic6J21hc3Rlci1kZXRhaWwtY29udGFpbmVyJ1wiICA+XG4gICAgICA8IS0tIENhcmQgYW5kIEZvb3RlciAtLT5cbiAgICAgICAgPGRpdiBbc3R5bGUuYm9yZGVyUmFkaXVzXT1cImJvcmRlclJhZGl1c1wiIFtzdHlsZS5iYWNrZ3JvdW5kQ29sb3JdPVwibGJnQ29sb3JcIiBjbGFzcz1cImZsZXgtY29sIFwiPlxuICAgICAgICAgIDwhLS0gQ2FyZCBzZWN0aW9uIC0tPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgbmdQcm9qZWN0QXM9XCJ2ZXJiZW4tbGVmdC1jYXJkLWRhdGEtdmlld1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSd2ZXJiZW4tbGVmdC1jYXJkLWRhdGEtdmlldyc+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgPCEtLSBGb290ZXItLT5cbiAgICAgICAgICA8bmctY29udGFpbmVyIG5nUHJvamVjdEFzPVwidmVyYmVuLWNhcmQtZGF0YS12aWV3LWZvb3RlclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PSd2ZXJiZW4tY2FyZC1kYXRhLXZpZXctZm9vdGVyJz48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPCEtLSBEZXRhaWwgU2VjdGlvbi0tPlxuICAgICAgIDxkaXYgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJyYmdDb2xvclwiICpuZ0lmPVwiaGFzQ3VycmVudEl0ZW0oKVwiIFtzdHlsZS5ib3JkZXJSYWRpdXNdPVwiYm9yZGVyUmFkaXVzXCI+XG4gICAgICAgICA8dmVyYmVuLXN2ZyAgKGNsaWNrKT1cImNsZWFyRGF0YSgpXCIgY2xhc3M9XCJjdXJzb3ItcG9pbnRlciB0b1JpZ2h0XCIgaWNvbj1cImNsb3NlXCIgW3dpZHRoXT1cIjIwXCIgW2hlaWdodF09XCIyMFwiICBjb2xvcj1cImJsYWNrXCI+PC92ZXJiZW4tc3ZnPiBcbiAgICAgICAgIDxuZy1jb250YWluZXIgICBuZ1Byb2plY3RBcz1cInZlcmJlbi1yaWdodC1jYXJkLWRhdGEtdmlld1wiPlxuICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9J3ZlcmJlbi1yaWdodC1jYXJkLWRhdGEtdmlldyc+PC9uZy1jb250ZW50PlxuICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgPC9kaXY+XG4gICAgIDwvZGl2PlxuPC9kaXY+Il19