verben-ng-ui 1.4.2 → 1.4.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 (939) hide show
  1. package/esm2022/public-api.mjs +188 -0
  2. package/esm2022/src/lib/components/card/card.component.mjs +62 -0
  3. package/esm2022/src/lib/components/card/card.module.mjs +18 -0
  4. package/esm2022/src/lib/components/card/index.mjs +2 -0
  5. package/esm2022/src/lib/components/card/public-api.mjs +3 -0
  6. package/esm2022/src/lib/components/card/verben-ng-ui-src-lib-components-card.mjs +5 -0
  7. package/esm2022/src/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.mjs +11 -0
  8. package/esm2022/src/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.mjs +11 -0
  9. package/esm2022/src/lib/components/card-data-view/card-data-view.component.mjs +179 -0
  10. package/esm2022/src/lib/components/card-data-view/card-data-view.module.mjs +49 -0
  11. package/esm2022/src/lib/components/card-data-view/card-data.mjs +9 -0
  12. package/esm2022/src/lib/components/card-data-view/index.mjs +2 -0
  13. package/esm2022/src/lib/components/card-data-view/left-card-data/left-card-data.component.mjs +79 -0
  14. package/esm2022/src/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.mjs +14 -0
  15. package/esm2022/src/lib/components/card-data-view/public-api.mjs +9 -0
  16. package/esm2022/src/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.mjs +32 -0
  17. package/esm2022/src/lib/components/card-data-view/verben-ng-ui-src-lib-components-card-data-view.mjs +5 -0
  18. package/esm2022/src/lib/components/chip/ChipChangeEvent.mjs +2 -0
  19. package/esm2022/src/lib/components/chip/chip.component.mjs +202 -0
  20. package/esm2022/src/lib/components/chip/chip.module.mjs +41 -0
  21. package/esm2022/src/lib/components/chip/index.mjs +2 -0
  22. package/esm2022/src/lib/components/chip/public-api.mjs +4 -0
  23. package/esm2022/src/lib/components/chip/verben-ng-ui-src-lib-components-chip.mjs +5 -0
  24. package/esm2022/src/lib/components/data-columns/data-columns.component.mjs +147 -0
  25. package/esm2022/src/lib/components/data-columns/data-columns.module.mjs +22 -0
  26. package/esm2022/src/lib/components/data-columns/data-columns.service.mjs +14 -0
  27. package/esm2022/src/lib/components/data-columns/index.mjs +2 -0
  28. package/esm2022/src/lib/components/data-columns/public-api.mjs +4 -0
  29. package/esm2022/src/lib/components/data-columns/verben-ng-ui-src-lib-components-data-columns.mjs +5 -0
  30. package/esm2022/src/lib/components/data-export/data-export.component.mjs +209 -0
  31. package/esm2022/src/lib/components/data-export/data-export.module.mjs +49 -0
  32. package/esm2022/src/lib/components/data-export/data-export.service.mjs +139 -0
  33. package/esm2022/src/lib/components/data-export/data-export.types.mjs +36 -0
  34. package/esm2022/src/lib/components/data-export/index.mjs +2 -0
  35. package/esm2022/src/lib/components/data-export/public-api.mjs +5 -0
  36. package/esm2022/src/lib/components/data-export/verben-ng-ui-src-lib-components-data-export.mjs +5 -0
  37. package/esm2022/src/lib/components/data-extend/data-extend.component.mjs +114 -0
  38. package/esm2022/src/lib/components/data-extend/data-extend.module.mjs +55 -0
  39. package/esm2022/src/lib/components/data-extend/data-extend.types.mjs +20 -0
  40. package/esm2022/src/lib/components/data-extend/index.mjs +2 -0
  41. package/esm2022/src/lib/components/data-extend/public-api.mjs +4 -0
  42. package/esm2022/src/lib/components/data-extend/verben-ng-ui-src-lib-components-data-extend.mjs +5 -0
  43. package/esm2022/src/lib/components/data-filter/data-filter.component.mjs +420 -0
  44. package/esm2022/src/lib/components/data-filter/data-filter.module.mjs +47 -0
  45. package/esm2022/src/lib/components/data-filter/data-filter.service.mjs +14 -0
  46. package/esm2022/src/lib/components/data-filter/data-filter.types.mjs +27 -0
  47. package/esm2022/src/lib/components/data-filter/index.mjs +2 -0
  48. package/esm2022/src/lib/components/data-filter/public-api.mjs +5 -0
  49. package/esm2022/src/lib/components/data-filter/verben-ng-ui-src-lib-components-data-filter.mjs +5 -0
  50. package/esm2022/src/lib/components/data-import/data-import.component.mjs +186 -0
  51. package/esm2022/src/lib/components/data-import/data-import.module.mjs +51 -0
  52. package/esm2022/src/lib/components/data-import/data-import.service.mjs +160 -0
  53. package/esm2022/src/lib/components/data-import/index.mjs +2 -0
  54. package/esm2022/src/lib/components/data-import/public-api.mjs +3 -0
  55. package/esm2022/src/lib/components/data-import/verben-ng-ui-src-lib-components-data-import.mjs +5 -0
  56. package/esm2022/src/lib/components/data-sort/data-sort.component.mjs +161 -0
  57. package/esm2022/src/lib/components/data-sort/data-sort.module.mjs +21 -0
  58. package/esm2022/src/lib/components/data-sort/data-sort.service.mjs +14 -0
  59. package/esm2022/src/lib/components/data-sort/data-sort.types.mjs +19 -0
  60. package/esm2022/src/lib/components/data-sort/index.mjs +2 -0
  61. package/esm2022/src/lib/components/data-sort/public-api.mjs +5 -0
  62. package/esm2022/src/lib/components/data-sort/verben-ng-ui-src-lib-components-data-sort.mjs +5 -0
  63. package/esm2022/src/lib/components/data-table/column.directive.mjs +33 -0
  64. package/esm2022/src/lib/components/data-table/data-table.component.mjs +567 -0
  65. package/esm2022/src/lib/components/data-table/data-table.module.mjs +20 -0
  66. package/esm2022/src/lib/components/data-table/data-table.types.mjs +54 -0
  67. package/esm2022/src/lib/components/data-table/footer.util.mjs +73 -0
  68. package/esm2022/src/lib/components/data-table/index.mjs +2 -0
  69. package/esm2022/src/lib/components/data-table/public-api.mjs +7 -0
  70. package/esm2022/src/lib/components/data-table/style.types.mjs +2 -0
  71. package/esm2022/src/lib/components/data-table/verben-ng-ui-src-lib-components-data-table.mjs +5 -0
  72. package/esm2022/src/lib/components/data-view/data-view-click-outside.directive.mjs +47 -0
  73. package/esm2022/src/lib/components/data-view/data-view.component.mjs +278 -0
  74. package/esm2022/src/lib/components/data-view/data-view.module.mjs +55 -0
  75. package/esm2022/src/lib/components/data-view/index.mjs +2 -0
  76. package/esm2022/src/lib/components/data-view/public-api.mjs +4 -0
  77. package/esm2022/src/lib/components/data-view/verben-ng-ui-src-lib-components-data-view.mjs +5 -0
  78. package/esm2022/src/lib/components/data-xport/data-xport.component.mjs +329 -0
  79. package/esm2022/src/lib/components/data-xport/data-xport.module.mjs +49 -0
  80. package/esm2022/src/lib/components/data-xport/data-xport.service.mjs +232 -0
  81. package/esm2022/src/lib/components/data-xport/data-xport.types.mjs +2 -0
  82. package/esm2022/src/lib/components/data-xport/data-xport.utils.mjs +20 -0
  83. package/esm2022/src/lib/components/data-xport/index.mjs +2 -0
  84. package/esm2022/src/lib/components/data-xport/public-api.mjs +4 -0
  85. package/esm2022/src/lib/components/data-xport/verben-ng-ui-src-lib-components-data-xport.mjs +5 -0
  86. package/esm2022/src/lib/components/date-picker/date-picker.component.mjs +474 -0
  87. package/esm2022/src/lib/components/date-picker/date-picker.module.mjs +47 -0
  88. package/esm2022/src/lib/components/date-picker/index.mjs +2 -0
  89. package/esm2022/src/lib/components/date-picker/public-api.mjs +3 -0
  90. package/esm2022/src/lib/components/date-picker/verben-ng-ui-src-lib-components-date-picker.mjs +5 -0
  91. package/esm2022/src/lib/components/drop-down/DropdownChangeEvent.mjs +2 -0
  92. package/esm2022/src/lib/components/drop-down/DropdownLoadEvent.mjs +19 -0
  93. package/esm2022/src/lib/components/drop-down/DropdownMenuItem.mjs +2 -0
  94. package/esm2022/src/lib/components/drop-down/drop-down-item/drop-down-item.component.mjs +105 -0
  95. package/esm2022/src/lib/components/drop-down/drop-down.component.mjs +872 -0
  96. package/esm2022/src/lib/components/drop-down/drop-down.module.mjs +43 -0
  97. package/esm2022/src/lib/components/drop-down/index.mjs +2 -0
  98. package/esm2022/src/lib/components/drop-down/public-api.mjs +6 -0
  99. package/esm2022/src/lib/components/drop-down/verben-ng-ui-src-lib-components-drop-down.mjs +5 -0
  100. package/esm2022/src/lib/components/icons/icons.component.mjs +28 -0
  101. package/esm2022/src/lib/components/icons/icons.module.mjs +21 -0
  102. package/esm2022/src/lib/components/icons/index.mjs +2 -0
  103. package/esm2022/src/lib/components/icons/public-api.mjs +3 -0
  104. package/esm2022/src/lib/components/icons/verben-ng-ui-src-lib-components-icons.mjs +5 -0
  105. package/esm2022/src/lib/components/image/image.component.mjs +54 -0
  106. package/esm2022/src/lib/components/image/image.module.mjs +19 -0
  107. package/esm2022/src/lib/components/image/index.mjs +2 -0
  108. package/esm2022/src/lib/components/image/public-api.mjs +3 -0
  109. package/esm2022/src/lib/components/image/verben-ng-ui-src-lib-components-image.mjs +5 -0
  110. package/esm2022/src/lib/components/notification/index.mjs +2 -0
  111. package/esm2022/src/lib/components/notification/notification.component.mjs +149 -0
  112. package/esm2022/src/lib/components/notification/notification.module.mjs +20 -0
  113. package/esm2022/src/lib/components/notification/public-api.mjs +3 -0
  114. package/esm2022/src/lib/components/notification/verben-ng-ui-src-lib-components-notification.mjs +5 -0
  115. package/esm2022/src/lib/components/number-input/index.mjs +2 -0
  116. package/esm2022/src/lib/components/number-input/number-input.component.mjs +126 -0
  117. package/esm2022/src/lib/components/number-input/number-input.module.mjs +18 -0
  118. package/esm2022/src/lib/components/number-input/public-api.mjs +3 -0
  119. package/esm2022/src/lib/components/number-input/verben-ng-ui-src-lib-components-number-input.mjs +5 -0
  120. package/esm2022/src/lib/components/pop-up/index.mjs +2 -0
  121. package/esm2022/src/lib/components/pop-up/pop-up.component.mjs +214 -0
  122. package/esm2022/src/lib/components/pop-up/pop-up.module.mjs +19 -0
  123. package/esm2022/src/lib/components/pop-up/public-api.mjs +3 -0
  124. package/esm2022/src/lib/components/pop-up/verben-ng-ui-src-lib-components-pop-up.mjs +5 -0
  125. package/esm2022/src/lib/components/shared/TemplateDirective.directive.mjs +20 -0
  126. package/esm2022/src/lib/components/shared/index.mjs +2 -0
  127. package/esm2022/src/lib/components/shared/public-api.mjs +3 -0
  128. package/esm2022/src/lib/components/shared/shared.module.mjs +18 -0
  129. package/esm2022/src/lib/components/shared/verben-ng-ui-src-lib-components-shared.mjs +5 -0
  130. package/esm2022/src/lib/components/sort-table/index.mjs +2 -0
  131. package/esm2022/src/lib/components/sort-table/public-api.mjs +3 -0
  132. package/esm2022/src/lib/components/sort-table/sort-table.component.mjs +232 -0
  133. package/esm2022/src/lib/components/sort-table/sort-table.module.mjs +20 -0
  134. package/esm2022/src/lib/components/sort-table/verben-ng-ui-src-lib-components-sort-table.mjs +5 -0
  135. package/esm2022/src/lib/components/svg/index.mjs +2 -0
  136. package/esm2022/src/lib/components/svg/public-api.mjs +3 -0
  137. package/esm2022/src/lib/components/svg/svg.component.mjs +222 -0
  138. package/esm2022/src/lib/components/svg/svg.module.mjs +18 -0
  139. package/esm2022/src/lib/components/svg/verben-ng-ui-src-lib-components-svg.mjs +5 -0
  140. package/esm2022/src/lib/components/table-filter/index.mjs +2 -0
  141. package/esm2022/src/lib/components/table-filter/public-api.mjs +3 -0
  142. package/esm2022/src/lib/components/table-filter/table-filter.component.mjs +290 -0
  143. package/esm2022/src/lib/components/table-filter/table-filter.module.mjs +44 -0
  144. package/esm2022/src/lib/components/table-filter/verben-ng-ui-src-lib-components-table-filter.mjs +5 -0
  145. package/esm2022/src/lib/components/tooltip/index.mjs +2 -0
  146. package/esm2022/src/lib/components/tooltip/public-api.mjs +3 -0
  147. package/esm2022/src/lib/components/tooltip/tooltip.component.mjs +106 -0
  148. package/esm2022/src/lib/components/tooltip/tooltip.module.mjs +19 -0
  149. package/esm2022/src/lib/components/tooltip/verben-ng-ui-src-lib-components-tooltip.mjs +5 -0
  150. package/esm2022/src/lib/components/verben-dialogue/index.mjs +2 -0
  151. package/esm2022/src/lib/components/verben-dialogue/public-api.mjs +3 -0
  152. package/esm2022/src/lib/components/verben-dialogue/verben-dialogue.component.mjs +135 -0
  153. package/esm2022/src/lib/components/verben-dialogue/verben-dialogue.module.mjs +20 -0
  154. package/esm2022/src/lib/components/verben-dialogue/verben-ng-ui-src-lib-components-verben-dialogue.mjs +5 -0
  155. package/esm2022/src/lib/components/verben-mail/index.mjs +2 -0
  156. package/esm2022/src/lib/components/verben-mail/public-api.mjs +3 -0
  157. package/esm2022/src/lib/components/verben-mail/verben-mail.component.mjs +170 -0
  158. package/esm2022/src/lib/components/verben-mail/verben-mail.module.mjs +35 -0
  159. package/esm2022/src/lib/components/verben-mail/verben-ng-ui-src-lib-components-verben-mail.mjs +5 -0
  160. package/esm2022/src/lib/components/verben-time-picker/index.mjs +2 -0
  161. package/esm2022/src/lib/components/verben-time-picker/public-api.mjs +3 -0
  162. package/esm2022/src/lib/components/verben-time-picker/verben-ng-ui-src-lib-components-verben-time-picker.mjs +5 -0
  163. package/esm2022/src/lib/components/verben-time-picker/verben-time-picker.component.mjs +56 -0
  164. package/esm2022/src/lib/components/verben-time-picker/verben-time-picker.module.mjs +19 -0
  165. package/esm2022/src/lib/components/verbena-icon/index.mjs +2 -0
  166. package/esm2022/src/lib/components/verbena-icon/public-api.mjs +3 -0
  167. package/esm2022/src/lib/components/verbena-icon/verben-ng-ui-src-lib-components-verbena-icon.mjs +5 -0
  168. package/esm2022/src/lib/components/verbena-icon/verbena-icon.component.mjs +82 -0
  169. package/esm2022/src/lib/components/verbena-icon/verbena-icon.module.mjs +18 -0
  170. package/esm2022/src/lib/components/verbena-tab/index.mjs +2 -0
  171. package/esm2022/src/lib/components/verbena-tab/public-api.mjs +4 -0
  172. package/esm2022/src/lib/components/verbena-tab/tab-item.component.mjs +68 -0
  173. package/esm2022/src/lib/components/verbena-tab/verben-ng-ui-src-lib-components-verbena-tab.mjs +5 -0
  174. package/esm2022/src/lib/components/verbena-tab/verbena-tab.component.mjs +69 -0
  175. package/esm2022/src/lib/components/verbena-tab/verbena-tab.module.mjs +29 -0
  176. package/esm2022/src/lib/components/visible-column/index.mjs +2 -0
  177. package/esm2022/src/lib/components/visible-column/public-api.mjs +3 -0
  178. package/esm2022/src/lib/components/visible-column/verben-ng-ui-src-lib-components-visible-column.mjs +5 -0
  179. package/esm2022/src/lib/components/visible-column/visible-column.component.mjs +155 -0
  180. package/esm2022/src/lib/components/visible-column/visible-column.module.mjs +20 -0
  181. package/esm2022/src/lib/control-options/control-options.directive.mjs +162 -0
  182. package/esm2022/src/lib/control-options/control-options.module.mjs +18 -0
  183. package/esm2022/src/lib/control-options/index.mjs +2 -0
  184. package/esm2022/src/lib/control-options/public-api.mjs +3 -0
  185. package/esm2022/src/lib/control-options/verben-ng-ui-src-lib-control-options.mjs +5 -0
  186. package/esm2022/src/lib/convert-to-integer/convert-to-integer.directive.mjs +38 -0
  187. package/esm2022/src/lib/convert-to-integer/convert-to-integer.module.mjs +18 -0
  188. package/esm2022/src/lib/convert-to-integer/index.mjs +2 -0
  189. package/esm2022/src/lib/convert-to-integer/public-api.mjs +3 -0
  190. package/esm2022/src/lib/convert-to-integer/verben-ng-ui-src-lib-convert-to-integer.mjs +5 -0
  191. package/esm2022/src/lib/convert-to-number/convert-to-number.directive.mjs +36 -0
  192. package/esm2022/src/lib/convert-to-number/convert-to-number.module.mjs +16 -0
  193. package/esm2022/src/lib/convert-to-number/index.mjs +2 -0
  194. package/esm2022/src/lib/convert-to-number/public-api.mjs +3 -0
  195. package/esm2022/src/lib/convert-to-number/verben-ng-ui-src-lib-convert-to-number.mjs +5 -0
  196. package/esm2022/src/lib/email-validator/email-validator.directive.mjs +31 -0
  197. package/esm2022/src/lib/email-validator/email-validator.module.mjs +16 -0
  198. package/esm2022/src/lib/email-validator/index.mjs +2 -0
  199. package/esm2022/src/lib/email-validator/public-api.mjs +3 -0
  200. package/esm2022/src/lib/email-validator/verben-ng-ui-src-lib-email-validator.mjs +5 -0
  201. package/esm2022/src/lib/models/DataFilterType.mjs +12 -0
  202. package/esm2022/src/lib/models/IDataFilter.mjs +2 -0
  203. package/esm2022/src/lib/models/NotificationButton.mjs +2 -0
  204. package/esm2022/src/lib/models/NotificationOptions.mjs +2 -0
  205. package/esm2022/src/lib/models/column-filter.mjs +2 -0
  206. package/esm2022/src/lib/models/config.mjs +75 -0
  207. package/esm2022/src/lib/models/index.mjs +2 -0
  208. package/esm2022/src/lib/models/mail-model.mjs +2 -0
  209. package/esm2022/src/lib/models/public-api.mjs +10 -0
  210. package/esm2022/src/lib/models/table-filter.mjs +13 -0
  211. package/esm2022/src/lib/models/tokens.mjs +3 -0
  212. package/esm2022/src/lib/models/verben-ng-ui-src-lib-models.mjs +5 -0
  213. package/esm2022/src/lib/number-range/index.mjs +2 -0
  214. package/esm2022/src/lib/number-range/number-range.directive.mjs +42 -0
  215. package/esm2022/src/lib/number-range/number-range.module.mjs +18 -0
  216. package/esm2022/src/lib/number-range/public-api.mjs +3 -0
  217. package/esm2022/src/lib/number-range/verben-ng-ui-src-lib-number-range.mjs +5 -0
  218. package/esm2022/src/lib/phone-number/index.mjs +2 -0
  219. package/esm2022/src/lib/phone-number/phone-number.directive.mjs +32 -0
  220. package/esm2022/src/lib/phone-number/phone-number.module.mjs +18 -0
  221. package/esm2022/src/lib/phone-number/public-api.mjs +3 -0
  222. package/esm2022/src/lib/phone-number/verben-ng-ui-src-lib-phone-number.mjs +5 -0
  223. package/esm2022/src/lib/required-input/index.mjs +2 -0
  224. package/esm2022/src/lib/required-input/public-api.mjs +3 -0
  225. package/esm2022/src/lib/required-input/required-input.directive.mjs +31 -0
  226. package/esm2022/src/lib/required-input/required-input.module.mjs +16 -0
  227. package/esm2022/src/lib/required-input/verben-ng-ui-src-lib-required-input.mjs +5 -0
  228. package/esm2022/src/lib/services/icon.service.mjs +24 -0
  229. package/esm2022/src/lib/services/index.mjs +2 -0
  230. package/esm2022/src/lib/services/notification.services.mjs +92 -0
  231. package/esm2022/src/lib/services/public-api.mjs +3 -0
  232. package/esm2022/src/lib/services/verben-ng-ui-src-lib-services.mjs +5 -0
  233. package/esm2022/src/lib/theme/index.mjs +2 -0
  234. package/esm2022/src/lib/theme/public-api.mjs +5 -0
  235. package/esm2022/src/lib/theme/theme.service.mjs +121 -0
  236. package/esm2022/src/lib/theme/theme.token.mjs +7 -0
  237. package/esm2022/src/lib/theme/theme.types.mjs +2 -0
  238. package/esm2022/src/lib/theme/verben-ng-ui-src-lib-theme.mjs +5 -0
  239. package/esm2022/src/lib/theme/verben-ui.module.mjs +41 -0
  240. package/esm2022/src/lib/theme-switcher/index.mjs +2 -0
  241. package/esm2022/src/lib/theme-switcher/public-api.mjs +3 -0
  242. package/esm2022/src/lib/theme-switcher/theme-switcher.directive.mjs +86 -0
  243. package/esm2022/src/lib/theme-switcher/theme-switcher.module.mjs +16 -0
  244. package/esm2022/src/lib/theme-switcher/verben-ng-ui-src-lib-theme-switcher.mjs +5 -0
  245. package/esm2022/src/lib/validate/error-message.service.mjs +95 -0
  246. package/esm2022/src/lib/validate/index.mjs +2 -0
  247. package/esm2022/src/lib/validate/public-api.mjs +4 -0
  248. package/esm2022/src/lib/validate/validate.directive.mjs +130 -0
  249. package/esm2022/src/lib/validate/validate.module.mjs +26 -0
  250. package/esm2022/src/lib/validate/verben-ng-ui-src-lib-validate.mjs +5 -0
  251. package/esm2022/src/lib/validate-input/index.mjs +2 -0
  252. package/esm2022/src/lib/validate-input/public-api.mjs +3 -0
  253. package/esm2022/src/lib/validate-input/validate-input.directive.mjs +13 -0
  254. package/esm2022/src/lib/validate-input/validate-input.module.mjs +16 -0
  255. package/esm2022/src/lib/validate-input/verben-ng-ui-src-lib-validate-input.mjs +5 -0
  256. package/esm2022/src/lib/verbena-badge/index.mjs +2 -0
  257. package/esm2022/src/lib/verbena-badge/public-api.mjs +3 -0
  258. package/esm2022/src/lib/verbena-badge/verben-ng-ui-src-lib-verbena-badge.mjs +5 -0
  259. package/esm2022/src/lib/verbena-badge/verbena-badge.component.mjs +37 -0
  260. package/esm2022/src/lib/verbena-badge/verbena-badge.module.mjs +18 -0
  261. package/esm2022/src/lib/verbena-button/index.mjs +2 -0
  262. package/esm2022/src/lib/verbena-button/public-api.mjs +3 -0
  263. package/esm2022/src/lib/verbena-button/verben-ng-ui-src-lib-verbena-button.mjs +5 -0
  264. package/esm2022/src/lib/verbena-button/verbena-button.component.mjs +168 -0
  265. package/esm2022/src/lib/verbena-button/verbena-button.module.mjs +20 -0
  266. package/esm2022/src/lib/verbena-input/index.mjs +2 -0
  267. package/esm2022/src/lib/verbena-input/public-api.mjs +3 -0
  268. package/esm2022/src/lib/verbena-input/verben-ng-ui-src-lib-verbena-input.mjs +5 -0
  269. package/esm2022/src/lib/verbena-input/verbena-input.component.mjs +285 -0
  270. package/esm2022/src/lib/verbena-input/verbena-input.module.mjs +44 -0
  271. package/esm2022/src/lib/verbena-switch/index.mjs +2 -0
  272. package/esm2022/src/lib/verbena-switch/public-api.mjs +3 -0
  273. package/esm2022/src/lib/verbena-switch/verben-ng-ui-src-lib-verbena-switch.mjs +5 -0
  274. package/esm2022/src/lib/verbena-switch/verbena-switch.component.mjs +95 -0
  275. package/esm2022/src/lib/verbena-switch/verbena-switch.module.mjs +18 -0
  276. package/esm2022/src/lib/verbena-textarea/index.mjs +2 -0
  277. package/esm2022/src/lib/verbena-textarea/public-api.mjs +3 -0
  278. package/esm2022/src/lib/verbena-textarea/verben-ng-ui-src-lib-verbena-textarea.mjs +5 -0
  279. package/esm2022/src/lib/verbena-textarea/verbena-textarea.component.mjs +124 -0
  280. package/esm2022/src/lib/verbena-textarea/verbena-textarea.module.mjs +19 -0
  281. package/esm2022/verben-ng-ui.mjs +5 -0
  282. package/fesm2022/verben-ng-ui-src-lib-components-card-data-view.mjs +369 -0
  283. package/fesm2022/verben-ng-ui-src-lib-components-card-data-view.mjs.map +1 -0
  284. package/fesm2022/verben-ng-ui-src-lib-components-card.mjs +84 -0
  285. package/fesm2022/verben-ng-ui-src-lib-components-card.mjs.map +1 -0
  286. package/fesm2022/verben-ng-ui-src-lib-components-chip.mjs +245 -0
  287. package/fesm2022/verben-ng-ui-src-lib-components-chip.mjs.map +1 -0
  288. package/fesm2022/verben-ng-ui-src-lib-components-data-columns.mjs +185 -0
  289. package/fesm2022/verben-ng-ui-src-lib-components-data-columns.mjs.map +1 -0
  290. package/fesm2022/verben-ng-ui-src-lib-components-data-export.mjs +430 -0
  291. package/fesm2022/verben-ng-ui-src-lib-components-data-export.mjs.map +1 -0
  292. package/fesm2022/verben-ng-ui-src-lib-components-data-extend.mjs +191 -0
  293. package/fesm2022/verben-ng-ui-src-lib-components-data-extend.mjs.map +1 -0
  294. package/fesm2022/verben-ng-ui-src-lib-components-data-filter.mjs +509 -0
  295. package/fesm2022/verben-ng-ui-src-lib-components-data-filter.mjs.map +1 -0
  296. package/fesm2022/verben-ng-ui-src-lib-components-data-import.mjs +396 -0
  297. package/fesm2022/verben-ng-ui-src-lib-components-data-import.mjs.map +1 -0
  298. package/fesm2022/verben-ng-ui-src-lib-components-data-sort.mjs +216 -0
  299. package/fesm2022/verben-ng-ui-src-lib-components-data-sort.mjs.map +1 -0
  300. package/fesm2022/verben-ng-ui-src-lib-components-data-table.mjs +745 -0
  301. package/fesm2022/verben-ng-ui-src-lib-components-data-table.mjs.map +1 -0
  302. package/fesm2022/verben-ng-ui-src-lib-components-data-view.mjs +380 -0
  303. package/fesm2022/verben-ng-ui-src-lib-components-data-view.mjs.map +1 -0
  304. package/fesm2022/verben-ng-ui-src-lib-components-data-xport.mjs +627 -0
  305. package/fesm2022/verben-ng-ui-src-lib-components-data-xport.mjs.map +1 -0
  306. package/fesm2022/verben-ng-ui-src-lib-components-date-picker.mjs +524 -0
  307. package/fesm2022/verben-ng-ui-src-lib-components-date-picker.mjs.map +1 -0
  308. package/fesm2022/verben-ng-ui-src-lib-components-drop-down.mjs +1028 -0
  309. package/fesm2022/verben-ng-ui-src-lib-components-drop-down.mjs.map +1 -0
  310. package/fesm2022/verben-ng-ui-src-lib-components-icons.mjs +53 -0
  311. package/fesm2022/verben-ng-ui-src-lib-components-icons.mjs.map +1 -0
  312. package/fesm2022/verben-ng-ui-src-lib-components-image.mjs +77 -0
  313. package/fesm2022/verben-ng-ui-src-lib-components-image.mjs.map +1 -0
  314. package/fesm2022/verben-ng-ui-src-lib-components-notification.mjs +173 -0
  315. package/fesm2022/verben-ng-ui-src-lib-components-notification.mjs.map +1 -0
  316. package/fesm2022/verben-ng-ui-src-lib-components-number-input.mjs +148 -0
  317. package/fesm2022/verben-ng-ui-src-lib-components-number-input.mjs.map +1 -0
  318. package/fesm2022/verben-ng-ui-src-lib-components-pop-up.mjs +237 -0
  319. package/fesm2022/verben-ng-ui-src-lib-components-pop-up.mjs.map +1 -0
  320. package/fesm2022/verben-ng-ui-src-lib-components-shared.mjs +42 -0
  321. package/fesm2022/verben-ng-ui-src-lib-components-shared.mjs.map +1 -0
  322. package/fesm2022/verben-ng-ui-src-lib-components-sort-table.mjs +256 -0
  323. package/fesm2022/verben-ng-ui-src-lib-components-sort-table.mjs.map +1 -0
  324. package/fesm2022/verben-ng-ui-src-lib-components-svg.mjs +244 -0
  325. package/fesm2022/verben-ng-ui-src-lib-components-svg.mjs.map +1 -0
  326. package/fesm2022/verben-ng-ui-src-lib-components-table-filter.mjs +337 -0
  327. package/fesm2022/verben-ng-ui-src-lib-components-table-filter.mjs.map +1 -0
  328. package/fesm2022/verben-ng-ui-src-lib-components-tooltip.mjs +129 -0
  329. package/fesm2022/verben-ng-ui-src-lib-components-tooltip.mjs.map +1 -0
  330. package/fesm2022/verben-ng-ui-src-lib-components-verben-dialogue.mjs +159 -0
  331. package/fesm2022/verben-ng-ui-src-lib-components-verben-dialogue.mjs.map +1 -0
  332. package/fesm2022/verben-ng-ui-src-lib-components-verben-mail.mjs +208 -0
  333. package/fesm2022/verben-ng-ui-src-lib-components-verben-mail.mjs.map +1 -0
  334. package/fesm2022/verben-ng-ui-src-lib-components-verben-time-picker.mjs +79 -0
  335. package/fesm2022/verben-ng-ui-src-lib-components-verben-time-picker.mjs.map +1 -0
  336. package/fesm2022/verben-ng-ui-src-lib-components-verbena-icon.mjs +104 -0
  337. package/fesm2022/verben-ng-ui-src-lib-components-verbena-icon.mjs.map +1 -0
  338. package/fesm2022/verben-ng-ui-src-lib-components-verbena-tab.mjs +166 -0
  339. package/fesm2022/verben-ng-ui-src-lib-components-verbena-tab.mjs.map +1 -0
  340. package/fesm2022/verben-ng-ui-src-lib-components-visible-column.mjs +179 -0
  341. package/fesm2022/verben-ng-ui-src-lib-components-visible-column.mjs.map +1 -0
  342. package/fesm2022/verben-ng-ui-src-lib-control-options.mjs +184 -0
  343. package/fesm2022/verben-ng-ui-src-lib-control-options.mjs.map +1 -0
  344. package/fesm2022/verben-ng-ui-src-lib-convert-to-integer.mjs +60 -0
  345. package/fesm2022/verben-ng-ui-src-lib-convert-to-integer.mjs.map +1 -0
  346. package/fesm2022/verben-ng-ui-src-lib-convert-to-number.mjs +56 -0
  347. package/fesm2022/verben-ng-ui-src-lib-convert-to-number.mjs.map +1 -0
  348. package/fesm2022/verben-ng-ui-src-lib-email-validator.mjs +51 -0
  349. package/fesm2022/verben-ng-ui-src-lib-email-validator.mjs.map +1 -0
  350. package/fesm2022/verben-ng-ui-src-lib-models.mjs +108 -0
  351. package/fesm2022/verben-ng-ui-src-lib-models.mjs.map +1 -0
  352. package/fesm2022/verben-ng-ui-src-lib-number-range.mjs +64 -0
  353. package/fesm2022/verben-ng-ui-src-lib-number-range.mjs.map +1 -0
  354. package/fesm2022/verben-ng-ui-src-lib-phone-number.mjs +54 -0
  355. package/fesm2022/verben-ng-ui-src-lib-phone-number.mjs.map +1 -0
  356. package/fesm2022/verben-ng-ui-src-lib-required-input.mjs +51 -0
  357. package/fesm2022/verben-ng-ui-src-lib-required-input.mjs.map +1 -0
  358. package/fesm2022/verben-ng-ui-src-lib-services.mjs +120 -0
  359. package/fesm2022/verben-ng-ui-src-lib-services.mjs.map +1 -0
  360. package/fesm2022/verben-ng-ui-src-lib-theme-switcher.mjs +106 -0
  361. package/fesm2022/verben-ng-ui-src-lib-theme-switcher.mjs.map +1 -0
  362. package/fesm2022/verben-ng-ui-src-lib-theme.mjs +170 -0
  363. package/fesm2022/verben-ng-ui-src-lib-theme.mjs.map +1 -0
  364. package/fesm2022/verben-ng-ui-src-lib-validate-input.mjs +33 -0
  365. package/fesm2022/verben-ng-ui-src-lib-validate-input.mjs.map +1 -0
  366. package/fesm2022/verben-ng-ui-src-lib-validate.mjs +251 -0
  367. package/fesm2022/verben-ng-ui-src-lib-validate.mjs.map +1 -0
  368. package/fesm2022/verben-ng-ui-src-lib-verbena-badge.mjs +59 -0
  369. package/fesm2022/verben-ng-ui-src-lib-verbena-badge.mjs.map +1 -0
  370. package/fesm2022/verben-ng-ui-src-lib-verbena-button.mjs +192 -0
  371. package/fesm2022/verben-ng-ui-src-lib-verbena-button.mjs.map +1 -0
  372. package/fesm2022/verben-ng-ui-src-lib-verbena-input.mjs +332 -0
  373. package/fesm2022/verben-ng-ui-src-lib-verbena-input.mjs.map +1 -0
  374. package/fesm2022/verben-ng-ui-src-lib-verbena-switch.mjs +117 -0
  375. package/fesm2022/verben-ng-ui-src-lib-verbena-switch.mjs.map +1 -0
  376. package/fesm2022/verben-ng-ui-src-lib-verbena-textarea.mjs +146 -0
  377. package/fesm2022/verben-ng-ui-src-lib-verbena-textarea.mjs.map +1 -0
  378. package/fesm2022/verben-ng-ui.mjs +193 -0
  379. package/fesm2022/verben-ng-ui.mjs.map +1 -0
  380. package/index.d.ts +5 -0
  381. package/package.json +302 -8
  382. package/public-api.d.ts +48 -0
  383. package/src/lib/components/card/card.component.d.ts +23 -0
  384. package/src/lib/components/card/card.module.d.ts +8 -0
  385. package/src/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.d.ts +5 -0
  386. package/src/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.d.ts +5 -0
  387. package/src/lib/components/card-data-view/card-data-view.component.d.ts +46 -0
  388. package/src/lib/components/card-data-view/card-data-view.module.d.ts +15 -0
  389. package/src/lib/components/card-data-view/card-data.d.ts +11 -0
  390. package/src/lib/components/card-data-view/left-card-data/left-card-data.component.d.ts +26 -0
  391. package/src/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.d.ts +7 -0
  392. package/src/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.d.ts +12 -0
  393. package/src/lib/components/chip/ChipChangeEvent.d.ts +4 -0
  394. package/src/lib/components/chip/chip.component.d.ts +45 -0
  395. package/src/lib/components/chip/chip.module.d.ts +7 -0
  396. package/src/lib/components/data-columns/data-columns.component.d.ts +40 -0
  397. package/src/lib/components/data-columns/data-columns.module.d.ts +12 -0
  398. package/src/lib/components/data-columns/data-columns.service.d.ts +6 -0
  399. package/src/lib/components/data-export/data-export.component.d.ts +69 -0
  400. package/src/lib/components/data-export/data-export.module.d.ts +14 -0
  401. package/src/lib/components/data-export/data-export.service.d.ts +26 -0
  402. package/src/lib/components/data-export/data-export.types.d.ts +58 -0
  403. package/src/lib/components/data-extend/data-extend.component.d.ts +25 -0
  404. package/src/lib/components/data-extend/data-extend.module.d.ts +16 -0
  405. package/src/lib/components/data-extend/data-extend.types.d.ts +29 -0
  406. package/src/lib/components/data-filter/data-filter.component.d.ts +128 -0
  407. package/src/lib/components/data-filter/data-filter.module.d.ts +14 -0
  408. package/src/lib/components/data-filter/data-filter.service.d.ts +6 -0
  409. package/src/lib/components/data-filter/data-filter.types.d.ts +25 -0
  410. package/src/lib/components/data-import/data-import.component.d.ts +70 -0
  411. package/src/lib/components/data-import/data-import.module.d.ts +15 -0
  412. package/src/lib/components/data-import/data-import.service.d.ts +26 -0
  413. package/src/lib/components/data-sort/data-sort.component.d.ts +38 -0
  414. package/src/lib/components/data-sort/data-sort.module.d.ts +11 -0
  415. package/src/lib/components/data-sort/data-sort.service.d.ts +6 -0
  416. package/src/lib/components/data-sort/data-sort.types.d.ts +16 -0
  417. package/src/lib/components/data-table/column.directive.d.ts +11 -0
  418. package/src/lib/components/data-table/data-table.component.d.ts +107 -0
  419. package/src/lib/components/data-table/data-table.module.d.ts +10 -0
  420. package/src/lib/components/data-table/data-table.types.d.ts +116 -0
  421. package/src/lib/components/data-table/footer.util.d.ts +20 -0
  422. package/src/lib/components/data-table/style.types.d.ts +77 -0
  423. package/src/lib/components/data-view/data-view-click-outside.directive.d.ts +15 -0
  424. package/src/lib/components/data-view/data-view.component.d.ts +83 -0
  425. package/src/lib/components/data-view/data-view.module.d.ts +17 -0
  426. package/src/lib/components/data-xport/data-xport.component.d.ts +97 -0
  427. package/src/lib/components/data-xport/data-xport.module.d.ts +14 -0
  428. package/src/lib/components/data-xport/data-xport.service.d.ts +37 -0
  429. package/src/lib/components/data-xport/data-xport.types.d.ts +29 -0
  430. package/src/lib/components/data-xport/data-xport.utils.d.ts +1 -0
  431. package/src/lib/components/date-picker/date-picker.component.d.ts +81 -0
  432. package/src/lib/components/date-picker/date-picker.module.d.ts +15 -0
  433. package/src/lib/components/drop-down/DropdownChangeEvent.d.ts +5 -0
  434. package/src/lib/components/drop-down/DropdownLoadEvent.d.ts +8 -0
  435. package/src/lib/components/drop-down/DropdownMenuItem.d.ts +19 -0
  436. package/src/lib/components/drop-down/drop-down-item/drop-down-item.component.d.ts +29 -0
  437. package/src/lib/components/drop-down/drop-down.component.d.ts +112 -0
  438. package/src/lib/components/drop-down/drop-down.module.d.ts +9 -0
  439. package/src/lib/components/icons/icons.component.d.ts +14 -0
  440. package/src/lib/components/icons/icons.module.d.ts +9 -0
  441. package/src/lib/components/image/image.component.d.ts +16 -0
  442. package/src/lib/components/image/image.module.d.ts +9 -0
  443. package/src/lib/components/notification/notification.component.d.ts +46 -0
  444. package/src/lib/components/notification/notification.module.d.ts +10 -0
  445. package/src/lib/components/number-input/number-input.component.d.ts +34 -0
  446. package/src/lib/components/number-input/number-input.module.d.ts +8 -0
  447. package/src/lib/components/pop-up/pop-up.component.d.ts +46 -0
  448. package/src/lib/components/pop-up/pop-up.module.d.ts +9 -0
  449. package/src/lib/components/shared/TemplateDirective.directive.d.ts +9 -0
  450. package/src/lib/components/shared/shared.module.d.ts +8 -0
  451. package/src/lib/components/sort-table/sort-table.component.d.ts +54 -0
  452. package/src/lib/components/sort-table/sort-table.module.d.ts +10 -0
  453. package/src/lib/components/svg/svg.component.d.ts +26 -0
  454. package/src/lib/components/svg/svg.module.d.ts +8 -0
  455. package/src/lib/components/table-filter/table-filter.component.d.ts +58 -0
  456. package/src/lib/components/table-filter/table-filter.module.d.ts +14 -0
  457. package/src/lib/components/tooltip/tooltip.component.d.ts +44 -0
  458. package/src/lib/components/tooltip/tooltip.module.d.ts +9 -0
  459. package/src/lib/components/verben-dialogue/verben-dialogue.component.d.ts +46 -0
  460. package/src/lib/components/verben-dialogue/verben-dialogue.module.d.ts +10 -0
  461. package/src/lib/components/verben-mail/verben-mail.component.d.ts +44 -0
  462. package/src/lib/components/verben-mail/verben-mail.module.d.ts +11 -0
  463. package/src/lib/components/verben-time-picker/verben-time-picker.component.d.ts +22 -0
  464. package/src/lib/components/verben-time-picker/verben-time-picker.module.d.ts +9 -0
  465. package/src/lib/components/verbena-icon/verbena-icon.component.d.ts +22 -0
  466. package/src/lib/components/verbena-icon/verbena-icon.module.d.ts +8 -0
  467. package/src/lib/components/verbena-tab/tab-item.component.d.ts +20 -0
  468. package/src/lib/components/verbena-tab/verbena-tab.component.d.ts +18 -0
  469. package/src/lib/components/verbena-tab/verbena-tab.module.d.ts +9 -0
  470. package/src/lib/components/visible-column/visible-column.component.d.ts +51 -0
  471. package/src/lib/components/visible-column/visible-column.module.d.ts +10 -0
  472. package/src/lib/control-options/control-options.directive.d.ts +33 -0
  473. package/src/lib/control-options/control-options.module.d.ts +8 -0
  474. package/src/lib/convert-to-integer/convert-to-integer.directive.d.ts +11 -0
  475. package/src/lib/convert-to-integer/convert-to-integer.module.d.ts +8 -0
  476. package/src/lib/convert-to-integer/{public-api.ts → public-api.d.ts} +0 -0
  477. package/src/lib/convert-to-number/convert-to-number.directive.d.ts +11 -0
  478. package/src/lib/convert-to-number/convert-to-number.module.d.ts +7 -0
  479. package/src/lib/convert-to-number/{public-api.ts → public-api.d.ts} +0 -0
  480. package/src/lib/email-validator/email-validator.directive.d.ts +11 -0
  481. package/src/lib/email-validator/email-validator.module.d.ts +7 -0
  482. package/src/lib/email-validator/{public-api.ts → public-api.d.ts} +0 -0
  483. package/src/lib/models/DataFilterType.d.ts +10 -0
  484. package/src/lib/models/IDataFilter.d.ts +8 -0
  485. package/src/lib/models/NotificationButton.d.ts +9 -0
  486. package/src/lib/models/NotificationOptions.d.ts +14 -0
  487. package/src/lib/models/column-filter.d.ts +4 -0
  488. package/src/lib/models/config.d.ts +6 -0
  489. package/src/lib/models/mail-model.d.ts +8 -0
  490. package/src/lib/models/{public-api.ts → public-api.d.ts} +0 -0
  491. package/src/lib/models/table-filter.d.ts +16 -0
  492. package/src/lib/models/tokens.d.ts +2 -0
  493. package/src/lib/number-range/number-range.directive.d.ts +12 -0
  494. package/src/lib/number-range/number-range.module.d.ts +8 -0
  495. package/src/lib/number-range/{public-api.ts → public-api.d.ts} +0 -0
  496. package/src/lib/phone-number/phone-number.directive.d.ts +11 -0
  497. package/src/lib/phone-number/phone-number.module.d.ts +8 -0
  498. package/src/lib/phone-number/{public-api.ts → public-api.d.ts} +0 -0
  499. package/src/lib/required-input/{public-api.ts → public-api.d.ts} +0 -0
  500. package/src/lib/required-input/required-input.directive.d.ts +10 -0
  501. package/src/lib/required-input/required-input.module.d.ts +7 -0
  502. package/src/lib/services/icon.service.d.ts +10 -0
  503. package/src/lib/services/notification.services.d.ts +28 -0
  504. package/src/lib/services/{public-api.ts → public-api.d.ts} +0 -0
  505. package/src/lib/theme/theme.service.d.ts +28 -0
  506. package/src/lib/theme/theme.token.d.ts +7 -0
  507. package/src/lib/theme/theme.types.d.ts +56 -0
  508. package/src/lib/theme/verben-ui.module.d.ts +30 -0
  509. package/src/lib/theme-switcher/{public-api.ts → public-api.d.ts} +0 -0
  510. package/src/lib/theme-switcher/theme-switcher.directive.d.ts +30 -0
  511. package/src/lib/theme-switcher/theme-switcher.module.d.ts +7 -0
  512. package/src/lib/validate/error-message.service.d.ts +8 -0
  513. package/src/lib/validate/{public-api.ts → public-api.d.ts} +0 -0
  514. package/src/lib/validate/validate.directive.d.ts +28 -0
  515. package/src/lib/validate/validate.module.d.ts +7 -0
  516. package/src/lib/validate-input/{public-api.ts → public-api.d.ts} +0 -0
  517. package/src/lib/validate-input/validate-input.directive.d.ts +5 -0
  518. package/src/lib/validate-input/validate-input.module.d.ts +7 -0
  519. package/src/lib/verbena-badge/{public-api.ts → public-api.d.ts} +0 -0
  520. package/src/lib/verbena-badge/verbena-badge.component.d.ts +13 -0
  521. package/src/lib/verbena-badge/verbena-badge.module.d.ts +8 -0
  522. package/src/lib/verbena-button/{public-api.ts → public-api.d.ts} +0 -0
  523. package/src/lib/verbena-button/verbena-button.component.d.ts +48 -0
  524. package/src/lib/verbena-button/verbena-button.module.d.ts +10 -0
  525. package/src/lib/verbena-input/{public-api.ts → public-api.d.ts} +0 -0
  526. package/src/lib/verbena-input/verbena-input.component.d.ts +77 -0
  527. package/src/lib/verbena-input/verbena-input.module.d.ts +11 -0
  528. package/src/lib/verbena-switch/{public-api.ts → public-api.d.ts} +0 -0
  529. package/src/lib/verbena-switch/verbena-switch.component.d.ts +26 -0
  530. package/src/lib/verbena-switch/verbena-switch.module.d.ts +8 -0
  531. package/src/lib/verbena-textarea/{public-api.ts → public-api.d.ts} +0 -0
  532. package/src/lib/verbena-textarea/verbena-textarea.component.d.ts +38 -0
  533. package/src/lib/verbena-textarea/verbena-textarea.module.d.ts +9 -0
  534. package/ng-package.json +0 -17
  535. package/src/lib/components/card/card.component.css +0 -20
  536. package/src/lib/components/card/card.component.html +0 -23
  537. package/src/lib/components/card/card.component.spec.ts +0 -23
  538. package/src/lib/components/card/card.component.ts +0 -33
  539. package/src/lib/components/card/card.module.ts +0 -10
  540. package/src/lib/components/card/ng-package.json +0 -6
  541. package/src/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.css +0 -3
  542. package/src/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.html +0 -1
  543. package/src/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.spec.ts +0 -23
  544. package/src/lib/components/card-data-view/card-data-view-footer/card-data-view-footer.component.ts +0 -10
  545. package/src/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.css +0 -7
  546. package/src/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.html +0 -1
  547. package/src/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.spec.ts +0 -23
  548. package/src/lib/components/card-data-view/card-data-view-header/card-data-view-header.component.ts +0 -10
  549. package/src/lib/components/card-data-view/card-data-view.component.css +0 -59
  550. package/src/lib/components/card-data-view/card-data-view.component.html +0 -77
  551. package/src/lib/components/card-data-view/card-data-view.component.spec.ts +0 -23
  552. package/src/lib/components/card-data-view/card-data-view.component.ts +0 -134
  553. package/src/lib/components/card-data-view/card-data-view.module.ts +0 -30
  554. package/src/lib/components/card-data-view/card-data.ts +0 -9
  555. package/src/lib/components/card-data-view/left-card-data/left-card-data.component.css +0 -46
  556. package/src/lib/components/card-data-view/left-card-data/left-card-data.component.html +0 -45
  557. package/src/lib/components/card-data-view/left-card-data/left-card-data.component.spec.ts +0 -23
  558. package/src/lib/components/card-data-view/left-card-data/left-card-data.component.ts +0 -44
  559. package/src/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.css +0 -0
  560. package/src/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.html +0 -4
  561. package/src/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.spec.ts +0 -23
  562. package/src/lib/components/card-data-view/left-card-data-view/left-card-data-view.component.ts +0 -12
  563. package/src/lib/components/card-data-view/ng-package.json +0 -6
  564. package/src/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.css +0 -4
  565. package/src/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.html +0 -6
  566. package/src/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.spec.ts +0 -23
  567. package/src/lib/components/card-data-view/right-card-data-view/right-card-data-view.component.ts +0 -19
  568. package/src/lib/components/chip/ChipChangeEvent.ts +0 -4
  569. package/src/lib/components/chip/chip.component.css +0 -94
  570. package/src/lib/components/chip/chip.component.html +0 -41
  571. package/src/lib/components/chip/chip.component.spec.ts +0 -23
  572. package/src/lib/components/chip/chip.component.ts +0 -202
  573. package/src/lib/components/chip/chip.module.ts +0 -24
  574. package/src/lib/components/chip/documentation.md +0 -26
  575. package/src/lib/components/chip/ng-package.json +0 -6
  576. package/src/lib/components/data-columns/data-columns.component.css +0 -104
  577. package/src/lib/components/data-columns/data-columns.component.html +0 -76
  578. package/src/lib/components/data-columns/data-columns.component.spec.ts +0 -23
  579. package/src/lib/components/data-columns/data-columns.component.ts +0 -171
  580. package/src/lib/components/data-columns/data-columns.module.ts +0 -14
  581. package/src/lib/components/data-columns/data-columns.service.spec.ts +0 -16
  582. package/src/lib/components/data-columns/data-columns.service.ts +0 -9
  583. package/src/lib/components/data-columns/ng-package.json +0 -6
  584. package/src/lib/components/data-export/data-export.component.css +0 -109
  585. package/src/lib/components/data-export/data-export.component.html +0 -221
  586. package/src/lib/components/data-export/data-export.component.spec.ts +0 -23
  587. package/src/lib/components/data-export/data-export.component.ts +0 -248
  588. package/src/lib/components/data-export/data-export.module.ts +0 -27
  589. package/src/lib/components/data-export/data-export.service.spec.ts +0 -16
  590. package/src/lib/components/data-export/data-export.service.ts +0 -166
  591. package/src/lib/components/data-export/data-export.types.ts +0 -67
  592. package/src/lib/components/data-export/ng-package.json +0 -6
  593. package/src/lib/components/data-extend/data-extend.component.css +0 -116
  594. package/src/lib/components/data-extend/data-extend.component.html +0 -180
  595. package/src/lib/components/data-extend/data-extend.component.spec.ts +0 -23
  596. package/src/lib/components/data-extend/data-extend.component.ts +0 -128
  597. package/src/lib/components/data-extend/data-extend.module.ts +0 -29
  598. package/src/lib/components/data-extend/data-extend.types.ts +0 -30
  599. package/src/lib/components/data-extend/ng-package.json +0 -6
  600. package/src/lib/components/data-filter/data-filter.component.css +0 -159
  601. package/src/lib/components/data-filter/data-filter.component.html +0 -219
  602. package/src/lib/components/data-filter/data-filter.component.spec.ts +0 -289
  603. package/src/lib/components/data-filter/data-filter.component.ts +0 -482
  604. package/src/lib/components/data-filter/data-filter.module.ts +0 -25
  605. package/src/lib/components/data-filter/data-filter.service.spec.ts +0 -16
  606. package/src/lib/components/data-filter/data-filter.service.ts +0 -9
  607. package/src/lib/components/data-filter/data-filter.types.ts +0 -55
  608. package/src/lib/components/data-filter/ng-package.json +0 -6
  609. package/src/lib/components/data-import/Importable.ts +0 -8
  610. package/src/lib/components/data-import/data-import.component.css +0 -145
  611. package/src/lib/components/data-import/data-import.component.html +0 -194
  612. package/src/lib/components/data-import/data-import.component.spec.ts +0 -22
  613. package/src/lib/components/data-import/data-import.component.ts +0 -243
  614. package/src/lib/components/data-import/data-import.module.ts +0 -27
  615. package/src/lib/components/data-import/data-import.service.ts +0 -186
  616. package/src/lib/components/data-import/data-import.types.ts +0 -17
  617. package/src/lib/components/data-import/ng-package.json +0 -6
  618. package/src/lib/components/data-sort/data-sort.component.css +0 -136
  619. package/src/lib/components/data-sort/data-sort.component.html +0 -104
  620. package/src/lib/components/data-sort/data-sort.component.spec.ts +0 -23
  621. package/src/lib/components/data-sort/data-sort.component.ts +0 -173
  622. package/src/lib/components/data-sort/data-sort.module.ts +0 -13
  623. package/src/lib/components/data-sort/data-sort.service.spec.ts +0 -16
  624. package/src/lib/components/data-sort/data-sort.service.ts +0 -9
  625. package/src/lib/components/data-sort/data-sort.types.ts +0 -31
  626. package/src/lib/components/data-sort/ng-package.json +0 -6
  627. package/src/lib/components/data-table/column.directive.spec.ts +0 -8
  628. package/src/lib/components/data-table/column.directive.ts +0 -14
  629. package/src/lib/components/data-table/data-table.component.css +0 -6
  630. package/src/lib/components/data-table/data-table.component.html +0 -156
  631. package/src/lib/components/data-table/data-table.component.spec.ts +0 -21
  632. package/src/lib/components/data-table/data-table.component.ts +0 -695
  633. package/src/lib/components/data-table/data-table.module.ts +0 -12
  634. package/src/lib/components/data-table/data-table.types.ts +0 -175
  635. package/src/lib/components/data-table/footer.util.ts +0 -93
  636. package/src/lib/components/data-table/ng-package.json +0 -6
  637. package/src/lib/components/data-table/style.types.ts +0 -80
  638. package/src/lib/components/data-view/data-view-click-outside.directive.ts +0 -59
  639. package/src/lib/components/data-view/data-view.component.css +0 -127
  640. package/src/lib/components/data-view/data-view.component.html +0 -308
  641. package/src/lib/components/data-view/data-view.component.spec.ts +0 -23
  642. package/src/lib/components/data-view/data-view.component.ts +0 -196
  643. package/src/lib/components/data-view/data-view.module.ts +0 -30
  644. package/src/lib/components/data-view/ng-package.json +0 -6
  645. package/src/lib/components/data-xport/data-xport.component.css +0 -115
  646. package/src/lib/components/data-xport/data-xport.component.html +0 -289
  647. package/src/lib/components/data-xport/data-xport.component.spec.ts +0 -23
  648. package/src/lib/components/data-xport/data-xport.component.ts +0 -388
  649. package/src/lib/components/data-xport/data-xport.module.ts +0 -27
  650. package/src/lib/components/data-xport/data-xport.service.spec.ts +0 -16
  651. package/src/lib/components/data-xport/data-xport.service.ts +0 -284
  652. package/src/lib/components/data-xport/data-xport.types.ts +0 -36
  653. package/src/lib/components/data-xport/data-xport.utils.ts +0 -27
  654. package/src/lib/components/data-xport/ng-package.json +0 -6
  655. package/src/lib/components/date-picker/date-picker.component.css +0 -142
  656. package/src/lib/components/date-picker/date-picker.component.html +0 -242
  657. package/src/lib/components/date-picker/date-picker.component.specs.ts +0 -23
  658. package/src/lib/components/date-picker/date-picker.component.ts +0 -559
  659. package/src/lib/components/date-picker/date-picker.module.ts +0 -25
  660. package/src/lib/components/date-picker/ng-package.json +0 -6
  661. package/src/lib/components/drop-down/DropdownChangeEvent.ts +0 -5
  662. package/src/lib/components/drop-down/DropdownLoadEvent.ts +0 -23
  663. package/src/lib/components/drop-down/DropdownMenuItem.ts +0 -51
  664. package/src/lib/components/drop-down/documentation.md +0 -69
  665. package/src/lib/components/drop-down/drop-down-item/drop-down-item.component.css +0 -123
  666. package/src/lib/components/drop-down/drop-down-item/drop-down-item.component.html +0 -281
  667. package/src/lib/components/drop-down/drop-down-item/drop-down-item.component.spec.ts +0 -23
  668. package/src/lib/components/drop-down/drop-down-item/drop-down-item.component.ts +0 -94
  669. package/src/lib/components/drop-down/drop-down.component.css +0 -317
  670. package/src/lib/components/drop-down/drop-down.component.html +0 -378
  671. package/src/lib/components/drop-down/drop-down.component.spec.ts +0 -23
  672. package/src/lib/components/drop-down/drop-down.component.ts +0 -870
  673. package/src/lib/components/drop-down/drop-down.module.ts +0 -24
  674. package/src/lib/components/drop-down/ng-package.json +0 -6
  675. package/src/lib/components/icons/icons.component.css +0 -0
  676. package/src/lib/components/icons/icons.component.html +0 -1
  677. package/src/lib/components/icons/icons.component.spec.ts +0 -23
  678. package/src/lib/components/icons/icons.component.ts +0 -24
  679. package/src/lib/components/icons/icons.module.ts +0 -13
  680. package/src/lib/components/icons/ng-package.json +0 -6
  681. package/src/lib/components/image/image.component.css +0 -12
  682. package/src/lib/components/image/image.component.html +0 -18
  683. package/src/lib/components/image/image.component.spec.ts +0 -23
  684. package/src/lib/components/image/image.component.ts +0 -45
  685. package/src/lib/components/image/image.module.ts +0 -11
  686. package/src/lib/components/image/ng-package.json +0 -6
  687. package/src/lib/components/notification/ng-package.json +0 -6
  688. package/src/lib/components/notification/notification.component.css +0 -23
  689. package/src/lib/components/notification/notification.component.html +0 -53
  690. package/src/lib/components/notification/notification.component.spec.ts +0 -23
  691. package/src/lib/components/notification/notification.component.ts +0 -153
  692. package/src/lib/components/notification/notification.module.ts +0 -12
  693. package/src/lib/components/number-input/ng-package.json +0 -6
  694. package/src/lib/components/number-input/number-input.component.css +0 -50
  695. package/src/lib/components/number-input/number-input.component.html +0 -32
  696. package/src/lib/components/number-input/number-input.component.spec.ts +0 -23
  697. package/src/lib/components/number-input/number-input.component.ts +0 -124
  698. package/src/lib/components/number-input/number-input.module.ts +0 -10
  699. package/src/lib/components/pop-up/ng-package.json +0 -6
  700. package/src/lib/components/pop-up/pop-up.component.css +0 -16
  701. package/src/lib/components/pop-up/pop-up.component.html +0 -31
  702. package/src/lib/components/pop-up/pop-up.component.spec.ts +0 -23
  703. package/src/lib/components/pop-up/pop-up.component.ts +0 -215
  704. package/src/lib/components/pop-up/pop-up.module.ts +0 -11
  705. package/src/lib/components/shared/TemplateDirective.directive.ts +0 -10
  706. package/src/lib/components/shared/ng-package.json +0 -6
  707. package/src/lib/components/shared/shared.module.ts +0 -10
  708. package/src/lib/components/sort-table/ng-package.json +0 -6
  709. package/src/lib/components/sort-table/sort-table.component.css +0 -80
  710. package/src/lib/components/sort-table/sort-table.component.html +0 -164
  711. package/src/lib/components/sort-table/sort-table.component.spec.ts +0 -23
  712. package/src/lib/components/sort-table/sort-table.component.ts +0 -206
  713. package/src/lib/components/sort-table/sort-table.module.ts +0 -11
  714. package/src/lib/components/svg/ng-package.json +0 -6
  715. package/src/lib/components/svg/svg.component.css +0 -0
  716. package/src/lib/components/svg/svg.component.html +0 -1
  717. package/src/lib/components/svg/svg.component.spec.ts +0 -23
  718. package/src/lib/components/svg/svg.component.ts +0 -231
  719. package/src/lib/components/svg/svg.module.ts +0 -10
  720. package/src/lib/components/table-filter/ng-package.json +0 -6
  721. package/src/lib/components/table-filter/table-filter.component.css +0 -97
  722. package/src/lib/components/table-filter/table-filter.component.html +0 -304
  723. package/src/lib/components/table-filter/table-filter.component.spec.ts +0 -23
  724. package/src/lib/components/table-filter/table-filter.component.ts +0 -301
  725. package/src/lib/components/table-filter/table-filter.module.ts +0 -24
  726. package/src/lib/components/tooltip/ng-package.json +0 -6
  727. package/src/lib/components/tooltip/tooltip.component.css +0 -8
  728. package/src/lib/components/tooltip/tooltip.component.html +0 -13
  729. package/src/lib/components/tooltip/tooltip.component.spec.ts +0 -23
  730. package/src/lib/components/tooltip/tooltip.component.ts +0 -85
  731. package/src/lib/components/tooltip/tooltip.module.ts +0 -11
  732. package/src/lib/components/verben-dialogue/ng-package.json +0 -6
  733. package/src/lib/components/verben-dialogue/verben-dialogue.component.css +0 -89
  734. package/src/lib/components/verben-dialogue/verben-dialogue.component.html +0 -57
  735. package/src/lib/components/verben-dialogue/verben-dialogue.component.spec.ts +0 -23
  736. package/src/lib/components/verben-dialogue/verben-dialogue.component.ts +0 -90
  737. package/src/lib/components/verben-dialogue/verben-dialogue.module.ts +0 -11
  738. package/src/lib/components/verben-mail/ng-package.json +0 -6
  739. package/src/lib/components/verben-mail/verben-mail.component.config.ts +0 -11
  740. package/src/lib/components/verben-mail/verben-mail.component.css +0 -71
  741. package/src/lib/components/verben-mail/verben-mail.component.html +0 -139
  742. package/src/lib/components/verben-mail/verben-mail.component.ts +0 -151
  743. package/src/lib/components/verben-mail/verben-mail.module.ts +0 -18
  744. package/src/lib/components/verben-time-picker/ng-package.json +0 -6
  745. package/src/lib/components/verben-time-picker/verben-time-picker.component.css +0 -64
  746. package/src/lib/components/verben-time-picker/verben-time-picker.component.html +0 -24
  747. package/src/lib/components/verben-time-picker/verben-time-picker.component.spec.ts +0 -34
  748. package/src/lib/components/verben-time-picker/verben-time-picker.component.ts +0 -52
  749. package/src/lib/components/verben-time-picker/verben-time-picker.module.ts +0 -11
  750. package/src/lib/components/verbena-icon/ng-package.json +0 -6
  751. package/src/lib/components/verbena-icon/verbena-icon.component.css +0 -5
  752. package/src/lib/components/verbena-icon/verbena-icon.component.html +0 -6
  753. package/src/lib/components/verbena-icon/verbena-icon.component.spec.ts +0 -23
  754. package/src/lib/components/verbena-icon/verbena-icon.component.ts +0 -86
  755. package/src/lib/components/verbena-icon/verbena-icon.module.ts +0 -10
  756. package/src/lib/components/verbena-tab/ng-package.json +0 -6
  757. package/src/lib/components/verbena-tab/tab-item.component.ts +0 -38
  758. package/src/lib/components/verbena-tab/verbena-tab.component.css +0 -88
  759. package/src/lib/components/verbena-tab/verbena-tab.component.html +0 -30
  760. package/src/lib/components/verbena-tab/verbena-tab.component.spec.ts +0 -23
  761. package/src/lib/components/verbena-tab/verbena-tab.component.ts +0 -55
  762. package/src/lib/components/verbena-tab/verbena-tab.module.ts +0 -19
  763. package/src/lib/components/visible-column/ng-package.json +0 -6
  764. package/src/lib/components/visible-column/visible-column.component.css +0 -88
  765. package/src/lib/components/visible-column/visible-column.component.html +0 -79
  766. package/src/lib/components/visible-column/visible-column.component.spec.ts +0 -23
  767. package/src/lib/components/visible-column/visible-column.component.ts +0 -135
  768. package/src/lib/components/visible-column/visible-column.module.ts +0 -11
  769. package/src/lib/control-options/control-options.directive.ts +0 -129
  770. package/src/lib/control-options/control-options.module.ts +0 -10
  771. package/src/lib/control-options/ng-package.json +0 -6
  772. package/src/lib/convert-to-integer/convert-to-integer.directive.ts +0 -30
  773. package/src/lib/convert-to-integer/convert-to-integer.module.ts +0 -10
  774. package/src/lib/convert-to-integer/ng-package.json +0 -6
  775. package/src/lib/convert-to-number/convert-to-number.directive.ts +0 -31
  776. package/src/lib/convert-to-number/convert-to-number.module.ts +0 -8
  777. package/src/lib/convert-to-number/ng-package.json +0 -6
  778. package/src/lib/directives/dropdown-position.directives.ts +0 -158
  779. package/src/lib/email-validator/email-validator.directive.ts +0 -24
  780. package/src/lib/email-validator/email-validator.module.ts +0 -14
  781. package/src/lib/email-validator/ng-package.json +0 -6
  782. package/src/lib/models/DataFilterType.ts +0 -10
  783. package/src/lib/models/IDataFilter.ts +0 -9
  784. package/src/lib/models/NotificationButton.ts +0 -9
  785. package/src/lib/models/NotificationOptions.ts +0 -15
  786. package/src/lib/models/column-filter.ts +0 -5
  787. package/src/lib/models/config.ts +0 -78
  788. package/src/lib/models/mail-model.ts +0 -8
  789. package/src/lib/models/ng-package.json +0 -6
  790. package/src/lib/models/table-filter.ts +0 -18
  791. package/src/lib/models/tokens.ts +0 -3
  792. package/src/lib/number-range/ng-package.json +0 -6
  793. package/src/lib/number-range/number-range.directive.ts +0 -35
  794. package/src/lib/number-range/number-range.module.ts +0 -11
  795. package/src/lib/phone-number/ng-package.json +0 -6
  796. package/src/lib/phone-number/phone-number.directive.ts +0 -24
  797. package/src/lib/phone-number/phone-number.module.ts +0 -10
  798. package/src/lib/required-input/ng-package.json +0 -6
  799. package/src/lib/required-input/required-input.directive.ts +0 -18
  800. package/src/lib/required-input/required-input.module.ts +0 -8
  801. package/src/lib/services/icon.service.ts +0 -17
  802. package/src/lib/services/ng-package.json +0 -6
  803. package/src/lib/services/notification.services.ts +0 -120
  804. package/src/lib/theme/ng-package.json +0 -6
  805. package/src/lib/theme/theme.service.ts +0 -120
  806. package/src/lib/theme/theme.token.ts +0 -8
  807. package/src/lib/theme/theme.types.ts +0 -57
  808. package/src/lib/theme/verben-ui.module.ts +0 -39
  809. package/src/lib/theme-switcher/ng-package.json +0 -6
  810. package/src/lib/theme-switcher/theme-switcher.directive.spec.ts +0 -8
  811. package/src/lib/theme-switcher/theme-switcher.directive.ts +0 -85
  812. package/src/lib/theme-switcher/theme-switcher.module.ts +0 -8
  813. package/src/lib/validate/error-message.service.ts +0 -104
  814. package/src/lib/validate/ng-package.json +0 -6
  815. package/src/lib/validate/validate.directive.ts +0 -110
  816. package/src/lib/validate/validate.module.ts +0 -17
  817. package/src/lib/validate-input/ng-package.json +0 -6
  818. package/src/lib/validate-input/validate-input.directive.ts +0 -8
  819. package/src/lib/validate-input/validate-input.module.ts +0 -8
  820. package/src/lib/verben-ng-ui.component.spec.ts +0 -23
  821. package/src/lib/verben-ng-ui.component.ts +0 -16
  822. package/src/lib/verben-ng-ui.service.spec.ts +0 -16
  823. package/src/lib/verben-ng-ui.service.ts +0 -9
  824. package/src/lib/verbena-badge/ng-package.json +0 -6
  825. package/src/lib/verbena-badge/verbena-badge.component.css +0 -16
  826. package/src/lib/verbena-badge/verbena-badge.component.html +0 -13
  827. package/src/lib/verbena-badge/verbena-badge.component.spec.ts +0 -25
  828. package/src/lib/verbena-badge/verbena-badge.component.ts +0 -18
  829. package/src/lib/verbena-badge/verbena-badge.module.ts +0 -10
  830. package/src/lib/verbena-button/ng-package.json +0 -6
  831. package/src/lib/verbena-button/verbena-button.component.css +0 -33
  832. package/src/lib/verbena-button/verbena-button.component.html +0 -86
  833. package/src/lib/verbena-button/verbena-button.component.spec.ts +0 -25
  834. package/src/lib/verbena-button/verbena-button.component.ts +0 -115
  835. package/src/lib/verbena-button/verbena-button.module.ts +0 -12
  836. package/src/lib/verbena-input/error.service.ts +0 -23
  837. package/src/lib/verbena-input/ng-package.json +0 -6
  838. package/src/lib/verbena-input/verbena-input.component.css +0 -98
  839. package/src/lib/verbena-input/verbena-input.component.html +0 -117
  840. package/src/lib/verbena-input/verbena-input.component.spec.ts +0 -25
  841. package/src/lib/verbena-input/verbena-input.component.ts +0 -238
  842. package/src/lib/verbena-input/verbena-input.module.ts +0 -25
  843. package/src/lib/verbena-switch/ng-package.json +0 -6
  844. package/src/lib/verbena-switch/verbena-switch.component.css +0 -71
  845. package/src/lib/verbena-switch/verbena-switch.component.html +0 -11
  846. package/src/lib/verbena-switch/verbena-switch.component.spec.ts +0 -25
  847. package/src/lib/verbena-switch/verbena-switch.component.ts +0 -75
  848. package/src/lib/verbena-switch/verbena-switch.module.ts +0 -10
  849. package/src/lib/verbena-textarea/ng-package.json +0 -6
  850. package/src/lib/verbena-textarea/verbena-textarea.component.css +0 -1
  851. package/src/lib/verbena-textarea/verbena-textarea.component.html +0 -28
  852. package/src/lib/verbena-textarea/verbena-textarea.component.spec.ts +0 -33
  853. package/src/lib/verbena-textarea/verbena-textarea.component.ts +0 -103
  854. package/src/lib/verbena-textarea/verbena-textarea.module.ts +0 -11
  855. package/src/public-api.ts +0 -229
  856. package/src/styles.css +0 -103
  857. package/tsconfig.lib.json +0 -15
  858. package/tsconfig.lib.prod.json +0 -11
  859. package/tsconfig.spec.json +0 -15
  860. /package/src/lib/components/card/{index.ts → index.d.ts} +0 -0
  861. /package/src/lib/components/card/{public-api.ts → public-api.d.ts} +0 -0
  862. /package/src/lib/components/card-data-view/{index.ts → index.d.ts} +0 -0
  863. /package/src/lib/components/card-data-view/{public-api.ts → public-api.d.ts} +0 -0
  864. /package/src/lib/components/chip/{index.ts → index.d.ts} +0 -0
  865. /package/src/lib/components/chip/{public-api.ts → public-api.d.ts} +0 -0
  866. /package/src/lib/components/data-columns/{index.ts → index.d.ts} +0 -0
  867. /package/src/lib/components/data-columns/{public-api.ts → public-api.d.ts} +0 -0
  868. /package/src/lib/components/data-export/{index.ts → index.d.ts} +0 -0
  869. /package/src/lib/components/data-export/{public-api.ts → public-api.d.ts} +0 -0
  870. /package/src/lib/components/data-extend/{index.ts → index.d.ts} +0 -0
  871. /package/src/lib/components/data-extend/{public-api.ts → public-api.d.ts} +0 -0
  872. /package/src/lib/components/data-filter/{index.ts → index.d.ts} +0 -0
  873. /package/src/lib/components/data-filter/{public-api.ts → public-api.d.ts} +0 -0
  874. /package/src/lib/components/data-import/{index.ts → index.d.ts} +0 -0
  875. /package/src/lib/components/data-import/{public-api.ts → public-api.d.ts} +0 -0
  876. /package/src/lib/components/data-sort/{index.ts → index.d.ts} +0 -0
  877. /package/src/lib/components/data-sort/{public-api.ts → public-api.d.ts} +0 -0
  878. /package/src/lib/components/data-table/{index.ts → index.d.ts} +0 -0
  879. /package/src/lib/components/data-table/{public-api.ts → public-api.d.ts} +0 -0
  880. /package/src/lib/components/data-view/{index.ts → index.d.ts} +0 -0
  881. /package/src/lib/components/data-view/{public-api.ts → public-api.d.ts} +0 -0
  882. /package/src/lib/components/data-xport/{index.ts → index.d.ts} +0 -0
  883. /package/src/lib/components/data-xport/{public-api.ts → public-api.d.ts} +0 -0
  884. /package/src/lib/components/date-picker/{index.ts → index.d.ts} +0 -0
  885. /package/src/lib/components/date-picker/{public-api.ts → public-api.d.ts} +0 -0
  886. /package/src/lib/components/drop-down/{index.ts → index.d.ts} +0 -0
  887. /package/src/lib/components/drop-down/{public-api.ts → public-api.d.ts} +0 -0
  888. /package/src/lib/components/icons/{index.ts → index.d.ts} +0 -0
  889. /package/src/lib/components/icons/{public-api.ts → public-api.d.ts} +0 -0
  890. /package/src/lib/components/image/{index.ts → index.d.ts} +0 -0
  891. /package/src/lib/components/image/{public-api.ts → public-api.d.ts} +0 -0
  892. /package/src/lib/components/notification/{index.ts → index.d.ts} +0 -0
  893. /package/src/lib/components/notification/{public-api.ts → public-api.d.ts} +0 -0
  894. /package/src/lib/components/number-input/{index.ts → index.d.ts} +0 -0
  895. /package/src/lib/components/number-input/{public-api.ts → public-api.d.ts} +0 -0
  896. /package/src/lib/components/pop-up/{index.ts → index.d.ts} +0 -0
  897. /package/src/lib/components/pop-up/{public-api.ts → public-api.d.ts} +0 -0
  898. /package/src/lib/components/shared/{index.ts → index.d.ts} +0 -0
  899. /package/src/lib/components/shared/{public-api.ts → public-api.d.ts} +0 -0
  900. /package/src/lib/components/sort-table/{index.ts → index.d.ts} +0 -0
  901. /package/src/lib/components/sort-table/{public-api.ts → public-api.d.ts} +0 -0
  902. /package/src/lib/components/svg/{index.ts → index.d.ts} +0 -0
  903. /package/src/lib/components/svg/{public-api.ts → public-api.d.ts} +0 -0
  904. /package/src/lib/components/table-filter/{index.ts → index.d.ts} +0 -0
  905. /package/src/lib/components/table-filter/{public-api.ts → public-api.d.ts} +0 -0
  906. /package/src/lib/components/tooltip/{index.ts → index.d.ts} +0 -0
  907. /package/src/lib/components/tooltip/{public-api.ts → public-api.d.ts} +0 -0
  908. /package/src/lib/components/verben-dialogue/{index.ts → index.d.ts} +0 -0
  909. /package/src/lib/components/verben-dialogue/{public-api.ts → public-api.d.ts} +0 -0
  910. /package/src/lib/components/verben-mail/{index.ts → index.d.ts} +0 -0
  911. /package/src/lib/components/verben-mail/{public-api.ts → public-api.d.ts} +0 -0
  912. /package/src/lib/components/verben-time-picker/{index.ts → index.d.ts} +0 -0
  913. /package/src/lib/components/verben-time-picker/{public-api.ts → public-api.d.ts} +0 -0
  914. /package/src/lib/components/verbena-icon/{index.ts → index.d.ts} +0 -0
  915. /package/src/lib/components/verbena-icon/{public-api.ts → public-api.d.ts} +0 -0
  916. /package/src/lib/components/verbena-tab/{index.ts → index.d.ts} +0 -0
  917. /package/src/lib/components/verbena-tab/{public-api.ts → public-api.d.ts} +0 -0
  918. /package/src/lib/components/visible-column/{index.ts → index.d.ts} +0 -0
  919. /package/src/lib/components/visible-column/{public-api.ts → public-api.d.ts} +0 -0
  920. /package/src/lib/control-options/{index.ts → index.d.ts} +0 -0
  921. /package/src/lib/control-options/{public-api.ts → public-api.d.ts} +0 -0
  922. /package/src/lib/convert-to-integer/{index.ts → index.d.ts} +0 -0
  923. /package/src/lib/convert-to-number/{index.ts → index.d.ts} +0 -0
  924. /package/src/lib/email-validator/{index.ts → index.d.ts} +0 -0
  925. /package/src/lib/models/{index.ts → index.d.ts} +0 -0
  926. /package/src/lib/number-range/{index.ts → index.d.ts} +0 -0
  927. /package/src/lib/phone-number/{index.ts → index.d.ts} +0 -0
  928. /package/src/lib/required-input/{index.ts → index.d.ts} +0 -0
  929. /package/src/lib/services/{index.ts → index.d.ts} +0 -0
  930. /package/src/lib/theme/{index.ts → index.d.ts} +0 -0
  931. /package/src/lib/theme/{public-api.ts → public-api.d.ts} +0 -0
  932. /package/src/lib/theme-switcher/{index.ts → index.d.ts} +0 -0
  933. /package/src/lib/validate/{index.ts → index.d.ts} +0 -0
  934. /package/src/lib/validate-input/{index.ts → index.d.ts} +0 -0
  935. /package/src/lib/verbena-badge/{index.ts → index.d.ts} +0 -0
  936. /package/src/lib/verbena-button/{index.ts → index.d.ts} +0 -0
  937. /package/src/lib/verbena-input/{index.ts → index.d.ts} +0 -0
  938. /package/src/lib/verbena-switch/{index.ts → index.d.ts} +0 -0
  939. /package/src/lib/verbena-textarea/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,147 @@
1
+ import { Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "verben-ng-ui/src/lib/components/svg";
4
+ import * as i2 from "verben-ng-ui/src/lib/components/card";
5
+ export class DataColumnsComponent {
6
+ columns;
7
+ enableDragAndDrop = true;
8
+ maxVisibleItems = 5;
9
+ /**
10
+ * Optional restored/active selection: the columns that should be checked, in
11
+ * the order to display them. When provided, the panel opens reflecting this
12
+ * (these checked and ordered first, remaining columns shown unchecked).
13
+ * Defaults to "all columns checked" when omitted.
14
+ */
15
+ selectedColumns;
16
+ columnsUpdated = new EventEmitter();
17
+ visibleColumns = [];
18
+ showAllColumns = false;
19
+ draggedIndex = null;
20
+ selectAll = false;
21
+ columnVisibility = new Map();
22
+ // Set once the user edits the panel, so later host input changes don't clobber
23
+ // their in-progress selection. Reset to defaults by Reset.
24
+ userTouched = false;
25
+ ngOnInit() {
26
+ this.initializeColumns();
27
+ }
28
+ ngOnChanges(changes) {
29
+ // Re-derive from inputs whenever the host provides them (e.g. saved column
30
+ // arrangement restored asynchronously), unless the user has started editing.
31
+ if ((changes['selectedColumns'] || changes['columns']) && !this.userTouched) {
32
+ this.initializeColumns();
33
+ }
34
+ }
35
+ initializeColumns() {
36
+ this.columnVisibility = new Map();
37
+ const selected = this.selectedColumns;
38
+ if (selected && selected.length) {
39
+ const selectedIds = new Set(selected.map((column) => column.id));
40
+ const hidden = this.columns.filter((column) => !selectedIds.has(column.id));
41
+ // Selected (checked) first, in their saved order, then the rest unchecked.
42
+ this.visibleColumns = [...selected, ...hidden];
43
+ this.visibleColumns.forEach((column) => this.columnVisibility.set(column.id, selectedIds.has(column.id)));
44
+ }
45
+ else {
46
+ this.visibleColumns = [...this.columns];
47
+ this.visibleColumns.forEach((column) => this.columnVisibility.set(column.id, true));
48
+ }
49
+ this.updateSelectAllStatus();
50
+ }
51
+ get columnsToShow() {
52
+ return this.showAllColumns
53
+ ? this.visibleColumns
54
+ : this.visibleColumns.slice(0, this.maxVisibleItems);
55
+ }
56
+ // Drag and Drop functionality
57
+ onDragStart(index, event) {
58
+ if (!this.enableDragAndDrop)
59
+ return;
60
+ this.draggedIndex = index;
61
+ event.dataTransfer?.setData('text/plain', String(index));
62
+ }
63
+ onDragOver(event) {
64
+ if (!this.enableDragAndDrop)
65
+ return;
66
+ event.preventDefault();
67
+ }
68
+ onDrop(index, event) {
69
+ if (!this.enableDragAndDrop)
70
+ return;
71
+ event.preventDefault();
72
+ if (this.draggedIndex !== null && this.draggedIndex !== index) {
73
+ this.swapColumns(this.draggedIndex, index);
74
+ }
75
+ this.draggedIndex = null;
76
+ }
77
+ swapColumns(fromIndex, toIndex) {
78
+ const temp = this.visibleColumns[fromIndex];
79
+ this.visibleColumns[fromIndex] = this.visibleColumns[toIndex];
80
+ this.visibleColumns[toIndex] = temp;
81
+ this.userTouched = true;
82
+ // Staged only — applied/emitted when the user clicks Save (see template).
83
+ }
84
+ // Column Selection functionality
85
+ toggleSelectAll() {
86
+ this.selectAll = !this.selectAll;
87
+ const newValue = this.selectAll;
88
+ this.visibleColumns.forEach((column) => {
89
+ this.columnVisibility.set(column.id, newValue);
90
+ });
91
+ this.userTouched = true;
92
+ // Staged only — applied/emitted when the user clicks Save (see template).
93
+ }
94
+ toggleColumnVisibility(columnId) {
95
+ const currentValue = this.columnVisibility.get(columnId);
96
+ this.columnVisibility.set(columnId, !currentValue);
97
+ this.updateSelectAllStatus();
98
+ this.userTouched = true;
99
+ // Staged only — applied/emitted when the user clicks Save (see template).
100
+ }
101
+ isColumnVisible(columnId) {
102
+ return this.columnVisibility.get(columnId) ?? false;
103
+ }
104
+ updateSelectAllStatus() {
105
+ this.selectAll = Array.from(this.columnVisibility.values()).every((value) => value);
106
+ }
107
+ getColumnHeader(column) {
108
+ return typeof column.header === 'function'
109
+ ? column.header({})
110
+ : column.header;
111
+ }
112
+ resetColumns() {
113
+ // Reset restores the default (all columns visible, config order) regardless
114
+ // of the restored selection, then applies immediately.
115
+ this.userTouched = true;
116
+ this.columnVisibility = new Map();
117
+ this.visibleColumns = [...this.columns];
118
+ this.visibleColumns.forEach((column) => this.columnVisibility.set(column.id, true));
119
+ this.updateSelectAllStatus();
120
+ this.emitUpdatedColumns();
121
+ }
122
+ emitUpdatedColumns() {
123
+ const updatedColumns = this.visibleColumns.filter((column) => this.columnVisibility.get(column.id));
124
+ this.columnsUpdated.emit(updatedColumns);
125
+ }
126
+ get activeColumnCount() {
127
+ return Array.from(this.columnVisibility.values()).filter((value) => value)
128
+ .length;
129
+ }
130
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataColumnsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
131
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.10", type: DataColumnsComponent, selector: "lib-data-columns", inputs: { columns: "columns", enableDragAndDrop: "enableDragAndDrop", maxVisibleItems: "maxVisibleItems", selectedColumns: "selectedColumns" }, outputs: { columnsUpdated: "columnsUpdated" }, usesOnChanges: true, ngImport: i0, template: "<verben-card width=\"24rem\" borderRadius=\"1rem\" [border]=\"'1px solid var(--vbn-color-primary)'\" bgColor=\"var(--vbn-color-surface)\">\n <div card-header class=\"card-header\">\n <h4 class=\"header-title\">Column <sup>({{ activeColumnCount }})</sup></h4>\n <button class=\"reset-button\" (click)=\"resetColumns()\">Reset</button>\n </div>\n \n <div card-body class=\"card-body\">\n <!-- Column Options -->\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Properties</h3>\n <verben-svg icon=\"info\" [width]=\"15\" [height]=\"15\" fill=\"var(--vbn-color-text-muted)\"></verben-svg>\n </div>\n \n <!-- Select All -->\n <div class=\"select-all-wrapper\">\n <label class=\"select-all\">\n <input \n type=\"checkbox\" \n [checked]=\"selectAll\"\n (change)=\"toggleSelectAll()\"\n />\n <span>Select All</span>\n </label>\n </div>\n \n @for (column of columnsToShow; track column.id) {\n <div \n class=\"column-option\"\n [attr.draggable]=\"enableDragAndDrop\"\n (dragstart)=\"onDragStart($index, $event)\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop($index, $event)\"\n >\n <div class=\"column-option-content\">\n @if (enableDragAndDrop) {\n <verben-svg\n icon=\"square-dot\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text)\"\n class=\"drag-handle\"\n ></verben-svg>\n }\n <input \n type=\"checkbox\" \n [checked]=\"isColumnVisible(column.id)\"\n (change)=\"toggleColumnVisibility(column.id)\"\n />\n <span>{{ getColumnHeader(column) }}</span>\n </div>\n </div>\n }\n \n @if (visibleColumns.length > maxVisibleItems) {\n <button\n (click)=\"showAllColumns = !showAllColumns\"\n class=\"show-more\"\n >\n <span>{{ showAllColumns ? \"Show Less\" : \"Show More\" }}</span>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </button>\n }\n </section>\n </div>\n \n <div card-footer class=\"card-footer\">\n <button class=\"save-button\" (click)=\"emitUpdatedColumns()\">Save</button>\n </div>\n </verben-card>", styles: [".card-header{display:flex;justify-content:space-between;align-items:center;background-color:transparent;padding:4px!important}.header-title{font-weight:600;font-size:.8125rem}.header-title sup{color:var(--vbn-color-border-focus)}.reset-button{color:var(--vbn-color-border-focus);background-color:transparent;border:none;cursor:pointer;font-size:12px}.card-body{display:flex;flex-direction:column;gap:.5rem}.section{display:flex;flex-direction:column;gap:.75rem}.section-header{display:flex;justify-content:space-between;align-items:center}.section-title{font-size:.8125rem}.select-all-wrapper{display:flex;align-items:center}.select-all{display:flex;align-items:center;gap:.5rem;font-size:12px;font-weight:500;cursor:pointer}.column-option{margin:0 -1.5rem;cursor:move}.column-option-content{display:flex;align-items:center;gap:.5rem;font-size:12px}.drag-handle{cursor:grab}.show-more{display:flex;gap:.5em;align-items:center;color:var(--vbn-color-text-muted);cursor:pointer;font-size:12px}.card-footer{display:flex;justify-content:flex-end;background-color:transparent}.save-button{margin-top:.5rem;outline:none;border:none;padding:.2rem 1.6rem;background-color:var(--vbn-color-primary);color:var(--vbn-color-on-primary);font-size:.75rem;font-weight:600;cursor:pointer}\n"], dependencies: [{ kind: "component", type: i1.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i2.CardComponent, selector: "verben-card", inputs: ["pd", "mg", "height", "width", "textColor", "bgColor", "border", "borderRadius", "disabled", "aspectRatio"] }] });
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataColumnsComponent, decorators: [{
134
+ type: Component,
135
+ args: [{ selector: 'lib-data-columns', template: "<verben-card width=\"24rem\" borderRadius=\"1rem\" [border]=\"'1px solid var(--vbn-color-primary)'\" bgColor=\"var(--vbn-color-surface)\">\n <div card-header class=\"card-header\">\n <h4 class=\"header-title\">Column <sup>({{ activeColumnCount }})</sup></h4>\n <button class=\"reset-button\" (click)=\"resetColumns()\">Reset</button>\n </div>\n \n <div card-body class=\"card-body\">\n <!-- Column Options -->\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Properties</h3>\n <verben-svg icon=\"info\" [width]=\"15\" [height]=\"15\" fill=\"var(--vbn-color-text-muted)\"></verben-svg>\n </div>\n \n <!-- Select All -->\n <div class=\"select-all-wrapper\">\n <label class=\"select-all\">\n <input \n type=\"checkbox\" \n [checked]=\"selectAll\"\n (change)=\"toggleSelectAll()\"\n />\n <span>Select All</span>\n </label>\n </div>\n \n @for (column of columnsToShow; track column.id) {\n <div \n class=\"column-option\"\n [attr.draggable]=\"enableDragAndDrop\"\n (dragstart)=\"onDragStart($index, $event)\"\n (dragover)=\"onDragOver($event)\"\n (drop)=\"onDrop($index, $event)\"\n >\n <div class=\"column-option-content\">\n @if (enableDragAndDrop) {\n <verben-svg\n icon=\"square-dot\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text)\"\n class=\"drag-handle\"\n ></verben-svg>\n }\n <input \n type=\"checkbox\" \n [checked]=\"isColumnVisible(column.id)\"\n (change)=\"toggleColumnVisibility(column.id)\"\n />\n <span>{{ getColumnHeader(column) }}</span>\n </div>\n </div>\n }\n \n @if (visibleColumns.length > maxVisibleItems) {\n <button\n (click)=\"showAllColumns = !showAllColumns\"\n class=\"show-more\"\n >\n <span>{{ showAllColumns ? \"Show Less\" : \"Show More\" }}</span>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </button>\n }\n </section>\n </div>\n \n <div card-footer class=\"card-footer\">\n <button class=\"save-button\" (click)=\"emitUpdatedColumns()\">Save</button>\n </div>\n </verben-card>", styles: [".card-header{display:flex;justify-content:space-between;align-items:center;background-color:transparent;padding:4px!important}.header-title{font-weight:600;font-size:.8125rem}.header-title sup{color:var(--vbn-color-border-focus)}.reset-button{color:var(--vbn-color-border-focus);background-color:transparent;border:none;cursor:pointer;font-size:12px}.card-body{display:flex;flex-direction:column;gap:.5rem}.section{display:flex;flex-direction:column;gap:.75rem}.section-header{display:flex;justify-content:space-between;align-items:center}.section-title{font-size:.8125rem}.select-all-wrapper{display:flex;align-items:center}.select-all{display:flex;align-items:center;gap:.5rem;font-size:12px;font-weight:500;cursor:pointer}.column-option{margin:0 -1.5rem;cursor:move}.column-option-content{display:flex;align-items:center;gap:.5rem;font-size:12px}.drag-handle{cursor:grab}.show-more{display:flex;gap:.5em;align-items:center;color:var(--vbn-color-text-muted);cursor:pointer;font-size:12px}.card-footer{display:flex;justify-content:flex-end;background-color:transparent}.save-button{margin-top:.5rem;outline:none;border:none;padding:.2rem 1.6rem;background-color:var(--vbn-color-primary);color:var(--vbn-color-on-primary);font-size:.75rem;font-weight:600;cursor:pointer}\n"] }]
136
+ }], propDecorators: { columns: [{
137
+ type: Input
138
+ }], enableDragAndDrop: [{
139
+ type: Input
140
+ }], maxVisibleItems: [{
141
+ type: Input
142
+ }], selectedColumns: [{
143
+ type: Input
144
+ }], columnsUpdated: [{
145
+ type: Output
146
+ }] } });
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb2x1bW5zLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS1jb2x1bW5zL2RhdGEtY29sdW1ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtY29sdW1ucy9kYXRhLWNvbHVtbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQzs7OztBQVV2QixNQUFNLE9BQU8sb0JBQW9CO0lBQ3RCLE9BQU8sQ0FBeUI7SUFDaEMsaUJBQWlCLEdBQVksSUFBSSxDQUFDO0lBQ2xDLGVBQWUsR0FBVyxDQUFDLENBQUM7SUFDckM7Ozs7O09BS0c7SUFDTSxlQUFlLENBQXlCO0lBQ3ZDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztJQUVyRSxjQUFjLEdBQTBCLEVBQUUsQ0FBQztJQUMzQyxjQUFjLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLFlBQVksR0FBa0IsSUFBSSxDQUFDO0lBQ25DLFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDM0IsZ0JBQWdCLEdBQXlCLElBQUksR0FBRyxFQUFFLENBQUM7SUFDbkQsK0VBQStFO0lBQy9FLDJEQUEyRDtJQUNuRCxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBRTVCLFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLDJFQUEyRTtRQUMzRSw2RUFBNkU7UUFDN0UsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxTQUFTLENB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LENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDO2FBQ3ZFLE1BQU0sQ0FBQztJQUNaLENBQUM7d0dBdkpVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLDRRQ2xCakMscXNGQTJFZ0I7OzRGRHpESCxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCOzhCQUtuQixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBT0csZUFBZTtzQkFBdkIsS0FBSztnQkFDSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbHVtbkRlZmluaXRpb24gfSBmcm9tICd2ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtdGFibGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZGF0YS1jb2x1bW5zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtY29sdW1ucy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9kYXRhLWNvbHVtbnMuY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIERhdGFDb2x1bW5zQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBjb2x1bW5zITogQ29sdW1uRGVmaW5pdGlvbjxUPltdO1xuICBASW5wdXQoKSBlbmFibGVEcmFnQW5kRHJvcDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIG1heFZpc2libGVJdGVtczogbnVtYmVyID0gNTtcbiAgLyoqXG4gICAqIE9wdGlvbmFsIHJlc3RvcmVkL2FjdGl2ZSBzZWxlY3Rpb246IHRoZSBjb2x1bW5zIHRoYXQgc2hvdWxkIGJlIGNoZWNrZWQsIGluXG4gICAqIHRoZSBvcmRlciB0byBkaXNwbGF5IHRoZW0uIFdoZW4gcHJvdmlkZWQsIHRoZSBwYW5lbCBvcGVucyByZWZsZWN0aW5nIHRoaXNcbiAgICogKHRoZXNlIGNoZWNrZWQgYW5kIG9yZGVyZWQgZmlyc3QsIHJlbWFpbmluZyBjb2x1bW5zIHNob3duIHVuY2hlY2tlZCkuXG4gICAqIERlZmF1bHRzIHRvIFwiYWxsIGNvbHVtbnMgY2hlY2tlZFwiIHdoZW4gb21pdHRlZC5cbiAgICovXG4gIEBJbnB1dCgpIHNlbGVjdGVkQ29sdW1ucz86IENvbHVtbkRlZmluaXRpb248VD5bXTtcbiAgQE91dHB1dCgpIGNvbHVtbnNVcGRhdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxDb2x1bW5EZWZpbml0aW9uPFQ+W10+KCk7XG5cbiAgdmlzaWJsZUNvbHVtbnM6IENvbHVtbkRlZmluaXRpb248VD5bXSA9IFtdO1xuICBzaG93QWxsQ29sdW1ucyA9IGZhbHNlO1xuICBkcmFnZ2VkSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBzZWxlY3RBbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgY29sdW1uVmlzaWJpbGl0eTogTWFwPHN0cmluZywgYm9vbGVhbj4gPSBuZXcgTWFwKCk7XG4gIC8vIFNldCBvbmNlIHRoZSB1c2VyIGVkaXRzIHRoZSBwYW5lbCwgc28gbGF0ZXIgaG9zdCBpbnB1dCBjaGFuZ2VzIGRvbid0IGNsb2JiZXJcbiAgLy8gdGhlaXIgaW4tcHJvZ3Jlc3Mgc2VsZWN0aW9uLiBSZXNldCB0byBkZWZhdWx0cyBieSBSZXNldC5cbiAgcHJpdmF0ZSB1c2VyVG91Y2hlZCA9IGZhbHNlO1xuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUNvbHVtbnMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAvLyBSZS1kZXJpdmUgZnJvbSBpbnB1dHMgd2hlbmV2ZXIgdGhlIGhvc3QgcHJvdmlkZXMgdGhlbSAoZS5nLiBzYXZlZCBjb2x1bW5cbiAgICAvLyBhcnJhbmdlbWVudCByZXN0b3JlZCBhc3luY2hyb25vdXNseSksIHVubGVzcyB0aGUgdXNlciBoYXMgc3RhcnRlZCBlZGl0aW5nLlxuICAgIGlmICgoY2hhbmdlc1snc2VsZWN0ZWRDb2x1bW5zJ10gfHwgY2hhbmdlc1snY29sdW1ucyddKSAmJiAhdGhpcy51c2VyVG91Y2hlZCkge1xuICAgICAgdGhpcy5pbml0aWFsaXplQ29sdW1ucygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaW5pdGlhbGl6ZUNvbHVtbnMoKSB7XG4gICAgdGhpcy5jb2x1bW5WaXNpYmlsaXR5ID0gbmV3IE1hcCgpO1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5zZWxlY3RlZENvbHVtbnM7XG5cbiAgICBpZiAoc2VsZWN0ZWQgJiYgc2VsZWN0ZWQubGVuZ3RoKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZElkcyA9IG5ldyBTZXQoc2VsZWN0ZWQubWFwKChjb2x1bW4pID0+IGNvbHVtbi5pZCkpO1xuICAgICAgY29uc3QgaGlkZGVuID0gdGhpcy5jb2x1bW5zLmZpbHRlcihcbiAgICAgICAgKGNvbHVtbikgPT4gIXNlbGVjdGVkSWRzLmhhcyhjb2x1bW4uaWQpXG4gICAgICApO1xuICAgICAgLy8gU2VsZWN0ZWQgKGNoZWNrZWQpIGZpcnN0LCBpbiB0aGVpciBzYXZlZCBvcmRlciwgdGhlbiB0aGUgcmVzdCB1bmNoZWNrZWQuXG4gICAgICB0aGlzLnZpc2libGVDb2x1bW5zID0gWy4uLnNlbGVjdGVkLCAuLi5oaWRkZW5dO1xuICAgICAgdGhpcy52aXNpYmxlQ29sdW1ucy5mb3JFYWNoKChjb2x1bW4pID0+XG4gICAgICAgIHRoaXMuY29sdW1uVmlzaWJpbGl0eS5zZXQoY29sdW1uLmlkLCBzZWxlY3RlZElkcy5oYXMoY29sdW1uLmlkKSlcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnMgPSBbLi4udGhpcy5jb2x1bW5zXTtcbiAgICAgIHRoaXMudmlzaWJsZUNvbHVtbnMuZm9yRWFjaCgoY29sdW1uKSA9PlxuICAgICAgICB0aGlzLmNvbHVtblZpc2liaWxpdHkuc2V0KGNvbHVtbi5pZCwgdHJ1ZSlcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVTZWxlY3RBbGxTdGF0dXMoKTtcbiAgfVxuXG4gIGdldCBjb2x1bW5zVG9TaG93KCkge1xuICAgIHJldHVybiB0aGlzLnNob3dBbGxDb2x1bW5zXG4gICAgICA/IHRoaXMudmlzaWJsZUNvbHVtbnNcbiAgICAgIDogdGhpcy52aXNpYmxlQ29sdW1ucy5zbGljZSgwLCB0aGlzLm1heFZpc2libGVJdGVtcyk7XG4gIH1cblxuICAvLyBEcmFnIGFuZCBEcm9wIGZ1bmN0aW9uYWxpdHlcbiAgb25EcmFnU3RhcnQoaW5kZXg6IG51bWJlciwgZXZlbnQ6IERyYWdFdmVudCkge1xuICAgIGlmICghdGhpcy5lbmFibGVEcmFnQW5kRHJvcCkgcmV0dXJuO1xuICAgIHRoaXMuZHJhZ2dlZEluZGV4ID0gaW5kZXg7XG4gICAgZXZlbnQuZGF0YVRyYW5zZmVyPy5zZXREYXRhKCd0ZXh0L3BsYWluJywgU3RyaW5nKGluZGV4KSk7XG4gIH1cblxuICBvbkRyYWdPdmVyKGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlRHJhZ0FuZERyb3ApIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgb25Ecm9wKGluZGV4OiBudW1iZXIsIGV2ZW50OiBEcmFnRXZlbnQpIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlRHJhZ0FuZERyb3ApIHJldHVybjtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICh0aGlzLmRyYWdnZWRJbmRleCAhPT0gbnVsbCAmJiB0aGlzLmRyYWdnZWRJbmRleCAhPT0gaW5kZXgpIHtcbiAgICAgIHRoaXMuc3dhcENvbHVtbnModGhpcy5kcmFnZ2VkSW5kZXgsIGluZGV4KTtcbiAgICB9XG4gICAgdGhpcy5kcmFnZ2VkSW5kZXggPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSBzd2FwQ29sdW1ucyhmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKSB7XG4gICAgY29uc3QgdGVtcCA9IHRoaXMudmlzaWJsZUNvbHVtbnNbZnJvbUluZGV4XTtcbiAgICB0aGlzLnZpc2libGVDb2x1bW5zW2Zyb21JbmRleF0gPSB0aGlzLnZpc2libGVDb2x1bW5zW3RvSW5kZXhdO1xuICAgIHRoaXMudmlzaWJsZUNvbHVtbnNbdG9JbmRleF0gPSB0ZW1wO1xuICAgIHRoaXMudXNlclRvdWNoZWQgPSB0cnVlO1xuICAgIC8vIFN0YWdlZCBvbmx5IOKAlCBhcHBsaWVkL2VtaXR0ZWQgd2hlbiB0aGUgdXNlciBjbGlja3MgU2F2ZSAoc2VlIHRlbXBsYXRlKS5cbiAgfVxuXG4gIC8vIENvbHVtbiBTZWxlY3Rpb24gZnVuY3Rpb25hbGl0eVxuICB0b2dnbGVTZWxlY3RBbGwoKSB7XG4gICAgdGhpcy5zZWxlY3RBbGwgPSAhdGhpcy5zZWxlY3RBbGw7XG4gICAgY29uc3QgbmV3VmFsdWUgPSB0aGlzLnNlbGVjdEFsbDtcbiAgICB0aGlzLnZpc2libGVDb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT4ge1xuICAgICAgdGhpcy5jb2x1bW5WaXNpYmlsaXR5LnNldChjb2x1bW4uaWQsIG5ld1ZhbHVlKTtcbiAgICB9KTtcbiAgICB0aGlzLnVzZXJUb3VjaGVkID0gdHJ1ZTtcbiAgICAvLyBTdGFnZWQgb25seSDigJQgYXBwbGllZC9lbWl0dGVkIHdoZW4gdGhlIHVzZXIgY2xpY2tzIFNhdmUgKHNlZSB0ZW1wbGF0ZSkuXG4gIH1cblxuICB0b2dnbGVDb2x1bW5WaXNpYmlsaXR5KGNvbHVtbklkOiBzdHJpbmcpIHtcbiAgICBjb25zdCBjdXJyZW50VmFsdWUgPSB0aGlzLmNvbHVtblZpc2liaWxpdHkuZ2V0KGNvbHVtbklkKTtcbiAgICB0aGlzLmNvbHVtblZpc2liaWxpdHkuc2V0KGNvbHVtbklkLCAhY3VycmVudFZhbHVlKTtcbiAgICB0aGlzLnVwZGF0ZVNlbGVjdEFsbFN0YXR1cygpO1xuICAgIHRoaXMudXNlclRvdWNoZWQgPSB0cnVlO1xuICAgIC8vIFN0YWdlZCBvbmx5IOKAlCBhcHBsaWVkL2VtaXR0ZWQgd2hlbiB0aGUgdXNlciBjbGlja3MgU2F2ZSAoc2VlIHRlbXBsYXRlKS5cbiAgfVxuXG4gIGlzQ29sdW1uVmlzaWJsZShjb2x1bW5JZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVmlzaWJpbGl0eS5nZXQoY29sdW1uSWQpID8/IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVTZWxlY3RBbGxTdGF0dXMoKSB7XG4gICAgdGhpcy5zZWxlY3RBbGwgPSBBcnJheS5mcm9tKHRoaXMuY29sdW1uVmlzaWJpbGl0eS52YWx1ZXMoKSkuZXZlcnkoXG4gICAgICAodmFsdWUpID0+IHZhbHVlXG4gICAgKTtcbiAgfVxuXG4gIGdldENvbHVtbkhlYWRlcihjb2x1bW46IENvbHVtbkRlZmluaXRpb248VD4pOiBzdHJpbmcge1xuICAgIHJldHVybiB0eXBlb2YgY29sdW1uLmhlYWRlciA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgPyBjb2x1bW4uaGVhZGVyKHt9KVxuICAgICAgOiBjb2x1bW4uaGVhZGVyO1xuICB9XG5cbiAgcmVzZXRDb2x1bW5zKCkge1xuICAgIC8vIFJlc2V0IHJlc3RvcmVzIHRoZSBkZWZhdWx0IChhbGwgY29sdW1ucyB2aXNpYmxlLCBjb25maWcgb3JkZXIpIHJlZ2FyZGxlc3NcbiAgICAvLyBvZiB0aGUgcmVzdG9yZWQgc2VsZWN0aW9uLCB0aGVuIGFwcGxpZXMgaW1tZWRpYXRlbHkuXG4gICAgdGhpcy51c2VyVG91Y2hlZCA9IHRydWU7XG4gICAgdGhpcy5jb2x1bW5WaXNpYmlsaXR5ID0gbmV3IE1hcCgpO1xuICAgIHRoaXMudmlzaWJsZUNvbHVtbnMgPSBbLi4udGhpcy5jb2x1bW5zXTtcbiAgICB0aGlzLnZpc2libGVDb2x1bW5zLmZvckVhY2goKGNvbHVtbikgPT5cbiAgICAgIHRoaXMuY29sdW1uVmlzaWJpbGl0eS5zZXQoY29sdW1uLmlkLCB0cnVlKVxuICAgICk7XG4gICAgdGhpcy51cGRhdGVTZWxlY3RBbGxTdGF0dXMoKTtcbiAgICB0aGlzLmVtaXRVcGRhdGVkQ29sdW1ucygpO1xuICB9XG5cbiAgZW1pdFVwZGF0ZWRDb2x1bW5zKCkge1xuICAgIGNvbnN0IHVwZGF0ZWRDb2x1bW5zID0gdGhpcy52aXNpYmxlQ29sdW1ucy5maWx0ZXIoKGNvbHVtbikgPT5cbiAgICAgIHRoaXMuY29sdW1uVmlzaWJpbGl0eS5nZXQoY29sdW1uLmlkKVxuICAgICk7XG4gICAgdGhpcy5jb2x1bW5zVXBkYXRlZC5lbWl0KHVwZGF0ZWRDb2x1bW5zKTtcbiAgfVxuXG4gIGdldCBhY3RpdmVDb2x1bW5Db3VudCgpOiBudW1iZXIge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuY29sdW1uVmlzaWJpbGl0eS52YWx1ZXMoKSkuZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUpXG4gICAgICAubGVuZ3RoO1xuICB9XG59XG4iLCI8dmVyYmVuLWNhcmQgd2lkdGg9XCIyNHJlbVwiIGJvcmRlclJhZGl1cz1cIjFyZW1cIiBbYm9yZGVyXT1cIicxcHggc29saWQgdmFyKC0tdmJuLWNvbG9yLXByaW1hcnkpJ1wiIGJnQ29sb3I9XCJ2YXIoLS12Ym4tY29sb3Itc3VyZmFjZSlcIj5cbiAgICA8ZGl2IGNhcmQtaGVhZGVyIGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cbiAgICAgIDxoNCBjbGFzcz1cImhlYWRlci10aXRsZVwiPkNvbHVtbiA8c3VwPih7eyBhY3RpdmVDb2x1bW5Db3VudCB9fSk8L3N1cD48L2g0PlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cInJlc2V0LWJ1dHRvblwiIChjbGljayk9XCJyZXNldENvbHVtbnMoKVwiPlJlc2V0PC9idXR0b24+XG4gICAgPC9kaXY+XG4gIFxuICAgIDxkaXYgY2FyZC1ib2R5IGNsYXNzPVwiY2FyZC1ib2R5XCI+XG4gICAgICA8IS0tIENvbHVtbiBPcHRpb25zIC0tPlxuICAgICAgPHNlY3Rpb24gY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICAgIDxoMyBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5Qcm9wZXJ0aWVzPC9oMz5cbiAgICAgICAgICA8dmVyYmVuLXN2ZyBpY29uPVwiaW5mb1wiIFt3aWR0aF09XCIxNVwiIFtoZWlnaHRdPVwiMTVcIiBmaWxsPVwidmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpXCI+PC92ZXJiZW4tc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgXG4gICAgICAgIDwhLS0gU2VsZWN0IEFsbCAtLT5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNlbGVjdC1hbGwtd3JhcHBlclwiPlxuICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInNlbGVjdC1hbGxcIj5cbiAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCIgXG4gICAgICAgICAgICAgIFtjaGVja2VkXT1cInNlbGVjdEFsbFwiXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwidG9nZ2xlU2VsZWN0QWxsKClcIlxuICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDxzcGFuPlNlbGVjdCBBbGw8L3NwYW4+XG4gICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgPC9kaXY+XG4gIFxuICAgICAgICBAZm9yIChjb2x1bW4gb2YgY29sdW1uc1RvU2hvdzsgdHJhY2sgY29sdW1uLmlkKSB7XG4gICAgICAgICAgPGRpdiBcbiAgICAgICAgICAgIGNsYXNzPVwiY29sdW1uLW9wdGlvblwiXG4gICAgICAgICAgICBbYXR0ci5kcmFnZ2FibGVdPVwiZW5hYmxlRHJhZ0FuZERyb3BcIlxuICAgICAgICAgICAgKGRyYWdzdGFydCk9XCJvbkRyYWdTdGFydCgkaW5kZXgsICRldmVudClcIlxuICAgICAgICAgICAgKGRyYWdvdmVyKT1cIm9uRHJhZ092ZXIoJGV2ZW50KVwiXG4gICAgICAgICAgICAoZHJvcCk9XCJvbkRyb3AoJGluZGV4LCAkZXZlbnQpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sdW1uLW9wdGlvbi1jb250ZW50XCI+XG4gICAgICAgICAgICAgIEBpZiAoZW5hYmxlRHJhZ0FuZERyb3ApIHtcbiAgICAgICAgICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgICAgICAgICAgaWNvbj1cInNxdWFyZS1kb3RcIlxuICAgICAgICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci10ZXh0KVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cImRyYWctaGFuZGxlXCJcbiAgICAgICAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIDxpbnB1dCBcbiAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIiBcbiAgICAgICAgICAgICAgICBbY2hlY2tlZF09XCJpc0NvbHVtblZpc2libGUoY29sdW1uLmlkKVwiXG4gICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJ0b2dnbGVDb2x1bW5WaXNpYmlsaXR5KGNvbHVtbi5pZClcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8c3Bhbj57eyBnZXRDb2x1bW5IZWFkZXIoY29sdW1uKSB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gIFxuICAgICAgICBAaWYgKHZpc2libGVDb2x1bW5zLmxlbmd0aCA+IG1heFZpc2libGVJdGVtcykge1xuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAoY2xpY2spPVwic2hvd0FsbENvbHVtbnMgPSAhc2hvd0FsbENvbHVtbnNcIlxuICAgICAgICAgIGNsYXNzPVwic2hvdy1tb3JlXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuPnt7IHNob3dBbGxDb2x1bW5zID8gXCJTaG93IExlc3NcIiA6IFwiU2hvdyBNb3JlXCIgfX08L3NwYW4+XG4gICAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICAgIGljb249XCJjaGV2cm9uXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCI4XCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiNlwiXG4gICAgICAgICAgICBmaWxsPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCJcbiAgICAgICAgICAgIHN0cm9rZT1cInZhcigtLXZibi1jb2xvci10ZXh0KVwiXG4gICAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvc2VjdGlvbj5cbiAgICA8L2Rpdj5cbiAgXG4gICAgPGRpdiBjYXJkLWZvb3RlciBjbGFzcz1cImNhcmQtZm9vdGVyXCI+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwic2F2ZS1idXR0b25cIiAoY2xpY2spPVwiZW1pdFVwZGF0ZWRDb2x1bW5zKClcIj5TYXZlPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIDwvdmVyYmVuLWNhcmQ+Il19
@@ -0,0 +1,22 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import { DataColumnsComponent } from './data-columns.component';
4
+ import { SvgModule } from 'verben-ng-ui/src/lib/components/svg';
5
+ import { CardModule } from 'verben-ng-ui/src/lib/components/card';
6
+ import { DropDownModule } from 'verben-ng-ui/src/lib/components/drop-down';
7
+ import { TooltipModule } from 'verben-ng-ui/src/lib/components/tooltip';
8
+ import * as i0 from "@angular/core";
9
+ export class DataColumnsModule {
10
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataColumnsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.10", ngImport: i0, type: DataColumnsModule, declarations: [DataColumnsComponent], imports: [CommonModule, SvgModule, CardModule, DropDownModule, TooltipModule], exports: [DataColumnsComponent] });
12
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataColumnsModule, imports: [CommonModule, SvgModule, CardModule, DropDownModule, TooltipModule] });
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataColumnsModule, decorators: [{
15
+ type: NgModule,
16
+ args: [{
17
+ declarations: [DataColumnsComponent],
18
+ imports: [CommonModule, SvgModule, CardModule, DropDownModule, TooltipModule],
19
+ exports: [DataColumnsComponent],
20
+ }]
21
+ }] });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb2x1bW5zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS1jb2x1bW5zL2RhdGEtY29sdW1ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDaEUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOztBQU94RSxNQUFNLE9BQU8saUJBQWlCO3dHQUFqQixpQkFBaUI7eUdBQWpCLGlCQUFpQixpQkFKYixvQkFBb0IsYUFDekIsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLGFBQWEsYUFDbEUsb0JBQW9CO3lHQUVuQixpQkFBaUIsWUFIbEIsWUFBWSxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLGFBQWE7OzRGQUdqRSxpQkFBaUI7a0JBTDdCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsb0JBQW9CLENBQUM7b0JBQ3BDLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxhQUFhLENBQUM7b0JBQzdFLE9BQU8sRUFBRSxDQUFDLG9CQUFvQixDQUFDO2lCQUNoQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRGF0YUNvbHVtbnNDb21wb25lbnQgfSBmcm9tICcuL2RhdGEtY29sdW1ucy5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3ZnTW9kdWxlIH0gZnJvbSAndmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9zdmcnO1xuaW1wb3J0IHsgQ2FyZE1vZHVsZSB9IGZyb20gJ3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvY2FyZCc7XG5pbXBvcnQgeyBEcm9wRG93bk1vZHVsZSB9IGZyb20gJ3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvZHJvcC1kb3duJztcbmltcG9ydCB7IFRvb2x0aXBNb2R1bGUgfSBmcm9tICd2ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL3Rvb2x0aXAnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtEYXRhQ29sdW1uc0NvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFN2Z01vZHVsZSwgQ2FyZE1vZHVsZSwgRHJvcERvd25Nb2R1bGUsIFRvb2x0aXBNb2R1bGVdLFxuICBleHBvcnRzOiBbRGF0YUNvbHVtbnNDb21wb25lbnRdLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRhQ29sdW1uc01vZHVsZSB7fVxuIl19
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class DataColumnsService {
4
+ constructor() { }
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataColumnsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataColumnsService, providedIn: 'root' });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataColumnsService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }], ctorParameters: () => [] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1jb2x1bW5zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtY29sdW1ucy9kYXRhLWNvbHVtbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sa0JBQWtCO0lBRTdCLGdCQUFnQixDQUFDO3dHQUZOLGtCQUFrQjs0R0FBbEIsa0JBQWtCLGNBRmpCLE1BQU07OzRGQUVQLGtCQUFrQjtrQkFIOUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIERhdGFDb2x1bW5zU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export * from './public-api';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtY29sdW1ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcHVibGljLWFwaSc7XG4iXX0=
@@ -0,0 +1,4 @@
1
+ export * from './data-columns.module';
2
+ export * from './data-columns.service';
3
+ export * from './data-columns.component';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvZGF0YS1jb2x1bW5zL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2RhdGEtY29sdW1ucy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLWNvbHVtbnMuc2VydmljZSc7XG5leHBvcnQgKiBmcm9tICcuL2RhdGEtY29sdW1ucy5jb21wb25lbnQnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyYmVuLW5nLXVpLXNyYy1saWItY29tcG9uZW50cy1kYXRhLWNvbHVtbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtY29sdW1ucy92ZXJiZW4tbmctdWktc3JjLWxpYi1jb21wb25lbnRzLWRhdGEtY29sdW1ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,209 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, input, Input, Output, } from '@angular/core';
2
+ import { Validators } from '@angular/forms';
3
+ import { Operators, } from './data-export.types';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "./data-export.service";
6
+ import * as i2 from "@angular/forms";
7
+ import * as i3 from "@angular/common";
8
+ import * as i4 from "verben-ng-ui/src/lib/components/svg";
9
+ import * as i5 from "verben-ng-ui/src/lib/components/card";
10
+ import * as i6 from "verben-ng-ui/src/lib/components/drop-down";
11
+ import * as i7 from "verben-ng-ui/src/lib/verbena-input";
12
+ export class DataExportComponent {
13
+ exportService;
14
+ fb;
15
+ columns;
16
+ data;
17
+ dataFetchUrl = input();
18
+ dataQueryParameters = input();
19
+ exportDataEvent = new EventEmitter();
20
+ profiles = [];
21
+ groupItems = [];
22
+ newGroupForm;
23
+ newOperation = {
24
+ id: '',
25
+ name: '',
26
+ field1: '',
27
+ operator: Operators.add,
28
+ field2: '',
29
+ };
30
+ numericProperties = [];
31
+ stringProperties = [];
32
+ isEditingOperation = false;
33
+ showAllProfiles = false;
34
+ showAllGroups = false;
35
+ operatorsNumeric = [
36
+ Operators.add,
37
+ Operators.subtract,
38
+ Operators.multiply,
39
+ Operators.divide,
40
+ ];
41
+ operatorsString = [
42
+ Operators.concatenateSpace,
43
+ Operators.concatenateCommaSpace,
44
+ Operators.concatenateComma,
45
+ ];
46
+ constructor(exportService, fb) {
47
+ this.exportService = exportService;
48
+ this.fb = fb;
49
+ this.newGroupForm = this.fb.group({
50
+ name: ['', Validators.required],
51
+ });
52
+ }
53
+ ngOnInit() {
54
+ this.initializeGroupItems();
55
+ this.updateProfiles();
56
+ }
57
+ ngOnChanges() {
58
+ if (this.data) {
59
+ this.initializeGroupItems();
60
+ }
61
+ }
62
+ get visibleProfiles() {
63
+ return this.showAllProfiles ? this.profiles : this.profiles.slice(0, 3);
64
+ }
65
+ get visibleGroups() {
66
+ return this.showAllGroups ? this.groupItems : this.groupItems.slice(0, 3);
67
+ }
68
+ initializeGroupItems() {
69
+ if (this.data && this.data.length > 0) {
70
+ const properties = Object.keys(this.data[0]).filter((k) => k !== 'id');
71
+ this.exportService.setBaseProperties(properties);
72
+ this.numericProperties = properties.filter((prop) => typeof this.data[0][prop] === 'number');
73
+ this.stringProperties = properties.filter((prop) => typeof this.data[0][prop] === 'string');
74
+ this.updateGroupItems();
75
+ }
76
+ }
77
+ updateProfiles() {
78
+ this.profiles = this.exportService.getProfiles().map((profile) => ({
79
+ ...profile,
80
+ selected: false,
81
+ }));
82
+ }
83
+ updateGroupItems() {
84
+ this.groupItems = this.exportService.getAllItems().map((item) => ({
85
+ ...item,
86
+ selected: false,
87
+ }));
88
+ }
89
+ addGroup() {
90
+ // console.log('in');
91
+ if (this.newGroupForm.valid) {
92
+ const selectedItems = this.groupItems.filter((item) => item.selected);
93
+ if (selectedItems.length > 0) {
94
+ const newProfile = {
95
+ id: Date.now().toString(),
96
+ name: this.newGroupForm.get('name')?.value,
97
+ items: selectedItems,
98
+ };
99
+ this.exportService.addProfile(newProfile);
100
+ this.updateProfiles();
101
+ this.groupItems.forEach((item) => (item.selected = false));
102
+ this.newGroupForm.reset();
103
+ // console.log('SELECTED');
104
+ }
105
+ // console.log('VALID');
106
+ }
107
+ }
108
+ editProfile(profile) {
109
+ this.groupItems.forEach((item) => {
110
+ item.selected = profile.items.some((profileItem) => profileItem.id === item.id);
111
+ });
112
+ this.removeProfile(profile);
113
+ }
114
+ removeProfile(profile) {
115
+ this.exportService.removeProfile(profile.id);
116
+ this.updateProfiles();
117
+ }
118
+ addOrUpdateOperation() {
119
+ if (this.newOperation.name &&
120
+ this.newOperation.field1 &&
121
+ this.newOperation.field2) {
122
+ if (this.isEditingOperation) {
123
+ this.exportService.updateOperation(this.newOperation.id, this.newOperation);
124
+ }
125
+ else {
126
+ const operation = {
127
+ ...this.newOperation,
128
+ id: Date.now().toString(),
129
+ };
130
+ this.exportService.addOperation(operation);
131
+ }
132
+ this.updateGroupItems();
133
+ this.resetOperationForm();
134
+ }
135
+ }
136
+ editOperation(operation) {
137
+ this.newOperation = { ...operation };
138
+ this.isEditingOperation = true;
139
+ }
140
+ removeOperation(operation) {
141
+ this.exportService.removeOperation(operation.id);
142
+ this.updateGroupItems();
143
+ }
144
+ resetOperationForm() {
145
+ this.newOperation = {
146
+ id: '',
147
+ name: '',
148
+ field1: '',
149
+ operator: Operators.add,
150
+ field2: '',
151
+ };
152
+ this.isEditingOperation = false;
153
+ }
154
+ resetAll() {
155
+ this.exportService.resetAll();
156
+ this.initializeGroupItems();
157
+ this.updateProfiles();
158
+ this.resetOperationForm();
159
+ this.newGroupForm.reset();
160
+ }
161
+ exportData() {
162
+ const selectedProfiles = this.profiles.filter((profile) => profile.selected);
163
+ if (selectedProfiles.length > 0) {
164
+ const exportedData = this.exportService.exportData(this.data, selectedProfiles);
165
+ this.exportDataEvent.emit(exportedData);
166
+ }
167
+ else {
168
+ // console.log('No profiles selected for export');
169
+ }
170
+ }
171
+ onField1Change() {
172
+ this.newOperation.field2 = '';
173
+ this.newOperation.operator = this.isNumericField(this.newOperation.field1)
174
+ ? Operators.add
175
+ : Operators.concatenateSpace;
176
+ }
177
+ isNumericField(field) {
178
+ return this.numericProperties.includes(field);
179
+ }
180
+ get availableOperators() {
181
+ return this.isNumericField(this.newOperation.field1)
182
+ ? this.operatorsNumeric
183
+ : this.operatorsString;
184
+ }
185
+ get availableFields2() {
186
+ return this.isNumericField(this.newOperation.field1)
187
+ ? this.numericProperties
188
+ : this.stringProperties;
189
+ }
190
+ toggleShowAllProfiles() {
191
+ this.showAllProfiles = !this.showAllProfiles;
192
+ }
193
+ toggleShowAllGroups() {
194
+ this.showAllGroups = !this.showAllGroups;
195
+ }
196
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataExportComponent, deps: [{ token: i1.DataExportService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
197
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.10", type: DataExportComponent, selector: "lib-data-export", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: false, isRequired: false, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: false, isRequired: false, transformFunction: null }, dataFetchUrl: { classPropertyName: "dataFetchUrl", publicName: "dataFetchUrl", isSignal: true, isRequired: false, transformFunction: null }, dataQueryParameters: { classPropertyName: "dataQueryParameters", publicName: "dataQueryParameters", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { exportDataEvent: "exportDataEvent" }, usesOnChanges: true, ngImport: i0, template: "<verben-card\n width=\"24rem\"\n borderRadius=\"1rem\"\n [border]=\"'1px solid var(--vbn-color-primary)'\"\n bgColor=\"var(--vbn-color-surface)\"\n class=\"export-card\"\n>\n <div card-header class=\"card-header\">\n <h4 class=\"header-title\">Export</h4>\n <button\n class=\"reset-button\"\n [style.color]=\"'var(--vbn-color-border-focus)'\"\n [style.background-color]=\"'transparent'\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetAll()\"\n >\n Reset\n </button>\n </div>\n <div card-body class=\"card-body\">\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Profiles</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div *ngFor=\"let profile of visibleProfiles; let i = index\" class=\"item\">\n <div class=\"item-label\">\n <input\n type=\"checkbox\"\n [id]=\"'profile-' + i\"\n [(ngModel)]=\"profile.selected\"\n />\n <label [for]=\"'profile-' + i\" class=\"checkbox-label\">\n {{ profile.name }}\n </label>\n </div>\n <div class=\"item-actions\">\n <verben-svg\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editProfile(profile)\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"removeProfile(profile)\"\n ></verben-svg>\n </div>\n </div>\n <div\n *ngIf=\"profiles.length > 3\"\n (click)=\"toggleShowAllProfiles()\"\n class=\"show-more\"\n >\n <span>{{ showAllProfiles ? \"Show less\" : \"Show more\" }}</span>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </section>\n <hr class=\"divider\" />\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Group</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <form [formGroup]=\"newGroupForm\" (ngSubmit)=\"addGroup()\">\n <verbena-input\n placeholder=\"Group name\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100%\"\n fontSize=\"11px\"\n height=\"20px\"\n pd=\"2px 4px !important\"\n bgColor=\"transparent\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n formControlName=\"name\"\n ></verbena-input>\n </form>\n <div *ngFor=\"let item of visibleGroups; let i = index\" class=\"item\">\n <div class=\"item-label\">\n <input\n type=\"checkbox\"\n [id]=\"'group-' + i\"\n [(ngModel)]=\"item.selected\"\n />\n <label [for]=\"'group-' + i\" class=\"checkbox-label\">\n {{ item.name }}\n </label>\n </div>\n <div class=\"item-actions\" *ngIf=\"item.type === 'operation'\">\n <verben-svg\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editOperation(item)\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"removeOperation(item)\"\n ></verben-svg>\n </div>\n </div>\n\n <div class=\"flex items-center justify-between\">\n <button\n *ngIf=\"groupItems.length > 3\"\n (click)=\"toggleShowAllGroups()\"\n class=\"show-more\"\n >\n <span>{{ showAllGroups ? \"Show less\" : \"Show more\" }}</span>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </button>\n <button class=\"add-button\" (click)=\"addGroup()\">+ Add</button>\n </div>\n </section>\n <hr class=\"divider\" />\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Operation</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <verbena-input\n placeholder=\"Operation name\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n fontSize=\"11px\"\n width=\"100%\"\n height=\"20px\"\n pd=\"2px 6px\"\n bgColor=\"transparent\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [(ngModel)]=\"newOperation.name\"\n ></verbena-input>\n <div class=\"operation-grid\">\n <verben-drop-down\n width=\"'8rem'\"\n height=\"'1.25rem'\"\n placeholder=\"Select field\"\n [options]=\"numericProperties.concat(stringProperties)\"\n [(ngModel)]=\"newOperation.field1\"\n (ngModelChange)=\"onField1Change()\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"'8rem'\"\n height=\"'1.25rem'\"\n placeholder=\"Select operator\"\n [options]=\"availableOperators\"\n [(ngModel)]=\"newOperation.operator\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"'8rem'\"\n placeholder=\"Select field\"\n [options]=\"availableFields2\"\n [(ngModel)]=\"newOperation.field2\"\n >\n </verben-drop-down>\n </div>\n <button class=\"add-button ml-auto\" (click)=\"addOrUpdateOperation()\">\n {{ isEditingOperation ? \"Update\" : \"+ Add\" }}\n </button>\n </section>\n\n <section class=\"section\">\n @if (dataFetchUrl()) {\n <div class=\"section-header\">\n <h3 class=\"section-title\">Record Size</h3>\n </div>\n }\n </section>\n </div>\n <div card-footer class=\"card-footer\">\n <button class=\"export-button\" (click)=\"exportData()\">Export</button>\n </div>\n</verben-card>\n", styles: [".export-card{font-size:.75rem;z-index:10}.card-header{display:flex;justify-content:space-between;align-items:center;background-color:transparent;padding:4px!important}.header-title{font-weight:600;font-size:.8125rem}.card-body,.section{display:flex;flex-direction:column;gap:.5rem}.section-header{display:flex;justify-content:space-between;align-items:center}.section-title{font-size:.8125rem}.item{display:flex;justify-content:space-between;align-items:center}.item-label{display:flex;align-items:center;gap:.5rem}.checkbox-label{line-height:1}.item-actions{display:flex;gap:.5rem}.show-more{display:flex;gap:.5em;align-items:center;color:var(--vbn-color-text-muted);cursor:pointer}.divider{border:none;border-top:1px solid var(--vbn-color-border)}.operation-grid{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.add-button{margin-top:.5rem;outline:none;border:none;background-color:transparent;color:var(--vbn-color-border-focus);font-size:.75rem;font-weight:500;cursor:pointer}.card-footer{display:flex;justify-content:flex-end;background-color:transparent}.export-button{margin-top:.5rem;outline:none;border:none;padding:.2rem 1.6rem;background-color:var(--vbn-color-primary);color:var(--vbn-color-on-primary);font-size:.75rem;font-weight:600;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i5.CardComponent, selector: "verben-card", inputs: ["pd", "mg", "height", "width", "textColor", "bgColor", "border", "borderRadius", "disabled", "aspectRatio"] }, { kind: "component", type: i6.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i7.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
198
+ }
199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: DataExportComponent, decorators: [{
200
+ type: Component,
201
+ args: [{ selector: 'lib-data-export', changeDetection: ChangeDetectionStrategy.OnPush, template: "<verben-card\n width=\"24rem\"\n borderRadius=\"1rem\"\n [border]=\"'1px solid var(--vbn-color-primary)'\"\n bgColor=\"var(--vbn-color-surface)\"\n class=\"export-card\"\n>\n <div card-header class=\"card-header\">\n <h4 class=\"header-title\">Export</h4>\n <button\n class=\"reset-button\"\n [style.color]=\"'var(--vbn-color-border-focus)'\"\n [style.background-color]=\"'transparent'\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetAll()\"\n >\n Reset\n </button>\n </div>\n <div card-body class=\"card-body\">\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Profiles</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div *ngFor=\"let profile of visibleProfiles; let i = index\" class=\"item\">\n <div class=\"item-label\">\n <input\n type=\"checkbox\"\n [id]=\"'profile-' + i\"\n [(ngModel)]=\"profile.selected\"\n />\n <label [for]=\"'profile-' + i\" class=\"checkbox-label\">\n {{ profile.name }}\n </label>\n </div>\n <div class=\"item-actions\">\n <verben-svg\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editProfile(profile)\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"removeProfile(profile)\"\n ></verben-svg>\n </div>\n </div>\n <div\n *ngIf=\"profiles.length > 3\"\n (click)=\"toggleShowAllProfiles()\"\n class=\"show-more\"\n >\n <span>{{ showAllProfiles ? \"Show less\" : \"Show more\" }}</span>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </section>\n <hr class=\"divider\" />\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Group</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <form [formGroup]=\"newGroupForm\" (ngSubmit)=\"addGroup()\">\n <verbena-input\n placeholder=\"Group name\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100%\"\n fontSize=\"11px\"\n height=\"20px\"\n pd=\"2px 4px !important\"\n bgColor=\"transparent\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n formControlName=\"name\"\n ></verbena-input>\n </form>\n <div *ngFor=\"let item of visibleGroups; let i = index\" class=\"item\">\n <div class=\"item-label\">\n <input\n type=\"checkbox\"\n [id]=\"'group-' + i\"\n [(ngModel)]=\"item.selected\"\n />\n <label [for]=\"'group-' + i\" class=\"checkbox-label\">\n {{ item.name }}\n </label>\n </div>\n <div class=\"item-actions\" *ngIf=\"item.type === 'operation'\">\n <verben-svg\n icon=\"edit\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editOperation(item)\"\n ></verben-svg>\n <verben-svg\n icon=\"delete\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"removeOperation(item)\"\n ></verben-svg>\n </div>\n </div>\n\n <div class=\"flex items-center justify-between\">\n <button\n *ngIf=\"groupItems.length > 3\"\n (click)=\"toggleShowAllGroups()\"\n class=\"show-more\"\n >\n <span>{{ showAllGroups ? \"Show less\" : \"Show more\" }}</span>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </button>\n <button class=\"add-button\" (click)=\"addGroup()\">+ Add</button>\n </div>\n </section>\n <hr class=\"divider\" />\n <section class=\"section\">\n <div class=\"section-header\">\n <h3 class=\"section-title\">Operation</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <verbena-input\n placeholder=\"Operation name\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n fontSize=\"11px\"\n width=\"100%\"\n height=\"20px\"\n pd=\"2px 6px\"\n bgColor=\"transparent\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [(ngModel)]=\"newOperation.name\"\n ></verbena-input>\n <div class=\"operation-grid\">\n <verben-drop-down\n width=\"'8rem'\"\n height=\"'1.25rem'\"\n placeholder=\"Select field\"\n [options]=\"numericProperties.concat(stringProperties)\"\n [(ngModel)]=\"newOperation.field1\"\n (ngModelChange)=\"onField1Change()\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"'8rem'\"\n height=\"'1.25rem'\"\n placeholder=\"Select operator\"\n [options]=\"availableOperators\"\n [(ngModel)]=\"newOperation.operator\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"'8rem'\"\n placeholder=\"Select field\"\n [options]=\"availableFields2\"\n [(ngModel)]=\"newOperation.field2\"\n >\n </verben-drop-down>\n </div>\n <button class=\"add-button ml-auto\" (click)=\"addOrUpdateOperation()\">\n {{ isEditingOperation ? \"Update\" : \"+ Add\" }}\n </button>\n </section>\n\n <section class=\"section\">\n @if (dataFetchUrl()) {\n <div class=\"section-header\">\n <h3 class=\"section-title\">Record Size</h3>\n </div>\n }\n </section>\n </div>\n <div card-footer class=\"card-footer\">\n <button class=\"export-button\" (click)=\"exportData()\">Export</button>\n </div>\n</verben-card>\n", styles: [".export-card{font-size:.75rem;z-index:10}.card-header{display:flex;justify-content:space-between;align-items:center;background-color:transparent;padding:4px!important}.header-title{font-weight:600;font-size:.8125rem}.card-body,.section{display:flex;flex-direction:column;gap:.5rem}.section-header{display:flex;justify-content:space-between;align-items:center}.section-title{font-size:.8125rem}.item{display:flex;justify-content:space-between;align-items:center}.item-label{display:flex;align-items:center;gap:.5rem}.checkbox-label{line-height:1}.item-actions{display:flex;gap:.5rem}.show-more{display:flex;gap:.5em;align-items:center;color:var(--vbn-color-text-muted);cursor:pointer}.divider{border:none;border-top:1px solid var(--vbn-color-border)}.operation-grid{width:100%;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}.add-button{margin-top:.5rem;outline:none;border:none;background-color:transparent;color:var(--vbn-color-border-focus);font-size:.75rem;font-weight:500;cursor:pointer}.card-footer{display:flex;justify-content:flex-end;background-color:transparent}.export-button{margin-top:.5rem;outline:none;border:none;padding:.2rem 1.6rem;background-color:var(--vbn-color-primary);color:var(--vbn-color-on-primary);font-size:.75rem;font-weight:600;cursor:pointer}\n"] }]
202
+ }], ctorParameters: () => [{ type: i1.DataExportService }, { type: i2.FormBuilder }], propDecorators: { columns: [{
203
+ type: Input
204
+ }], data: [{
205
+ type: Input
206
+ }], exportDataEvent: [{
207
+ type: Output
208
+ }] } });
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1leHBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLWV4cG9ydC9kYXRhLWV4cG9ydC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL2RhdGEtZXhwb3J0L2RhdGEtZXhwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBQ0wsS0FBSyxFQUNMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXFDLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRS9FLE9BQU8sRUFJTCxTQUFTLEdBRVYsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7Ozs7O0FBUzdCLE1BQU0sT0FBTyxtQkFBbUI7SUFvQ3BCO0lBQ0E7SUFwQ0QsT0FBTyxDQUF1QjtJQUM5QixJQUFJLENBQVM7SUFDdEIsWUFBWSxHQUFHLEtBQUssRUFBVSxDQUFDO0lBQy9CLG1CQUFtQixHQUFHLEtBQUssRUFBeUIsQ0FBQztJQUMzQyxlQUFlLEdBQUcsSUFBSSxZQUFZLEVBQXlCLENBQUM7SUFFdEUsUUFBUSxHQUE4QyxFQUFFLENBQUM7SUFDekQsVUFBVSxHQUEyQyxFQUFFLENBQUM7SUFDeEQsWUFBWSxDQUFZO0lBQ3hCLFlBQVksR0FBYztRQUN4QixFQUFFLEVBQUUsRUFBRTtRQUNOLElBQUksRUFBRSxFQUFFO1FBQ1IsTUFBTSxFQUFFLEVBQUU7UUFDVixRQUFRLEVBQUUsU0FBUyxDQUFDLEdBQUc7UUFDdkIsTUFBTSxFQUFFLEVBQUU7S0FDWCxDQUFDO0lBQ0YsaUJBQWlCLEdBQWEsRUFBRSxDQUFDO0lBQ2pD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QW1COzRGQUFuQixtQkFBbUIsNnFCQ3pCaEMsOGdPQTZOQTs7NEZEcE1hLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxpQkFBaUIsbUJBR1YsdUJBQXVCLENBQUMsTUFBTTtnSEFHdEMsT0FBTztzQkFBZixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFHSSxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRhRXhwb3J0U2VydmljZSB9IGZyb20gJy4vZGF0YS1leHBvcnQuc2VydmljZSc7XG5pbXBvcnQge1xuICBFeHBvcnRJdGVtLFxuICBFeHBvcnRQcm9maWxlLFxuICBPcGVyYXRpb24sXG4gIE9wZXJhdG9ycyxcbiAgU2VhcmNoUHJvcGVydHlWYWx1ZSxcbn0gZnJvbSAnLi9kYXRhLWV4cG9ydC50eXBlcyc7XG5pbXBvcnQgeyBDb2x1bW5EZWZpbml0aW9uIH0gZnJvbSAndmVyYmVuLW5nLXVpL3NyYy9saWIvY29tcG9uZW50cy9kYXRhLXRhYmxlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWRhdGEtZXhwb3J0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGEtZXhwb3J0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2RhdGEtZXhwb3J0LmNvbXBvbmVudC5jc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgRGF0YUV4cG9ydENvbXBvbmVudDxUIGV4dGVuZHMgeyBpZDogc3RyaW5nIHwgbnVtYmVyIH0+IHtcbiAgQElucHV0KCkgY29sdW1ucyE6IENvbHVtbkRlZmluaXRpb248VD47XG4gIEBJbnB1dCgpIGRhdGEhOiBhbnlbXTtcbiAgZGF0YUZldGNoVXJsID0gaW5wdXQ8c3RyaW5nPigpO1xuICBkYXRhUXVlcnlQYXJhbWV0ZXJzID0gaW5wdXQ8U2VhcmNoUHJvcGVydHlWYWx1ZVtdPigpO1xuICBAT3V0cHV0KCkgZXhwb3J0RGF0YUV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxSZWNvcmQ8c3RyaW5nLCBhbnk+W10+KCk7XG5cbiAgcHJvZmlsZXM6IChFeHBvcnRQcm9maWxlICYgeyBzZWxlY3RlZDogYm9vbGVhbiB9KVtdID0gW107XG4gIGdyb3VwSXRlbXM6IChFeHBvcnRJdGVtICYgeyBzZWxlY3RlZDogYm9vbGVhbiB9KVtdID0gW107XG4gIG5ld0dyb3VwRm9ybTogRm9ybUdyb3VwO1xuICBuZXdPcGVyYXRpb246IE9wZXJhdGlvbiA9IHtcbiAgICBpZDogJycsXG4gICAgbmFtZTogJycsXG4gICAgZmllbGQxOiAnJyxcbiAgICBvcGVyYXRvcjogT3BlcmF0b3JzLmFkZCxcbiAgICBmaWVsZDI6ICcnLFxuICB9O1xuICBudW1lcmljUHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcbiAgc3RyaW5nUHJvcGVydGllczogc3RyaW5nW10gPSBbXTtcbiAgaXNFZGl0aW5nT3BlcmF0aW9uOiBib29sZWFuID0gZmFsc2U7XG4gIHNob3dBbGxQcm9maWxlczogYm9vbGVhbiA9IGZhbHNlO1xuICBzaG93QWxsR3JvdXBzOiBib29sZWFuID0gZmFsc2U7XG5cbiAgb3BlcmF0b3JzTnVtZXJpYzogT3BlcmF0b3JzW10gPSBbXG4gICAgT3BlcmF0b3JzLmFkZCxcbiAgICBPcGVyYXRvcnMuc3VidHJhY3QsXG4gICAgT3BlcmF0b3JzLm11bHRpcGx5LFxuICAgIE9wZXJhdG9ycy5kaXZpZGUsXG4gIF07XG4gIG9wZXJhdG9yc1N0cmluZzogT3BlcmF0b3JzW10gPSBbXG4gICAgT3BlcmF0b3JzLmNvbmNhdGVuYXRlU3BhY2UsXG4gICAgT3BlcmF0b3JzLmNvbmNhdGVuYXRlQ29tbWFTcGFjZSxcbiAgICBPcGVyYXRvcnMuY29uY2F0ZW5hdGVDb21tYSxcbiAgXTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGV4cG9ydFNlcnZpY2U6IERhdGFFeHBvcnRTZXJ2aWNlLFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICApIHtcbiAgICB0aGlzLm5ld0dyb3VwRm9ybSA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgbmFtZTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICB9KTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuaW5pdGlhbGl6ZUdyb3VwSXRlbXMoKTtcbiAgICB0aGlzLnVwZGF0ZVByb2ZpbGVzKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcygpIHtcbiAgICBpZiAodGhpcy5kYXRhKSB7XG4gICAgICB0aGlzLmluaXRpYWxpemVHcm91cEl0ZW1zKCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHZpc2libGVQcm9maWxlcygpIHtcbiAgICByZXR1cm4gdGhpcy5zaG93QWxsUHJvZmlsZXMgPyB0aGlzLnByb2ZpbGVzIDogdGhpcy5wcm9maWxlcy5zbGljZSgwLCAzKTtcbiAgfVxuXG4gIGdldCB2aXNpYmxlR3JvdXBzKCkge1xuICAgIHJldHVybiB0aGlzLnNob3dBbGxHcm91cHMgPyB0aGlzLmdyb3VwSXRlbXMgOiB0aGlzLmdyb3VwSXRlbXMuc2xpY2UoMCwgMyk7XG4gIH1cblxuICBpbml0aWFsaXplR3JvdXBJdGVtcygpIHtcbiAgICBpZiAodGhpcy5kYXRhICYmIHRoaXMuZGF0YS5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwcm9wZXJ0aWVzID0gT2JqZWN0LmtleXModGhpcy5kYXRhWzBdKS5maWx0ZXIoKGspID0+IGsgIT09ICdpZCcpO1xuICAgICAgdGhpcy5leHBvcnRTZXJ2aWNlLnNldEJhc2VQcm9wZXJ0aWVzKHByb3BlcnRpZXMpO1xuICAgICAgdGhpcy5udW1lcmljUHJvcGVydGllcyA9IHByb3BlcnRpZXMuZmlsdGVyKFxuICAgICAgICAocHJvcCkgPT4gdHlwZW9mIHRoaXMuZGF0YVswXVtwcm9wXSA9PT0gJ251bWJlcicsXG4gICAgICApO1xuICAgICAgdGhpcy5zdHJpbmdQcm9wZXJ0aWVzID0gcHJvcGVydGllcy5maWx0ZXIoXG4gICAgICAgIChwcm9wKSA9PiB0eXBlb2YgdGhpcy5kYXRhWzBdW3Byb3BdID09PSAnc3RyaW5nJyxcbiAgICAgICk7XG4gICAgICB0aGlzLnVwZGF0ZUdyb3VwSXRlbXMoKTtcbiAgICB9XG4gIH1cblxuICB1cGRhdGVQcm9maWxlcygpIHtcbiAgICB0aGlzLnByb2ZpbGVzID0gdGhpcy5leHBvcnRTZXJ2aWNlLmdldFByb2ZpbGVzKCkubWFwKChwcm9maWxlKSA9PiAoe1xuICAgICAgLi4ucHJvZmlsZSxcbiAgICAgIHNlbGVjdGVkOiBmYWxzZSxcbiAgICB9KSk7XG4gIH1cblxuICB1cGRhdGVHcm91cEl0ZW1zKCkge1xuICAgIHRoaXMuZ3JvdXBJdGVtcyA9IHRoaXMuZXhwb3J0U2VydmljZS5nZXRBbGxJdGVtcygpLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgIC4uLml0ZW0sXG4gICAgICBzZWxlY3RlZDogZmFsc2UsXG4gICAgfSkpO1xuICB9XG5cbiAgYWRkR3JvdXAoKSB7XG4gICAgLy8gICAgY29uc29sZS5sb2coJ2luJyk7XG4gICAgaWYgKHRoaXMubmV3R3JvdXBGb3JtLnZhbGlkKSB7XG4gICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5ncm91cEl0ZW1zLmZpbHRlcigoaXRlbSkgPT4gaXRlbS5zZWxlY3RlZCk7XG4gICAgICBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IG5ld1Byb2ZpbGU6IEV4cG9ydFByb2ZpbGUgPSB7XG4gICAgICAgICAgaWQ6IERhdGUubm93KCkudG9TdHJpbmcoKSxcbiAgICAgICAgICBuYW1lOiB0aGlzLm5ld0dyb3VwRm9ybS5nZXQoJ25hbWUnKT8udmFsdWUsXG4gICAgICAgICAgaXRlbXM6IHNlbGVjdGVkSXRlbXMsXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZXhwb3J0U2VydmljZS5hZGRQcm9maWxlKG5ld1Byb2ZpbGUpO1xuICAgICAgICB0aGlzLnVwZGF0ZVByb2ZpbGVzKCk7XG4gICAgICAgIHRoaXMuZ3JvdXBJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiAoaXRlbS5zZWxlY3RlZCA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMubmV3R3JvdXBGb3JtLnJlc2V0KCk7XG4gICAgICAgIC8vIGNvbnNvbGUubG9nKCdTRUxFQ1RFRCcpO1xuICAgICAgfVxuICAgICAgLy8gICAgY29uc29sZS5sb2coJ1ZBTElEJyk7XG4gICAgfVxuICB9XG5cbiAgZWRpdFByb2ZpbGUocHJvZmlsZTogRXhwb3J0UHJvZmlsZSAmIHsgc2VsZWN0ZWQ6IGJvb2xlYW4gfSkge1xuICAgIHRoaXMuZ3JvdXBJdGVtcy5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLnNlbGVjdGVkID0gcHJvZmlsZS5pdGVtcy5zb21lKFxuICAgICAgICAocHJvZmlsZUl0ZW0pID0+IHByb2ZpbGVJdGVtLmlkID09PSBpdGVtLmlkLFxuICAgICAgKTtcbiAgICB9KTtcbiAgICB0aGlzLnJlbW92ZVByb2ZpbGUocHJvZmlsZSk7XG4gIH1cblxuICByZW1vdmVQcm9maWxlKHByb2ZpbGU6IEV4cG9ydFByb2ZpbGUgJiB7IHNlbGVjdGVkOiBib29sZWFuIH0pIHtcbiAgICB0aGlzLmV4cG9ydFNlcnZpY2UucmVtb3ZlUHJvZmlsZShwcm9maWxlLmlkKTtcbiAgICB0aGlzLnVwZGF0ZVByb2ZpbGVzKCk7XG4gIH1cblxuICBhZGRPclVwZGF0ZU9wZXJhdGlvbigpIHtcbiAgICBpZiAoXG4gICAgICB0aGlzLm5ld09wZXJhdGlvbi5uYW1lICYmXG4gICAgICB0aGlzLm5ld09wZXJhdGlvbi5maWVsZDEgJiZcbiAgICAgIHRoaXMubmV3T3BlcmF0aW9uLmZpZWxkMlxuICAgICkge1xuICAgICAgaWYgKHRoaXMuaXNFZGl0aW5nT3BlcmF0aW9uKSB7XG4gICAgICAgIHRoaXMuZXhwb3J0U2VydmljZS51cGRhdGVPcGVyYXRpb24oXG4gICAgICAgICAgdGhpcy5uZXdPcGVyYXRpb24uaWQsXG4gICAgICAgICAgdGhpcy5uZXdPcGVyYXRpb24sXG4gICAgICAgICk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25zdCBvcGVyYXRpb246IE9wZXJhdGlvbiA9IHtcbiAgICAgICAgICAuLi50aGlzLm5ld09wZXJhdGlvbixcbiAgICAgICAgICBpZDogRGF0ZS5ub3coKS50b1N0cmluZygpLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLmV4cG9ydFNlcnZpY2UuYWRkT3BlcmF0aW9uKG9wZXJhdGlvbik7XG4gICAgICB9XG4gICAgICB0aGlzLnVwZGF0ZUdyb3VwSXRlbXMoKTtcbiAgICAgIHRoaXMucmVzZXRPcGVyYXRpb25Gb3JtKCk7XG4gICAgfVxuICB9XG5cbiAgZWRpdE9wZXJhdGlvbihvcGVyYXRpb246IEV4cG9ydEl0ZW0gJiB7IHNlbGVjdGVkOiBib29sZWFuIH0pIHtcbiAgICB0aGlzLm5ld09wZXJhdGlvbiA9IHsgLi4uKG9wZXJhdGlvbiBhcyB1bmtub3duIGFzIE9wZXJhdGlvbikgfTtcbiAgICB0aGlzLmlzRWRpdGluZ09wZXJhdGlvbiA9IHRydWU7XG4gIH1cblxuICByZW1vdmVPcGVyYXRpb24ob3BlcmF0aW9uOiBFeHBvcnRJdGVtICYgeyBzZWxlY3RlZDogYm9vbGVhbiB9KSB7XG4gICAgdGhpcy5leHBvcnRTZXJ2aWNlLnJlbW92ZU9wZXJhdGlvbihvcGVyYXRpb24uaWQpO1xuICAgIHRoaXMudXBkYXRlR3JvdXBJdGVtcygpO1xuICB9XG5cbiAgcmVzZXRPcGVyYXRpb25Gb3JtKCkge1xuICAgIHRoaXMubmV3T3BlcmF0aW9uID0ge1xuICAgICAgaWQ6ICcnLFxuICAgICAgbmFtZTogJycsXG4gICAgICBmaWVsZDE6ICcnLFxuICAgICAgb3BlcmF0b3I6IE9wZXJhdG9ycy5hZGQsXG4gICAgICBmaWVsZDI6ICcnLFxuICAgIH07XG4gICAgdGhpcy5pc0VkaXRpbmdPcGVyYXRpb24gPSBmYWxzZTtcbiAgfVxuXG4gIHJlc2V0QWxsKCkge1xuICAgIHRoaXMuZXhwb3J0U2VydmljZS5yZXNldEFsbCgpO1xuICAgIHRoaXMuaW5pdGlhbGl6ZUdyb3VwSXRlbXMoKTtcbiAgICB0aGlzLnVwZGF0ZVByb2ZpbGVzKCk7XG4gICAgdGhpcy5yZXNldE9wZXJhdGlvbkZvcm0oKTtcbiAgICB0aGlzLm5ld0dyb3VwRm9ybS5yZXNldCgpO1xuICB9XG5cbiAgZXhwb3J0RGF0YSgpIHtcbiAgICBjb25zdCBzZWxlY3RlZFByb2ZpbGVzID0gdGhpcy5wcm9maWxlcy5maWx0ZXIoXG4gICAgICAocHJvZmlsZSkgPT4gcHJvZmlsZS5zZWxlY3RlZCxcbiAgICApO1xuICAgIGlmIChzZWxlY3RlZFByb2ZpbGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IGV4cG9ydGVkRGF0YSA9IHRoaXMuZXhwb3J0U2VydmljZS5leHBvcnREYXRhKFxuICAgICAgICB0aGlzLmRhdGEsXG4gICAgICAgIHNlbGVjdGVkUHJvZmlsZXMsXG4gICAgICApO1xuICAgICAgdGhpcy5leHBvcnREYXRhRXZlbnQuZW1pdChleHBvcnRlZERhdGEpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyAgY29uc29sZS5sb2coJ05vIHByb2ZpbGVzIHNlbGVjdGVkIGZvciBleHBvcnQnKTtcbiAgICB9XG4gIH1cblxuICBvbkZpZWxkMUNoYW5nZSgpIHtcbiAgICB0aGlzLm5ld09wZXJhdGlvbi5maWVsZDIgPSAnJztcbiAgICB0aGlzLm5ld09wZXJhdGlvbi5vcGVyYXRvciA9IHRoaXMuaXNOdW1lcmljRmllbGQodGhpcy5uZXdPcGVyYXRpb24uZmllbGQxKVxuICAgICAgPyBPcGVyYXRvcnMuYWRkXG4gICAgICA6IE9wZXJhdG9ycy5jb25jYXRlbmF0ZVNwYWNlO1xuICB9XG5cbiAgaXNOdW1lcmljRmllbGQoZmllbGQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm51bWVyaWNQcm9wZXJ0aWVzLmluY2x1ZGVzKGZpZWxkKTtcbiAgfVxuXG4gIGdldCBhdmFpbGFibGVPcGVyYXRvcnMoKTogT3BlcmF0b3JzW10ge1xuICAgIHJldHVybiB0aGlzLmlzTnVtZXJpY0ZpZWxkKHRoaXMubmV3T3BlcmF0aW9uLmZpZWxkMSlcbiAgICAgID8gdGhpcy5vcGVyYXRvcnNOdW1lcmljXG4gICAgICA6IHRoaXMub3BlcmF0b3JzU3RyaW5nO1xuICB9XG5cbiAgZ2V0IGF2YWlsYWJsZUZpZWxkczIoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmlzTnVtZXJpY0ZpZWxkKHRoaXMubmV3T3BlcmF0aW9uLmZpZWxkMSlcbiAgICAgID8gdGhpcy5udW1lcmljUHJvcGVydGllc1xuICAgICAgOiB0aGlzLnN0cmluZ1Byb3BlcnRpZXM7XG4gIH1cblxuICB0b2dnbGVTaG93QWxsUHJvZmlsZXMoKSB7XG4gICAgdGhpcy5zaG93QWxsUHJvZmlsZXMgPSAhdGhpcy5zaG93QWxsUHJvZmlsZXM7XG4gIH1cblxuICB0b2dnbGVTaG93QWxsR3JvdXBzKCkge1xuICAgIHRoaXMuc2hvd0FsbEdyb3VwcyA9ICF0aGlzLnNob3dBbGxHcm91cHM7XG4gIH1cbn1cbiIsIjx2ZXJiZW4tY2FyZFxuICB3aWR0aD1cIjI0cmVtXCJcbiAgYm9yZGVyUmFkaXVzPVwiMXJlbVwiXG4gIFtib3JkZXJdPVwiJzFweCBzb2xpZCB2YXIoLS12Ym4tY29sb3ItcHJpbWFyeSknXCJcbiAgYmdDb2xvcj1cInZhcigtLXZibi1jb2xvci1zdXJmYWNlKVwiXG4gIGNsYXNzPVwiZXhwb3J0LWNhcmRcIlxuPlxuICA8ZGl2IGNhcmQtaGVhZGVyIGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cbiAgICA8aDQgY2xhc3M9XCJoZWFkZXItdGl0bGVcIj5FeHBvcnQ8L2g0PlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwicmVzZXQtYnV0dG9uXCJcbiAgICAgIFtzdHlsZS5jb2xvcl09XCIndmFyKC0tdmJuLWNvbG9yLWJvcmRlci1mb2N1cyknXCJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgW3N0eWxlLmJvcmRlcl09XCInbm9uZSdcIlxuICAgICAgW3N0eWxlLmN1cnNvcl09XCIncG9pbnRlcidcIlxuICAgICAgW3N0eWxlLmZvbnQtc2l6ZV09XCInMTJweCdcIlxuICAgICAgKGNsaWNrKT1cInJlc2V0QWxsKClcIlxuICAgID5cbiAgICAgIFJlc2V0XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8ZGl2IGNhcmQtYm9keSBjbGFzcz1cImNhcmQtYm9keVwiPlxuICAgIDxzZWN0aW9uIGNsYXNzPVwic2VjdGlvblwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNlY3Rpb24taGVhZGVyXCI+XG4gICAgICAgIDxoMyBjbGFzcz1cInNlY3Rpb24tdGl0bGVcIj5Qcm9maWxlczwvaDM+XG4gICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKVwiXG4gICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHByb2ZpbGUgb2YgdmlzaWJsZVByb2ZpbGVzOyBsZXQgaSA9IGluZGV4XCIgY2xhc3M9XCJpdGVtXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtLWxhYmVsXCI+XG4gICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgW2lkXT1cIidwcm9maWxlLScgKyBpXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwicHJvZmlsZS5zZWxlY3RlZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8bGFiZWwgW2Zvcl09XCIncHJvZmlsZS0nICsgaVwiIGNsYXNzPVwiY2hlY2tib3gtbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IHByb2ZpbGUubmFtZSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1hY3Rpb25zXCI+XG4gICAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICAgIGljb249XCJlZGl0XCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgIHN0cm9rZT1cInZhcigtLXZibi1jb2xvci1ib3JkZXItZm9jdXMpXCJcbiAgICAgICAgICAgIGZpbGw9XCJ2YXIoLS12Ym4tY29sb3Itc3VyZmFjZSlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRQcm9maWxlKHByb2ZpbGUpXCJcbiAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgICBpY29uPVwiZGVsZXRlXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgIHN0cm9rZT1cInZhcigtLXZibi1jb2xvci1lcnJvcilcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInJlbW92ZVByb2ZpbGUocHJvZmlsZSlcIlxuICAgICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2XG4gICAgICAgICpuZ0lmPVwicHJvZmlsZXMubGVuZ3RoID4gM1wiXG4gICAgICAgIChjbGljayk9XCJ0b2dnbGVTaG93QWxsUHJvZmlsZXMoKVwiXG4gICAgICAgIGNsYXNzPVwic2hvdy1tb3JlXCJcbiAgICAgID5cbiAgICAgICAgPHNwYW4+e3sgc2hvd0FsbFByb2ZpbGVzID8gXCJTaG93IGxlc3NcIiA6IFwiU2hvdyBtb3JlXCIgfX08L3NwYW4+XG4gICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgaWNvbj1cImNoZXZyb25cIlxuICAgICAgICAgIFt3aWR0aF09XCI4XCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIjZcIlxuICAgICAgICAgIGZpbGw9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgICAgIHN0cm9rZT1cInZhcigtLXZibi1jb2xvci10ZXh0KVwiXG4gICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICA8L2Rpdj5cbiAgICA8L3NlY3Rpb24+XG4gICAgPGhyIGNsYXNzPVwiZGl2aWRlclwiIC8+XG4gICAgPHNlY3Rpb24gY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPkdyb3VwPC9oMz5cbiAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICBpY29uPVwiaW5mb1wiXG4gICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICBmaWxsPVwidmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpXCJcbiAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJuZXdHcm91cEZvcm1cIiAobmdTdWJtaXQpPVwiYWRkR3JvdXAoKVwiPlxuICAgICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICAgIHBsYWNlaG9sZGVyPVwiR3JvdXAgbmFtZVwiXG4gICAgICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkIHZhcigtLXZibi1jb2xvci1ib3JkZXIpXCJcbiAgICAgICAgICBib3JkZXJSYWRpdXM9XCI1cHhcIlxuICAgICAgICAgIHRleHRDb2xvcj1cInZhcigtLXZibi1jb2xvci10ZXh0KVwiXG4gICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICBmb250U2l6ZT1cIjExcHhcIlxuICAgICAgICAgIGhlaWdodD1cIjIwcHhcIlxuICAgICAgICAgIHBkPVwiMnB4IDRweCAhaW1wb3J0YW50XCJcbiAgICAgICAgICBiZ0NvbG9yPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICAgIFtzaG93Qm9yZGVyXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cInRydWVcIlxuICAgICAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcbiAgICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cbiAgICAgIDwvZm9ybT5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdmlzaWJsZUdyb3VwczsgbGV0IGkgPSBpbmRleFwiIGNsYXNzPVwiaXRlbVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1sYWJlbFwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgIFtpZF09XCInZ3JvdXAtJyArIGlcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLnNlbGVjdGVkXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIidncm91cC0nICsgaVwiIGNsYXNzPVwiY2hlY2tib3gtbGFiZWxcIj5cbiAgICAgICAgICAgIHt7IGl0ZW0ubmFtZSB9fVxuICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaXRlbS1hY3Rpb25zXCIgKm5nSWY9XCJpdGVtLnR5cGUgPT09ICdvcGVyYXRpb24nXCI+XG4gICAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICAgIGljb249XCJlZGl0XCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgIHN0cm9rZT1cInZhcigtLXZibi1jb2xvci1ib3JkZXItZm9jdXMpXCJcbiAgICAgICAgICAgIGZpbGw9XCJ2YXIoLS12Ym4tY29sb3Itc3VyZmFjZSlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImVkaXRPcGVyYXRpb24oaXRlbSlcIlxuICAgICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICAgIGljb249XCJkZWxldGVcIlxuICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgc3Ryb2tlPVwidmFyKC0tdmJuLWNvbG9yLWVycm9yKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlT3BlcmF0aW9uKGl0ZW0pXCJcbiAgICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cImdyb3VwSXRlbXMubGVuZ3RoID4gM1wiXG4gICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZVNob3dBbGxHcm91cHMoKVwiXG4gICAgICAgICAgY2xhc3M9XCJzaG93LW1vcmVcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4+e3sgc2hvd0FsbEdyb3VwcyA/IFwiU2hvdyBsZXNzXCIgOiBcIlNob3cgbW9yZVwiIH19PC9zcGFuPlxuICAgICAgICAgIDx2ZXJiZW4tc3ZnXG4gICAgICAgICAgICBpY29uPVwiY2hldnJvblwiXG4gICAgICAgICAgICBbd2lkdGhdPVwiOFwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjZcIlxuICAgICAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci10ZXh0KVwiXG4gICAgICAgICAgICBzdHJva2U9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWRkLWJ1dHRvblwiIChjbGljayk9XCJhZGRHcm91cCgpXCI+KyBBZGQ8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2VjdGlvbj5cbiAgICA8aHIgY2xhc3M9XCJkaXZpZGVyXCIgLz5cbiAgICA8c2VjdGlvbiBjbGFzcz1cInNlY3Rpb25cIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzZWN0aW9uLWhlYWRlclwiPlxuICAgICAgICA8aDMgY2xhc3M9XCJzZWN0aW9uLXRpdGxlXCI+T3BlcmF0aW9uPC9oMz5cbiAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICBpY29uPVwiaW5mb1wiXG4gICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICBmaWxsPVwidmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpXCJcbiAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgIDwvZGl2PlxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJPcGVyYXRpb24gbmFtZVwiXG4gICAgICAgIGJvcmRlcj1cIjFweCBzb2xpZCB2YXIoLS12Ym4tY29sb3ItYm9yZGVyKVwiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjVweFwiXG4gICAgICAgIHRleHRDb2xvcj1cInZhcigtLXZibi1jb2xvci10ZXh0KVwiXG4gICAgICAgIGZvbnRTaXplPVwiMTFweFwiXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXG4gICAgICAgIGhlaWdodD1cIjIwcHhcIlxuICAgICAgICBwZD1cIjJweCA2cHhcIlxuICAgICAgICBiZ0NvbG9yPVwidHJhbnNwYXJlbnRcIlxuICAgICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdPcGVyYXRpb24ubmFtZVwiXG4gICAgICA+PC92ZXJiZW5hLWlucHV0PlxuICAgICAgPGRpdiBjbGFzcz1cIm9wZXJhdGlvbi1ncmlkXCI+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgd2lkdGg9XCInOHJlbSdcIlxuICAgICAgICAgIGhlaWdodD1cIicxLjI1cmVtJ1wiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgZmllbGRcIlxuICAgICAgICAgIFtvcHRpb25zXT1cIm51bWVyaWNQcm9wZXJ0aWVzLmNvbmNhdChzdHJpbmdQcm9wZXJ0aWVzKVwiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdPcGVyYXRpb24uZmllbGQxXCJcbiAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkZpZWxkMUNoYW5nZSgpXCJcbiAgICAgICAgPlxuICAgICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgICAgd2lkdGg9XCInOHJlbSdcIlxuICAgICAgICAgIGhlaWdodD1cIicxLjI1cmVtJ1wiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3Qgb3BlcmF0b3JcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImF2YWlsYWJsZU9wZXJhdG9yc1wiXG4gICAgICAgICAgWyhuZ01vZGVsKV09XCJuZXdPcGVyYXRpb24ub3BlcmF0b3JcIlxuICAgICAgICA+XG4gICAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgICAgICB3aWR0aD1cIic4cmVtJ1wiXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgZmllbGRcIlxuICAgICAgICAgIFtvcHRpb25zXT1cImF2YWlsYWJsZUZpZWxkczJcIlxuICAgICAgICAgIFsobmdNb2RlbCldPVwibmV3T3BlcmF0aW9uLmZpZWxkMlwiXG4gICAgICAgID5cbiAgICAgICAgPC92ZXJiZW4tZHJvcC1kb3duPlxuICAgICAgPC9kaXY+XG4gICAgICA8YnV0dG9uIGNsYXNzPVwiYWRkLWJ1dHRvbiBtbC1hdXRvXCIgKGNsaWNrKT1cImFkZE9yVXBkYXRlT3BlcmF0aW9uKClcIj5cbiAgICAgICAge3sgaXNFZGl0aW5nT3BlcmF0aW9uID8gXCJVcGRhdGVcIiA6IFwiKyBBZGRcIiB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9zZWN0aW9uPlxuXG4gICAgPHNlY3Rpb24gY2xhc3M9XCJzZWN0aW9uXCI+XG4gICAgICBAaWYgKGRhdGFGZXRjaFVybCgpKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2VjdGlvbi1oZWFkZXJcIj5cbiAgICAgICAgPGgzIGNsYXNzPVwic2VjdGlvbi10aXRsZVwiPlJlY29yZCBTaXplPC9oMz5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvc2VjdGlvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2FyZC1mb290ZXIgY2xhc3M9XCJjYXJkLWZvb3RlclwiPlxuICAgIDxidXR0b24gY2xhc3M9XCJleHBvcnQtYnV0dG9uXCIgKGNsaWNrKT1cImV4cG9ydERhdGEoKVwiPkV4cG9ydDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvdmVyYmVuLWNhcmQ+XG4iXX0=