@messaia/cdk 18.2.3 → 19.0.0-rc02

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 (669) hide show
  1. package/fesm2022/messaia-cdk.mjs +1592 -1239
  2. package/fesm2022/messaia-cdk.mjs.map +1 -1
  3. package/lib/base/base.module.d.ts +14 -13
  4. package/lib/base/components/base.component.d.ts +1 -1
  5. package/lib/base/components/generic-embedded-list.component.d.ts +1 -1
  6. package/lib/base/components/generic-form-base.component.d.ts +3 -2
  7. package/lib/base/components/generic-form.component.d.ts +1 -1
  8. package/lib/base/components/generic-list.component.d.ts +23 -3
  9. package/lib/base/components/generic-reactive-form.component.d.ts +1 -1
  10. package/lib/base/constants/common.d.ts +2 -0
  11. package/lib/base/helpers/auth-helper.d.ts +1 -1
  12. package/lib/chips/components/chips.component.d.ts +5 -16
  13. package/lib/common/functions/utils.d.ts +1 -1
  14. package/lib/common/helpers/app-storage.d.ts +1 -1
  15. package/lib/common/styles/_layout.scss +1 -1
  16. package/lib/common/styles/_variables.scss +4 -25
  17. package/lib/common/styles/colors/_colors-dark.scss +2 -0
  18. package/lib/common/styles/colors/_colors.scss +34 -4
  19. package/lib/common/styles/core/_button.scss +7 -21
  20. package/lib/common/styles/core/_card.scss +19 -88
  21. package/lib/common/styles/core/_core.scss +10 -21
  22. package/lib/common/styles/core/_overrides.scss +45 -0
  23. package/lib/common/styles/core/_sidenav.scss +9 -7
  24. package/lib/common/styles/core/_structure.scss +4 -11
  25. package/lib/common/styles/font/_font.scss +5 -13
  26. package/lib/common/styles/m2/_common-theme.scss +10 -10
  27. package/lib/common/styles/m2/platform.scss +13 -0
  28. package/lib/common/styles/m3/_common-theme.scss +27 -10
  29. package/lib/common/styles/m3/platform.scss +13 -0
  30. package/lib/common/styles/utilities/_general.scss +522 -492
  31. package/lib/common/styles/utilities/_pull.scss +23 -30
  32. package/lib/common/styles/utilities/_push.scss +23 -30
  33. package/lib/common/styles/utilities/_size.scss +3 -3
  34. package/lib/common/styles/utilities/_utilities.scss +14 -14
  35. package/lib/common/theming/_m2-all-theme.scss +4 -11
  36. package/lib/form-validators/directives/base-directive.d.ts +1 -1
  37. package/lib/form-validators/directives/template-validations/base-validator.directive.d.ts +1 -1
  38. package/lib/form-validators/directives/template-validations/control-expression-process.d.ts +1 -1
  39. package/lib/form-validators/services/rx-form-array.d.ts +2 -2
  40. package/lib/form-validators/util/reset-form.d.ts +3 -3
  41. package/lib/forms/directives/mat-form-field-editor.directive.d.ts +31 -28
  42. package/lib/forms/forms.module.d.ts +4 -3
  43. package/lib/forms/helpers/abstract-mat-form-field.d.ts +147 -91
  44. package/lib/forms/helpers/abstract-select-form-field.component.d.ts +144 -67
  45. package/lib/forms/helpers/value-accessor-base.d.ts +1 -1
  46. package/lib/layout/_m2-layout-theme.scss +14 -50
  47. package/lib/layout/layout-nav/layout-nav.component.d.ts +7 -1
  48. package/lib/layout/layout-toggle.class.d.ts +1 -1
  49. package/lib/list/components/list.component.d.ts +3 -15
  50. package/lib/menu/components/menu.component.d.ts +16 -1
  51. package/lib/menu/menu.module.d.ts +3 -2
  52. package/lib/select/components/select.component.d.ts +3 -16
  53. package/lib/table/components/dynamic-table/dynamic-table.component.d.ts +5 -1
  54. package/lib/table/components/filter-select/filter-select.component.d.ts +2 -3
  55. package/lib/table/models/table-definition.d.ts +69 -20
  56. package/package.json +3 -5
  57. package/esm2022/lib/base/base.module.mjs +0 -114
  58. package/esm2022/lib/base/components/base.component.mjs +0 -904
  59. package/esm2022/lib/base/components/dynamic-table-config-dialog/dynamic-table-config-dialog.comnponent.mjs +0 -123
  60. package/esm2022/lib/base/components/generic-embedded-list.component.mjs +0 -197
  61. package/esm2022/lib/base/components/generic-form-base.component.mjs +0 -891
  62. package/esm2022/lib/base/components/generic-form.component.mjs +0 -44
  63. package/esm2022/lib/base/components/generic-list.component.mjs +0 -966
  64. package/esm2022/lib/base/components/generic-reactive-form.component.mjs +0 -101
  65. package/esm2022/lib/base/components/task-dialog/task-dialog.component.mjs +0 -147
  66. package/esm2022/lib/base/constants/common.mjs +0 -92
  67. package/esm2022/lib/base/constants/global-roles.mjs +0 -9
  68. package/esm2022/lib/base/enums/message-type.mjs +0 -7
  69. package/esm2022/lib/base/helpers/auth-helper.mjs +0 -53
  70. package/esm2022/lib/base/interceptors/base.interceptor.mjs +0 -168
  71. package/esm2022/lib/base/interceptors/caching-interceptor.mjs +0 -67
  72. package/esm2022/lib/base/interceptors/loading.interceptor.mjs +0 -64
  73. package/esm2022/lib/base/interfaces/ibase-component.mjs +0 -2
  74. package/esm2022/lib/base/interfaces/igeneric-form-base.mjs +0 -2
  75. package/esm2022/lib/base/interfaces/igeneric-list-component.mjs +0 -2
  76. package/esm2022/lib/base/interfaces/igeneric-reactive-form-base.mjs +0 -2
  77. package/esm2022/lib/base/models/auth-user.mjs +0 -18
  78. package/esm2022/lib/base/models/task-dialog-data.mjs +0 -85
  79. package/esm2022/lib/base/public_api.mjs +0 -2
  80. package/esm2022/lib/base/services/file.service.mjs +0 -18
  81. package/esm2022/lib/base/services/loading-screen.service.mjs +0 -45
  82. package/esm2022/lib/base/services/print.service.mjs +0 -41
  83. package/esm2022/lib/chips/chips.module.mjs +0 -77
  84. package/esm2022/lib/chips/components/chips.component.mjs +0 -702
  85. package/esm2022/lib/chips/directives/autocomplete-option.directive.mjs +0 -18
  86. package/esm2022/lib/chips/directives/chip.directive.mjs +0 -18
  87. package/esm2022/lib/chips/public_api.mjs +0 -3
  88. package/esm2022/lib/common/animations/collapse/collapse.animation.mjs +0 -33
  89. package/esm2022/lib/common/animations/common/interfaces.mjs +0 -2
  90. package/esm2022/lib/common/behaviors/constructor.mjs +0 -2
  91. package/esm2022/lib/common/behaviors/control-value-accesor.mixin.mjs +0 -41
  92. package/esm2022/lib/common/behaviors/disabled.mixin.mjs +0 -24
  93. package/esm2022/lib/common/common.module.mjs +0 -176
  94. package/esm2022/lib/common/constants/constants.mjs +0 -3
  95. package/esm2022/lib/common/directives/autofocus.directive.mjs +0 -62
  96. package/esm2022/lib/common/directives/delayed-hover.directive.mjs +0 -133
  97. package/esm2022/lib/common/directives/disable-control.directive.mjs +0 -35
  98. package/esm2022/lib/common/enums/app-event-type.mjs +0 -6
  99. package/esm2022/lib/common/enums/filter-glue.mjs +0 -16
  100. package/esm2022/lib/common/enums/filter-operator.mjs +0 -15
  101. package/esm2022/lib/common/enums/salutation.mjs +0 -7
  102. package/esm2022/lib/common/functions/decorators.mjs +0 -22
  103. package/esm2022/lib/common/functions/functions.mjs +0 -22
  104. package/esm2022/lib/common/functions/utils.mjs +0 -271
  105. package/esm2022/lib/common/helpers/app-storage.mjs +0 -77
  106. package/esm2022/lib/common/helpers/delegate.mjs +0 -2
  107. package/esm2022/lib/common/helpers/dynamic-builder.mjs +0 -52
  108. package/esm2022/lib/common/helpers/dynamic-component-compiler.mjs +0 -11
  109. package/esm2022/lib/common/models/action-item.mjs +0 -77
  110. package/esm2022/lib/common/models/app-event.mjs +0 -21
  111. package/esm2022/lib/common/models/app-setting.mjs +0 -92
  112. package/esm2022/lib/common/models/audit-entity.mjs +0 -53
  113. package/esm2022/lib/common/models/audit-user.mjs +0 -24
  114. package/esm2022/lib/common/models/base-entity.mjs +0 -40
  115. package/esm2022/lib/common/models/common-error.mjs +0 -29
  116. package/esm2022/lib/common/models/common-handler-context.mjs +0 -45
  117. package/esm2022/lib/common/models/displayname-number-projection.mjs +0 -56
  118. package/esm2022/lib/common/models/displayname-projection.mjs +0 -38
  119. package/esm2022/lib/common/models/entity.mjs +0 -2
  120. package/esm2022/lib/common/models/enum-item.mjs +0 -2
  121. package/esm2022/lib/common/models/enum-metadata.mjs +0 -44
  122. package/esm2022/lib/common/models/filter-field.mjs +0 -2
  123. package/esm2022/lib/common/models/filter.mjs +0 -2
  124. package/esm2022/lib/common/models/icommon-handler-context.mjs +0 -2
  125. package/esm2022/lib/common/models/icon.mjs +0 -42
  126. package/esm2022/lib/common/models/key-value.mjs +0 -11
  127. package/esm2022/lib/common/models/modifiable-entity.mjs +0 -22
  128. package/esm2022/lib/common/models/name-number-projection.mjs +0 -35
  129. package/esm2022/lib/common/models/name-projection.mjs +0 -25
  130. package/esm2022/lib/common/models/permission.mjs +0 -29
  131. package/esm2022/lib/common/models/save-action.mjs +0 -7
  132. package/esm2022/lib/common/models/suffix-button.mjs +0 -15
  133. package/esm2022/lib/common/models/title-projection.mjs +0 -25
  134. package/esm2022/lib/common/pipes/bind.mjs +0 -31
  135. package/esm2022/lib/common/pipes/data-source.pipe.mjs +0 -15
  136. package/esm2022/lib/common/pipes/enum.pipe.mjs +0 -41
  137. package/esm2022/lib/common/pipes/file-size.pipe.mjs +0 -35
  138. package/esm2022/lib/common/pipes/filter.pipe.mjs +0 -54
  139. package/esm2022/lib/common/pipes/first-letter.mjs +0 -24
  140. package/esm2022/lib/common/pipes/form-array.pipe.mjs +0 -14
  141. package/esm2022/lib/common/pipes/form-control.pipe.mjs +0 -14
  142. package/esm2022/lib/common/pipes/form-group.pipe.mjs +0 -14
  143. package/esm2022/lib/common/pipes/func.pipe.mjs +0 -14
  144. package/esm2022/lib/common/pipes/join.pipe.mjs +0 -26
  145. package/esm2022/lib/common/pipes/keys.mjs +0 -18
  146. package/esm2022/lib/common/pipes/map.pipe.mjs +0 -48
  147. package/esm2022/lib/common/pipes/month-name.pipe.mjs +0 -25
  148. package/esm2022/lib/common/pipes/nested-property.mjs +0 -29
  149. package/esm2022/lib/common/pipes/only-number.mjs +0 -58
  150. package/esm2022/lib/common/pipes/order.pipe.mjs +0 -269
  151. package/esm2022/lib/common/pipes/placeholder.pipe.mjs +0 -26
  152. package/esm2022/lib/common/pipes/property-join.pipe.mjs +0 -27
  153. package/esm2022/lib/common/pipes/safe-html.pipe.mjs +0 -32
  154. package/esm2022/lib/common/pipes/split.pipe.mjs +0 -25
  155. package/esm2022/lib/common/pipes/time.pipe.mjs +0 -21
  156. package/esm2022/lib/common/pipes/titlecase.pipe.mjs +0 -14
  157. package/esm2022/lib/common/pipes/truncate.pipe.mjs +0 -15
  158. package/esm2022/lib/common/pipes/values.mjs +0 -14
  159. package/esm2022/lib/common/public_api.mjs +0 -41
  160. package/esm2022/lib/common/services/base.service.mjs +0 -19
  161. package/esm2022/lib/common/services/context-helper.mjs +0 -17
  162. package/esm2022/lib/common/services/enum.service.mjs +0 -81
  163. package/esm2022/lib/common/services/event-queue.service.mjs +0 -31
  164. package/esm2022/lib/common/services/service-locator.mjs +0 -25
  165. package/esm2022/lib/common/templates/templates.mjs +0 -87
  166. package/esm2022/lib/dialogs/alert-dialog/alert-dialog.component.mjs +0 -46
  167. package/esm2022/lib/dialogs/confirm-dialog/confirm-dialog.component.mjs +0 -60
  168. package/esm2022/lib/dialogs/dialog.component.mjs +0 -59
  169. package/esm2022/lib/dialogs/dialogs.module.mjs +0 -72
  170. package/esm2022/lib/dialogs/prompt-dialog/prompt-dialog.component.mjs +0 -44
  171. package/esm2022/lib/dialogs/public_api.mjs +0 -2
  172. package/esm2022/lib/dialogs/services/dialog.service.mjs +0 -154
  173. package/esm2022/lib/file/file-input.component.mjs +0 -334
  174. package/esm2022/lib/file/file.module.mjs +0 -37
  175. package/esm2022/lib/file/public_api.mjs +0 -2
  176. package/esm2022/lib/form-validators/abstract/typed-form.mjs +0 -13
  177. package/esm2022/lib/form-validators/algorithm/luhn-algorithm.mjs +0 -33
  178. package/esm2022/lib/form-validators/const/app-validators.const.mjs +0 -68
  179. package/esm2022/lib/form-validators/const/app.const.mjs +0 -65
  180. package/esm2022/lib/form-validators/const/config-names.const.mjs +0 -33
  181. package/esm2022/lib/form-validators/const/config-required-fields.const.mjs +0 -35
  182. package/esm2022/lib/form-validators/const/decorators.const.mjs +0 -23
  183. package/esm2022/lib/form-validators/const/events.const.mjs +0 -53
  184. package/esm2022/lib/form-validators/const/html-elements.const.mjs +0 -25
  185. package/esm2022/lib/form-validators/const/iban-country-wise-regex.const.mjs +0 -80
  186. package/esm2022/lib/form-validators/const/index.mjs +0 -6
  187. package/esm2022/lib/form-validators/const/operators.const.mjs +0 -7
  188. package/esm2022/lib/form-validators/const/validation-alphabet-locale.const.mjs +0 -9
  189. package/esm2022/lib/form-validators/const/validator.const.mjs +0 -29
  190. package/esm2022/lib/form-validators/core/annotation-types.mjs +0 -75
  191. package/esm2022/lib/form-validators/core/default-container.mjs +0 -500
  192. package/esm2022/lib/form-validators/decorators/allOf.decorator.mjs +0 -10
  193. package/esm2022/lib/form-validators/decorators/alpha.decorator.mjs +0 -10
  194. package/esm2022/lib/form-validators/decorators/alphaNumeric.decorator.mjs +0 -10
  195. package/esm2022/lib/form-validators/decorators/and.decorator.mjs +0 -6
  196. package/esm2022/lib/form-validators/decorators/ascii.decorator.mjs +0 -6
  197. package/esm2022/lib/form-validators/decorators/async.decorator.mjs +0 -6
  198. package/esm2022/lib/form-validators/decorators/base-decorator.function.mjs +0 -7
  199. package/esm2022/lib/form-validators/decorators/choice.decorator.mjs +0 -10
  200. package/esm2022/lib/form-validators/decorators/compare.decorator.mjs +0 -6
  201. package/esm2022/lib/form-validators/decorators/compose.decorator.mjs +0 -6
  202. package/esm2022/lib/form-validators/decorators/contains.decorator.mjs +0 -10
  203. package/esm2022/lib/form-validators/decorators/credit-card.decorator.mjs +0 -10
  204. package/esm2022/lib/form-validators/decorators/cusip.decorator.mjs +0 -6
  205. package/esm2022/lib/form-validators/decorators/custom.decorator.mjs +0 -10
  206. package/esm2022/lib/form-validators/decorators/dataUri.decorator.mjs +0 -6
  207. package/esm2022/lib/form-validators/decorators/date.decorator.mjs +0 -10
  208. package/esm2022/lib/form-validators/decorators/different.decorator.mjs +0 -6
  209. package/esm2022/lib/form-validators/decorators/digit.decorator.mjs +0 -6
  210. package/esm2022/lib/form-validators/decorators/email.decorator.mjs +0 -6
  211. package/esm2022/lib/form-validators/decorators/endsWith.decorator.mjs +0 -10
  212. package/esm2022/lib/form-validators/decorators/even.decorator.mjs +0 -6
  213. package/esm2022/lib/form-validators/decorators/extension.decorator.mjs +0 -10
  214. package/esm2022/lib/form-validators/decorators/factor.decorator.mjs +0 -10
  215. package/esm2022/lib/form-validators/decorators/file.decorator.mjs +0 -10
  216. package/esm2022/lib/form-validators/decorators/fileSize.decorator.mjs +0 -10
  217. package/esm2022/lib/form-validators/decorators/greater-than-equal-to.decorator.mjs +0 -10
  218. package/esm2022/lib/form-validators/decorators/greater-than.decorator.mjs +0 -10
  219. package/esm2022/lib/form-validators/decorators/grid.decorator.mjs +0 -6
  220. package/esm2022/lib/form-validators/decorators/hexColor.decorator.mjs +0 -6
  221. package/esm2022/lib/form-validators/decorators/image.decorator.mjs +0 -10
  222. package/esm2022/lib/form-validators/decorators/index.mjs +0 -93
  223. package/esm2022/lib/form-validators/decorators/json.decorator.mjs +0 -6
  224. package/esm2022/lib/form-validators/decorators/latLong.decorator.mjs +0 -6
  225. package/esm2022/lib/form-validators/decorators/latitude.decorator.mjs +0 -6
  226. package/esm2022/lib/form-validators/decorators/leapYear.decorator.mjs +0 -6
  227. package/esm2022/lib/form-validators/decorators/less-than-equal-to.decorator.mjs +0 -10
  228. package/esm2022/lib/form-validators/decorators/less-than.decorator.mjs +0 -10
  229. package/esm2022/lib/form-validators/decorators/longitude.decorator.mjs +0 -6
  230. package/esm2022/lib/form-validators/decorators/lowercase.decorator.mjs +0 -6
  231. package/esm2022/lib/form-validators/decorators/mac.decorator.mjs +0 -6
  232. package/esm2022/lib/form-validators/decorators/mask.decorator.mjs +0 -6
  233. package/esm2022/lib/form-validators/decorators/maxDate.decorator.mjs +0 -10
  234. package/esm2022/lib/form-validators/decorators/maxLength.decorator.mjs +0 -10
  235. package/esm2022/lib/form-validators/decorators/maxNumber.decorator.mjs +0 -10
  236. package/esm2022/lib/form-validators/decorators/maxTime.decorator.mjs +0 -10
  237. package/esm2022/lib/form-validators/decorators/minDate.decorator.mjs +0 -10
  238. package/esm2022/lib/form-validators/decorators/minLength.decorator.mjs +0 -10
  239. package/esm2022/lib/form-validators/decorators/minNumber.decorator.mjs +0 -10
  240. package/esm2022/lib/form-validators/decorators/minTime.decorator.mjs +0 -10
  241. package/esm2022/lib/form-validators/decorators/model.decorator.mjs +0 -7
  242. package/esm2022/lib/form-validators/decorators/non-validation-decorators/disable.decorator.mjs +0 -8
  243. package/esm2022/lib/form-validators/decorators/non-validation-decorators/elementClass.decorator.mjs +0 -8
  244. package/esm2022/lib/form-validators/decorators/non-validation-decorators/error.decorator.mjs +0 -8
  245. package/esm2022/lib/form-validators/decorators/non-validation-decorators/update-on.decorator.mjs +0 -6
  246. package/esm2022/lib/form-validators/decorators/noneOf.decorator.mjs +0 -10
  247. package/esm2022/lib/form-validators/decorators/not.decorator.mjs +0 -6
  248. package/esm2022/lib/form-validators/decorators/notEmpty.decorator.mjs +0 -6
  249. package/esm2022/lib/form-validators/decorators/numeric.decorator.mjs +0 -10
  250. package/esm2022/lib/form-validators/decorators/odd.decorator.mjs +0 -6
  251. package/esm2022/lib/form-validators/decorators/oneOf.decorator.mjs +0 -10
  252. package/esm2022/lib/form-validators/decorators/or.decorator.mjs +0 -6
  253. package/esm2022/lib/form-validators/decorators/password.decorator.mjs +0 -10
  254. package/esm2022/lib/form-validators/decorators/pattern.decorator.mjs +0 -10
  255. package/esm2022/lib/form-validators/decorators/port.decorator.mjs +0 -6
  256. package/esm2022/lib/form-validators/decorators/primeNumber.decorator.mjs +0 -6
  257. package/esm2022/lib/form-validators/decorators/prop-array.decorator.mjs +0 -18
  258. package/esm2022/lib/form-validators/decorators/prop-object.decorator.mjs +0 -8
  259. package/esm2022/lib/form-validators/decorators/prop.decorator.mjs +0 -18
  260. package/esm2022/lib/form-validators/decorators/range.decorator.mjs +0 -10
  261. package/esm2022/lib/form-validators/decorators/required.decorator.mjs +0 -6
  262. package/esm2022/lib/form-validators/decorators/requiredTrue.decorator.mjs +0 -6
  263. package/esm2022/lib/form-validators/decorators/rule.decorator.mjs +0 -6
  264. package/esm2022/lib/form-validators/decorators/sanitize/blacklist.decorator.mjs +0 -8
  265. package/esm2022/lib/form-validators/decorators/sanitize/escape.decorator.mjs +0 -8
  266. package/esm2022/lib/form-validators/decorators/sanitize/ltrim.decorator.mjs +0 -8
  267. package/esm2022/lib/form-validators/decorators/sanitize/prefix.decorator.mjs +0 -8
  268. package/esm2022/lib/form-validators/decorators/sanitize/rtrim.decorator.mjs +0 -8
  269. package/esm2022/lib/form-validators/decorators/sanitize/sanitize.decorator.mjs +0 -8
  270. package/esm2022/lib/form-validators/decorators/sanitize/stripLow.decorator.mjs +0 -8
  271. package/esm2022/lib/form-validators/decorators/sanitize/suffix.decorator.mjs +0 -8
  272. package/esm2022/lib/form-validators/decorators/sanitize/toBoolean.decorator.mjs +0 -8
  273. package/esm2022/lib/form-validators/decorators/sanitize/toDate.decorator.mjs +0 -8
  274. package/esm2022/lib/form-validators/decorators/sanitize/toDouble.decorator.mjs +0 -8
  275. package/esm2022/lib/form-validators/decorators/sanitize/toFloat.decorator.mjs +0 -8
  276. package/esm2022/lib/form-validators/decorators/sanitize/toInt.decorator.mjs +0 -8
  277. package/esm2022/lib/form-validators/decorators/sanitize/toString.decorator.mjs +0 -8
  278. package/esm2022/lib/form-validators/decorators/sanitize/trim.decorator.mjs +0 -8
  279. package/esm2022/lib/form-validators/decorators/sanitize/whitelist.decorator.mjs +0 -8
  280. package/esm2022/lib/form-validators/decorators/startsWith.decorator.mjs +0 -10
  281. package/esm2022/lib/form-validators/decorators/time.decorator.mjs +0 -10
  282. package/esm2022/lib/form-validators/decorators/unique.decorator.mjs +0 -6
  283. package/esm2022/lib/form-validators/decorators/uppercase.decorator.mjs +0 -6
  284. package/esm2022/lib/form-validators/decorators/url.decorator.mjs +0 -10
  285. package/esm2022/lib/form-validators/directives/base-directive.mjs +0 -75
  286. package/esm2022/lib/form-validators/directives/control-host.directive.mjs +0 -55
  287. package/esm2022/lib/form-validators/directives/html-control-template.directive.mjs +0 -36
  288. package/esm2022/lib/form-validators/directives/rx-form.directive.mjs +0 -234
  289. package/esm2022/lib/form-validators/directives/template-validations/async-validation.directive.mjs +0 -40
  290. package/esm2022/lib/form-validators/directives/template-validations/base-validator.directive.mjs +0 -76
  291. package/esm2022/lib/form-validators/directives/template-validations/control-expression-process.mjs +0 -60
  292. package/esm2022/lib/form-validators/directives/template-validations/file-control.directive.mjs +0 -122
  293. package/esm2022/lib/form-validators/directives/template-validations/image-file-control.directive.mjs +0 -74
  294. package/esm2022/lib/form-validators/directives/template-validations/rxformcontrol.directive.mjs +0 -394
  295. package/esm2022/lib/form-validators/domain/disable-provider.mjs +0 -198
  296. package/esm2022/lib/form-validators/domain/element-processor/decimal.provider.mjs +0 -134
  297. package/esm2022/lib/form-validators/domain/element-processor/mask.provider.mjs +0 -453
  298. package/esm2022/lib/form-validators/domain/form-data.mjs +0 -93
  299. package/esm2022/lib/form-validators/enums/error-message-binding-strategy.mjs +0 -11
  300. package/esm2022/lib/form-validators/enums/index.mjs +0 -5
  301. package/esm2022/lib/form-validators/enums/ip-version.mjs +0 -7
  302. package/esm2022/lib/form-validators/enums/numeric-value-type.mjs +0 -7
  303. package/esm2022/lib/form-validators/enums/reset-type.mjs +0 -10
  304. package/esm2022/lib/form-validators/enums/url-validation-type.mjs +0 -7
  305. package/esm2022/lib/form-validators/models/config/alpha-config.mjs +0 -2
  306. package/esm2022/lib/form-validators/models/config/array-config.mjs +0 -2
  307. package/esm2022/lib/form-validators/models/config/base-config-fn.mjs +0 -2
  308. package/esm2022/lib/form-validators/models/config/base-config.mjs +0 -2
  309. package/esm2022/lib/form-validators/models/config/base-date-config.mjs +0 -2
  310. package/esm2022/lib/form-validators/models/config/choice-config.mjs +0 -2
  311. package/esm2022/lib/form-validators/models/config/compare-config.mjs +0 -2
  312. package/esm2022/lib/form-validators/models/config/component-config.mjs +0 -2
  313. package/esm2022/lib/form-validators/models/config/compose-config.mjs +0 -2
  314. package/esm2022/lib/form-validators/models/config/contains-config.mjs +0 -2
  315. package/esm2022/lib/form-validators/models/config/credit-card-config.mjs +0 -2
  316. package/esm2022/lib/form-validators/models/config/custom-config.mjs +0 -2
  317. package/esm2022/lib/form-validators/models/config/date-config.mjs +0 -2
  318. package/esm2022/lib/form-validators/models/config/default-config.mjs +0 -2
  319. package/esm2022/lib/form-validators/models/config/digit-config.mjs +0 -2
  320. package/esm2022/lib/form-validators/models/config/disable-config.mjs +0 -2
  321. package/esm2022/lib/form-validators/models/config/element-class-config.mjs +0 -2
  322. package/esm2022/lib/form-validators/models/config/email-config.mjs +0 -2
  323. package/esm2022/lib/form-validators/models/config/error-config.mjs +0 -2
  324. package/esm2022/lib/form-validators/models/config/extension-config.mjs +0 -2
  325. package/esm2022/lib/form-validators/models/config/factor-config.mjs +0 -2
  326. package/esm2022/lib/form-validators/models/config/field-config.mjs +0 -2
  327. package/esm2022/lib/form-validators/models/config/file-config.mjs +0 -2
  328. package/esm2022/lib/form-validators/models/config/hex-color-config.mjs +0 -2
  329. package/esm2022/lib/form-validators/models/config/iban-config.mjs +0 -2
  330. package/esm2022/lib/form-validators/models/config/image-config.mjs +0 -2
  331. package/esm2022/lib/form-validators/models/config/index.mjs +0 -35
  332. package/esm2022/lib/form-validators/models/config/ip-config.mjs +0 -2
  333. package/esm2022/lib/form-validators/models/config/logical-operator-config.mjs +0 -2
  334. package/esm2022/lib/form-validators/models/config/mask-config.mjs +0 -2
  335. package/esm2022/lib/form-validators/models/config/max-date-config.mjs +0 -2
  336. package/esm2022/lib/form-validators/models/config/message-config.mjs +0 -2
  337. package/esm2022/lib/form-validators/models/config/min-date-config.mjs +0 -2
  338. package/esm2022/lib/form-validators/models/config/model-config.mjs +0 -2
  339. package/esm2022/lib/form-validators/models/config/number-config.mjs +0 -2
  340. package/esm2022/lib/form-validators/models/config/numeric-config.mjs +0 -2
  341. package/esm2022/lib/form-validators/models/config/password-config.mjs +0 -2
  342. package/esm2022/lib/form-validators/models/config/pattern-config.mjs +0 -2
  343. package/esm2022/lib/form-validators/models/config/prop-config.mjs +0 -2
  344. package/esm2022/lib/form-validators/models/config/props-config.mjs +0 -2
  345. package/esm2022/lib/form-validators/models/config/range-config.mjs +0 -2
  346. package/esm2022/lib/form-validators/models/config/relational-operator-config.mjs +0 -2
  347. package/esm2022/lib/form-validators/models/config/required-config.mjs +0 -2
  348. package/esm2022/lib/form-validators/models/config/rule-config.mjs +0 -2
  349. package/esm2022/lib/form-validators/models/config/sanitize-config.mjs +0 -2
  350. package/esm2022/lib/form-validators/models/config/size-config.mjs +0 -2
  351. package/esm2022/lib/form-validators/models/config/string-comparison-config.mjs +0 -2
  352. package/esm2022/lib/form-validators/models/config/string-value-config.mjs +0 -2
  353. package/esm2022/lib/form-validators/models/config/time-config.mjs +0 -2
  354. package/esm2022/lib/form-validators/models/config/todate-config.mjs +0 -2
  355. package/esm2022/lib/form-validators/models/config/unique-config.mjs +0 -2
  356. package/esm2022/lib/form-validators/models/config/update-on-config.mjs +0 -2
  357. package/esm2022/lib/form-validators/models/config/url-config.mjs +0 -2
  358. package/esm2022/lib/form-validators/models/control-info.mjs +0 -2
  359. package/esm2022/lib/form-validators/models/data-sanitizer.mjs +0 -2
  360. package/esm2022/lib/form-validators/models/decorator-configuration.mjs +0 -2
  361. package/esm2022/lib/form-validators/models/form-builder-configuration.mjs +0 -58
  362. package/esm2022/lib/form-validators/models/index.mjs +0 -3
  363. package/esm2022/lib/form-validators/models/instance-container.mjs +0 -2
  364. package/esm2022/lib/form-validators/models/interface/array-prop-instance-config.interface.mjs +0 -2
  365. package/esm2022/lib/form-validators/models/interface/auto-instance-config.interface.mjs +0 -2
  366. package/esm2022/lib/form-validators/models/interface/form-data-config.mjs +0 -2
  367. package/esm2022/lib/form-validators/models/interface/i-abstract-control.mjs +0 -30
  368. package/esm2022/lib/form-validators/models/interface/i-form-group.mjs +0 -2
  369. package/esm2022/lib/form-validators/models/interface/instance-argument.interface.mjs +0 -2
  370. package/esm2022/lib/form-validators/models/interface/object-prop-instance-config.interface.mjs +0 -2
  371. package/esm2022/lib/form-validators/models/interface/options.mjs +0 -2
  372. package/esm2022/lib/form-validators/models/password-validation.model.mjs +0 -2
  373. package/esm2022/lib/form-validators/models/prop-validation-config.mjs +0 -2
  374. package/esm2022/lib/form-validators/models/property-info.mjs +0 -2
  375. package/esm2022/lib/form-validators/public_api.mjs +0 -26
  376. package/esm2022/lib/form-validators/reactive-form-validators/allOf.validator.mjs +0 -33
  377. package/esm2022/lib/form-validators/reactive-form-validators/alpha.validator.mjs +0 -15
  378. package/esm2022/lib/form-validators/reactive-form-validators/alphaNumeric.validator.mjs +0 -15
  379. package/esm2022/lib/form-validators/reactive-form-validators/and.validator.mjs +0 -38
  380. package/esm2022/lib/form-validators/reactive-form-validators/ascii.validator.mjs +0 -15
  381. package/esm2022/lib/form-validators/reactive-form-validators/async/base.async.validator.mjs +0 -45
  382. package/esm2022/lib/form-validators/reactive-form-validators/choice.validator.mjs +0 -31
  383. package/esm2022/lib/form-validators/reactive-form-validators/compare.validator.mjs +0 -32
  384. package/esm2022/lib/form-validators/reactive-form-validators/compose.validator.mjs +0 -34
  385. package/esm2022/lib/form-validators/reactive-form-validators/conditional-change.validator.mjs +0 -63
  386. package/esm2022/lib/form-validators/reactive-form-validators/contains.validator.mjs +0 -22
  387. package/esm2022/lib/form-validators/reactive-form-validators/credit-card.validator.mjs +0 -48
  388. package/esm2022/lib/form-validators/reactive-form-validators/cusip.validator.mjs +0 -38
  389. package/esm2022/lib/form-validators/reactive-form-validators/custom.validator.mjs +0 -25
  390. package/esm2022/lib/form-validators/reactive-form-validators/dataUri.validator.mjs +0 -9
  391. package/esm2022/lib/form-validators/reactive-form-validators/date.validator.mjs +0 -8
  392. package/esm2022/lib/form-validators/reactive-form-validators/different.validator.mjs +0 -19
  393. package/esm2022/lib/form-validators/reactive-form-validators/digit.validator.mjs +0 -9
  394. package/esm2022/lib/form-validators/reactive-form-validators/email.validator.mjs +0 -9
  395. package/esm2022/lib/form-validators/reactive-form-validators/endsWith.validator.mjs +0 -23
  396. package/esm2022/lib/form-validators/reactive-form-validators/even.validator.mjs +0 -15
  397. package/esm2022/lib/form-validators/reactive-form-validators/extension.validator.mjs +0 -40
  398. package/esm2022/lib/form-validators/reactive-form-validators/factor.validator.mjs +0 -37
  399. package/esm2022/lib/form-validators/reactive-form-validators/file.validator.mjs +0 -26
  400. package/esm2022/lib/form-validators/reactive-form-validators/fileSize.validator.mjs +0 -34
  401. package/esm2022/lib/form-validators/reactive-form-validators/greater-than-equal-to.validator.mjs +0 -8
  402. package/esm2022/lib/form-validators/reactive-form-validators/greater-than.validator.mjs +0 -8
  403. package/esm2022/lib/form-validators/reactive-form-validators/grid.validator.mjs +0 -31
  404. package/esm2022/lib/form-validators/reactive-form-validators/hexcolor.validator.mjs +0 -9
  405. package/esm2022/lib/form-validators/reactive-form-validators/iban.validator.mjs +0 -28
  406. package/esm2022/lib/form-validators/reactive-form-validators/image.validator.mjs +0 -52
  407. package/esm2022/lib/form-validators/reactive-form-validators/index.mjs +0 -66
  408. package/esm2022/lib/form-validators/reactive-form-validators/ip.validator.mjs +0 -28
  409. package/esm2022/lib/form-validators/reactive-form-validators/json.validator.mjs +0 -26
  410. package/esm2022/lib/form-validators/reactive-form-validators/latLong.validator.mjs +0 -18
  411. package/esm2022/lib/form-validators/reactive-form-validators/latitude.validator.mjs +0 -9
  412. package/esm2022/lib/form-validators/reactive-form-validators/leapYear.validator.mjs +0 -16
  413. package/esm2022/lib/form-validators/reactive-form-validators/less-than-equal-to.validator.mjs +0 -8
  414. package/esm2022/lib/form-validators/reactive-form-validators/less-than.validator.mjs +0 -8
  415. package/esm2022/lib/form-validators/reactive-form-validators/longitude.validator.mjs +0 -9
  416. package/esm2022/lib/form-validators/reactive-form-validators/lowercase.validator.mjs +0 -15
  417. package/esm2022/lib/form-validators/reactive-form-validators/mac.validator.mjs +0 -9
  418. package/esm2022/lib/form-validators/reactive-form-validators/mask.validator.mjs +0 -14
  419. package/esm2022/lib/form-validators/reactive-form-validators/maxDate.validator.mjs +0 -8
  420. package/esm2022/lib/form-validators/reactive-form-validators/maxLength.validator.mjs +0 -17
  421. package/esm2022/lib/form-validators/reactive-form-validators/maxNumber.validator.mjs +0 -17
  422. package/esm2022/lib/form-validators/reactive-form-validators/maxTime.validator.mjs +0 -8
  423. package/esm2022/lib/form-validators/reactive-form-validators/minDate.validator.mjs +0 -8
  424. package/esm2022/lib/form-validators/reactive-form-validators/minLength.validator.mjs +0 -16
  425. package/esm2022/lib/form-validators/reactive-form-validators/minNumber.validator.mjs +0 -16
  426. package/esm2022/lib/form-validators/reactive-form-validators/minTime.validator.mjs +0 -8
  427. package/esm2022/lib/form-validators/reactive-form-validators/noneOf.validator.mjs +0 -24
  428. package/esm2022/lib/form-validators/reactive-form-validators/not.validator.mjs +0 -25
  429. package/esm2022/lib/form-validators/reactive-form-validators/notEmpty.validator.mjs +0 -17
  430. package/esm2022/lib/form-validators/reactive-form-validators/numeric.validator.mjs +0 -22
  431. package/esm2022/lib/form-validators/reactive-form-validators/odd.validator.mjs +0 -17
  432. package/esm2022/lib/form-validators/reactive-form-validators/oneOf.validator.mjs +0 -26
  433. package/esm2022/lib/form-validators/reactive-form-validators/or.validator.mjs +0 -25
  434. package/esm2022/lib/form-validators/reactive-form-validators/password.validator.mjs +0 -35
  435. package/esm2022/lib/form-validators/reactive-form-validators/pattern.validator.mjs +0 -19
  436. package/esm2022/lib/form-validators/reactive-form-validators/port.validator.mjs +0 -19
  437. package/esm2022/lib/form-validators/reactive-form-validators/primeNumber.validator.mjs +0 -27
  438. package/esm2022/lib/form-validators/reactive-form-validators/range.validator.mjs +0 -17
  439. package/esm2022/lib/form-validators/reactive-form-validators/required.validator.mjs +0 -17
  440. package/esm2022/lib/form-validators/reactive-form-validators/requiredTrue.validator.mjs +0 -16
  441. package/esm2022/lib/form-validators/reactive-form-validators/rule.validator.mjs +0 -22
  442. package/esm2022/lib/form-validators/reactive-form-validators/startsWith.validator.mjs +0 -25
  443. package/esm2022/lib/form-validators/reactive-form-validators/time.validator.mjs +0 -19
  444. package/esm2022/lib/form-validators/reactive-form-validators/unique.validator.mjs +0 -77
  445. package/esm2022/lib/form-validators/reactive-form-validators/uppercase.validator.mjs +0 -16
  446. package/esm2022/lib/form-validators/reactive-form-validators/url.validator.mjs +0 -28
  447. package/esm2022/lib/form-validators/services/base-form-builder.mjs +0 -220
  448. package/esm2022/lib/form-validators/services/entity.service.mjs +0 -76
  449. package/esm2022/lib/form-validators/services/form-control.mjs +0 -370
  450. package/esm2022/lib/form-validators/services/form-group.mjs +0 -2
  451. package/esm2022/lib/form-validators/services/reactive-form.module.mjs +0 -52
  452. package/esm2022/lib/form-validators/services/rx-form-array.mjs +0 -114
  453. package/esm2022/lib/form-validators/services/rx-form-builder.mjs +0 -1035
  454. package/esm2022/lib/form-validators/services/rx-form-group.mjs +0 -451
  455. package/esm2022/lib/form-validators/services/typed-form-builder.mjs +0 -25
  456. package/esm2022/lib/form-validators/util/alphabet-regex.locale.mjs +0 -29
  457. package/esm2022/lib/form-validators/util/app-util.mjs +0 -161
  458. package/esm2022/lib/form-validators/util/check-length.mjs +0 -11
  459. package/esm2022/lib/form-validators/util/config-provider.mjs +0 -37
  460. package/esm2022/lib/form-validators/util/date-checker.function.mjs +0 -52
  461. package/esm2022/lib/form-validators/util/date-provider.mjs +0 -108
  462. package/esm2022/lib/form-validators/util/form-const.mjs +0 -3
  463. package/esm2022/lib/form-validators/util/form-provider.mjs +0 -87
  464. package/esm2022/lib/form-validators/util/index.mjs +0 -7
  465. package/esm2022/lib/form-validators/util/instance-provider.function.mjs +0 -63
  466. package/esm2022/lib/form-validators/util/ip-checker.mjs +0 -19
  467. package/esm2022/lib/form-validators/util/linq.mjs +0 -157
  468. package/esm2022/lib/form-validators/util/object-maker.mjs +0 -68
  469. package/esm2022/lib/form-validators/util/reactive-form-config.mjs +0 -25
  470. package/esm2022/lib/form-validators/util/regex-rules.mjs +0 -37
  471. package/esm2022/lib/form-validators/util/regex-validator.mjs +0 -74
  472. package/esm2022/lib/form-validators/util/relational-checker.function.mjs +0 -92
  473. package/esm2022/lib/form-validators/util/reset-form.mjs +0 -57
  474. package/esm2022/lib/form-validators/util/sanitizers.mjs +0 -140
  475. package/esm2022/lib/form-validators/util/time-checker.function.mjs +0 -50
  476. package/esm2022/lib/form-validators/util/type.mjs +0 -2
  477. package/esm2022/lib/form-validators/util/validator-value-checker.mjs +0 -21
  478. package/esm2022/lib/form-validators/validators-extension/allOf-validator.extension.mjs +0 -11
  479. package/esm2022/lib/form-validators/validators-extension/alpha-validator.extension.mjs +0 -11
  480. package/esm2022/lib/form-validators/validators-extension/alphaNumeric-validator.extension.mjs +0 -11
  481. package/esm2022/lib/form-validators/validators-extension/and-validator.extension.mjs +0 -7
  482. package/esm2022/lib/form-validators/validators-extension/ascii-validator.extension.mjs +0 -7
  483. package/esm2022/lib/form-validators/validators-extension/base-validator.function.mjs +0 -34
  484. package/esm2022/lib/form-validators/validators-extension/choice-validator.extension.mjs +0 -11
  485. package/esm2022/lib/form-validators/validators-extension/compare-validator.extension.mjs +0 -7
  486. package/esm2022/lib/form-validators/validators-extension/compose-validator.extension.mjs +0 -7
  487. package/esm2022/lib/form-validators/validators-extension/contains-validator.extension.mjs +0 -11
  488. package/esm2022/lib/form-validators/validators-extension/credit-card-validator.extension.mjs +0 -11
  489. package/esm2022/lib/form-validators/validators-extension/cusip-validator.extension.mjs +0 -7
  490. package/esm2022/lib/form-validators/validators-extension/custom-validator.extension.mjs +0 -11
  491. package/esm2022/lib/form-validators/validators-extension/dataUri-validator.extension.mjs +0 -7
  492. package/esm2022/lib/form-validators/validators-extension/date-validator.extension.mjs +0 -11
  493. package/esm2022/lib/form-validators/validators-extension/different-validator.extension.mjs +0 -7
  494. package/esm2022/lib/form-validators/validators-extension/digit-validator.extension.mjs +0 -7
  495. package/esm2022/lib/form-validators/validators-extension/email-validator.extension.mjs +0 -7
  496. package/esm2022/lib/form-validators/validators-extension/endsWith-validator.extension.mjs +0 -11
  497. package/esm2022/lib/form-validators/validators-extension/even-validator.extension.mjs +0 -7
  498. package/esm2022/lib/form-validators/validators-extension/extension-validator.extension.mjs +0 -10
  499. package/esm2022/lib/form-validators/validators-extension/factor-validator.extension.mjs +0 -11
  500. package/esm2022/lib/form-validators/validators-extension/file-validator.extension.mjs +0 -10
  501. package/esm2022/lib/form-validators/validators-extension/fileSize-validator.extension.mjs +0 -10
  502. package/esm2022/lib/form-validators/validators-extension/greater-than-equal-to-validator.extension.mjs +0 -11
  503. package/esm2022/lib/form-validators/validators-extension/greater-than-validator.extension.mjs +0 -11
  504. package/esm2022/lib/form-validators/validators-extension/grid-validator.extension.mjs +0 -7
  505. package/esm2022/lib/form-validators/validators-extension/hexcolor-validator.extension.mjs +0 -7
  506. package/esm2022/lib/form-validators/validators-extension/iban-validator.extension.mjs +0 -11
  507. package/esm2022/lib/form-validators/validators-extension/image-validator.extension.mjs +0 -10
  508. package/esm2022/lib/form-validators/validators-extension/index.mjs +0 -68
  509. package/esm2022/lib/form-validators/validators-extension/ip-validator.extension.mjs +0 -11
  510. package/esm2022/lib/form-validators/validators-extension/json-validator.extension.mjs +0 -7
  511. package/esm2022/lib/form-validators/validators-extension/latLong-validator.extension.mjs +0 -7
  512. package/esm2022/lib/form-validators/validators-extension/latitude-validator.extension.mjs +0 -7
  513. package/esm2022/lib/form-validators/validators-extension/leapYear-validator.extension.mjs +0 -7
  514. package/esm2022/lib/form-validators/validators-extension/less-than-equal-to-validator.extension.mjs +0 -11
  515. package/esm2022/lib/form-validators/validators-extension/less-than-validator.extension.mjs +0 -11
  516. package/esm2022/lib/form-validators/validators-extension/longitude-validator.extension.mjs +0 -7
  517. package/esm2022/lib/form-validators/validators-extension/lowercase-validator.extension.mjs +0 -7
  518. package/esm2022/lib/form-validators/validators-extension/mac-validator.extension.mjs +0 -7
  519. package/esm2022/lib/form-validators/validators-extension/mask-validator.extension.mjs +0 -7
  520. package/esm2022/lib/form-validators/validators-extension/maxDate-validator.extension.mjs +0 -11
  521. package/esm2022/lib/form-validators/validators-extension/maxLength-validator.extension.mjs +0 -11
  522. package/esm2022/lib/form-validators/validators-extension/maxNumber-validator.extension.mjs +0 -11
  523. package/esm2022/lib/form-validators/validators-extension/maxTime-validator.extension.mjs +0 -11
  524. package/esm2022/lib/form-validators/validators-extension/minDate-validator.extension.mjs +0 -11
  525. package/esm2022/lib/form-validators/validators-extension/minLength-validator.extension.mjs +0 -11
  526. package/esm2022/lib/form-validators/validators-extension/minNumber-validator.extension.mjs +0 -11
  527. package/esm2022/lib/form-validators/validators-extension/minTime-validator.extension.mjs +0 -11
  528. package/esm2022/lib/form-validators/validators-extension/noneOf-validator.extension.mjs +0 -11
  529. package/esm2022/lib/form-validators/validators-extension/not-validator.extension.mjs +0 -7
  530. package/esm2022/lib/form-validators/validators-extension/notEmpty-validator.extension.mjs +0 -7
  531. package/esm2022/lib/form-validators/validators-extension/numeric-validator.extension.mjs +0 -11
  532. package/esm2022/lib/form-validators/validators-extension/odd-validator.extension.mjs +0 -7
  533. package/esm2022/lib/form-validators/validators-extension/oneOf-validator.extension.mjs +0 -11
  534. package/esm2022/lib/form-validators/validators-extension/or-validator.extension.mjs +0 -7
  535. package/esm2022/lib/form-validators/validators-extension/password-validator.extension.mjs +0 -11
  536. package/esm2022/lib/form-validators/validators-extension/pattern-validator.extension.mjs +0 -11
  537. package/esm2022/lib/form-validators/validators-extension/port-validator.extension.mjs +0 -7
  538. package/esm2022/lib/form-validators/validators-extension/primeNumber-validator.extension.mjs +0 -7
  539. package/esm2022/lib/form-validators/validators-extension/range-validator.extension.mjs +0 -11
  540. package/esm2022/lib/form-validators/validators-extension/required-validator.extension.mjs +0 -7
  541. package/esm2022/lib/form-validators/validators-extension/requiredTrue-validator.extension.mjs +0 -7
  542. package/esm2022/lib/form-validators/validators-extension/rxweb-validators.mjs +0 -108
  543. package/esm2022/lib/form-validators/validators-extension/startsWith-validator.extension.mjs +0 -11
  544. package/esm2022/lib/form-validators/validators-extension/time-validator.extension.mjs +0 -11
  545. package/esm2022/lib/form-validators/validators-extension/unique-validator.extension.mjs +0 -7
  546. package/esm2022/lib/form-validators/validators-extension/uppercase-validator.extension.mjs +0 -7
  547. package/esm2022/lib/form-validators/validators-extension/url-validator.extension.mjs +0 -11
  548. package/esm2022/lib/form-validators/validators-function/alpha-validation.function.mjs +0 -71
  549. package/esm2022/lib/form-validators/validators-function/regex-validation.function.mjs +0 -33
  550. package/esm2022/lib/forms/components/datepicker/datepicker-header.component.mjs +0 -84
  551. package/esm2022/lib/forms/components/generic-form/generic-form.component.mjs +0 -602
  552. package/esm2022/lib/forms/constants/constants.mjs +0 -4
  553. package/esm2022/lib/forms/directives/mat-form-field-editor.directive.mjs +0 -197
  554. package/esm2022/lib/forms/directives/mat-form-field-readonly.directive.mjs +0 -34
  555. package/esm2022/lib/forms/directives/parse-decimal-directive.mjs +0 -87
  556. package/esm2022/lib/forms/directives/vd-generic-form-custom-field.directive.mjs +0 -35
  557. package/esm2022/lib/forms/enums/form-field-type.mjs +0 -23
  558. package/esm2022/lib/forms/forms.module.mjs +0 -168
  559. package/esm2022/lib/forms/functions/decorators.mjs +0 -136
  560. package/esm2022/lib/forms/functions/functions.mjs +0 -72
  561. package/esm2022/lib/forms/helpers/abstract-mat-form-field.mjs +0 -308
  562. package/esm2022/lib/forms/helpers/abstract-select-form-field.component.mjs +0 -492
  563. package/esm2022/lib/forms/helpers/value-accessor-base.mjs +0 -146
  564. package/esm2022/lib/forms/models/form-definition.mjs +0 -63
  565. package/esm2022/lib/forms/models/form-field-definition.mjs +0 -468
  566. package/esm2022/lib/forms/models/form-field-group-definition.mjs +0 -55
  567. package/esm2022/lib/forms/pipes/field-func.pipe.mjs +0 -23
  568. package/esm2022/lib/forms/pipes/group-filter.pipe.mjs +0 -34
  569. package/esm2022/lib/forms/public_api.mjs +0 -5
  570. package/esm2022/lib/forms/validators/empty-string-reset.directive.mjs +0 -25
  571. package/esm2022/lib/forms/validators/equal-validator.directive.mjs +0 -69
  572. package/esm2022/lib/forms/validators/native-element-injector.directive.mjs +0 -41
  573. package/esm2022/lib/forms/validators/unique-validator-directive.mjs +0 -88
  574. package/esm2022/lib/http/http.module.mjs +0 -15
  575. package/esm2022/lib/http/models/response.mjs +0 -24
  576. package/esm2022/lib/http/public_api.mjs +0 -2
  577. package/esm2022/lib/http/services/generic.service.mjs +0 -331
  578. package/esm2022/lib/layout/dynamic-menu/dynamic-menu.component.mjs +0 -103
  579. package/esm2022/lib/layout/layout-card-over/layout-card-over.component.mjs +0 -49
  580. package/esm2022/lib/layout/layout-compact/layout-compact.component.mjs +0 -193
  581. package/esm2022/lib/layout/layout-footer/layout-footer.component.mjs +0 -37
  582. package/esm2022/lib/layout/layout-manage-list/layout-manage-list.component.mjs +0 -150
  583. package/esm2022/lib/layout/layout-manage-list/layout-manage-list.directives.mjs +0 -108
  584. package/esm2022/lib/layout/layout-nav/layout-nav.component.mjs +0 -146
  585. package/esm2022/lib/layout/layout-nav-list/layout-nav-list.component.mjs +0 -141
  586. package/esm2022/lib/layout/layout-nav-list/layout-nav-list.directives.mjs +0 -105
  587. package/esm2022/lib/layout/layout-toggle.class.mjs +0 -89
  588. package/esm2022/lib/layout/layout.component.mjs +0 -230
  589. package/esm2022/lib/layout/layout.directives.mjs +0 -81
  590. package/esm2022/lib/layout/layout.module.mjs +0 -144
  591. package/esm2022/lib/layout/list-toolbar/list-toolbar.component.mjs +0 -47
  592. package/esm2022/lib/layout/navigation-drawer/navigation-drawer.component.mjs +0 -275
  593. package/esm2022/lib/layout/public_api.mjs +0 -2
  594. package/esm2022/lib/list/components/list.component.mjs +0 -78
  595. package/esm2022/lib/list/directives/vd-list-option.directive.mjs +0 -23
  596. package/esm2022/lib/list/list.module.mjs +0 -36
  597. package/esm2022/lib/list/public_api.mjs +0 -3
  598. package/esm2022/lib/media/directives/media-toggle.directive.mjs +0 -154
  599. package/esm2022/lib/media/media.module.mjs +0 -35
  600. package/esm2022/lib/media/public_api.mjs +0 -2
  601. package/esm2022/lib/media/services/media.service.mjs +0 -110
  602. package/esm2022/lib/menu/components/menu.component.mjs +0 -95
  603. package/esm2022/lib/menu/enums/menu-scope.mjs +0 -6
  604. package/esm2022/lib/menu/menu.module.mjs +0 -64
  605. package/esm2022/lib/menu/models/menu-client.mjs +0 -39
  606. package/esm2022/lib/menu/models/menu-department.mjs +0 -39
  607. package/esm2022/lib/menu/models/menu-item-client.mjs +0 -39
  608. package/esm2022/lib/menu/models/menu-item-department.mjs +0 -39
  609. package/esm2022/lib/menu/models/menu-item.mjs +0 -351
  610. package/esm2022/lib/menu/models/menu-settings.mjs +0 -13
  611. package/esm2022/lib/menu/models/menu.mjs +0 -224
  612. package/esm2022/lib/menu/public_api.mjs +0 -3
  613. package/esm2022/lib/menu/resolvers/menu-form-includes.resolve.mjs +0 -50
  614. package/esm2022/lib/menu/resolvers/menu-item-form-includes.resolve.mjs +0 -50
  615. package/esm2022/lib/menu/resolvers/menu-list-projection.resolve.mjs +0 -51
  616. package/esm2022/lib/menu/resolvers/menu-settings.resolve.mjs +0 -24
  617. package/esm2022/lib/menu/services/menu-items.service.mjs +0 -19
  618. package/esm2022/lib/menu/services/menu.resolve.mjs +0 -68
  619. package/esm2022/lib/menu/services/menu.service.mjs +0 -19
  620. package/esm2022/lib/search/public_api.mjs +0 -2
  621. package/esm2022/lib/search/search.module.mjs +0 -33
  622. package/esm2022/lib/select/components/select.component.mjs +0 -215
  623. package/esm2022/lib/select/directives/vd-select-option.directive.mjs +0 -23
  624. package/esm2022/lib/select/directives/vd-select-trigger.directive.mjs +0 -23
  625. package/esm2022/lib/select/public_api.mjs +0 -4
  626. package/esm2022/lib/select/select.module.mjs +0 -48
  627. package/esm2022/lib/table/components/dynamic-table/dynamic-table.component.mjs +0 -810
  628. package/esm2022/lib/table/components/filter-clear/filter-clear.component.mjs +0 -36
  629. package/esm2022/lib/table/components/filter-date/filter-date.component.mjs +0 -146
  630. package/esm2022/lib/table/components/filter-input/filter-input.component.mjs +0 -198
  631. package/esm2022/lib/table/components/filter-select/filter-select.component.mjs +0 -375
  632. package/esm2022/lib/table/constants/constants.mjs +0 -3
  633. package/esm2022/lib/table/directives/data-source-filter.directive.mjs +0 -49
  634. package/esm2022/lib/table/directives/vd-table-field.directive.mjs +0 -35
  635. package/esm2022/lib/table/enums/grid.mjs +0 -12
  636. package/esm2022/lib/table/enums/table-column-type.mjs +0 -17
  637. package/esm2022/lib/table/functions/decorators.mjs +0 -163
  638. package/esm2022/lib/table/functions/functions.mjs +0 -28
  639. package/esm2022/lib/table/models/facet-value.mjs +0 -47
  640. package/esm2022/lib/table/models/facet.mjs +0 -48
  641. package/esm2022/lib/table/models/pagination.mjs +0 -27
  642. package/esm2022/lib/table/models/table-column-config.mjs +0 -128
  643. package/esm2022/lib/table/models/table-column.mjs +0 -270
  644. package/esm2022/lib/table/models/table-config.mjs +0 -41
  645. package/esm2022/lib/table/models/table-definition.mjs +0 -110
  646. package/esm2022/lib/table/models/table-query-config.mjs +0 -26
  647. package/esm2022/lib/table/paginator-intl.mjs +0 -41
  648. package/esm2022/lib/table/public_api.mjs +0 -2
  649. package/esm2022/lib/table/table.data-source.mjs +0 -326
  650. package/esm2022/lib/table/table.module.mjs +0 -165
  651. package/esm2022/lib/table/table.static-data-source.mjs +0 -198
  652. package/esm2022/messaia-cdk.mjs +0 -5
  653. package/esm2022/public_api.mjs +0 -19
  654. package/lib/common/styles/_elevation.scss +0 -147
  655. package/lib/common/styles/_rtl.scss +0 -28
  656. package/lib/common/styles/_styles.scss +0 -12
  657. package/lib/common/styles/_theme-functions.scss +0 -4
  658. package/lib/common/styles/_typography.scss +0 -76
  659. package/lib/common/styles/core/_content.scss +0 -42
  660. package/lib/common/styles/core/_divider.scss +0 -14
  661. package/lib/common/styles/core/_icons.scss +0 -27
  662. package/lib/common/styles/core/_list.scss +0 -8
  663. package/lib/common/styles/core/_toolbar.scss +0 -31
  664. package/lib/common/styles/core/_whiteframe.scss +0 -111
  665. package/lib/common/styles/m2/_theme-functions.scss +0 -21
  666. package/lib/common/styles/m3/_theme-functions.scss +0 -21
  667. package/lib/common/styles/platform.scss +0 -11
  668. package/lib/common/theming/_all-theme.scss +0 -27
  669. package/lib/common/typography/_all-typography.scss +0 -33
@@ -1,331 +0,0 @@
1
- import { HttpClient, HttpEventType, HttpHeaders, HttpParams, HttpRequest } from '@angular/common/http';
2
- import { BehaviorSubject, throwError } from 'rxjs';
3
- import { catchError, map } from 'rxjs/operators';
4
- import { Utils } from '../../common/functions/utils';
5
- import { ServiceLocator } from '../../common/services/service-locator';
6
- export class GenericService {
7
- endpoint;
8
- /**
9
- * Http client
10
- */
11
- http;
12
- /**
13
- * List of entities
14
- */
15
- list = new BehaviorSubject([]);
16
- /**
17
- * Constructor
18
- *
19
- * @param http
20
- */
21
- constructor(endpoint) {
22
- this.endpoint = endpoint;
23
- this.http = ServiceLocator.getService(HttpClient);
24
- }
25
- /**
26
- * Gets a single entity
27
- *
28
- * @param id The id of the entity or relative path
29
- * @param params Adds query params to the request
30
- * @param headers Adds headers to the request
31
- */
32
- get(id, params, headers, handleError = true, observeResponse = false) {
33
- let request = this.http
34
- .get(`${this.endpoint}/${id}`, { observe: (observeResponse ? 'response' : 'body'), params: Utils.toHttpParams(params), headers: this.toHttpHeaders(headers) });
35
- /* Handle error */
36
- if (handleError) {
37
- request = request.pipe(catchError(this.handleError('get')));
38
- }
39
- return request;
40
- }
41
- /**
42
- * Counts entities
43
- *
44
- * @param params Adds query params to the request
45
- * @param path A relative path to the action
46
- * @param headers Adds headers to the request
47
- * @param handleError Handle errors
48
- */
49
- count(params, path, headers, handleError = true) {
50
- let request = this.http
51
- .get(`${this.endpoint}${path ? path : '/count'}`, { params: Utils.toHttpParams(params), headers: this.toHttpHeaders(headers) });
52
- /* Handle error */
53
- if (handleError) {
54
- request = request.pipe(catchError(this.handleError('count')));
55
- }
56
- return request.pipe(map(x => { return x.value; }));
57
- }
58
- /**
59
- * Gets a list of entities.
60
- *
61
- * @param params Optional. Adds query params to the request.
62
- * @param path Optional. A relative path to the action.
63
- * @param headers Optional. Adds headers to the request.
64
- * @returns An Observable with the response data.
65
- */
66
- getList(params, path, headers) {
67
- return this.http
68
- .get(`${this.endpoint}${path ? path : ''}`, { params: params instanceof HttpParams ? params : Utils.toHttpParams(params), headers: this.toHttpHeaders(headers) })
69
- .pipe(catchError(this.handleError('getList')));
70
- }
71
- /**
72
- * Loads data
73
- * @param params Adds query params to the request
74
- * @param path A relative path to the action
75
- * @param headers Adds headers to the request
76
- */
77
- loadList(params, path, headers) {
78
- this.getList(params, path, headers)
79
- .subscribe(x => this.list.next(x));
80
- }
81
- /**
82
- * Gets result list as Observable
83
- */
84
- getListAsObservable() {
85
- return this.list.asObservable();
86
- }
87
- /**
88
- * Creates an entity
89
- *
90
- * @param entity The entity to create
91
- * @param path A relative path to the action
92
- * @param httpOptions Additional http options, like headers and so on
93
- * @param handleError Handle errors
94
- */
95
- create(entity, path, httpOptions, handleError = true) {
96
- let request = this.http
97
- .post(`${this.endpoint}${path ? path : ''}`, entity, httpOptions);
98
- /* Handle error */
99
- if (handleError) {
100
- request = request.pipe(catchError(this.handleError('create')));
101
- }
102
- return request;
103
- }
104
- /**
105
- * Updates an entity
106
- *
107
- * @param entity The entity to update
108
- * @param path A relative path to the action
109
- * @param httpOptions Additional http options, like headers and so on
110
- * @param handleError Handle errors
111
- */
112
- update(id, entity, path, httpOptions, handleError = true) {
113
- let request = this.http
114
- .put(`${this.endpoint}${path ? path : ''}/${id}`, entity, httpOptions);
115
- /* Handle error */
116
- if (handleError) {
117
- request = request.pipe(catchError(this.handleError('update')));
118
- }
119
- return request;
120
- }
121
- /**
122
- * Patches an entity
123
- *
124
- * @param id id The id of the item to patch
125
- * @param body The body
126
- * @param path A relative path to the action
127
- * @param httpOptions Additional http options, like headers and so on
128
- * @param handleError Handle errors
129
- */
130
- patch(id, body, path, httpOptions, handleError = true) {
131
- let request = this.http
132
- .patch(`${this.endpoint}${path ? path : ''}/${id}`, body, httpOptions);
133
- /* Handle error */
134
- if (handleError) {
135
- request = request.pipe(catchError(this.handleError('patch')));
136
- }
137
- return request;
138
- }
139
- /**
140
- * Patches multiple entities
141
- *
142
- * @param ids The ids of the items to patch
143
- * @param body The body
144
- * @param path A relative path to the action
145
- * @param httpOptions Additional http options, like headers and so on
146
- * @param handleError Handle errors
147
- */
148
- patchList(ids, body, path, httpOptions, handleError = true) {
149
- let request = this.http
150
- .patch(`${this.endpoint}${path ? path : ''}`, body, Object.assign(httpOptions || {}, { params: Utils.toHttpParams({ ids: ids }) }));
151
- /* Handle error */
152
- if (handleError) {
153
- request = request.pipe(catchError(this.handleError('patch')));
154
- }
155
- return request;
156
- }
157
- /**
158
- * Deletes an entity.
159
- *
160
- * @param id The id of the item to delete
161
- * @param path A relative path to the action
162
- * @param httpOptions Additional http options, like headers and so on
163
- * @param handleError Handle errors
164
- */
165
- delete(id, path, httpOptions, handleError = true) {
166
- let request = this.http
167
- .delete(`${this.endpoint}${path ? path : ''}/${id}`, httpOptions);
168
- /* Handle error */
169
- if (handleError) {
170
- request = request.pipe(catchError(this.handleError('delete')));
171
- }
172
- return request;
173
- }
174
- /**
175
- * Deletes multiple entities.
176
- *
177
- * @param ids The ids of the items to delete
178
- * @param path A relative path to the action
179
- * @param httpOptions Additional http options, like headers and so on
180
- * @param handleError Handle errors
181
- */
182
- deleteList(ids, path, httpOptions, handleError = true) {
183
- let request = this.http.delete(`${this.endpoint}${path ? path : ''}`, Object.assign(httpOptions || {}, { params: Utils.toHttpParams({ ids: ids }) }));
184
- /* Handle error */
185
- if (handleError) {
186
- request = request.pipe(catchError(this.handleError('deleteList')));
187
- }
188
- return request;
189
- }
190
- /**
191
- * Downloads a file
192
- *
193
- * @param path A relative path to the action
194
- * @param params Some query params
195
- */
196
- download(path, params, handleError = true) {
197
- let request = this.http
198
- .get(`${this.endpoint}/${path ? path : 'download'}`, { params: Utils.toHttpParams(params), responseType: 'arraybuffer', observe: 'response' })
199
- .pipe(map(x => { return { data: x.body, filename: this.getFileNameFromHeaders(x.headers) }; }));
200
- /* Handle error */
201
- if (handleError) {
202
- request = request.pipe(catchError(this.handleError('download')));
203
- }
204
- return request;
205
- }
206
- /**
207
- * Duplicates a record
208
- * @param id
209
- */
210
- duplicate(id) {
211
- return this.create(null, `/duplicate/${id}`);
212
- }
213
- /**
214
- * Uploads a file
215
- *
216
- * @param file The file to upload
217
- * @param path A relative path to the action
218
- */
219
- upload(file, path = 'upload', extraData) {
220
- /* Creates form data object */
221
- const formData = new FormData();
222
- /* Add the file to the form data */
223
- formData.append('file', file, file.name);
224
- /* Iterate and set other form data */
225
- if (extraData) {
226
- for (let key in extraData) {
227
- formData.append(key, extraData[key]);
228
- }
229
- }
230
- /* Set true to reportProgress to enable tracking of progress events */
231
- const req = new HttpRequest('POST', `${this.endpoint}/${path ? path : 'upload'}`, formData, {
232
- reportProgress: true
233
- });
234
- /*
235
- The `HttpClient.request` API produces a raw event stream
236
- which includes start (sent), progress, and response events.
237
- */
238
- return this.http.request(req);
239
- }
240
- ;
241
- ///#region Helpers
242
- /**
243
- * Convert Object to FromData
244
- *
245
- * @param body
246
- */
247
- toFormData(body) {
248
- if (!body) {
249
- return new FormData();
250
- }
251
- return Object.getOwnPropertyNames(body)
252
- .filter(key => body[key] != null && body[key] != '')
253
- .reduce((p, key) => { p.append(key, body[key]); return p; }, new FormData());
254
- }
255
- /**
256
- * Convert Object to HttpHeaders
257
- *
258
- * @param body
259
- */
260
- toHttpHeaders(body) {
261
- if (!body) {
262
- return new HttpHeaders();
263
- }
264
- return Object.getOwnPropertyNames(body)
265
- .filter(key => body[key] != null && body[key] != '')
266
- .reduce((p, key) => p.set(key, body[key]), new HttpHeaders());
267
- }
268
- /**
269
- * Gets file name from Httpheaders: Content-Disposition
270
- * @param disposition
271
- */
272
- getFileNameFromHeaders(headers) {
273
- var disposition = headers.get('content-disposition');
274
- if (disposition && disposition.indexOf('attachment') !== -1) {
275
- var matches = /filename[^;=\n]*=((['"]).*?\2|[^;\n]*)/.exec(disposition);
276
- if (matches != null && matches[1]) {
277
- return matches[1].replace(/['"]/g, '');
278
- }
279
- }
280
- return "";
281
- }
282
- /**
283
- * Handles an HTTP operation that failed.
284
- * Allows the application to continue by throwing a parsed error.
285
- *
286
- * @template T The type of the observable result.
287
- * @param operation The name of the operation that failed. Defaults to 'operation'.
288
- * @param result An optional value to return as the observable result.
289
- * @returns A function that processes the error and returns an observable.
290
- */
291
- handleError(operation = 'operation') {
292
- return (error) => throwError(() => {
293
- if (error.error instanceof ArrayBuffer) {
294
- return JSON.parse(new TextDecoder().decode(new Uint8Array(error.error)));
295
- }
296
- const message = (error.error instanceof ErrorEvent) ? error.error.message : `server returned code ${error.status} with body "${error.error}"`;
297
- return `${operation} failed: ${message}`;
298
- });
299
- }
300
- /**
301
- * Return distinct message for sent, upload progress, & response events
302
- *
303
- * @param event The response event
304
- * @param file The file beeing uploaded
305
- */
306
- getEventMessage(event, file) {
307
- switch (event.type) {
308
- /* Upload started */
309
- case HttpEventType.Sent:
310
- return `Uploading file "${file.name}" of size ${file.size}.`;
311
- /* Compute and show the % done: */
312
- case HttpEventType.UploadProgress:
313
- const percentDone = Math.round(100 * event.loaded / (event?.total ?? 1));
314
- return `File "${file.name}" is ${percentDone}% uploaded.`;
315
- /* Upload completed */
316
- case HttpEventType.Response:
317
- return `File "${file.name}" was completely uploaded!`;
318
- default:
319
- return `File "${file.name}" surprising upload event: ${event.type}.`;
320
- }
321
- }
322
- /**
323
- * Shows upload progress.
324
- *
325
- * @param message
326
- */
327
- showProgress(message) {
328
- console.debug(message);
329
- }
330
- }
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2RrL3NyYy9saWIvaHR0cC9zZXJ2aWNlcy9nZW5lcmljLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBYSxhQUFhLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsSCxPQUFPLEVBQUUsZUFBZSxFQUFjLFVBQVUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFdkUsTUFBTSxPQUFPLGNBQWM7SUFpQlA7SUFmbkI7O09BRUc7SUFDSSxJQUFJLENBQWE7SUFFeEI7O09BRUc7SUFDSSxJQUFJLEdBQTJCLElBQUksZUFBZSxDQUFNLEVBQUUsQ0FBQyxDQUFDO0lBRW5FOzs7O09BSUc7SUFDSCxZQUFtQixRQUFpQjtRQUFqQixhQUFRLEdBQVIsUUFBUSxDQUFTO1FBQ25DLElBQUksQ0FBQyxJQUFJLEdBQUcsY0FBYyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksR0FBRyxDQUFJLEVBQW1CLEVBQUUsTUFBc0IsRUFBRSxPQUFnQixFQUFFLGNBQXVCLElBQUksRUFBRSxrQkFBMkIsS0FBSztRQUN6SSxJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSTthQUNyQixHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsUUFBUSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFPLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FB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cENsaWVudCwgSHR0cEV2ZW50LCBIdHRwRXZlbnRUeXBlLCBIdHRwSGVhZGVycywgSHR0cFBhcmFtcywgSHR0cFJlcXVlc3QgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFV0aWxzIH0gZnJvbSAnLi4vLi4vY29tbW9uL2Z1bmN0aW9ucy91dGlscyc7XHJcbmltcG9ydCB7IFNlcnZpY2VMb2NhdG9yIH0gZnJvbSAnLi4vLi4vY29tbW9uL3NlcnZpY2VzL3NlcnZpY2UtbG9jYXRvcic7XHJcblxyXG5leHBvcnQgY2xhc3MgR2VuZXJpY1NlcnZpY2U8VCBleHRlbmRzIGFueT4ge1xyXG5cclxuXHQvKipcclxuXHQgKiBIdHRwIGNsaWVudFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBodHRwOiBIdHRwQ2xpZW50O1xyXG5cclxuXHQvKipcclxuXHQgKiBMaXN0IG9mIGVudGl0aWVzXHJcblx0ICovXHJcblx0cHVibGljIGxpc3Q6IEJlaGF2aW9yU3ViamVjdDxhbnlbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0KDxhbnk+W10pO1xyXG5cclxuXHQvKipcclxuXHQgKiBDb25zdHJ1Y3RvclxyXG5cdCAqIFxyXG5cdCAqIEBwYXJhbSBodHRwIFxyXG5cdCAqL1xyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyBlbmRwb2ludD86IHN0cmluZykge1xyXG5cdFx0dGhpcy5odHRwID0gU2VydmljZUxvY2F0b3IuZ2V0U2VydmljZShIdHRwQ2xpZW50KTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgYSBzaW5nbGUgZW50aXR5XHJcblx0ICogXHJcblx0ICogQHBhcmFtIGlkIFRoZSBpZCBvZiB0aGUgZW50aXR5IG9yIHJlbGF0aXZlIHBhdGhcclxuXHQgKiBAcGFyYW0gcGFyYW1zIEFkZHMgcXVlcnkgcGFyYW1zIHRvIHRoZSByZXF1ZXN0XHJcblx0ICogQHBhcmFtIGhlYWRlcnMgQWRkcyBoZWFkZXJzIHRvIHRoZSByZXF1ZXN0XHJcblx0ICovXHJcblx0cHVibGljIGdldDxUPihpZDogc3RyaW5nIHwgbnVtYmVyLCBwYXJhbXM/OiBPYmplY3QgfCBudWxsLCBoZWFkZXJzPzogT2JqZWN0LCBoYW5kbGVFcnJvcjogYm9vbGVhbiA9IHRydWUsIG9ic2VydmVSZXNwb25zZTogYm9vbGVhbiA9IGZhbHNlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGxldCByZXF1ZXN0ID0gdGhpcy5odHRwXHJcblx0XHRcdC5nZXQ8VD4oYCR7dGhpcy5lbmRwb2ludH0vJHtpZH1gLCB7IG9ic2VydmU6IDxhbnk+KG9ic2VydmVSZXNwb25zZSA/ICdyZXNwb25zZScgOiAnYm9keScpLCBwYXJhbXM6IFV0aWxzLnRvSHR0cFBhcmFtcyhwYXJhbXMpLCBoZWFkZXJzOiB0aGlzLnRvSHR0cEhlYWRlcnMoaGVhZGVycykgfSk7XHJcblxyXG5cdFx0LyogSGFuZGxlIGVycm9yICovXHJcblx0XHRpZiAoaGFuZGxlRXJyb3IpIHtcclxuXHRcdFx0cmVxdWVzdCA9IHJlcXVlc3QucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoJ2dldCcpKSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJlcXVlc3Q7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBDb3VudHMgZW50aXRpZXNcclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gcGFyYW1zIEFkZHMgcXVlcnkgcGFyYW1zIHRvIHRoZSByZXF1ZXN0XHJcblx0ICogQHBhcmFtIHBhdGggQSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBhY3Rpb25cclxuXHQgKiBAcGFyYW0gaGVhZGVycyBBZGRzIGhlYWRlcnMgdG8gdGhlIHJlcXVlc3RcdCBcclxuXHQgKiBAcGFyYW0gaGFuZGxlRXJyb3IgSGFuZGxlIGVycm9yc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyBjb3VudChwYXJhbXM/OiBPYmplY3QsIHBhdGg/OiBzdHJpbmcgfCBudWxsLCBoZWFkZXJzPzogT2JqZWN0LCBoYW5kbGVFcnJvcjogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPG51bWJlcj4ge1xyXG5cdFx0bGV0IHJlcXVlc3QgPSB0aGlzLmh0dHBcclxuXHRcdFx0LmdldDxhbnk+KGAke3RoaXMuZW5kcG9pbnR9JHtwYXRoID8gcGF0aCA6ICcvY291bnQnfWAsIHsgcGFyYW1zOiBVdGlscy50b0h0dHBQYXJhbXMocGFyYW1zKSwgaGVhZGVyczogdGhpcy50b0h0dHBIZWFkZXJzKGhlYWRlcnMpIH0pO1xyXG5cclxuXHRcdC8qIEhhbmRsZSBlcnJvciAqL1xyXG5cdFx0aWYgKGhhbmRsZUVycm9yKSB7XHJcblx0XHRcdHJlcXVlc3QgPSByZXF1ZXN0LnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKCdjb3VudCcpKSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJlcXVlc3QucGlwZShtYXAoeCA9PiB7IHJldHVybiA8bnVtYmVyPngudmFsdWUgfSkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0cyBhIGxpc3Qgb2YgZW50aXRpZXMuXHJcblx0ICogXHJcblx0ICogQHBhcmFtIHBhcmFtcyBPcHRpb25hbC4gQWRkcyBxdWVyeSBwYXJhbXMgdG8gdGhlIHJlcXVlc3QuXHJcblx0ICogQHBhcmFtIHBhdGggT3B0aW9uYWwuIEEgcmVsYXRpdmUgcGF0aCB0byB0aGUgYWN0aW9uLlxyXG5cdCAqIEBwYXJhbSBoZWFkZXJzIE9wdGlvbmFsLiBBZGRzIGhlYWRlcnMgdG8gdGhlIHJlcXVlc3QuXHJcblx0ICogQHJldHVybnMgQW4gT2JzZXJ2YWJsZSB3aXRoIHRoZSByZXNwb25zZSBkYXRhLlxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXRMaXN0KHBhcmFtcz86IEh0dHBQYXJhbXMgfCBPYmplY3QgfCBudWxsLCBwYXRoPzogc3RyaW5nIHwgbnVsbCwgaGVhZGVycz86IE9iamVjdCB8IG51bGwpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuaHR0cFxyXG5cdFx0XHQuZ2V0KGAke3RoaXMuZW5kcG9pbnR9JHtwYXRoID8gcGF0aCA6ICcnfWAsIHsgcGFyYW1zOiBwYXJhbXMgaW5zdGFuY2VvZiBIdHRwUGFyYW1zID8gcGFyYW1zIDogVXRpbHMudG9IdHRwUGFyYW1zKHBhcmFtcyksIGhlYWRlcnM6IHRoaXMudG9IdHRwSGVhZGVycyhoZWFkZXJzKSB9KVxyXG5cdFx0XHQucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoJ2dldExpc3QnKSkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogTG9hZHMgZGF0YVxyXG5cdCAqIEBwYXJhbSBwYXJhbXMgQWRkcyBxdWVyeSBwYXJhbXMgdG8gdGhlIHJlcXVlc3RcclxuXHQgKiBAcGFyYW0gcGF0aCBBIHJlbGF0aXZlIHBhdGggdG8gdGhlIGFjdGlvblxyXG5cdCAqIEBwYXJhbSBoZWFkZXJzIEFkZHMgaGVhZGVycyB0byB0aGUgcmVxdWVzdFxyXG5cdCAqL1xyXG5cdHB1YmxpYyBsb2FkTGlzdChwYXJhbXM/OiBPYmplY3QgfCBudWxsLCBwYXRoPzogc3RyaW5nIHwgbnVsbCwgaGVhZGVycz86IE9iamVjdCk6IHZvaWQge1xyXG5cdFx0dGhpcy5nZXRMaXN0KHBhcmFtcywgcGF0aCwgaGVhZGVycylcclxuXHRcdFx0LnN1YnNjcmliZSh4ID0+IHRoaXMubGlzdC5uZXh0KHgpKTtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIEdldHMgcmVzdWx0IGxpc3QgYXMgT2JzZXJ2YWJsZVxyXG5cdCAqL1xyXG5cdHB1YmxpYyBnZXRMaXN0QXNPYnNlcnZhYmxlKCk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRyZXR1cm4gdGhpcy5saXN0LmFzT2JzZXJ2YWJsZSgpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ3JlYXRlcyBhbiBlbnRpdHlcclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gZW50aXR5IFRoZSBlbnRpdHkgdG8gY3JlYXRlXHJcblx0ICogQHBhcmFtIHBhdGggQSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBhY3Rpb25cclxuXHQgKiBAcGFyYW0gaHR0cE9wdGlvbnMgQWRkaXRpb25hbCBodHRwIG9wdGlvbnMsIGxpa2UgaGVhZGVycyBhbmQgc28gb24gXHJcblx0ICogQHBhcmFtIGhhbmRsZUVycm9yIEhhbmRsZSBlcnJvcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgY3JlYXRlPFQ+KGVudGl0eTogYW55LCBwYXRoPzogc3RyaW5nIHwgbnVsbCwgaHR0cE9wdGlvbnM/OiBPYmplY3QsIGhhbmRsZUVycm9yOiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGU8VD4ge1xyXG5cdFx0bGV0IHJlcXVlc3QgPSB0aGlzLmh0dHBcclxuXHRcdFx0LnBvc3Q8VD4oYCR7dGhpcy5lbmRwb2ludH0ke3BhdGggPyBwYXRoIDogJyd9YCwgZW50aXR5LCBodHRwT3B0aW9ucyk7XHJcblxyXG5cdFx0LyogSGFuZGxlIGVycm9yICovXHJcblx0XHRpZiAoaGFuZGxlRXJyb3IpIHtcclxuXHRcdFx0cmVxdWVzdCA9IHJlcXVlc3QucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoJ2NyZWF0ZScpKSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJlcXVlc3Q7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBVcGRhdGVzIGFuIGVudGl0eVxyXG5cdCAqIFxyXG5cdCAqIEBwYXJhbSBlbnRpdHkgVGhlIGVudGl0eSB0byB1cGRhdGVcclxuXHQgKiBAcGFyYW0gcGF0aCBBIHJlbGF0aXZlIHBhdGggdG8gdGhlIGFjdGlvblxyXG5cdCAqIEBwYXJhbSBodHRwT3B0aW9ucyBBZGRpdGlvbmFsIGh0dHAgb3B0aW9ucywgbGlrZSBoZWFkZXJzIGFuZCBzbyBvbiBcclxuXHQgKiBAcGFyYW0gaGFuZGxlRXJyb3IgSGFuZGxlIGVycm9yc1xyXG5cdCAqL1xyXG5cdHB1YmxpYyB1cGRhdGUoaWQ6IHN0cmluZyB8IG51bWJlciwgZW50aXR5OiBhbnksIHBhdGg/OiBzdHJpbmcgfCBudWxsLCBodHRwT3B0aW9ucz86IE9iamVjdCwgaGFuZGxlRXJyb3I6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGxldCByZXF1ZXN0ID0gdGhpcy5odHRwXHJcblx0XHRcdC5wdXQ8VD4oYCR7dGhpcy5lbmRwb2ludH0ke3BhdGggPyBwYXRoIDogJyd9LyR7aWR9YCwgZW50aXR5LCBodHRwT3B0aW9ucyk7XHJcblxyXG5cdFx0LyogSGFuZGxlIGVycm9yICovXHJcblx0XHRpZiAoaGFuZGxlRXJyb3IpIHtcclxuXHRcdFx0cmVxdWVzdCA9IHJlcXVlc3QucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoJ3VwZGF0ZScpKSk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIHJlcXVlc3Q7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBQYXRjaGVzIGFuIGVudGl0eVxyXG5cdCAqIFxyXG5cdCAqIEBwYXJhbSBpZCBpZCBUaGUgaWQgb2YgdGhlIGl0ZW0gdG8gcGF0Y2hcclxuXHQgKiBAcGFyYW0gYm9keSBUaGUgYm9keVxyXG5cdCAqIEBwYXJhbSBwYXRoIEEgcmVsYXRpdmUgcGF0aCB0byB0aGUgYWN0aW9uXHJcblx0ICogQHBhcmFtIGh0dHBPcHRpb25zIEFkZGl0aW9uYWwgaHR0cCBvcHRpb25zLCBsaWtlIGhlYWRlcnMgYW5kIHNvIG9uIFxyXG5cdCAqIEBwYXJhbSBoYW5kbGVFcnJvciBIYW5kbGUgZXJyb3JzXHJcblx0ICovXHJcblx0cHVibGljIHBhdGNoKGlkOiBzdHJpbmcgfCBudW1iZXIsIGJvZHk6IGFueSwgcGF0aD86IHN0cmluZyB8IG51bGwsIGh0dHBPcHRpb25zPzogT2JqZWN0LCBoYW5kbGVFcnJvcjogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0bGV0IHJlcXVlc3QgPSB0aGlzLmh0dHBcclxuXHRcdFx0LnBhdGNoPFQ+KGAke3RoaXMuZW5kcG9pbnR9JHtwYXRoID8gcGF0aCA6ICcnfS8ke2lkfWAsIGJvZHksIGh0dHBPcHRpb25zKTtcclxuXHJcblx0XHQvKiBIYW5kbGUgZXJyb3IgKi9cclxuXHRcdGlmIChoYW5kbGVFcnJvcikge1xyXG5cdFx0XHRyZXF1ZXN0ID0gcmVxdWVzdC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcigncGF0Y2gnKSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXF1ZXN0O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUGF0Y2hlcyBtdWx0aXBsZSBlbnRpdGllc1xyXG5cdCAqIFxyXG5cdCAqIEBwYXJhbSBpZHMgVGhlIGlkcyBvZiB0aGUgaXRlbXMgdG8gcGF0Y2hcclxuXHQgKiBAcGFyYW0gYm9keSBUaGUgYm9keVxyXG5cdCAqIEBwYXJhbSBwYXRoIEEgcmVsYXRpdmUgcGF0aCB0byB0aGUgYWN0aW9uXHJcblx0ICogQHBhcmFtIGh0dHBPcHRpb25zIEFkZGl0aW9uYWwgaHR0cCBvcHRpb25zLCBsaWtlIGhlYWRlcnMgYW5kIHNvIG9uIFxyXG5cdCAqIEBwYXJhbSBoYW5kbGVFcnJvciBIYW5kbGUgZXJyb3JzXHJcblx0ICovXHJcblx0cHVibGljIHBhdGNoTGlzdChpZHM6IHN0cmluZ1tdIHwgbnVtYmVyW10sIGJvZHk6IGFueSwgcGF0aD86IHN0cmluZyB8IG51bGwsIGh0dHBPcHRpb25zPzogT2JqZWN0LCBoYW5kbGVFcnJvcjogYm9vbGVhbiA9IHRydWUpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0bGV0IHJlcXVlc3QgPSB0aGlzLmh0dHBcclxuXHRcdFx0LnBhdGNoPFQ+KGAke3RoaXMuZW5kcG9pbnR9JHtwYXRoID8gcGF0aCA6ICcnfWAsIGJvZHksIE9iamVjdC5hc3NpZ24oaHR0cE9wdGlvbnMgfHwge30sIHsgcGFyYW1zOiBVdGlscy50b0h0dHBQYXJhbXMoeyBpZHM6IGlkcyB9KSB9KSk7XHJcblxyXG5cdFx0LyogSGFuZGxlIGVycm9yICovXHJcblx0XHRpZiAoaGFuZGxlRXJyb3IpIHtcclxuXHRcdFx0cmVxdWVzdCA9IHJlcXVlc3QucGlwZShjYXRjaEVycm9yKHRoaXMuaGFuZGxlRXJyb3IoJ3BhdGNoJykpKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVxdWVzdDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERlbGV0ZXMgYW4gZW50aXR5LlxyXG5cdCAqIFxyXG5cdCAqIEBwYXJhbSBpZCBUaGUgaWQgb2YgdGhlIGl0ZW0gdG8gZGVsZXRlXHJcblx0ICogQHBhcmFtIHBhdGggQSByZWxhdGl2ZSBwYXRoIHRvIHRoZSBhY3Rpb25cclxuXHQgKiBAcGFyYW0gaHR0cE9wdGlvbnMgQWRkaXRpb25hbCBodHRwIG9wdGlvbnMsIGxpa2UgaGVhZGVycyBhbmQgc28gb24gIFxyXG5cdCAqIEBwYXJhbSBoYW5kbGVFcnJvciBIYW5kbGUgZXJyb3JzXHJcblx0ICovXHJcblx0cHVibGljIGRlbGV0ZShpZDogc3RyaW5nIHwgbnVtYmVyLCBwYXRoPzogc3RyaW5nIHwgbnVsbCwgaHR0cE9wdGlvbnM/OiBPYmplY3QsIGhhbmRsZUVycm9yOiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRsZXQgcmVxdWVzdCA9IHRoaXMuaHR0cFxyXG5cdFx0XHQuZGVsZXRlKGAke3RoaXMuZW5kcG9pbnR9JHtwYXRoID8gcGF0aCA6ICcnfS8ke2lkfWAsIGh0dHBPcHRpb25zKTtcclxuXHJcblx0XHQvKiBIYW5kbGUgZXJyb3IgKi9cclxuXHRcdGlmIChoYW5kbGVFcnJvcikge1xyXG5cdFx0XHRyZXF1ZXN0ID0gcmVxdWVzdC5waXBlKGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcignZGVsZXRlJykpKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVxdWVzdDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERlbGV0ZXMgbXVsdGlwbGUgZW50aXRpZXMuXHJcblx0ICogXHJcblx0ICogQHBhcmFtIGlkcyBUaGUgaWRzIG9mIHRoZSBpdGVtcyB0byBkZWxldGVcclxuXHQgKiBAcGFyYW0gcGF0aCBBIHJlbGF0aXZlIHBhdGggdG8gdGhlIGFjdGlvblxyXG5cdCAqIEBwYXJhbSBodHRwT3B0aW9ucyBBZGRpdGlvbmFsIGh0dHAgb3B0aW9ucywgbGlrZSBoZWFkZXJzIGFuZCBzbyBvbiAgXHJcblx0ICogQHBhcmFtIGhhbmRsZUVycm9yIEhhbmRsZSBlcnJvcnNcclxuXHQgKi9cclxuXHRwdWJsaWMgZGVsZXRlTGlzdChpZHM6IHN0cmluZ1tdIHwgbnVtYmVyW10sIHBhdGg/OiBzdHJpbmcgfCBudWxsLCBodHRwT3B0aW9ucz86IE9iamVjdCwgaGFuZGxlRXJyb3I6IGJvb2xlYW4gPSB0cnVlKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdGxldCByZXF1ZXN0ID0gdGhpcy5odHRwLmRlbGV0ZShgJHt0aGlzLmVuZHBvaW50fSR7cGF0aCA/IHBhdGggOiAnJ31gLCBPYmplY3QuYXNzaWduKGh0dHBPcHRpb25zIHx8IHt9LCB7IHBhcmFtczogVXRpbHMudG9IdHRwUGFyYW1zKHsgaWRzOiBpZHMgfSkgfSkpO1xyXG5cclxuXHRcdC8qIEhhbmRsZSBlcnJvciAqL1xyXG5cdFx0aWYgKGhhbmRsZUVycm9yKSB7XHJcblx0XHRcdHJlcXVlc3QgPSByZXF1ZXN0LnBpcGUoY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKCdkZWxldGVMaXN0JykpKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gcmVxdWVzdDtcclxuXHR9XHJcblxyXG5cdC8qKlxyXG5cdCAqIERvd25sb2FkcyBhIGZpbGVcclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gcGF0aCBBIHJlbGF0aXZlIHBhdGggdG8gdGhlIGFjdGlvblxyXG5cdCAqIEBwYXJhbSBwYXJhbXMgU29tZSBxdWVyeSBwYXJhbXNcclxuXHQgKi9cclxuXHRwdWJsaWMgZG93bmxvYWQocGF0aDogc3RyaW5nLCBwYXJhbXM/OiBPYmplY3QsIGhhbmRsZUVycm9yOiBib29sZWFuID0gdHJ1ZSk6IE9ic2VydmFibGU8YW55PiB7XHJcblx0XHRsZXQgcmVxdWVzdCA9IHRoaXMuaHR0cFxyXG5cdFx0XHQuZ2V0KGAke3RoaXMuZW5kcG9pbnR9LyR7cGF0aCA/IHBhdGggOiAnZG93bmxvYWQnfWAsIHsgcGFyYW1zOiBVdGlscy50b0h0dHBQYXJhbXMocGFyYW1zKSwgcmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInLCBvYnNlcnZlOiAncmVzcG9uc2UnIH0pXHJcblx0XHRcdC5waXBlKG1hcCh4ID0+IHsgcmV0dXJuIHsgZGF0YTogeC5ib2R5LCBmaWxlbmFtZTogdGhpcy5nZXRGaWxlTmFtZUZyb21IZWFkZXJzKHguaGVhZGVycykgfSB9KSk7XHJcblxyXG5cdFx0LyogSGFuZGxlIGVycm9yICovXHJcblx0XHRpZiAoaGFuZGxlRXJyb3IpIHtcclxuXHRcdFx0cmVxdWVzdCA9IHJlcXVlc3QucGlwZTxhbnk+KGNhdGNoRXJyb3IodGhpcy5oYW5kbGVFcnJvcignZG93bmxvYWQnKSkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHJldHVybiByZXF1ZXN0O1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogRHVwbGljYXRlcyBhIHJlY29yZFxyXG5cdCAqIEBwYXJhbSBpZCBcclxuXHQgKi9cclxuXHRwdWJsaWMgZHVwbGljYXRlKGlkOiBudW1iZXIpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG5cdFx0cmV0dXJuIHRoaXMuY3JlYXRlKG51bGwsIGAvZHVwbGljYXRlLyR7aWR9YCk7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBVcGxvYWRzIGEgZmlsZVxyXG5cdCAqIFxyXG5cdCAqIEBwYXJhbSBmaWxlIFRoZSBmaWxlIHRvIHVwbG9hZFxyXG5cdCAqIEBwYXJhbSBwYXRoIEEgcmVsYXRpdmUgcGF0aCB0byB0aGUgYWN0aW9uXHJcblx0ICovXHJcblx0cHVibGljIHVwbG9hZChmaWxlOiBGaWxlLCBwYXRoOiBzdHJpbmcgPSAndXBsb2FkJywgZXh0cmFEYXRhPzogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuXHRcdC8qIENyZWF0ZXMgZm9ybSBkYXRhIG9iamVjdCAqL1xyXG5cdFx0Y29uc3QgZm9ybURhdGE6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcblxyXG5cdFx0LyogQWRkIHRoZSBmaWxlIHRvIHRoZSBmb3JtIGRhdGEgKi9cclxuXHRcdGZvcm1EYXRhLmFwcGVuZCgnZmlsZScsIGZpbGUsIGZpbGUubmFtZSk7XHJcblxyXG5cdFx0LyogSXRlcmF0ZSBhbmQgc2V0IG90aGVyIGZvcm0gZGF0YSAqL1xyXG5cdFx0aWYgKGV4dHJhRGF0YSkge1xyXG5cdFx0XHRmb3IgKGxldCBrZXkgaW4gZXh0cmFEYXRhKSB7XHJcblx0XHRcdFx0Zm9ybURhdGEuYXBwZW5kKGtleSwgZXh0cmFEYXRhW2tleV0pXHJcblx0XHRcdH1cclxuXHRcdH1cclxuXHJcblx0XHQvKiBTZXQgdHJ1ZSB0byByZXBvcnRQcm9ncmVzcyB0byBlbmFibGUgdHJhY2tpbmcgb2YgcHJvZ3Jlc3MgZXZlbnRzICovXHJcblx0XHRjb25zdCByZXEgPSBuZXcgSHR0cFJlcXVlc3QoJ1BPU1QnLCBgJHt0aGlzLmVuZHBvaW50fS8ke3BhdGggPyBwYXRoIDogJ3VwbG9hZCd9YCwgZm9ybURhdGEsIHtcclxuXHRcdFx0cmVwb3J0UHJvZ3Jlc3M6IHRydWVcclxuXHRcdH0pO1xyXG5cclxuXHRcdC8qXHJcblx0XHRUaGUgYEh0dHBDbGllbnQucmVxdWVzdGAgQVBJIHByb2R1Y2VzIGEgcmF3IGV2ZW50IHN0cmVhbVxyXG5cdFx0d2hpY2ggaW5jbHVkZXMgc3RhcnQgKHNlbnQpLCBwcm9ncmVzcywgYW5kIHJlc3BvbnNlIGV2ZW50cy5cclxuXHRcdCovXHJcblx0XHRyZXR1cm4gdGhpcy5odHRwLnJlcXVlc3QocmVxKTtcclxuXHR9O1xyXG5cclxuXHQvLy8jcmVnaW9uIEhlbHBlcnNcclxuXHJcblx0LyoqXHJcblx0ICogQ29udmVydCBPYmplY3QgdG8gRnJvbURhdGFcclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gYm9keVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCB0b0Zvcm1EYXRhKGJvZHk6IGFueSk6IEZvcm1EYXRhIHtcclxuXHRcdGlmICghYm9keSkge1xyXG5cdFx0XHRyZXR1cm4gbmV3IEZvcm1EYXRhKCk7XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGJvZHkpXHJcblx0XHRcdC5maWx0ZXIoa2V5ID0+IGJvZHlba2V5XSAhPSBudWxsICYmIGJvZHlba2V5XSAhPSAnJylcclxuXHRcdFx0LnJlZHVjZSgocCwga2V5KSA9PiB7IHAuYXBwZW5kKGtleSwgYm9keVtrZXldKTsgcmV0dXJuIHAgfSwgbmV3IEZvcm1EYXRhKCkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogQ29udmVydCBPYmplY3QgdG8gSHR0cEhlYWRlcnNcclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gYm9keVxyXG5cdCAqL1xyXG5cdHByb3RlY3RlZCB0b0h0dHBIZWFkZXJzKGJvZHk/OiBPYmplY3QgfCBudWxsKTogSHR0cEhlYWRlcnMge1xyXG5cdFx0aWYgKCFib2R5KSB7XHJcblx0XHRcdHJldHVybiBuZXcgSHR0cEhlYWRlcnMoKTtcclxuXHRcdH1cclxuXHJcblx0XHRyZXR1cm4gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoYm9keSlcclxuXHRcdFx0LmZpbHRlcihrZXkgPT4gKGJvZHkgYXMgYW55KVtrZXldICE9IG51bGwgJiYgKGJvZHkgYXMgYW55KVtrZXldICE9ICcnKVxyXG5cdFx0XHQucmVkdWNlKChwLCBrZXkpID0+IHAuc2V0KGtleSwgKGJvZHkgYXMgYW55KVtrZXldKSwgbmV3IEh0dHBIZWFkZXJzKCkpO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogR2V0cyBmaWxlIG5hbWUgZnJvbSBIdHRwaGVhZGVyczogQ29udGVudC1EaXNwb3NpdGlvblxyXG5cdCAqIEBwYXJhbSBkaXNwb3NpdGlvbiBcclxuXHQgKi9cclxuXHRwcm90ZWN0ZWQgZ2V0RmlsZU5hbWVGcm9tSGVhZGVycyhoZWFkZXJzOiBIdHRwSGVhZGVycyk6IHN0cmluZyB7XHJcblx0XHR2YXIgZGlzcG9zaXRpb24gPSBoZWFkZXJzLmdldCgnY29udGVudC1kaXNwb3NpdGlvbicpO1xyXG5cdFx0aWYgKGRpc3Bvc2l0aW9uICYmIGRpc3Bvc2l0aW9uLmluZGV4T2YoJ2F0dGFjaG1lbnQnKSAhPT0gLTEpIHtcclxuXHRcdFx0dmFyIG1hdGNoZXMgPSAvZmlsZW5hbWVbXjs9XFxuXSo9KChbJ1wiXSkuKj9cXDJ8W147XFxuXSopLy5leGVjKGRpc3Bvc2l0aW9uKTtcclxuXHRcdFx0aWYgKG1hdGNoZXMgIT0gbnVsbCAmJiBtYXRjaGVzWzFdKSB7XHJcblx0XHRcdFx0cmV0dXJuIG1hdGNoZXNbMV0ucmVwbGFjZSgvWydcIl0vZywgJycpO1xyXG5cdFx0XHR9XHJcblx0XHR9XHJcblxyXG5cdFx0cmV0dXJuIFwiXCI7XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBIYW5kbGVzIGFuIEhUVFAgb3BlcmF0aW9uIHRoYXQgZmFpbGVkLlxyXG5cdCAqIEFsbG93cyB0aGUgYXBwbGljYXRpb24gdG8gY29udGludWUgYnkgdGhyb3dpbmcgYSBwYXJzZWQgZXJyb3IuXHJcblx0ICogXHJcblx0ICogQHRlbXBsYXRlIFQgVGhlIHR5cGUgb2YgdGhlIG9ic2VydmFibGUgcmVzdWx0LlxyXG5cdCAqIEBwYXJhbSBvcGVyYXRpb24gVGhlIG5hbWUgb2YgdGhlIG9wZXJhdGlvbiB0aGF0IGZhaWxlZC4gRGVmYXVsdHMgdG8gJ29wZXJhdGlvbicuXHJcblx0ICogQHBhcmFtIHJlc3VsdCBBbiBvcHRpb25hbCB2YWx1ZSB0byByZXR1cm4gYXMgdGhlIG9ic2VydmFibGUgcmVzdWx0LlxyXG5cdCAqIEByZXR1cm5zIEEgZnVuY3Rpb24gdGhhdCBwcm9jZXNzZXMgdGhlIGVycm9yIGFuZCByZXR1cm5zIGFuIG9ic2VydmFibGUuXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGhhbmRsZUVycm9yKG9wZXJhdGlvbiA9ICdvcGVyYXRpb24nKSB7XHJcblx0XHRyZXR1cm4gKGVycm9yOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4gPT4gdGhyb3dFcnJvcigoKSA9PiB7XHJcblx0XHRcdGlmIChlcnJvci5lcnJvciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyKSB7XHJcblx0XHRcdFx0cmV0dXJuIEpTT04ucGFyc2UobmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBVaW50OEFycmF5KGVycm9yLmVycm9yKSkpO1xyXG5cdFx0XHR9XHJcblxyXG5cdFx0XHRjb25zdCBtZXNzYWdlID0gKGVycm9yLmVycm9yIGluc3RhbmNlb2YgRXJyb3JFdmVudCkgPyBlcnJvci5lcnJvci5tZXNzYWdlIDogYHNlcnZlciByZXR1cm5lZCBjb2RlICR7ZXJyb3Iuc3RhdHVzfSB3aXRoIGJvZHkgXCIke2Vycm9yLmVycm9yfVwiYDtcclxuXHRcdFx0cmV0dXJuIGAke29wZXJhdGlvbn0gZmFpbGVkOiAke21lc3NhZ2V9YDtcclxuXHRcdH0pO1xyXG5cdH1cclxuXHJcblx0LyoqXHJcblx0ICogUmV0dXJuIGRpc3RpbmN0IG1lc3NhZ2UgZm9yIHNlbnQsIHVwbG9hZCBwcm9ncmVzcywgJiByZXNwb25zZSBldmVudHNcclxuXHQgKiBcclxuXHQgKiBAcGFyYW0gZXZlbnQgVGhlIHJlc3BvbnNlIGV2ZW50XHJcblx0ICogQHBhcmFtIGZpbGUgVGhlIGZpbGUgYmVlaW5nIHVwbG9hZGVkXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIGdldEV2ZW50TWVzc2FnZShldmVudDogSHR0cEV2ZW50PGFueT4sIGZpbGU6IEZpbGUpIHtcclxuXHRcdHN3aXRjaCAoZXZlbnQudHlwZSkge1xyXG5cdFx0XHQvKiBVcGxvYWQgc3RhcnRlZCAqL1xyXG5cdFx0XHRjYXNlIEh0dHBFdmVudFR5cGUuU2VudDpcclxuXHRcdFx0XHRyZXR1cm4gYFVwbG9hZGluZyBmaWxlIFwiJHtmaWxlLm5hbWV9XCIgb2Ygc2l6ZSAke2ZpbGUuc2l6ZX0uYDtcclxuXHJcblx0XHRcdC8qIENvbXB1dGUgYW5kIHNob3cgdGhlICUgZG9uZTogKi9cclxuXHRcdFx0Y2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxyXG5cdFx0XHRcdGNvbnN0IHBlcmNlbnREb25lID0gTWF0aC5yb3VuZCgxMDAgKiBldmVudC5sb2FkZWQgLyAoZXZlbnQ/LnRvdGFsID8/IDEpKTtcclxuXHRcdFx0XHRyZXR1cm4gYEZpbGUgXCIke2ZpbGUubmFtZX1cIiBpcyAke3BlcmNlbnREb25lfSUgdXBsb2FkZWQuYDtcclxuXHJcblx0XHRcdC8qIFVwbG9hZCBjb21wbGV0ZWQgKi9cclxuXHRcdFx0Y2FzZSBIdHRwRXZlbnRUeXBlLlJlc3BvbnNlOlxyXG5cdFx0XHRcdHJldHVybiBgRmlsZSBcIiR7ZmlsZS5uYW1lfVwiIHdhcyBjb21wbGV0ZWx5IHVwbG9hZGVkIWA7XHJcblxyXG5cdFx0XHRkZWZhdWx0OlxyXG5cdFx0XHRcdHJldHVybiBgRmlsZSBcIiR7ZmlsZS5uYW1lfVwiIHN1cnByaXNpbmcgdXBsb2FkIGV2ZW50OiAke2V2ZW50LnR5cGV9LmA7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHQvKipcclxuXHQgKiBTaG93cyB1cGxvYWQgcHJvZ3Jlc3MuXHJcblx0ICogXHJcblx0ICogQHBhcmFtIG1lc3NhZ2UgXHJcblx0ICovXHJcblx0cHJvdGVjdGVkIHNob3dQcm9ncmVzcyhtZXNzYWdlOiBzdHJpbmcpIHtcclxuXHRcdGNvbnNvbGUuZGVidWcobWVzc2FnZSk7XHJcblx0fVxyXG5cclxuXHQvLyNlbmRyZWdpb25cclxufSJdfQ==
@@ -1,103 +0,0 @@
1
- import { ChangeDetectorRef, Component, Input, ViewChild } from '@angular/core';
2
- import { MatMenu, MatMenuTrigger } from '@angular/material/menu';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/material/button";
6
- import * as i3 from "@angular/material/icon";
7
- import * as i4 from "@angular/material/menu";
8
- import * as i5 from "@angular/material/tooltip";
9
- import * as i6 from "../../common/pipes/func.pipe";
10
- export class VdDynamicMenuComponent {
11
- changeDetectorRef;
12
- /**
13
- * matMenu: MatMenu
14
- */
15
- matMenu;
16
- /**
17
- * The context menu trigger
18
- */
19
- contextMenuTrigger;
20
- /**
21
- * items: ActionItem[]
22
- */
23
- items;
24
- /**
25
- * _data: any
26
- */
27
- _data;
28
- /**
29
- * data: any
30
- */
31
- get data() { return this._data; }
32
- set data(data) {
33
- this._data = data;
34
- this.changeDetectorRef.detectChanges();
35
- }
36
- /**
37
- * index: number
38
- */
39
- index;
40
- /**
41
- * context: any
42
- */
43
- context;
44
- /**
45
- * context: any
46
- */
47
- contextMenu;
48
- /**
49
- * The current position of the context menu
50
- */
51
- contextMenuPosition = { x: '0px', y: '0px' };
52
- /**
53
- * Constructor
54
- */
55
- constructor(changeDetectorRef) {
56
- this.changeDetectorRef = changeDetectorRef;
57
- }
58
- /**
59
- * Open the menu
60
- */
61
- open(event, data) {
62
- /* Avoids to show the visualization of the right-click menu of the browser */
63
- event?.preventDefault();
64
- /* Set the data for the events */
65
- this.data = data;
66
- /* Set the X and Y postion of the context menu */
67
- this.contextMenuPosition.x = `${event.clientX}px`;
68
- this.contextMenuPosition.y = `${event.clientY}px`;
69
- this.matMenu?.focusFirstItem('mouse');
70
- /* Open the menu and update its postion */
71
- this.contextMenuTrigger?.openMenu();
72
- this.contextMenuTrigger?.updatePosition();
73
- /* Handle clicks on the menu overlay */
74
- document.getElementsByClassName('cdk-overlay-container')[0]?.addEventListener('contextmenu', (offEvent) => {
75
- offEvent.preventDefault();
76
- this.contextMenuTrigger?.closeMenu();
77
- setTimeout(() => this.open(offEvent, data), 100);
78
- }, { once: true });
79
- }
80
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VdDynamicMenuComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
81
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: VdDynamicMenuComponent, selector: "vd-dynamic-menu", inputs: { items: "items", data: "data", index: "index", context: "context", contextMenu: "contextMenu" }, viewQueries: [{ propertyName: "matMenu", first: true, predicate: MatMenu, descendants: true }, { propertyName: "contextMenuTrigger", first: true, predicate: MatMenuTrigger, descendants: true }], ngImport: i0, template: "<div layout=\"row\" layout-align=\"start center\" *ngIf=\"items\" flex>\r\n <ng-container *ngFor=\"let menu of items\">\r\n <!-- #region Button trigger -->\r\n <a mat-icon-button [mat-menu-trigger-for]=\"matMenu\" *ngIf=\"!contextMenu && menu?.items?.length && !(menu.hide && menu.hide(data, context, index))\" [disabled]=\"data?.locked || (menu?.disable && menu?.disable(data, context, index))\" [matTooltip]=\"menu.tooltip\" (click)=\"$event.stopPropagation();\">\r\n <mat-icon fontSet=\"{{menu.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"menu.iconClass??'' | func:data:context\" [style.color]=\"menu.iconColor\"> <!-- Bind iconColor here -->\r\n {{(menu.icon??'more_vert' | func:data:context) || 'more_vert'}}\r\n </mat-icon>\r\n <span [style.color]=\"menu.textColor\">{{menu.title}}</span> <!-- Bind textColor here -->\r\n </a>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Context trigger -->\r\n <div *ngIf=\"contextMenu\" style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\" [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"matMenu\"></div>\r\n <!-- #endregion -->\r\n\r\n <a mat-icon-button *ngIf=\"!menu?.items?.length && !(menu.hide && menu.hide(data, context, index))\" [disabled]=\"data?.locked || (menu?.disable && menu?.disable(data, context, index))\" [matTooltip]=\"menu.tooltip\" (click)=\"$event.stopPropagation(); menu.event ? menu.event(data, context, index) : null\">\r\n <mat-icon fontSet=\"{{menu.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"menu.iconClass??'' | func:data:context\" [style.color]=\"menu.iconColor\"> <!-- Bind iconColor here -->\r\n {{(menu.icon??'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked'}}\r\n </mat-icon>\r\n </a>\r\n <mat-menu x-position=\"before\" #matMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuItem of menu?.items\">\r\n <ng-container *ngIf=\"!menuItem.items\">\r\n <a mat-menu-item (click)=\"menuItem.event ? menuItem.event(data, context, index) : null\" *ngIf=\"!menuItem.hide || !menuItem.hide(data, context, index)\" [disabled]=\"menuItem.disable && menuItem.disable(data, context, index)\" [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"menuItem.iconClass??'' | func:data:context\" [style.color]=\"menuItem.iconColor\"> <!-- Bind iconColor here -->\r\n {{(menuItem.icon??'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked'}}\r\n </mat-icon>\r\n <span [style.color]=\"menuItem.textColor\">{{menuItem.title}}</span> <!-- Bind textColor here -->\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"menuItem.items\">\r\n <mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuSubItem of menuItem.items\">\r\n <a mat-menu-item (click)=\"menuSubItem.event ? menuSubItem.event(data, context, index) : null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide(data, context, index)\" [disabled]=\"menuSubItem.disable && menuSubItem.disable(data, context, index)\" [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon fontSet=\"{{menuSubItem.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"menuSubItem.iconClass??'' | func:data:context\" [style.color]=\"menuSubItem.iconColor\"> <!-- Bind iconColor here -->\r\n {{(menuSubItem.icon??'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked'}}\r\n </mat-icon>\r\n <span [style.color]=\"menuSubItem.textColor\">{{menuSubItem.title}}</span> <!-- Bind textColor here -->\r\n </a>\r\n </ng-container>\r\n </mat-menu>\r\n <a mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide(data, context, index)\" [disabled]=\"menuItem.disable && menuItem.disable(data, context, index)\" [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"menuItem.iconClass??'' | func:data:context\" [style.color]=\"menuItem.iconColor\"> <!-- Bind iconColor here -->\r\n {{(menuItem.icon??'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked'}}\r\n </mat-icon>\r\n <span [style.color]=\"menuItem.textColor\">{{menuItem.title}}</span> <!-- Bind textColor here -->\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n</div>", dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIconAnchor, selector: "a[mat-icon-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "pipe", type: i6.FuncPipe, name: "func" }] });
82
- }
83
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VdDynamicMenuComponent, decorators: [{
84
- type: Component,
85
- args: [{ selector: 'vd-dynamic-menu', template: "<div layout=\"row\" layout-align=\"start center\" *ngIf=\"items\" flex>\r\n <ng-container *ngFor=\"let menu of items\">\r\n <!-- #region Button trigger -->\r\n <a mat-icon-button [mat-menu-trigger-for]=\"matMenu\" *ngIf=\"!contextMenu && menu?.items?.length && !(menu.hide && menu.hide(data, context, index))\" [disabled]=\"data?.locked || (menu?.disable && menu?.disable(data, context, index))\" [matTooltip]=\"menu.tooltip\" (click)=\"$event.stopPropagation();\">\r\n <mat-icon fontSet=\"{{menu.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"menu.iconClass??'' | func:data:context\" [style.color]=\"menu.iconColor\"> <!-- Bind iconColor here -->\r\n {{(menu.icon??'more_vert' | func:data:context) || 'more_vert'}}\r\n </mat-icon>\r\n <span [style.color]=\"menu.textColor\">{{menu.title}}</span> <!-- Bind textColor here -->\r\n </a>\r\n <!-- #endregion -->\r\n\r\n <!-- #region Context trigger -->\r\n <div *ngIf=\"contextMenu\" style=\"visibility: hidden; position: fixed\" [style.left]=\"contextMenuPosition.x\" [style.top]=\"contextMenuPosition.y\" [matMenuTriggerFor]=\"matMenu\"></div>\r\n <!-- #endregion -->\r\n\r\n <a mat-icon-button *ngIf=\"!menu?.items?.length && !(menu.hide && menu.hide(data, context, index))\" [disabled]=\"data?.locked || (menu?.disable && menu?.disable(data, context, index))\" [matTooltip]=\"menu.tooltip\" (click)=\"$event.stopPropagation(); menu.event ? menu.event(data, context, index) : null\">\r\n <mat-icon fontSet=\"{{menu.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"menu.iconClass??'' | func:data:context\" [style.color]=\"menu.iconColor\"> <!-- Bind iconColor here -->\r\n {{(menu.icon??'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked'}}\r\n </mat-icon>\r\n </a>\r\n <mat-menu x-position=\"before\" #matMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuItem of menu?.items\">\r\n <ng-container *ngIf=\"!menuItem.items\">\r\n <a mat-menu-item (click)=\"menuItem.event ? menuItem.event(data, context, index) : null\" *ngIf=\"!menuItem.hide || !menuItem.hide(data, context, index)\" [disabled]=\"menuItem.disable && menuItem.disable(data, context, index)\" [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"menuItem.iconClass??'' | func:data:context\" [style.color]=\"menuItem.iconColor\"> <!-- Bind iconColor here -->\r\n {{(menuItem.icon??'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked'}}\r\n </mat-icon>\r\n <span [style.color]=\"menuItem.textColor\">{{menuItem.title}}</span> <!-- Bind textColor here -->\r\n </a>\r\n </ng-container>\r\n <ng-container *ngIf=\"menuItem.items\">\r\n <mat-menu x-position=\"before\" #subMenu=\"matMenu\">\r\n <ng-container *ngFor=\"let menuSubItem of menuItem.items\">\r\n <a mat-menu-item (click)=\"menuSubItem.event ? menuSubItem.event(data, context, index) : null\" *ngIf=\"!menuSubItem.hide || !menuSubItem.hide(data, context, index)\" [disabled]=\"menuSubItem.disable && menuSubItem.disable(data, context, index)\" [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon fontSet=\"{{menuSubItem.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"menuSubItem.iconClass??'' | func:data:context\" [style.color]=\"menuSubItem.iconColor\"> <!-- Bind iconColor here -->\r\n {{(menuSubItem.icon??'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked'}}\r\n </mat-icon>\r\n <span [style.color]=\"menuSubItem.textColor\">{{menuSubItem.title}}</span> <!-- Bind textColor here -->\r\n </a>\r\n </ng-container>\r\n </mat-menu>\r\n <a mat-menu-item [matMenuTriggerFor]=\"subMenu\" *ngIf=\"!menuItem.hide || !menuItem.hide(data, context, index)\" [disabled]=\"menuItem.disable && menuItem.disable(data, context, index)\" [matTooltip]=\"menuItem.tooltip\">\r\n <mat-icon fontSet=\"{{menuItem.iconFontSet || 'material-symbols-outlined'}}\" [class]=\"menuItem.iconClass??'' | func:data:context\" [style.color]=\"menuItem.iconColor\"> <!-- Bind iconColor here -->\r\n {{(menuItem.icon??'radio_button_unchecked' | func:data:context) || 'radio_button_unchecked'}}\r\n </mat-icon>\r\n <span [style.color]=\"menuItem.textColor\">{{menuItem.title}}</span> <!-- Bind textColor here -->\r\n </a>\r\n </ng-container>\r\n </ng-container>\r\n </mat-menu>\r\n </ng-container>\r\n</div>" }]
86
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { matMenu: [{
87
- type: ViewChild,
88
- args: [MatMenu]
89
- }], contextMenuTrigger: [{
90
- type: ViewChild,
91
- args: [MatMenuTrigger]
92
- }], items: [{
93
- type: Input
94
- }], data: [{
95
- type: Input
96
- }], index: [{
97
- type: Input
98
- }], context: [{
99
- type: Input
100
- }], contextMenu: [{
101
- type: Input
102
- }] } });
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2xheW91dC9keW5hbWljLW1lbnUvZHluYW1pYy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2xheW91dC9keW5hbWljLW1lbnUvZHluYW1pYy1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7OztBQU9qRSxNQUFNLE9BQU8sc0JBQXNCO0lBNkRYO0lBM0RwQjs7T0FFRztJQUVJLE9BQU8sQ0FBVztJQUV6Qjs7T0FFRztJQUVJLGtCQUFrQixDQUFrQjtJQUUzQzs7T0FFRztJQUVJLEtBQUssQ0FBZ0I7SUFFNUI7O09BRUc7SUFDSyxLQUFLLENBQU07SUFFbkI7O09BRUc7SUFDSCxJQUNXLElBQUksS0FBVSxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUEsQ0FBQyxDQUFDO0lBQzVDLElBQVcsSUFBSSxDQUFDLElBQVM7UUFDckIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNDLENBQUM7SUFFRDs7T0FFRztJQUVJLEtBQUssQ0FBVTtJQUV0Qjs7T0FFRztJQUVJLE9BQU8sQ0FBTTtJQUVwQjs7T0FFRztJQUVJLFdBQVcsQ0FBVztJQUU3Qjs7T0FFRztJQUNJLG1CQUFtQixHQUFHLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFFcEQ7O09BRUc7SUFDSCxZQUFvQixpQkFBb0M7UUFBcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtJQUFJLENBQUM7SUFFN0Q7O09BRUc7SUFDSSxJQUFJLENBQUMsS0FBaUIsRUFBRSxJQUFTO1FBQ3BDLDZFQUE2RTtRQUM3RSxLQUFLLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFFeEIsaUNBQWlDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBRWpCLGlEQUFpRDtRQUNqRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDO1FBQ2xELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUM7UUFDbEQsSUFBSSxDQUFDLE9BQU8sRUFBRSxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEMsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxRQUFRLEVBQUUsQ0FBQztRQUNwQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLENBQUM7UUFFMUMsdUNBQXVDO1FBQ3ZDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLGdCQUFnQixDQUFDLGFBQWEsRUFBRSxDQUFDLFFBQWEsRUFBRSxFQUFFO1lBQzNHLFFBQVEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLENBQUM7WUFDckMsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7MEhBeEZRLHNCQUFzQjs4R0FBdEIsc0JBQXNCLDBNQUtwQixPQUFPLHFGQU1QLGNBQWMsZ0RDbkI3Qix1K0pBbURNOzsyRkQzQ08sc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNJLGlCQUFpQjtzRkFTcEIsT0FBTztzQkFEYixTQUFTO3VCQUFDLE9BQU87Z0JBT1gsa0JBQWtCO3NCQUR4QixTQUFTO3VCQUFDLGNBQWM7Z0JBT2xCLEtBQUs7c0JBRFgsS0FBSztnQkFZSyxJQUFJO3NCQURkLEtBQUs7Z0JBV0MsS0FBSztzQkFEWCxLQUFLO2dCQU9DLE9BQU87c0JBRGIsS0FBSztnQkFPQyxXQUFXO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRNZW51LCBNYXRNZW51VHJpZ2dlciB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL21lbnUnO1xyXG5pbXBvcnQgeyBBY3Rpb25JdGVtIH0gZnJvbSAnLi4vLi4vY29tbW9uL21vZGVscy9hY3Rpb24taXRlbSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndmQtZHluYW1pYy1tZW51JyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9keW5hbWljLW1lbnUuY29tcG9uZW50Lmh0bWwnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWZER5bmFtaWNNZW51Q29tcG9uZW50IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIG1hdE1lbnU6IE1hdE1lbnVcclxuICAgICAqL1xyXG4gICAgQFZpZXdDaGlsZChNYXRNZW51KVxyXG4gICAgcHVibGljIG1hdE1lbnU/OiBNYXRNZW51O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIGNvbnRleHQgbWVudSB0cmlnZ2VyXHJcbiAgICAgKi9cclxuICAgIEBWaWV3Q2hpbGQoTWF0TWVudVRyaWdnZXIpXHJcbiAgICBwdWJsaWMgY29udGV4dE1lbnVUcmlnZ2VyPzogTWF0TWVudVRyaWdnZXI7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBpdGVtczogQWN0aW9uSXRlbVtdXHJcbiAgICAgKi9cclxuICAgIEBJbnB1dCgpXHJcbiAgICBwdWJsaWMgaXRlbXM/OiBBY3Rpb25JdGVtW107XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBfZGF0YTogYW55XHJcbiAgICAgKi9cclxuICAgIHByaXZhdGUgX2RhdGE6IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGRhdGE6IGFueVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCBkYXRhKCk6IGFueSB7IHJldHVybiB0aGlzLl9kYXRhIH1cclxuICAgIHB1YmxpYyBzZXQgZGF0YShkYXRhOiBhbnkpIHtcclxuICAgICAgICB0aGlzLl9kYXRhID0gZGF0YTtcclxuICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIGluZGV4OiBudW1iZXJcclxuICAgICAqL1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBpbmRleD86IG51bWJlcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGNvbnRleHQ6IGFueVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNvbnRleHQ6IGFueTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIGNvbnRleHQ6IGFueVxyXG4gICAgICovXHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGNvbnRleHRNZW51PzogYm9vbGVhbjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBjdXJyZW50IHBvc2l0aW9uIG9mIHRoZSBjb250ZXh0IG1lbnVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGNvbnRleHRNZW51UG9zaXRpb24gPSB7IHg6ICcwcHgnLCB5OiAnMHB4JyB9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29uc3RydWN0b3JcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3RvclJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHsgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3BlbiB0aGUgbWVudVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgb3BlbihldmVudDogTW91c2VFdmVudCwgZGF0YTogYW55KTogdm9pZCB7XHJcbiAgICAgICAgLyogQXZvaWRzIHRvIHNob3cgdGhlIHZpc3VhbGl6YXRpb24gb2YgdGhlIHJpZ2h0LWNsaWNrIG1lbnUgb2YgdGhlIGJyb3dzZXIgKi9cclxuICAgICAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcclxuXHJcbiAgICAgICAgLyogU2V0IHRoZSBkYXRhIGZvciB0aGUgZXZlbnRzICovXHJcbiAgICAgICAgdGhpcy5kYXRhID0gZGF0YTtcclxuXHJcbiAgICAgICAgLyogU2V0IHRoZSBYIGFuZCBZIHBvc3Rpb24gb2YgdGhlIGNvbnRleHQgbWVudSAqL1xyXG4gICAgICAgIHRoaXMuY29udGV4dE1lbnVQb3NpdGlvbi54ID0gYCR7ZXZlbnQuY2xpZW50WH1weGA7XHJcbiAgICAgICAgdGhpcy5jb250ZXh0TWVudVBvc2l0aW9uLnkgPSBgJHtldmVudC5jbGllbnRZfXB4YDtcclxuICAgICAgICB0aGlzLm1hdE1lbnU/LmZvY3VzRmlyc3RJdGVtKCdtb3VzZScpO1xyXG5cclxuICAgICAgICAvKiBPcGVuIHRoZSBtZW51IGFuZCB1cGRhdGUgaXRzIHBvc3Rpb24gKi9cclxuICAgICAgICB0aGlzLmNvbnRleHRNZW51VHJpZ2dlcj8ub3Blbk1lbnUoKTtcclxuICAgICAgICB0aGlzLmNvbnRleHRNZW51VHJpZ2dlcj8udXBkYXRlUG9zaXRpb24oKTtcclxuXHJcbiAgICAgICAgLyogSGFuZGxlIGNsaWNrcyBvbiB0aGUgbWVudSBvdmVybGF5ICovXHJcbiAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudHNCeUNsYXNzTmFtZSgnY2RrLW92ZXJsYXktY29udGFpbmVyJylbMF0/LmFkZEV2ZW50TGlzdGVuZXIoJ2NvbnRleHRtZW51JywgKG9mZkV2ZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgICAgb2ZmRXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgICAgICAgICAgdGhpcy5jb250ZXh0TWVudVRyaWdnZXI/LmNsb3NlTWVudSgpO1xyXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMub3BlbihvZmZFdmVudCwgZGF0YSksIDEwMCk7XHJcbiAgICAgICAgfSwgeyBvbmNlOiB0cnVlIH0pO1xyXG4gICAgfVxyXG59IiwiPGRpdiBsYXlvdXQ9XCJyb3dcIiBsYXlvdXQtYWxpZ249XCJzdGFydCBjZW50ZXJcIiAqbmdJZj1cIml0ZW1zXCIgZmxleD5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IG1lbnUgb2YgaXRlbXNcIj5cclxuICAgICAgICA8IS0tICNyZWdpb24gQnV0dG9uIHRyaWdnZXIgLS0+XHJcbiAgICAgICAgPGEgbWF0LWljb24tYnV0dG9uIFttYXQtbWVudS10cmlnZ2VyLWZvcl09XCJtYXRNZW51XCIgKm5nSWY9XCIhY29udGV4dE1lbnUgJiYgbWVudT8uaXRlbXM/Lmxlbmd0aCAmJiAhKG1lbnUuaGlkZSAmJiBtZW51LmhpZGUoZGF0YSwgY29udGV4dCwgaW5kZXgpKVwiIFtkaXNhYmxlZF09XCJkYXRhPy5sb2NrZWQgfHwgKG1lbnU/LmRpc2FibGUgJiYgbWVudT8uZGlzYWJsZShkYXRhLCBjb250ZXh0LCBpbmRleCkpXCIgW21hdFRvb2x0aXBdPVwibWVudS50b29sdGlwXCIgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRTZXQ9XCJ7e21lbnUuaWNvbkZvbnRTZXQgfHwgJ21hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQnfX1cIiBbY2xhc3NdPVwibWVudS5pY29uQ2xhc3M/PycnIHwgZnVuYzpkYXRhOmNvbnRleHRcIiBbc3R5bGUuY29sb3JdPVwibWVudS5pY29uQ29sb3JcIj4gPCEtLSBCaW5kIGljb25Db2xvciBoZXJlIC0tPlxyXG4gICAgICAgICAgICAgICAge3sobWVudS5pY29uPz8nbW9yZV92ZXJ0JyB8IGZ1bmM6ZGF0YTpjb250ZXh0KSB8fCAnbW9yZV92ZXJ0J319XHJcbiAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgIDxzcGFuIFtzdHlsZS5jb2xvcl09XCJtZW51LnRleHRDb2xvclwiPnt7bWVudS50aXRsZX19PC9zcGFuPiA8IS0tIEJpbmQgdGV4dENvbG9yIGhlcmUgLS0+XHJcbiAgICAgICAgPC9hPlxyXG4gICAgICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICAgICAgPCEtLSAjcmVnaW9uIENvbnRleHQgdHJpZ2dlciAtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiY29udGV4dE1lbnVcIiBzdHlsZT1cInZpc2liaWxpdHk6IGhpZGRlbjsgcG9zaXRpb246IGZpeGVkXCIgW3N0eWxlLmxlZnRdPVwiY29udGV4dE1lbnVQb3NpdGlvbi54XCIgW3N0eWxlLnRvcF09XCJjb250ZXh0TWVudVBvc2l0aW9uLnlcIiBbbWF0TWVudVRyaWdnZXJGb3JdPVwibWF0TWVudVwiPjwvZGl2PlxyXG4gICAgICAgIDwhLS0gI2VuZHJlZ2lvbiAtLT5cclxuXHJcbiAgICAgICAgPGEgbWF0LWljb24tYnV0dG9uICpuZ0lmPVwiIW1lbnU/Lml0ZW1zPy5sZW5ndGggJiYgIShtZW51LmhpZGUgJiYgbWVudS5oaWRlKGRhdGEsIGNvbnRleHQsIGluZGV4KSlcIiBbZGlzYWJsZWRdPVwiZGF0YT8ubG9ja2VkIHx8IChtZW51Py5kaXNhYmxlICYmIG1lbnU/LmRpc2FibGUoZGF0YSwgY29udGV4dCwgaW5kZXgpKVwiIFttYXRUb29sdGlwXT1cIm1lbnUudG9vbHRpcFwiIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7IG1lbnUuZXZlbnQgPyBtZW51LmV2ZW50KGRhdGEsIGNvbnRleHQsIGluZGV4KSA6IG51bGxcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRTZXQ9XCJ7e21lbnUuaWNvbkZvbnRTZXQgfHwgJ21hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQnfX1cIiBbY2xhc3NdPVwibWVudS5pY29uQ2xhc3M/PycnIHwgZnVuYzpkYXRhOmNvbnRleHRcIiBbc3R5bGUuY29sb3JdPVwibWVudS5pY29uQ29sb3JcIj4gPCEtLSBCaW5kIGljb25Db2xvciBoZXJlIC0tPlxyXG4gICAgICAgICAgICAgICAge3sobWVudS5pY29uPz8ncmFkaW9fYnV0dG9uX3VuY2hlY2tlZCcgfCBmdW5jOmRhdGE6Y29udGV4dCkgfHwgJ3JhZGlvX2J1dHRvbl91bmNoZWNrZWQnfX1cclxuICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICA8L2E+XHJcbiAgICAgICAgPG1hdC1tZW51IHgtcG9zaXRpb249XCJiZWZvcmVcIiAjbWF0TWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWVudUl0ZW0gb2YgbWVudT8uaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbWVudUl0ZW0uaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YSBtYXQtbWVudS1pdGVtIChjbGljayk9XCJtZW51SXRlbS5ldmVudCA/IG1lbnVJdGVtLmV2ZW50KGRhdGEsIGNvbnRleHQsIGluZGV4KSA6IG51bGxcIiAqbmdJZj1cIiFtZW51SXRlbS5oaWRlIHx8ICFtZW51SXRlbS5oaWRlKGRhdGEsIGNvbnRleHQsIGluZGV4KVwiIFtkaXNhYmxlZF09XCJtZW51SXRlbS5kaXNhYmxlICYmIG1lbnVJdGVtLmRpc2FibGUoZGF0YSwgY29udGV4dCwgaW5kZXgpXCIgW21hdFRvb2x0aXBdPVwibWVudUl0ZW0udG9vbHRpcFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gZm9udFNldD1cInt7bWVudUl0ZW0uaWNvbkZvbnRTZXQgfHwgJ21hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQnfX1cIiBbY2xhc3NdPVwibWVudUl0ZW0uaWNvbkNsYXNzPz8nJyB8IGZ1bmM6ZGF0YTpjb250ZXh0XCIgW3N0eWxlLmNvbG9yXT1cIm1lbnVJdGVtLmljb25Db2xvclwiPiA8IS0tIEJpbmQgaWNvbkNvbG9yIGhlcmUgLS0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhtZW51SXRlbS5pY29uPz8ncmFkaW9fYnV0dG9uX3VuY2hlY2tlZCcgfCBmdW5jOmRhdGE6Y29udGV4dCkgfHwgJ3JhZGlvX2J1dHRvbl91bmNoZWNrZWQnfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW3N0eWxlLmNvbG9yXT1cIm1lbnVJdGVtLnRleHRDb2xvclwiPnt7bWVudUl0ZW0udGl0bGV9fTwvc3Bhbj4gPCEtLSBCaW5kIHRleHRDb2xvciBoZXJlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1lbnVJdGVtLml0ZW1zXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG1hdC1tZW51IHgtcG9zaXRpb249XCJiZWZvcmVcIiAjc3ViTWVudT1cIm1hdE1lbnVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgbWVudVN1Ykl0ZW0gb2YgbWVudUl0ZW0uaXRlbXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIG1hdC1tZW51LWl0ZW0gKGNsaWNrKT1cIm1lbnVTdWJJdGVtLmV2ZW50ID8gbWVudVN1Ykl0ZW0uZXZlbnQoZGF0YSwgY29udGV4dCwgaW5kZXgpIDogbnVsbFwiICpuZ0lmPVwiIW1lbnVTdWJJdGVtLmhpZGUgfHwgIW1lbnVTdWJJdGVtLmhpZGUoZGF0YSwgY29udGV4dCwgaW5kZXgpXCIgW2Rpc2FibGVkXT1cIm1lbnVTdWJJdGVtLmRpc2FibGUgJiYgbWVudVN1Ykl0ZW0uZGlzYWJsZShkYXRhLCBjb250ZXh0LCBpbmRleClcIiBbbWF0VG9vbHRpcF09XCJtZW51SXRlbS50b29sdGlwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRTZXQ9XCJ7e21lbnVTdWJJdGVtLmljb25Gb250U2V0IHx8ICdtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkJ319XCIgW2NsYXNzXT1cIm1lbnVTdWJJdGVtLmljb25DbGFzcz8/JycgfCBmdW5jOmRhdGE6Y29udGV4dFwiIFtzdHlsZS5jb2xvcl09XCJtZW51U3ViSXRlbS5pY29uQ29sb3JcIj4gPCEtLSBCaW5kIGljb25Db2xvciBoZXJlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyhtZW51U3ViSXRlbS5pY29uPz8ncmFkaW9fYnV0dG9uX3VuY2hlY2tlZCcgfCBmdW5jOmRhdGE6Y29udGV4dCkgfHwgJ3JhZGlvX2J1dHRvbl91bmNoZWNrZWQnfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1pY29uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtzdHlsZS5jb2xvcl09XCJtZW51U3ViSXRlbS50ZXh0Q29sb3JcIj57e21lbnVTdWJJdGVtLnRpdGxlfX08L3NwYW4+IDwhLS0gQmluZCB0ZXh0Q29sb3IgaGVyZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtbWVudT5cclxuICAgICAgICAgICAgICAgICAgICA8YSBtYXQtbWVudS1pdGVtIFttYXRNZW51VHJpZ2dlckZvcl09XCJzdWJNZW51XCIgKm5nSWY9XCIhbWVudUl0ZW0uaGlkZSB8fCAhbWVudUl0ZW0uaGlkZShkYXRhLCBjb250ZXh0LCBpbmRleClcIiBbZGlzYWJsZWRdPVwibWVudUl0ZW0uZGlzYWJsZSAmJiBtZW51SXRlbS5kaXNhYmxlKGRhdGEsIGNvbnRleHQsIGluZGV4KVwiIFttYXRUb29sdGlwXT1cIm1lbnVJdGVtLnRvb2x0aXBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIGZvbnRTZXQ9XCJ7e21lbnVJdGVtLmljb25Gb250U2V0IHx8ICdtYXRlcmlhbC1zeW1ib2xzLW91dGxpbmVkJ319XCIgW2NsYXNzXT1cIm1lbnVJdGVtLmljb25DbGFzcz8/JycgfCBmdW5jOmRhdGE6Y29udGV4dFwiIFtzdHlsZS5jb2xvcl09XCJtZW51SXRlbS5pY29uQ29sb3JcIj4gPCEtLSBCaW5kIGljb25Db2xvciBoZXJlIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sobWVudUl0ZW0uaWNvbj8/J3JhZGlvX2J1dHRvbl91bmNoZWNrZWQnIHwgZnVuYzpkYXRhOmNvbnRleHQpIHx8ICdyYWRpb19idXR0b25fdW5jaGVja2VkJ319XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtzdHlsZS5jb2xvcl09XCJtZW51SXRlbS50ZXh0Q29sb3JcIj57e21lbnVJdGVtLnRpdGxlfX08L3NwYW4+IDwhLS0gQmluZCB0ZXh0Q29sb3IgaGVyZSAtLT5cclxuICAgICAgICAgICAgICAgICAgICA8L2E+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9tYXQtbWVudT5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj4iXX0=
@@ -1,49 +0,0 @@
1
- import { Component, Input } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "@angular/material/toolbar";
5
- import * as i3 from "@angular/material/card";
6
- import * as i4 from "@angular/material/divider";
7
- export class VdLayoutCardOverComponent {
8
- /**
9
- * cardTitle?: string
10
- *
11
- * Title set in card.
12
- */
13
- cardTitle;
14
- /**
15
- * cardSubtitle?: string
16
- *
17
- * Subtitle set in card.
18
- */
19
- cardSubtitle;
20
- /**
21
- * cardWidth?: string
22
- *
23
- * Card flex width in %.
24
- * Defaults to 70%.
25
- */
26
- cardWidth = "70";
27
- /**
28
- * color?: string
29
- *
30
- * toolbar color option: primary | accent | warn.
31
- * If [color] is not set, primary is used.
32
- */
33
- color = 'primary';
34
- /** @nocollapse */ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VdLayoutCardOverComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
- /** @nocollapse */ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.7", type: VdLayoutCardOverComponent, selector: "vd-layout-card-over", inputs: { cardTitle: "cardTitle", cardSubtitle: "cardSubtitle", cardWidth: "cardWidth", color: "color" }, ngImport: i0, template: "<mat-toolbar [color]=\"color\"></mat-toolbar>\r\n<div class=\"vd-layout-card-over-wrapper\">\r\n\t<div class=\"vd-layout-card-over\" [style.max-width.%]=\"cardWidth\" [style.flex]=\"'1 1 ' + cardWidth + '%'\" [style.-ms-flex]=\"'1 1 ' + cardWidth + '%'\" [style.-webkit-box-flex]=\"1\">\r\n\t\t<mat-card>\r\n\t\t\t<mat-card-title *ngIf=\"cardTitle\">{{cardTitle}}</mat-card-title>\r\n\t\t\t<mat-card-subtitle *ngIf=\"cardSubtitle\">{{cardSubtitle}}</mat-card-subtitle>\r\n\t\t\t<mat-divider *ngIf=\"cardTitle || cardSubtitle\"></mat-divider>\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</mat-card>\r\n\t\t<ng-content select=\"[vd-after-card]\"></ng-content>\r\n\t</div>\r\n</div>", styles: [":host{position:relative;display:block;z-index:2;width:100%;min-height:100%;height:100%}:host [vd-after-card]{display:block}:host.accordion>.vd-layout-card-over-wrapper>.vd-layout-card-over ::ng-deep>.mat-mdc-card{background-color:transparent;box-shadow:none;padding-bottom:24px;border:none}:host.tab>.vd-layout-card-over-wrapper{margin:-56px 0}:host mat-expansion-panel .mat-expansion-panel-header{font-size:1.1em}:host mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true]{padding-right:0}:host mat-expansion-panel .mat-expansion-panel-header.enabled[aria-disabled=true]{color:inherit}:host mat-expansion-panel .enabled .mat-expansion-panel-header[aria-disabled=true]{color:inherit}.vd-layout-card-over-wrapper{margin:-64px 0;width:100%;min-height:100%;height:100%}@media (min-width: 960px){.vd-layout-card-over-wrapper{flex-direction:row;box-sizing:border-box;display:flex;align-items:flex-start;align-content:flex-start;justify-content:center}.vd-layout-card-over-wrapper .vd-layout-card-over{max-height:100%;box-sizing:border-box}}@media (max-width: 959px){.vd-layout-card-over-wrapper .vd-layout-card-over{max-width:100%!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i3.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { kind: "directive", type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { kind: "component", type: i4.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] });
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: VdLayoutCardOverComponent, decorators: [{
38
- type: Component,
39
- args: [{ selector: 'vd-layout-card-over', template: "<mat-toolbar [color]=\"color\"></mat-toolbar>\r\n<div class=\"vd-layout-card-over-wrapper\">\r\n\t<div class=\"vd-layout-card-over\" [style.max-width.%]=\"cardWidth\" [style.flex]=\"'1 1 ' + cardWidth + '%'\" [style.-ms-flex]=\"'1 1 ' + cardWidth + '%'\" [style.-webkit-box-flex]=\"1\">\r\n\t\t<mat-card>\r\n\t\t\t<mat-card-title *ngIf=\"cardTitle\">{{cardTitle}}</mat-card-title>\r\n\t\t\t<mat-card-subtitle *ngIf=\"cardSubtitle\">{{cardSubtitle}}</mat-card-subtitle>\r\n\t\t\t<mat-divider *ngIf=\"cardTitle || cardSubtitle\"></mat-divider>\r\n\t\t\t<ng-content></ng-content>\r\n\t\t</mat-card>\r\n\t\t<ng-content select=\"[vd-after-card]\"></ng-content>\r\n\t</div>\r\n</div>", styles: [":host{position:relative;display:block;z-index:2;width:100%;min-height:100%;height:100%}:host [vd-after-card]{display:block}:host.accordion>.vd-layout-card-over-wrapper>.vd-layout-card-over ::ng-deep>.mat-mdc-card{background-color:transparent;box-shadow:none;padding-bottom:24px;border:none}:host.tab>.vd-layout-card-over-wrapper{margin:-56px 0}:host mat-expansion-panel .mat-expansion-panel-header{font-size:1.1em}:host mat-expansion-panel .mat-expansion-panel-header[aria-disabled=true]{padding-right:0}:host mat-expansion-panel .mat-expansion-panel-header.enabled[aria-disabled=true]{color:inherit}:host mat-expansion-panel .enabled .mat-expansion-panel-header[aria-disabled=true]{color:inherit}.vd-layout-card-over-wrapper{margin:-64px 0;width:100%;min-height:100%;height:100%}@media (min-width: 960px){.vd-layout-card-over-wrapper{flex-direction:row;box-sizing:border-box;display:flex;align-items:flex-start;align-content:flex-start;justify-content:center}.vd-layout-card-over-wrapper .vd-layout-card-over{max-height:100%;box-sizing:border-box}}@media (max-width: 959px){.vd-layout-card-over-wrapper .vd-layout-card-over{max-width:100%!important}}\n"] }]
40
- }], propDecorators: { cardTitle: [{
41
- type: Input
42
- }], cardSubtitle: [{
43
- type: Input
44
- }], cardWidth: [{
45
- type: Input
46
- }], color: [{
47
- type: Input
48
- }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LWNhcmQtb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jZGsvc3JjL2xpYi9sYXlvdXQvbGF5b3V0LWNhcmQtb3Zlci9sYXlvdXQtY2FyZC1vdmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay9zcmMvbGliL2xheW91dC9sYXlvdXQtY2FyZC1vdmVyL2xheW91dC1jYXJkLW92ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7OztBQU9qRCxNQUFNLE9BQU8seUJBQXlCO0lBRXJDOzs7O09BSUc7SUFFSSxTQUFTLENBQVU7SUFFMUI7Ozs7T0FJRztJQUVJLFlBQVksQ0FBVTtJQUU3Qjs7Ozs7T0FLRztJQUVJLFNBQVMsR0FBVyxJQUFJLENBQUM7SUFFaEM7Ozs7O09BS0c7SUFFSSxLQUFLLEdBQVcsU0FBUyxDQUFDOzBIQWxDckIseUJBQXlCOzhHQUF6Qix5QkFBeUIscUtDUHRDLHVxQkFXTTs7MkZESk8seUJBQXlCO2tCQUxyQyxTQUFTOytCQUNDLHFCQUFxQjs4QkFZeEIsU0FBUztzQkFEZixLQUFLO2dCQVNDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBVUMsU0FBUztzQkFEZixLQUFLO2dCQVVDLEtBQUs7c0JBRFgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAndmQtbGF5b3V0LWNhcmQtb3ZlcicsXHJcblx0c3R5bGVVcmxzOiBbJy4vbGF5b3V0LWNhcmQtb3Zlci5jb21wb25lbnQuc2NzcyddLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9sYXlvdXQtY2FyZC1vdmVyLmNvbXBvbmVudC5odG1sJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIFZkTGF5b3V0Q2FyZE92ZXJDb21wb25lbnQge1xyXG5cclxuXHQvKipcclxuXHQgKiBjYXJkVGl0bGU/OiBzdHJpbmdcclxuXHQgKlxyXG5cdCAqIFRpdGxlIHNldCBpbiBjYXJkLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGNhcmRUaXRsZT86IHN0cmluZztcclxuXHJcblx0LyoqXHJcblx0ICogY2FyZFN1YnRpdGxlPzogc3RyaW5nXHJcblx0ICpcclxuXHQgKiBTdWJ0aXRsZSBzZXQgaW4gY2FyZC5cclxuXHQgKi9cclxuXHRASW5wdXQoKVxyXG5cdHB1YmxpYyBjYXJkU3VidGl0bGU/OiBzdHJpbmc7XHJcblxyXG5cdC8qKlxyXG5cdCAqIGNhcmRXaWR0aD86IHN0cmluZ1xyXG5cdCAqXHJcblx0ICogQ2FyZCBmbGV4IHdpZHRoIGluICUuXHJcblx0ICogRGVmYXVsdHMgdG8gNzAlLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGNhcmRXaWR0aDogc3RyaW5nID0gXCI3MFwiO1xyXG5cclxuXHQvKipcclxuXHQgKiBjb2xvcj86IHN0cmluZ1xyXG5cdCAqXHJcblx0ICogdG9vbGJhciBjb2xvciBvcHRpb246IHByaW1hcnkgfCBhY2NlbnQgfCB3YXJuLlxyXG5cdCAqIElmIFtjb2xvcl0gaXMgbm90IHNldCwgcHJpbWFyeSBpcyB1c2VkLlxyXG5cdCAqL1xyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIGNvbG9yOiBzdHJpbmcgPSAncHJpbWFyeSc7XHJcbn1cclxuIiwiPG1hdC10b29sYmFyIFtjb2xvcl09XCJjb2xvclwiPjwvbWF0LXRvb2xiYXI+XHJcbjxkaXYgY2xhc3M9XCJ2ZC1sYXlvdXQtY2FyZC1vdmVyLXdyYXBwZXJcIj5cclxuXHQ8ZGl2IGNsYXNzPVwidmQtbGF5b3V0LWNhcmQtb3ZlclwiIFtzdHlsZS5tYXgtd2lkdGguJV09XCJjYXJkV2lkdGhcIiBbc3R5bGUuZmxleF09XCInMSAxICcgKyBjYXJkV2lkdGggKyAnJSdcIiBbc3R5bGUuLW1zLWZsZXhdPVwiJzEgMSAnICsgY2FyZFdpZHRoICsgJyUnXCIgW3N0eWxlLi13ZWJraXQtYm94LWZsZXhdPVwiMVwiPlxyXG5cdFx0PG1hdC1jYXJkPlxyXG5cdFx0XHQ8bWF0LWNhcmQtdGl0bGUgKm5nSWY9XCJjYXJkVGl0bGVcIj57e2NhcmRUaXRsZX19PC9tYXQtY2FyZC10aXRsZT5cclxuXHRcdFx0PG1hdC1jYXJkLXN1YnRpdGxlICpuZ0lmPVwiY2FyZFN1YnRpdGxlXCI+e3tjYXJkU3VidGl0bGV9fTwvbWF0LWNhcmQtc3VidGl0bGU+XHJcblx0XHRcdDxtYXQtZGl2aWRlciAqbmdJZj1cImNhcmRUaXRsZSB8fCBjYXJkU3VidGl0bGVcIj48L21hdC1kaXZpZGVyPlxyXG5cdFx0XHQ8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcblx0XHQ8L21hdC1jYXJkPlxyXG5cdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiW3ZkLWFmdGVyLWNhcmRdXCI+PC9uZy1jb250ZW50PlxyXG5cdDwvZGl2PlxyXG48L2Rpdj4iXX0=