@mediusinc/mng-commons 0.10.3-rc.1 → 0.11.1

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 (325) hide show
  1. package/assets/i18n/en.json +3 -0
  2. package/assets/i18n/sl.json +3 -0
  3. package/esm2020/lib/api/models/builders/query-param.builder.mjs +58 -58
  4. package/esm2020/lib/api/models/filter-match-type.model.mjs +24 -24
  5. package/esm2020/lib/api/models/filter-param.model.mjs +32 -32
  6. package/esm2020/lib/api/models/index.mjs +8 -8
  7. package/esm2020/lib/api/models/mappers.mjs +12 -12
  8. package/esm2020/lib/api/models/query-mode.model.mjs +17 -17
  9. package/esm2020/lib/api/models/query-param.model.mjs +67 -67
  10. package/esm2020/lib/api/models/query-result.model.mjs +17 -17
  11. package/esm2020/lib/api/models/serialization.model.mjs +1 -1
  12. package/esm2020/lib/api/services/api.abstract.service.mjs +55 -55
  13. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +67 -67
  14. package/esm2020/lib/api/services/get-all-api.abstract.service.mjs +22 -22
  15. package/esm2020/lib/api/services/index.mjs +3 -3
  16. package/esm2020/lib/api/utils/index.mjs +2 -2
  17. package/esm2020/lib/api/utils/medius-rest.util.mjs +152 -152
  18. package/esm2020/lib/api/utils/object-serializer.util.mjs +243 -243
  19. package/esm2020/lib/components/action/action.component.mjs +199 -199
  20. package/esm2020/lib/components/action/editor/action-editor.component.mjs +247 -247
  21. package/esm2020/lib/components/action/index.mjs +3 -3
  22. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +1 -1
  23. package/esm2020/lib/components/action/models/action-execution.model.mjs +235 -235
  24. package/esm2020/lib/components/action/models/index.mjs +2 -2
  25. package/esm2020/lib/components/action/route/action-route.component.mjs +124 -124
  26. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +277 -277
  27. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +186 -169
  28. package/esm2020/lib/components/form/editor/form-editor.component.mjs +212 -212
  29. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +48 -48
  30. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +43 -43
  31. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +25 -25
  32. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +102 -102
  33. package/esm2020/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +22 -22
  34. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +179 -179
  35. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +173 -173
  36. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +150 -155
  37. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +17 -17
  38. package/esm2020/lib/components/form/formly/fields/index.mjs +9 -9
  39. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +14 -14
  40. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +14 -14
  41. package/esm2020/lib/components/form/formly/wrappers/index.mjs +2 -2
  42. package/esm2020/lib/components/form/index.mjs +3 -3
  43. package/esm2020/lib/components/form/models/form-editor.event.mjs +33 -33
  44. package/esm2020/lib/components/form/models/index.mjs +1 -1
  45. package/esm2020/lib/components/layout/breadcrumb.component.mjs +16 -16
  46. package/esm2020/lib/components/layout/footer.component.mjs +16 -16
  47. package/esm2020/lib/components/layout/index.mjs +7 -7
  48. package/esm2020/lib/components/layout/main-layout.component.mjs +51 -51
  49. package/esm2020/lib/components/layout/menu-item.component.mjs +238 -238
  50. package/esm2020/lib/components/layout/menu.component.mjs +20 -20
  51. package/esm2020/lib/components/layout/services/index.mjs +1 -1
  52. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +192 -192
  53. package/esm2020/lib/components/layout/topbar.component.mjs +57 -57
  54. package/esm2020/lib/components/layout/version.component.mjs +57 -57
  55. package/esm2020/lib/components/tableview/index.mjs +6 -6
  56. package/esm2020/lib/components/tableview/models/index.mjs +1 -1
  57. package/esm2020/lib/components/tableview/models/table.event.mjs +15 -15
  58. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +57 -57
  59. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +60 -60
  60. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +105 -102
  61. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +70 -70
  62. package/esm2020/lib/components/tableview/table/table.component.mjs +509 -498
  63. package/esm2020/lib/components/tableview/tableview.component.mjs +91 -91
  64. package/esm2020/lib/config/formly.config.mjs +181 -181
  65. package/esm2020/lib/config/index.mjs +1 -1
  66. package/esm2020/lib/config/models/index.mjs +3 -2
  67. package/esm2020/lib/config/models/mng-config.model.mjs +1 -1
  68. package/esm2020/lib/config/models/mng-formly-config-model.mjs +2 -0
  69. package/esm2020/lib/data-providers/base.data-provider.mjs +16 -16
  70. package/esm2020/lib/data-providers/editor.data-provider.mjs +36 -36
  71. package/esm2020/lib/data-providers/index.mjs +5 -5
  72. package/esm2020/lib/data-providers/lookup.data-provider.mjs +15 -15
  73. package/esm2020/lib/data-providers/table.data-provider.mjs +16 -16
  74. package/esm2020/lib/data-providers/tableview.data-provider.mjs +16 -16
  75. package/esm2020/lib/descriptors/action.descriptor.mjs +587 -587
  76. package/esm2020/lib/descriptors/column.descriptor.mjs +264 -264
  77. package/esm2020/lib/descriptors/editor.descriptor.mjs +146 -146
  78. package/esm2020/lib/descriptors/field-validation.descriptor.mjs +20 -20
  79. package/esm2020/lib/descriptors/field.descriptor.mjs +819 -819
  80. package/esm2020/lib/descriptors/filter.descriptor.mjs +291 -289
  81. package/esm2020/lib/descriptors/index.mjs +9 -9
  82. package/esm2020/lib/descriptors/interfaces/field-config.interface.mjs +1 -1
  83. package/esm2020/lib/descriptors/interfaces/index.mjs +2 -2
  84. package/esm2020/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +1 -1
  85. package/esm2020/lib/descriptors/model.descriptor.mjs +33 -33
  86. package/esm2020/lib/descriptors/table.descriptor.mjs +197 -197
  87. package/esm2020/lib/descriptors/tableview.descriptor.mjs +134 -134
  88. package/esm2020/lib/descriptors/types/action.type.mjs +52 -52
  89. package/esm2020/lib/descriptors/types/column.type.mjs +10 -10
  90. package/esm2020/lib/descriptors/types/editor.type.mjs +7 -7
  91. package/esm2020/lib/descriptors/types/field.type.mjs +52 -52
  92. package/esm2020/lib/descriptors/types/filter.type.mjs +30 -30
  93. package/esm2020/lib/descriptors/types/index.mjs +6 -6
  94. package/esm2020/lib/descriptors/types/table.type.mjs +16 -16
  95. package/esm2020/lib/directives/component.directive.mjs +43 -43
  96. package/esm2020/lib/directives/index.mjs +2 -2
  97. package/esm2020/lib/directives/template.directive.mjs +27 -27
  98. package/esm2020/lib/mng-commons.module.mjs +441 -441
  99. package/esm2020/lib/models/column-value.model.mjs +1 -1
  100. package/esm2020/lib/models/enum.model.mjs +1 -1
  101. package/esm2020/lib/models/error.model.mjs +1 -1
  102. package/esm2020/lib/models/formly-field.model.mjs +2 -0
  103. package/esm2020/lib/models/index.mjs +9 -8
  104. package/esm2020/lib/models/menu.model.mjs +1 -1
  105. package/esm2020/lib/models/user.model.mjs +1 -1
  106. package/esm2020/lib/models/version.model.mjs +1 -1
  107. package/esm2020/lib/models/view-container.model.mjs +1 -1
  108. package/esm2020/lib/pipes/boolean.pipe.mjs +26 -26
  109. package/esm2020/lib/pipes/enum.pipe.mjs +24 -24
  110. package/esm2020/lib/pipes/i18n-property.pipe.mjs +17 -17
  111. package/esm2020/lib/pipes/index.mjs +5 -5
  112. package/esm2020/lib/pipes/json-path.pipe.mjs +79 -79
  113. package/esm2020/lib/pipes/link-formatter.pipe.mjs +38 -38
  114. package/esm2020/lib/router/index.mjs +2 -2
  115. package/esm2020/lib/router/models/index.mjs +1 -1
  116. package/esm2020/lib/router/models/router.model.mjs +1 -1
  117. package/esm2020/lib/router/route-builder.mjs +425 -425
  118. package/esm2020/lib/router/tableview-route-builder.mjs +159 -159
  119. package/esm2020/lib/security/authorization.guard.mjs +25 -25
  120. package/esm2020/lib/security/authorization.service.mjs +46 -46
  121. package/esm2020/lib/security/authorization.util.mjs +15 -15
  122. package/esm2020/lib/security/index.mjs +3 -3
  123. package/esm2020/lib/security/model/authorization.type.mjs +7 -7
  124. package/esm2020/lib/security/model/index.mjs +3 -3
  125. package/esm2020/lib/security/model/permission-service.interface.mjs +1 -1
  126. package/esm2020/lib/security/model/permissions.model.mjs +94 -94
  127. package/esm2020/lib/services/action-executor.service.mjs +535 -535
  128. package/esm2020/lib/services/commons.service.mjs +342 -342
  129. package/esm2020/lib/services/configuration.service.mjs +110 -110
  130. package/esm2020/lib/services/error-mapper.service.mjs +13 -13
  131. package/esm2020/lib/services/index.mjs +6 -6
  132. package/esm2020/lib/services/internal/commons-init.provider.mjs +3 -3
  133. package/esm2020/lib/services/internal/commons-init.service.mjs +43 -43
  134. package/esm2020/lib/services/internal/index.mjs +2 -2
  135. package/esm2020/lib/services/navigation.service.mjs +47 -47
  136. package/esm2020/lib/services/providers/config-service.provider.mjs +29 -29
  137. package/esm2020/lib/services/providers/formly-config.provider.mjs +30 -30
  138. package/esm2020/lib/services/providers/index.mjs +2 -2
  139. package/esm2020/lib/services/tokens/browser-storage.token.mjs +5 -5
  140. package/esm2020/lib/services/tokens/commons-init.token.mjs +2 -2
  141. package/esm2020/lib/services/tokens/default-setting.token.mjs +2 -2
  142. package/esm2020/lib/services/tokens/index.mjs +4 -4
  143. package/esm2020/lib/services/tokens/module-config.token.mjs +2 -2
  144. package/esm2020/lib/services/version.service.mjs +38 -38
  145. package/esm2020/lib/services/view-container.component.service.mjs +34 -34
  146. package/esm2020/lib/types/index.mjs +2 -2
  147. package/esm2020/lib/types/type.decorator.mjs +12 -12
  148. package/esm2020/lib/types/type.model.mjs +1 -1
  149. package/esm2020/lib/utils/action-data-provider.util.mjs +144 -144
  150. package/esm2020/lib/utils/editor-formly.util.mjs +251 -243
  151. package/esm2020/lib/utils/enum.util.mjs +81 -81
  152. package/esm2020/lib/utils/i18n.util.mjs +232 -232
  153. package/esm2020/lib/utils/index.mjs +7 -7
  154. package/esm2020/lib/utils/model.util.mjs +59 -59
  155. package/esm2020/lib/utils/notification.util.mjs +45 -45
  156. package/esm2020/lib/utils/route.util.mjs +23 -23
  157. package/esm2020/lib/utils/styles.util.mjs +40 -40
  158. package/esm2020/lib/utils/type.util.mjs +76 -76
  159. package/esm2020/mediusinc-mng-commons.mjs +4 -4
  160. package/esm2020/public-api.mjs +51 -51
  161. package/fesm2015/mediusinc-mng-commons.mjs +10669 -10637
  162. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  163. package/fesm2020/mediusinc-mng-commons.mjs +10522 -10486
  164. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  165. package/lib/api/models/builders/query-param.builder.d.ts +13 -13
  166. package/lib/api/models/filter-match-type.model.d.ts +23 -23
  167. package/lib/api/models/filter-param.model.d.ts +23 -23
  168. package/lib/api/models/index.d.ts +8 -8
  169. package/lib/api/models/mappers.d.ts +6 -6
  170. package/lib/api/models/query-mode.model.d.ts +16 -16
  171. package/lib/api/models/query-param.model.d.ts +31 -31
  172. package/lib/api/models/query-result.model.d.ts +23 -23
  173. package/lib/api/models/serialization.model.d.ts +8 -8
  174. package/lib/api/services/api.abstract.service.d.ts +24 -24
  175. package/lib/api/services/crud-api.abstract.service.d.ts +22 -22
  176. package/lib/api/services/get-all-api.abstract.service.d.ts +14 -14
  177. package/lib/api/services/index.d.ts +3 -3
  178. package/lib/api/utils/index.d.ts +2 -2
  179. package/lib/api/utils/medius-rest.util.d.ts +15 -15
  180. package/lib/api/utils/object-serializer.util.d.ts +33 -33
  181. package/lib/components/action/action.component.d.ts +75 -75
  182. package/lib/components/action/editor/action-editor.component.d.ts +64 -64
  183. package/lib/components/action/index.d.ts +3 -3
  184. package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
  185. package/lib/components/action/models/action-execution.model.d.ts +129 -129
  186. package/lib/components/action/models/index.d.ts +2 -2
  187. package/lib/components/action/route/action-route.component.d.ts +31 -31
  188. package/lib/components/form/autocomplete/autocomplete.component.d.ts +56 -56
  189. package/lib/components/form/dropdown/dropdown.component.d.ts +50 -47
  190. package/lib/components/form/editor/form-editor.component.d.ts +45 -45
  191. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +15 -15
  192. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +14 -14
  193. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +13 -13
  194. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +23 -23
  195. package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +10 -10
  196. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +45 -45
  197. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +23 -23
  198. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +38 -38
  199. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -6
  200. package/lib/components/form/formly/fields/index.d.ts +9 -9
  201. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +6 -6
  202. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +6 -6
  203. package/lib/components/form/formly/wrappers/index.d.ts +2 -2
  204. package/lib/components/form/index.d.ts +3 -3
  205. package/lib/components/form/models/form-editor.event.d.ts +37 -37
  206. package/lib/components/form/models/index.d.ts +1 -1
  207. package/lib/components/layout/breadcrumb.component.d.ts +8 -8
  208. package/lib/components/layout/footer.component.d.ts +9 -9
  209. package/lib/components/layout/index.d.ts +7 -7
  210. package/lib/components/layout/main-layout.component.d.ts +20 -20
  211. package/lib/components/layout/menu-item.component.d.ts +44 -44
  212. package/lib/components/layout/menu.component.d.ts +10 -10
  213. package/lib/components/layout/services/index.d.ts +1 -1
  214. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
  215. package/lib/components/layout/topbar.component.d.ts +24 -24
  216. package/lib/components/layout/version.component.d.ts +19 -19
  217. package/lib/components/tableview/index.d.ts +6 -6
  218. package/lib/components/tableview/models/index.d.ts +1 -1
  219. package/lib/components/tableview/models/table.event.d.ts +17 -17
  220. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +20 -20
  221. package/lib/components/tableview/route/tableview-route.component.d.ts +23 -23
  222. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +32 -32
  223. package/lib/components/tableview/table/column-value/column-value.component.d.ts +29 -29
  224. package/lib/components/tableview/table/table.component.d.ts +108 -108
  225. package/lib/components/tableview/tableview.component.d.ts +41 -41
  226. package/lib/config/formly.config.d.ts +16 -15
  227. package/lib/config/index.d.ts +1 -1
  228. package/lib/config/models/index.d.ts +2 -1
  229. package/lib/config/models/mng-config.model.d.ts +36 -36
  230. package/lib/config/models/mng-formly-config-model.d.ts +17 -0
  231. package/lib/data-providers/base.data-provider.d.ts +14 -14
  232. package/lib/data-providers/editor.data-provider.d.ts +25 -25
  233. package/lib/data-providers/index.d.ts +5 -5
  234. package/lib/data-providers/lookup.data-provider.d.ts +14 -14
  235. package/lib/data-providers/table.data-provider.d.ts +14 -14
  236. package/lib/data-providers/tableview.data-provider.d.ts +15 -15
  237. package/lib/descriptors/action.descriptor.d.ts +234 -234
  238. package/lib/descriptors/column.descriptor.d.ts +82 -82
  239. package/lib/descriptors/editor.descriptor.d.ts +37 -37
  240. package/lib/descriptors/field-validation.descriptor.d.ts +18 -18
  241. package/lib/descriptors/field.descriptor.d.ts +300 -294
  242. package/lib/descriptors/filter.descriptor.d.ts +106 -106
  243. package/lib/descriptors/index.d.ts +9 -9
  244. package/lib/descriptors/interfaces/field-config.interface.d.ts +9 -9
  245. package/lib/descriptors/interfaces/index.d.ts +2 -2
  246. package/lib/descriptors/interfaces/lookup-descriptor.interface.d.ts +17 -17
  247. package/lib/descriptors/model.descriptor.d.ts +15 -15
  248. package/lib/descriptors/table.descriptor.d.ts +66 -66
  249. package/lib/descriptors/tableview.descriptor.d.ts +42 -42
  250. package/lib/descriptors/types/action.type.d.ts +45 -45
  251. package/lib/descriptors/types/column.type.d.ts +9 -9
  252. package/lib/descriptors/types/editor.type.d.ts +6 -6
  253. package/lib/descriptors/types/field.type.d.ts +44 -44
  254. package/lib/descriptors/types/filter.type.d.ts +27 -27
  255. package/lib/descriptors/types/index.d.ts +6 -6
  256. package/lib/descriptors/types/table.type.d.ts +13 -13
  257. package/lib/directives/component.directive.d.ts +16 -16
  258. package/lib/directives/index.d.ts +2 -2
  259. package/lib/directives/template.directive.d.ts +13 -13
  260. package/lib/mng-commons.module.d.ts +87 -87
  261. package/lib/models/column-value.model.d.ts +4 -4
  262. package/lib/models/enum.model.d.ts +6 -6
  263. package/lib/models/error.model.d.ts +14 -14
  264. package/lib/models/formly-field.model.d.ts +16 -0
  265. package/lib/models/index.d.ts +8 -7
  266. package/lib/models/menu.model.d.ts +27 -27
  267. package/lib/models/user.model.d.ts +8 -8
  268. package/lib/models/version.model.d.ts +18 -18
  269. package/lib/models/view-container.model.d.ts +6 -6
  270. package/lib/pipes/boolean.pipe.d.ts +7 -7
  271. package/lib/pipes/enum.pipe.d.ts +8 -8
  272. package/lib/pipes/i18n-property.pipe.d.ts +8 -8
  273. package/lib/pipes/index.d.ts +5 -5
  274. package/lib/pipes/json-path.pipe.d.ts +13 -13
  275. package/lib/pipes/link-formatter.pipe.d.ts +11 -11
  276. package/lib/router/index.d.ts +2 -2
  277. package/lib/router/models/index.d.ts +1 -1
  278. package/lib/router/models/router.model.d.ts +27 -27
  279. package/lib/router/route-builder.d.ts +98 -98
  280. package/lib/router/tableview-route-builder.d.ts +34 -34
  281. package/lib/security/authorization.guard.d.ts +11 -11
  282. package/lib/security/authorization.service.d.ts +19 -19
  283. package/lib/security/authorization.util.d.ts +5 -5
  284. package/lib/security/index.d.ts +3 -3
  285. package/lib/security/model/authorization.type.d.ts +6 -6
  286. package/lib/security/model/index.d.ts +3 -3
  287. package/lib/security/model/permission-service.interface.d.ts +6 -6
  288. package/lib/security/model/permissions.model.d.ts +44 -44
  289. package/lib/services/action-executor.service.d.ts +149 -149
  290. package/lib/services/commons.service.d.ts +78 -78
  291. package/lib/services/configuration.service.d.ts +36 -36
  292. package/lib/services/error-mapper.service.d.ts +7 -7
  293. package/lib/services/index.d.ts +6 -6
  294. package/lib/services/internal/commons-init.provider.d.ts +3 -3
  295. package/lib/services/internal/commons-init.service.d.ts +16 -16
  296. package/lib/services/internal/index.d.ts +2 -2
  297. package/lib/services/navigation.service.d.ts +14 -14
  298. package/lib/services/providers/config-service.provider.d.ts +6 -6
  299. package/lib/services/providers/formly-config.provider.d.ts +4 -4
  300. package/lib/services/providers/index.d.ts +2 -2
  301. package/lib/services/tokens/browser-storage.token.d.ts +2 -2
  302. package/lib/services/tokens/commons-init.token.d.ts +3 -3
  303. package/lib/services/tokens/default-setting.token.d.ts +2 -2
  304. package/lib/services/tokens/index.d.ts +4 -4
  305. package/lib/services/tokens/module-config.token.d.ts +3 -3
  306. package/lib/services/version.service.d.ts +13 -13
  307. package/lib/services/view-container.component.service.d.ts +22 -22
  308. package/lib/types/index.d.ts +2 -2
  309. package/lib/types/type.decorator.d.ts +4 -4
  310. package/lib/types/type.model.d.ts +23 -23
  311. package/lib/utils/action-data-provider.util.d.ts +20 -20
  312. package/lib/utils/editor-formly.util.d.ts +11 -11
  313. package/lib/utils/enum.util.d.ts +50 -50
  314. package/lib/utils/i18n.util.d.ts +56 -56
  315. package/lib/utils/index.d.ts +7 -7
  316. package/lib/utils/model.util.d.ts +8 -8
  317. package/lib/utils/notification.util.d.ts +11 -11
  318. package/lib/utils/route.util.d.ts +4 -4
  319. package/lib/utils/styles.util.d.ts +14 -14
  320. package/lib/utils/type.util.d.ts +36 -36
  321. package/mediusinc-mng-commons.d.ts +5 -5
  322. package/package.json +2 -2
  323. package/public-api.d.ts +32 -32
  324. package/version-info.json +7 -7
  325. package/mediusinc-mng-commons-0.10.3-rc.1.tgz +0 -0
@@ -1,155 +1,150 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { FieldType } from '@ngx-formly/core';
3
- import { ReplaySubject, distinctUntilChanged } from 'rxjs';
4
- import { startWith } from 'rxjs/operators';
5
- import { MediusFilterMatchType, MediusQueryParamBuilder } from '../../../../../api/models';
6
- import { FieldManyToManyEditorActionEnum } from '../../../../../descriptors/types';
7
- import { MngFormFieldEventComponentSubtype, MngFormFieldEventDialogSubtype, MngFormFieldEventTypeEnum } from '../../../models';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../../../../tableview/table/table.component";
10
- import * as i2 from "primeng/dialog";
11
- import * as i3 from "primeng/messages";
12
- import * as i4 from "../../../../../directives/template.directive";
13
- import * as i5 from "@angular/common";
14
- import * as i6 from "primeng/button";
15
- import * as i7 from "primeng/ripple";
16
- import * as i8 from "primeng/api";
17
- import * as i9 from "@ngx-translate/core";
18
- export class MngFormlyFieldTableDialogMultiselectComponent extends FieldType {
19
- constructor(injector) {
20
- super();
21
- this.injector = injector;
22
- this.itemsSubject = new ReplaySubject(1);
23
- this.itemsAsync = this.itemsSubject.asObservable();
24
- this.addItemsSubject = new ReplaySubject(1);
25
- this.addItemsAsync = this.addItemsSubject.asObservable();
26
- this.dialogUseDataProvider = false;
27
- this.dialogDataProviderService = null;
28
- this.dialogIsLoadingSubject = new ReplaySubject(1);
29
- this.isDialogVisible = false;
30
- this.dialogAreItemsLoaded = false;
31
- this.dialogSelectedAddItems = [];
32
- this.dialogMessages = [];
33
- this.dialogIsLoading$ = this.dialogIsLoadingSubject.asObservable();
34
- this.hasAddAction = false;
35
- this.hasDeleteAction = false;
36
- this.subscriptions = [];
37
- }
38
- ngOnInit() {
39
- this.descriptor = this.to['descriptor'];
40
- if (this.descriptor.lookupTableDataProvider?.serviceType) {
41
- this.dialogUseDataProvider = true;
42
- this.dialogDataProviderService = this.injector.get(this.descriptor.lookupTableDataProvider.serviceType);
43
- }
44
- this.hasAddAction = this.descriptor.actions.some(a => a === FieldManyToManyEditorActionEnum.Add);
45
- this.hasDeleteAction = this.descriptor.actions.some(a => a === FieldManyToManyEditorActionEnum.Delete);
46
- // init values
47
- if (typeof this.formControl.value === 'undefined' || this.formControl.value === null) {
48
- this.formControl.patchValue([]);
49
- }
50
- // emit lifecycle event
51
- this.descriptor?.nextEvent(MngFormFieldEventTypeEnum.ComponentLifecycle, MngFormlyFieldTableDialogMultiselectComponent, this, {
52
- eventSubtype: MngFormFieldEventComponentSubtype.ON_INIT
53
- });
54
- const subscription = this.formControl.valueChanges.pipe(startWith(this.formControl.value), distinctUntilChanged()).subscribe(v => {
55
- this.itemsSubject.next(v ?? []);
56
- // emit lifecycle event
57
- this.descriptor.nextEvent(MngFormFieldEventTypeEnum.ValueChange, MngFormlyFieldTableDialogMultiselectComponent, this, {
58
- value: v ?? []
59
- });
60
- });
61
- this.subscriptions.push(subscription);
62
- }
63
- ngAfterViewInit() {
64
- // emit lifecycle event
65
- this.descriptor?.nextEvent(MngFormFieldEventTypeEnum.ComponentLifecycle, MngFormlyFieldTableDialogMultiselectComponent, this, {
66
- eventSubtype: MngFormFieldEventComponentSubtype.ON_VIEW_INIT
67
- });
68
- }
69
- ngOnDestroy() {
70
- // warning: formly calls on destroy before on init
71
- this.lookupDataProviderSubscription?.unsubscribe();
72
- this.subscriptions.forEach(s => s.unsubscribe());
73
- // emit lifecycle event
74
- this.descriptor?.nextEvent(MngFormFieldEventTypeEnum.ComponentLifecycle, MngFormlyFieldTableDialogMultiselectComponent, this, {
75
- eventSubtype: MngFormFieldEventComponentSubtype.ON_DESTROY
76
- });
77
- }
78
- openAddDialog() {
79
- if (!this.dialogAreItemsLoaded && this.dialogUseDataProvider) {
80
- this.dialogIsLoadingSubject.next(true);
81
- const queryParamBuilder = MediusQueryParamBuilder.create(50);
82
- if (this.descriptor.lookupTableDescriptor.hasDefaultSort) {
83
- this.descriptor.lookupTableDescriptor.defaultSortProperty.forEach((p, idx) => queryParamBuilder.withSort(p, this.descriptor.lookupTableDescriptor.defaultSortAsc[idx]));
84
- }
85
- if (this.descriptor.hasLookupExcludeValues) {
86
- const filterValues = this.formControl.value.map((i) => i[this.descriptor.excludeValueProperty]);
87
- queryParamBuilder.withFilter(this.descriptor.excludeFilterProperty, filterValues, undefined, MediusFilterMatchType.NotIn);
88
- }
89
- this.lookupDataProviderSubscription = this.descriptor.lookupTableDataProvider?.getAll(queryParamBuilder.build(), this.dialogDataProviderService).subscribe({
90
- next: res => {
91
- this.addItemsSubject.next(res);
92
- this.dialogAreItemsLoaded = true;
93
- this.dialogIsLoadingSubject.next(false);
94
- },
95
- error: () => {
96
- this.dialogIsLoadingSubject.next(false);
97
- }
98
- });
99
- }
100
- this.dialogSelectedAddItems = [];
101
- this.isDialogVisible = true;
102
- this.descriptor.nextEvent(MngFormFieldEventTypeEnum.DialogLifecycle, MngFormlyFieldTableDialogMultiselectComponent, this, {
103
- eventSubtype: MngFormFieldEventDialogSubtype.VISIBILITY,
104
- dialogVisible: true
105
- });
106
- }
107
- onSelectionChange(items) {
108
- this.dialogSelectedAddItems = items;
109
- }
110
- hideDialog() {
111
- this.isDialogVisible = false;
112
- this.descriptor.nextEvent(MngFormFieldEventTypeEnum.DialogLifecycle, MngFormlyFieldTableDialogMultiselectComponent, this, {
113
- eventSubtype: MngFormFieldEventDialogSubtype.VISIBILITY,
114
- dialogVisible: false
115
- });
116
- }
117
- addItems() {
118
- let value = this.formControl.value;
119
- if (Array.isArray(value)) {
120
- value = [...value, ...this.dialogSelectedAddItems];
121
- this.formControl.patchValue(value);
122
- this.dialogSelectedAddItems = [];
123
- this.dialogAreItemsLoaded = false;
124
- this.hideDialog();
125
- }
126
- else {
127
- console.error('Values are not an valid array, cannot add selected items to array');
128
- this.dialogMessages = [{ severity: 'error', summary: 'Error', detail: 'Selected items could not be added' }];
129
- }
130
- }
131
- removeItem(item) {
132
- let value = this.formControl.value;
133
- if (Array.isArray(value)) {
134
- const compareProperty = this.descriptor.mainTableDescriptor.dataKeyProperty
135
- ? this.descriptor.mainTableDescriptor.dataKeyProperty
136
- : this.descriptor.mainTableDescriptor.model.idPropertyName;
137
- if (!compareProperty) {
138
- throw new Error('Cannot compare items, please provide main table data key property or model id property.');
139
- }
140
- value = value.filter(i => i[compareProperty] !== item[compareProperty]);
141
- this.formControl.patchValue(value);
142
- this.dialogAreItemsLoaded = false;
143
- }
144
- else {
145
- console.error('Values are not an valid array, cannot delete selected item from array');
146
- }
147
- }
148
- }
149
- MngFormlyFieldTableDialogMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldTableDialogMultiselectComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
150
- MngFormlyFieldTableDialogMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: MngFormlyFieldTableDialogMultiselectComponent, selector: "mng-formly-table-multiselect-add-field", usesInheritance: true, ngImport: i0, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end align-items-center table-header pt-0\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-field-dialog mng-action-editor-dialog mng-action-editor-dialog-sm\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n", components: [{ type: i1.MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "actions", "isColumnClickable", "viewContainer", "captionComponent", "columnActionComponent", "columnActionMinWidth"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { type: i2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: i3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange"] }], directives: [{ type: i4.MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i7.Ripple, selector: "[pRipple]" }, { type: i8.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "translate": i9.TranslatePipe, "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
151
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldTableDialogMultiselectComponent, decorators: [{
152
- type: Component,
153
- args: [{ selector: 'mng-formly-table-multiselect-add-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end align-items-center table-header pt-0\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-field-dialog mng-action-editor-dialog mng-action-editor-dialog-sm\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n" }]
154
- }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
155
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QvZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QvZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLHVCQUF1QixFQUFFLFNBQVMsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE9BQU8sRUFBYSxhQUFhLEVBQXlCLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMscUJBQXFCLEVBQUUsdUJBQXVCLEVBQW9CLE1BQU0sMkJBQTJCLENBQUM7QUFFNUcsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakYsT0FBTyxFQUFDLGlDQUFpQyxFQUFFLDhCQUE4QixFQUFFLHlCQUF5QixFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0FBTzdILE1BQU0sT0FBTyw2Q0FBcUQsU0FBUSxTQUFTO0lBd0IvRSxZQUFvQixRQUFrQjtRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQURRLGFBQVEsR0FBUixRQUFR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UUFDaEIsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDLFdBQVksQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsZUFBZTtnQkFDdkUsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsZUFBZTtnQkFDckQsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQztZQUMvRCxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLHlGQUF5RixDQUFDLENBQUM7YUFDOUc7WUFDRCxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztZQUN4RSxJQUFJLENBQUMsV0FBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwQyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFDO1NBQ3JDO2FBQU07WUFDSCxPQUFPLENBQUMsS0FBSyxDQUFDLHVFQUF1RSxDQUFDLENBQUM7U0FDMUY7SUFDTCxDQUFDOzswSUF4SlEsNkNBQTZDOzhIQUE3Qyw2Q0FBNkMscUdDakIxRCxtbkZBNkRBOzJGRDVDYSw2Q0FBNkM7a0JBTHpELFNBQVM7K0JBQ0ksd0NBQXdDLG1CQUVqQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbmplY3RvciwgT25EZXN0cm95LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0ZpZWxkVHlwZX0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5pbXBvcnQge01lc3NhZ2V9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCwgU3Vic2NyaXB0aW9uLCBkaXN0aW5jdFVudGlsQ2hhbmdlZH0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3N0YXJ0V2l0aH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQge01lZGl1c0ZpbHRlck1hdGNoVHlwZSwgTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIsIE1lZGl1c1F1ZXJ5UmVzdWx0fSBmcm9tICcuLi8uLi8uLi8uLi8uLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7RmllbGRNYW55VG9NYW55RWRpdG9yRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtGaWVsZE1hbnlUb01hbnlFZGl0b3JBY3Rpb25FbnVtfSBmcm9tICcuLi8uLi8uLi8uLi8uLi9kZXNjcmlwdG9ycy90eXBlcyc7XG5pbXBvcnQge01uZ0Zvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZSwgTW5nRm9ybUZpZWxkRXZlbnREaWFsb2dTdWJ0eXBlLCBNbmdGb3JtRmllbGRFdmVudFR5cGVFbnVtfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy1mb3JtbHktdGFibGUtbXVsdGlzZWxlY3QtYWRkLWZpZWxkJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTW5nRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50PFQsIEVUPiBleHRlbmRzIEZpZWxkVHlwZSBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgZGVzY3JpcHRvciE6IEZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3I8VCwgRVQ+O1xuXG4gICAgcHVibGljIGl0ZW1zU3ViamVjdDogU3ViamVjdDxBcnJheTxUPj4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgICBwdWJsaWMgaXRlbXNBc3luYzogT2JzZXJ2YWJsZTxBcnJheTxUPj4gPSB0aGlzLml0ZW1zU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICBwdWJsaWMgYWRkSXRlbXNTdWJqZWN0OiBTdWJqZWN0PE1lZGl1c1F1ZXJ5UmVzdWx0PFQ+PiA9IG5ldyBSZXBsYXlTdWJqZWN0KDEpO1xuICAgIHB1YmxpYyBhZGRJdGVtc0FzeW5jOiBPYnNlcnZhYmxlPE1lZGl1c1F1ZXJ5UmVzdWx0PFQ+PiA9IHRoaXMuYWRkSXRlbXNTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHVibGljIGRpYWxvZ1VzZURhdGFQcm92aWRlciA9IGZhbHNlO1xuICAgIHByaXZhdGUgZGlhbG9nRGF0YVByb3ZpZGVyU2VydmljZTogYW55ID0gbnVsbDtcbiAgICBwcml2YXRlIGRpYWxvZ0lzTG9hZGluZ1N1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcblxuICAgIHB1YmxpYyBpc0RpYWxvZ1Zpc2libGUgPSBmYWxzZTtcbiAgICBwdWJsaWMgZGlhbG9nQXJlSXRlbXNMb2FkZWQgPSBmYWxzZTtcbiAgICBwdWJsaWMgZGlhbG9nU2VsZWN0ZWRBZGRJdGVtczogQXJyYXk8YW55PiA9IFtdO1xuICAgIHB1YmxpYyBkaWFsb2dNZXNzYWdlczogTWVzc2FnZVtdID0gW107XG4gICAgcHVibGljIGRpYWxvZ0lzTG9hZGluZyQgPSB0aGlzLmRpYWxvZ0lzTG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBwdWJsaWMgaGFzQWRkQWN0aW9uID0gZmFsc2U7XG4gICAgcHVibGljIGhhc0RlbGV0ZUFjdGlvbiA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSBsb29rdXBEYXRhUHJvdmlkZXJTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb25zOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvciA9IHRoaXMudG9bJ2Rlc2NyaXB0b3InXTtcbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURhdGFQcm92aWRlcj8uc2VydmljZVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nVXNlRGF0YVByb3ZpZGVyID0gdHJ1ZTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nRGF0YVByb3ZpZGVyU2VydmljZSA9IHRoaXMuaW5qZWN0b3IuZ2V0PGFueT4odGhpcy5kZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGF0YVByb3ZpZGVyLnNlcnZpY2VUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmhhc0FkZEFjdGlvbiA9IHRoaXMuZGVzY3JpcHRvci5hY3Rpb25zLnNvbWUoYSA9PiBhID09PSBGaWVsZE1hbnlUb01hbnlFZGl0b3JBY3Rpb25FbnVtLkFkZCk7XG4gICAgICAgIHRoaXMuaGFzRGVsZXRlQWN0aW9uID0gdGhpcy5kZXNjcmlwdG9yLmFjdGlvbnMuc29tZShhID0+IGEgPT09IEZpZWxkTWFueVRvTWFueUVkaXRvckFjdGlvbkVudW0uRGVsZXRlKTtcblxuICAgICAgICAvLyBpbml0IHZhbHVlc1xuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZm9ybUNvbnRyb2whLnZhbHVlID09PSAndW5kZWZpbmVkJyB8fCB0aGlzLmZvcm1Db250cm9sIS52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy5mb3JtQ29udHJvbCEucGF0Y2hWYWx1ZShbXSk7XG4gICAgICAgIH1cblxuICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICB0aGlzLmRlc2NyaXB0b3I/Lm5leHRFdmVudChNbmdGb3JtRmllbGRFdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgTW5nRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50LCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IE1uZ0Zvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9JTklUXG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuZm9ybUNvbnRyb2whLnZhbHVlQ2hhbmdlcy5waXBlKHN0YXJ0V2l0aCh0aGlzLmZvcm1Db250cm9sIS52YWx1ZSksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXRlbXNTdWJqZWN0Lm5leHQodiA/PyBbXSk7XG5cbiAgICAgICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgICAgICB0aGlzLmRlc2NyaXB0b3IubmV4dEV2ZW50KE1uZ0Zvcm1GaWVsZEV2ZW50VHlwZUVudW0uVmFsdWVDaGFuZ2UsIE1uZ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dNdWx0aXNlbGVjdENvbXBvbmVudCwgdGhpcywge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB2ID8/IFtdXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yPy5uZXh0RXZlbnQoTW5nRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIE1uZ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dNdWx0aXNlbGVjdENvbXBvbmVudCwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBNbmdGb3JtRmllbGRFdmVudENvbXBvbmVudFN1YnR5cGUuT05fVklFV19JTklUXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgLy8gd2FybmluZzogZm9ybWx5IGNhbGxzIG9uIGRlc3Ryb3kgYmVmb3JlIG9uIGluaXRcblxuICAgICAgICB0aGlzLmxvb2t1cERhdGFQcm92aWRlclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuXG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvcj8ubmV4dEV2ZW50KE1uZ0Zvcm1GaWVsZEV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCBNbmdGb3JtbHlGaWVsZFRhYmxlRGlhbG9nTXVsdGlzZWxlY3RDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogTW5nRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX0RFU1RST1lcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3BlbkFkZERpYWxvZygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkICYmIHRoaXMuZGlhbG9nVXNlRGF0YVByb3ZpZGVyKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0lzTG9hZGluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIGNvbnN0IHF1ZXJ5UGFyYW1CdWlsZGVyID0gTWVkaXVzUXVlcnlQYXJhbUJ1aWxkZXIuY3JlYXRlKDUwKTtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEZXNjcmlwdG9yLmhhc0RlZmF1bHRTb3J0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGVzY3JpcHRvci5kZWZhdWx0U29ydFByb3BlcnR5LmZvckVhY2goKHAsIGlkeCkgPT5cbiAgICAgICAgICAgICAgICAgICAgcXVlcnlQYXJhbUJ1aWxkZXIud2l0aFNvcnQocCwgdGhpcy5kZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGVzY3JpcHRvci5kZWZhdWx0U29ydEFzY1tpZHhdKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmhhc0xvb2t1cEV4Y2x1ZGVWYWx1ZXMpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBmaWx0ZXJWYWx1ZXMgPSB0aGlzLmZvcm1Db250cm9sIS52YWx1ZS5tYXAoKGk6IGFueSkgPT4gaVt0aGlzLmRlc2NyaXB0b3IuZXhjbHVkZVZhbHVlUHJvcGVydHldKTtcbiAgICAgICAgICAgICAgICBxdWVyeVBhcmFtQnVpbGRlci53aXRoRmlsdGVyKHRoaXMuZGVzY3JpcHRvci5leGNsdWRlRmlsdGVyUHJvcGVydHksIGZpbHRlclZhbHVlcywgdW5kZWZpbmVkLCBNZWRpdXNGaWx0ZXJNYXRjaFR5cGUuTm90SW4pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5sb29rdXBEYXRhUHJvdmlkZXJTdWJzY3JpcHRpb24gPSB0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEYXRhUHJvdmlkZXI/LmdldEFsbChxdWVyeVBhcmFtQnVpbGRlci5idWlsZCgpLCB0aGlzLmRpYWxvZ0RhdGFQcm92aWRlclNlcnZpY2UpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogcmVzID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hZGRJdGVtc1N1YmplY3QubmV4dChyZXMpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dJc0xvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dJc0xvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtcyA9IFtdO1xuICAgICAgICB0aGlzLmlzRGlhbG9nVmlzaWJsZSA9IHRydWU7XG5cbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yLm5leHRFdmVudChNbmdGb3JtRmllbGRFdmVudFR5cGVFbnVtLkRpYWxvZ0xpZmVjeWNsZSwgTW5nRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50LCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IE1uZ0Zvcm1GaWVsZEV2ZW50RGlhbG9nU3VidHlwZS5WSVNJQklMSVRZLFxuICAgICAgICAgICAgZGlhbG9nVmlzaWJsZTogdHJ1ZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvblNlbGVjdGlvbkNoYW5nZShpdGVtczogQXJyYXk8YW55Pikge1xuICAgICAgICB0aGlzLmRpYWxvZ1NlbGVjdGVkQWRkSXRlbXMgPSBpdGVtcztcbiAgICB9XG5cbiAgICBoaWRlRGlhbG9nKCkge1xuICAgICAgICB0aGlzLmlzRGlhbG9nVmlzaWJsZSA9IGZhbHNlO1xuXG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoTW5nRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5EaWFsb2dMaWZlY3ljbGUsIE1uZ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dNdWx0aXNlbGVjdENvbXBvbmVudCwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBNbmdGb3JtRmllbGRFdmVudERpYWxvZ1N1YnR5cGUuVklTSUJJTElUWSxcbiAgICAgICAgICAgIGRpYWxvZ1Zpc2libGU6IGZhbHNlXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFkZEl0ZW1zKCkge1xuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmZvcm1Db250cm9sIS52YWx1ZTtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IFsuLi52YWx1ZSwgLi4udGhpcy5kaWFsb2dTZWxlY3RlZEFkZEl0ZW1zXTtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2whLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dTZWxlY3RlZEFkZEl0ZW1zID0gW107XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gZmFsc2U7XG4gICAgICAgICAgICB0aGlzLmhpZGVEaWFsb2coKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1ZhbHVlcyBhcmUgbm90IGFuIHZhbGlkIGFycmF5LCBjYW5ub3QgYWRkIHNlbGVjdGVkIGl0ZW1zIHRvIGFycmF5Jyk7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ01lc3NhZ2VzID0gW3tzZXZlcml0eTogJ2Vycm9yJywgc3VtbWFyeTogJ0Vycm9yJywgZGV0YWlsOiAnU2VsZWN0ZWQgaXRlbXMgY291bGQgbm90IGJlIGFkZGVkJ31dO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmVtb3ZlSXRlbShpdGVtOiBhbnkpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5mb3JtQ29udHJvbCEudmFsdWU7XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgY29uc3QgY29tcGFyZVByb3BlcnR5ID0gdGhpcy5kZXNjcmlwdG9yLm1haW5UYWJsZURlc2NyaXB0b3IuZGF0YUtleVByb3BlcnR5XG4gICAgICAgICAgICAgICAgPyB0aGlzLmRlc2NyaXB0b3IubWFpblRhYmxlRGVzY3JpcHRvci5kYXRhS2V5UHJvcGVydHlcbiAgICAgICAgICAgICAgICA6IHRoaXMuZGVzY3JpcHRvci5tYWluVGFibGVEZXNjcmlwdG9yLm1vZGVsLmlkUHJvcGVydHlOYW1lO1xuICAgICAgICAgICAgaWYgKCFjb21wYXJlUHJvcGVydHkpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBjb21wYXJlIGl0ZW1zLCBwbGVhc2UgcHJvdmlkZSBtYWluIHRhYmxlIGRhdGEga2V5IHByb3BlcnR5IG9yIG1vZGVsIGlkIHByb3BlcnR5LicpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZS5maWx0ZXIoaSA9PiBpW2NvbXBhcmVQcm9wZXJ0eV0gIT09IGl0ZW1bY29tcGFyZVByb3BlcnR5XSk7XG4gICAgICAgICAgICB0aGlzLmZvcm1Db250cm9sIS5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nQXJlSXRlbXNMb2FkZWQgPSBmYWxzZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ1ZhbHVlcyBhcmUgbm90IGFuIHZhbGlkIGFycmF5LCBjYW5ub3QgZGVsZXRlIHNlbGVjdGVkIGl0ZW0gZnJvbSBhcnJheScpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG1uZy10YWJsZSBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yLm1haW5UYWJsZURlc2NyaXB0b3JcIiBbaXRlbXNdPVwiaXRlbXNBc3luY1wiPlxuICAgIDxuZy10ZW1wbGF0ZSBtbmdUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWQ6ZmxleC1yb3cgbWQ6anVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXIgdGFibGUtaGVhZGVyIHB0LTBcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1uZy1kYXRhdGFibGUtZm9ybS1sYWJlbCBwLTAgbS0wXCIgW2Zvcl09XCJrZXlcIj57eyB0bz8ubGFiZWwhIHwgdHJhbnNsYXRlIH19IDxzcGFuICpuZ0lmPVwidG8ucmVxdWlyZWQgJiYgdG9bJ2hpZGVSZXF1aXJlZE1hcmtlciddICE9PSB0cnVlXCI+Kjwvc3Bhbj48L2xhYmVsPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQWRkQWN0aW9uICYmICFvcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGljb249XCJwaSBwaS1wbHVzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBtbmctYnV0dG9uLXhzXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkFkZERpYWxvZygpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2whLmRpc2FibGVkXCI+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIG1uZ1RlbXBsYXRlPVwiY29sdW1uQWN0aW9uXCIgbGV0LWl0ZW09XCJyb3dJdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiaGFzRGVsZXRlQWN0aW9uICYmICFvcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkXCJcbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLXRyYXNoXCJcbiAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbW5nLWJ1dHRvbi14c1wiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbShpdGVtKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2whLmRpc2FibGVkXCI+PC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbW5nLXRhYmxlPlxuXG48cC1kaWFsb2dcbiAgICAqbmdJZj1cImhhc0FkZEFjdGlvblwiXG4gICAgWyh2aXNpYmxlKV09XCJpc0RpYWxvZ1Zpc2libGVcIlxuICAgIFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxuICAgIFtoZWFkZXJdPVwiJ2dlbmVyYWwuYWRkSXRlbScgfCB0cmFuc2xhdGU6IHtpdGVtOiB0bz8ubGFiZWwhfVwiXG4gICAgW21vZGFsXT1cInRydWVcIlxuICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgc3R5bGVDbGFzcz1cInAtZmx1aWQgbW5nLWZpZWxkLWRpYWxvZyBtbmctYWN0aW9uLWVkaXRvci1kaWFsb2cgbW5nLWFjdGlvbi1lZGl0b3ItZGlhbG9nLXNtXCI+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIj5cbiAgICAgICAgPG1uZy10YWJsZVxuICAgICAgICAgICAgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvci5tYWluVGFibGVEZXNjcmlwdG9yXCJcbiAgICAgICAgICAgIFtxdWVyeVJlc3VsdF09XCJhZGRJdGVtc0FzeW5jXCJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25FbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiZGlhbG9nSXNMb2FkaW5nJFwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPC9tbmctdGFibGU+XG4gICAgICAgIDxwLW1lc3NhZ2VzIFt2YWx1ZV09XCJkaWFsb2dNZXNzYWdlc1wiPjwvcC1tZXNzYWdlcz5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgW2xhYmVsXT1cIidnZW5lcmFsLmNhbmNlbCcgfCB0cmFuc2xhdGVcIiBpY29uPVwicGkgcGktdGltZXNcIiBjbGFzcz1cInAtYnV0dG9uLXRleHRcIiAoY2xpY2spPVwiaGlkZURpYWxvZygpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidnZW5lcmFsLmFkZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLWNoZWNrXCJcbiAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tdGV4dFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkSXRlbXMoKVwiXG4gICAgICAgICAgICBbbG9hZGluZ109XCIoZGlhbG9nSXNMb2FkaW5nJCB8IGFzeW5jKSA/PyBmYWxzZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3AtZGlhbG9nPlxuIl19
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FieldType } from '@ngx-formly/core';
3
+ import { ReplaySubject, distinctUntilChanged } from 'rxjs';
4
+ import { startWith } from 'rxjs/operators';
5
+ import { MediusFilterMatchType, MediusQueryParamBuilder } from '../../../../../api/models';
6
+ import { FieldManyToManyEditorActionEnum } from '../../../../../descriptors/types';
7
+ import { MngFormFieldEventComponentSubtype, MngFormFieldEventDialogSubtype, MngFormFieldEventTypeEnum } from '../../../models';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "../../../../tableview/table/table.component";
10
+ import * as i2 from "primeng/dialog";
11
+ import * as i3 from "primeng/messages";
12
+ import * as i4 from "../../../../../directives/template.directive";
13
+ import * as i5 from "@angular/common";
14
+ import * as i6 from "primeng/button";
15
+ import * as i7 from "primeng/ripple";
16
+ import * as i8 from "primeng/api";
17
+ import * as i9 from "@ngx-translate/core";
18
+ export class MngFormlyFieldTableDialogMultiselectComponent extends FieldType {
19
+ constructor(injector) {
20
+ super();
21
+ this.injector = injector;
22
+ this.itemsSubject = new ReplaySubject(1);
23
+ this.itemsAsync = this.itemsSubject.asObservable();
24
+ this.addItemsSubject = new ReplaySubject(1);
25
+ this.addItemsAsync = this.addItemsSubject.asObservable();
26
+ this.dialogUseDataProvider = false;
27
+ this.dialogDataProviderService = null;
28
+ this.dialogIsLoadingSubject = new ReplaySubject(1);
29
+ this.isDialogVisible = false;
30
+ this.dialogAreItemsLoaded = false;
31
+ this.dialogSelectedAddItems = [];
32
+ this.dialogMessages = [];
33
+ this.dialogIsLoading$ = this.dialogIsLoadingSubject.asObservable();
34
+ this.hasAddAction = false;
35
+ this.hasDeleteAction = false;
36
+ this.subscriptions = [];
37
+ }
38
+ ngOnInit() {
39
+ this.descriptor = this.to['descriptor'];
40
+ if (this.descriptor.lookupTableDataProvider?.serviceType) {
41
+ this.dialogUseDataProvider = true;
42
+ this.dialogDataProviderService = this.injector.get(this.descriptor.lookupTableDataProvider.serviceType);
43
+ }
44
+ this.hasAddAction = this.descriptor.actions.some(a => a === FieldManyToManyEditorActionEnum.Add);
45
+ this.hasDeleteAction = this.descriptor.actions.some(a => a === FieldManyToManyEditorActionEnum.Delete);
46
+ // init values
47
+ if (typeof this.formControl.value === 'undefined' || this.formControl.value === null) {
48
+ this.formControl.patchValue([]);
49
+ }
50
+ // emit lifecycle event
51
+ this.descriptor?.nextEvent(MngFormFieldEventTypeEnum.ComponentLifecycle, MngFormlyFieldTableDialogMultiselectComponent, this, {
52
+ eventSubtype: MngFormFieldEventComponentSubtype.ON_INIT
53
+ });
54
+ const subscription = this.formControl.valueChanges.pipe(startWith(this.formControl.value), distinctUntilChanged()).subscribe(v => {
55
+ this.itemsSubject.next(v ?? []);
56
+ // emit lifecycle event
57
+ this.descriptor.nextEvent(MngFormFieldEventTypeEnum.ValueChange, MngFormlyFieldTableDialogMultiselectComponent, this, {
58
+ value: v ?? []
59
+ });
60
+ });
61
+ this.subscriptions.push(subscription);
62
+ }
63
+ ngAfterViewInit() {
64
+ // emit lifecycle event
65
+ this.descriptor?.nextEvent(MngFormFieldEventTypeEnum.ComponentLifecycle, MngFormlyFieldTableDialogMultiselectComponent, this, {
66
+ eventSubtype: MngFormFieldEventComponentSubtype.ON_VIEW_INIT
67
+ });
68
+ }
69
+ ngOnDestroy() {
70
+ // warning: formly calls on destroy before on init
71
+ this.lookupDataProviderSubscription?.unsubscribe();
72
+ this.subscriptions.forEach(s => s.unsubscribe());
73
+ // emit lifecycle event
74
+ this.descriptor?.nextEvent(MngFormFieldEventTypeEnum.ComponentLifecycle, MngFormlyFieldTableDialogMultiselectComponent, this, {
75
+ eventSubtype: MngFormFieldEventComponentSubtype.ON_DESTROY
76
+ });
77
+ }
78
+ openAddDialog() {
79
+ if (!this.dialogAreItemsLoaded && this.dialogUseDataProvider) {
80
+ this.dialogIsLoadingSubject.next(true);
81
+ const queryParamBuilder = MediusQueryParamBuilder.create(50);
82
+ if (this.descriptor.lookupTableDescriptor.hasDefaultSort) {
83
+ this.descriptor.lookupTableDescriptor.defaultSortProperty.forEach((p, idx) => queryParamBuilder.withSort(p, this.descriptor.lookupTableDescriptor.defaultSortAsc[idx]));
84
+ }
85
+ if (this.descriptor.hasLookupExcludeValues) {
86
+ const filterValues = this.formControl.value.map((i) => i[this.descriptor.excludeValueProperty]);
87
+ queryParamBuilder.withFilter(this.descriptor.excludeFilterProperty, filterValues, undefined, MediusFilterMatchType.NotIn);
88
+ }
89
+ this.lookupDataProviderSubscription = this.descriptor.lookupTableDataProvider?.getAll(queryParamBuilder.build(), this.dialogDataProviderService).subscribe({
90
+ next: res => {
91
+ this.addItemsSubject.next(res);
92
+ this.dialogAreItemsLoaded = true;
93
+ this.dialogIsLoadingSubject.next(false);
94
+ },
95
+ error: () => {
96
+ this.dialogIsLoadingSubject.next(false);
97
+ }
98
+ });
99
+ }
100
+ this.dialogSelectedAddItems = [];
101
+ this.isDialogVisible = true;
102
+ this.descriptor.nextEvent(MngFormFieldEventTypeEnum.DialogLifecycle, MngFormlyFieldTableDialogMultiselectComponent, this, {
103
+ eventSubtype: MngFormFieldEventDialogSubtype.VISIBILITY,
104
+ dialogVisible: true
105
+ });
106
+ }
107
+ onSelectionChange(items) {
108
+ this.dialogSelectedAddItems = items;
109
+ }
110
+ hideDialog() {
111
+ this.isDialogVisible = false;
112
+ this.descriptor.nextEvent(MngFormFieldEventTypeEnum.DialogLifecycle, MngFormlyFieldTableDialogMultiselectComponent, this, {
113
+ eventSubtype: MngFormFieldEventDialogSubtype.VISIBILITY,
114
+ dialogVisible: false
115
+ });
116
+ }
117
+ addItems() {
118
+ let value = this.formControl.value;
119
+ if (!Array.isArray(value)) {
120
+ value = [];
121
+ }
122
+ value = [...value, ...this.dialogSelectedAddItems];
123
+ this.formControl.patchValue(value);
124
+ this.dialogSelectedAddItems = [];
125
+ this.dialogAreItemsLoaded = false;
126
+ this.hideDialog();
127
+ }
128
+ removeItem(item) {
129
+ let value = this.formControl.value;
130
+ if (!Array.isArray(value)) {
131
+ value = [];
132
+ }
133
+ const compareProperty = this.descriptor.mainTableDescriptor.dataKeyProperty
134
+ ? this.descriptor.mainTableDescriptor.dataKeyProperty
135
+ : this.descriptor.mainTableDescriptor.model.idPropertyName;
136
+ if (!compareProperty) {
137
+ throw new Error('Cannot compare items, please provide main table data key property or model id property.');
138
+ }
139
+ value = value.filter((i) => i[compareProperty] !== item[compareProperty]);
140
+ this.formControl.patchValue(value);
141
+ this.dialogAreItemsLoaded = false;
142
+ }
143
+ }
144
+ MngFormlyFieldTableDialogMultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldTableDialogMultiselectComponent, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
145
+ MngFormlyFieldTableDialogMultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: MngFormlyFieldTableDialogMultiselectComponent, selector: "mng-formly-table-multiselect-add-field", usesInheritance: true, ngImport: i0, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end align-items-center table-header pt-0\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-field-dialog mng-action-editor-dialog mng-action-editor-dialog-sm\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n", components: [{ type: i1.MngTableComponent, selector: "mng-table", inputs: ["descriptor", "items", "queryResult", "loading", "dataProvider", "useQueryParams", "selectionMode", "selectionEnabled", "actions", "isColumnClickable", "viewContainer", "captionComponent", "columnActionComponent", "columnActionMinWidth"], outputs: ["tableLoad", "cellClick", "selectionChange", "captionComponentInstance", "columnActionComponentInstance"] }, { type: i2.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { type: i3.Messages, selector: "p-messages", inputs: ["value", "closable", "style", "styleClass", "enableService", "key", "escape", "severity", "showTransitionOptions", "hideTransitionOptions"], outputs: ["valueChange"] }], directives: [{ type: i4.MngTemplateDirective, selector: "[mngTemplate]", inputs: ["type", "mngTemplate"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i7.Ripple, selector: "[pRipple]" }, { type: i8.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "translate": i9.TranslatePipe, "async": i5.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
146
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldTableDialogMultiselectComponent, decorators: [{
147
+ type: Component,
148
+ args: [{ selector: 'mng-formly-table-multiselect-add-field', changeDetection: ChangeDetectionStrategy.OnPush, template: "<mng-table [descriptor]=\"descriptor.mainTableDescriptor\" [items]=\"itemsAsync\">\n <ng-template mngTemplate=\"caption\">\n <div class=\"flex flex-column md:flex-row md:justify-content-end align-items-center table-header pt-0\">\n <label class=\"mng-datatable-form-label p-0 m-0\" [for]=\"key\">{{ to?.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label>\n <button\n *ngIf=\"hasAddAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-plus\"\n class=\"p-button-rounded p-button-success mng-button-xs\"\n (click)=\"openAddDialog()\"\n [disabled]=\"formControl!.disabled\"></button>\n </div>\n </ng-template>\n <ng-template mngTemplate=\"columnAction\" let-item=\"rowItem\">\n <button\n *ngIf=\"hasDeleteAction && !options?.formState?.disabled\"\n pButton\n pRipple\n type=\"button\"\n icon=\"pi pi-trash\"\n class=\"p-button-rounded p-button-danger mng-button-xs\"\n (click)=\"removeItem(item)\"\n [disabled]=\"formControl!.disabled\"></button>\n </ng-template>\n</mng-table>\n\n<p-dialog\n *ngIf=\"hasAddAction\"\n [(visible)]=\"isDialogVisible\"\n [draggable]=\"false\"\n [header]=\"'general.addItem' | translate: {item: to?.label!}\"\n [modal]=\"true\"\n appendTo=\"body\"\n styleClass=\"p-fluid mng-field-dialog mng-action-editor-dialog mng-action-editor-dialog-sm\">\n <ng-template pTemplate=\"content\">\n <mng-table\n [descriptor]=\"descriptor.mainTableDescriptor\"\n [queryResult]=\"addItemsAsync\"\n [selectionEnabled]=\"true\"\n [loading]=\"dialogIsLoading$\"\n (selectionChange)=\"onSelectionChange($event)\">\n </mng-table>\n <p-messages [value]=\"dialogMessages\"></p-messages>\n </ng-template>\n\n <ng-template pTemplate=\"footer\">\n <button pButton pRipple type=\"button\" [label]=\"'general.cancel' | translate\" icon=\"pi pi-times\" class=\"p-button-text\" (click)=\"hideDialog()\"></button>\n <button\n pButton\n pRipple\n type=\"button\"\n [label]=\"'general.add' | translate\"\n icon=\"pi pi-check\"\n class=\"p-button-text\"\n (click)=\"addItems()\"\n [loading]=\"(dialogIsLoading$ | async) ?? false\"\n [disabled]=\"form.disabled\"></button>\n </ng-template>\n</p-dialog>\n" }]
149
+ }], ctorParameters: function () { return [{ type: i0.Injector }]; } });
150
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QvZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QvZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLHVCQUF1QixFQUFFLFNBQVMsRUFBOEIsTUFBTSxlQUFlLENBQUM7QUFFN0csT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBRTNDLE9BQU8sRUFBYSxhQUFhLEVBQXlCLG9CQUFvQixFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzVGLE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6QyxPQUFPLEVBQUMscUJBQXFCLEVBQUUsdUJBQXVCLEVBQW9CLE1BQU0sMkJBQTJCLENBQUM7QUFFNUcsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDakYsT0FBTyxFQUFDLGlDQUFpQyxFQUFFLDhCQUE4QixFQUFFLHlCQUF5QixFQUFDLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0FBTzdILE1BQU0sT0FBTyw2Q0FBcUQsU0FBUSxTQUFTO0lBd0IvRSxZQUFvQixRQUFrQjtRQUNsQyxLQUFLLEVBQUUsQ0FBQztRQURRLGFBQVEsR0FBUixRQUFR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ZDtRQUNELE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLENBQUMsZUFBZTtZQUN2RSxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlO1lBQ3JELENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUM7UUFDL0QsSUFBSSxDQUFDLGVBQWUsRUFBRTtZQUNsQixNQUFNLElBQUksS0FBSyxDQUFDLHlGQUF5RixDQUFDLENBQUM7U0FDOUc7UUFDRCxLQUFLLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxLQUFLLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQy9FLElBQUksQ0FBQyxXQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxLQUFLLENBQUM7SUFDdEMsQ0FBQzs7MElBckpRLDZDQUE2Qzs4SEFBN0MsNkNBQTZDLHFHQ2pCMUQsbW5GQTZEQTsyRkQ1Q2EsNkNBQTZDO2tCQUx6RCxTQUFTOytCQUNJLHdDQUF3QyxtQkFFakMsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QWZ0ZXJWaWV3SW5pdCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5qZWN0b3IsIE9uRGVzdHJveSwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtGaWVsZFR5cGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuaW1wb3J0IHtNZXNzYWdlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge09ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtzdGFydFdpdGh9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtNZWRpdXNGaWx0ZXJNYXRjaFR5cGUsIE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLCBNZWRpdXNRdWVyeVJlc3VsdH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vYXBpL21vZGVscyc7XG5pbXBvcnQge0ZpZWxkTWFueVRvTWFueUVkaXRvckRlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7RmllbGRNYW55VG9NYW55RWRpdG9yQWN0aW9uRW51bX0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vZGVzY3JpcHRvcnMvdHlwZXMnO1xuaW1wb3J0IHtNbmdGb3JtRmllbGRFdmVudENvbXBvbmVudFN1YnR5cGUsIE1uZ0Zvcm1GaWVsZEV2ZW50RGlhbG9nU3VidHlwZSwgTW5nRm9ybUZpZWxkRXZlbnRUeXBlRW51bX0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtbmctZm9ybWx5LXRhYmxlLW11bHRpc2VsZWN0LWFkZC1maWVsZCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dNdWx0aXNlbGVjdENvbXBvbmVudDxULCBFVD4gZXh0ZW5kcyBGaWVsZFR5cGUgaW1wbGVtZW50cyBPbkluaXQsIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHVibGljIGRlc2NyaXB0b3IhOiBGaWVsZE1hbnlUb01hbnlFZGl0b3JEZXNjcmlwdG9yPFQsIEVUPjtcblxuICAgIHB1YmxpYyBpdGVtc1N1YmplY3Q6IFN1YmplY3Q8QXJyYXk8VD4+ID0gbmV3IFJlcGxheVN1YmplY3QoMSk7XG4gICAgcHVibGljIGl0ZW1zQXN5bmM6IE9ic2VydmFibGU8QXJyYXk8VD4+ID0gdGhpcy5pdGVtc1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHVibGljIGFkZEl0ZW1zU3ViamVjdDogU3ViamVjdDxNZWRpdXNRdWVyeVJlc3VsdDxUPj4gPSBuZXcgUmVwbGF5U3ViamVjdCgxKTtcbiAgICBwdWJsaWMgYWRkSXRlbXNBc3luYzogT2JzZXJ2YWJsZTxNZWRpdXNRdWVyeVJlc3VsdDxUPj4gPSB0aGlzLmFkZEl0ZW1zU3ViamVjdC5hc09ic2VydmFibGUoKTtcblxuICAgIHB1YmxpYyBkaWFsb2dVc2VEYXRhUHJvdmlkZXIgPSBmYWxzZTtcbiAgICBwcml2YXRlIGRpYWxvZ0RhdGFQcm92aWRlclNlcnZpY2U6IGFueSA9IG51bGw7XG4gICAgcHJpdmF0ZSBkaWFsb2dJc0xvYWRpbmdTdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cbiAgICBwdWJsaWMgaXNEaWFsb2dWaXNpYmxlID0gZmFsc2U7XG4gICAgcHVibGljIGRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gZmFsc2U7XG4gICAgcHVibGljIGRpYWxvZ1NlbGVjdGVkQWRkSXRlbXM6IEFycmF5PGFueT4gPSBbXTtcbiAgICBwdWJsaWMgZGlhbG9nTWVzc2FnZXM6IE1lc3NhZ2VbXSA9IFtdO1xuICAgIHB1YmxpYyBkaWFsb2dJc0xvYWRpbmckID0gdGhpcy5kaWFsb2dJc0xvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuXG4gICAgcHVibGljIGhhc0FkZEFjdGlvbiA9IGZhbHNlO1xuICAgIHB1YmxpYyBoYXNEZWxldGVBY3Rpb24gPSBmYWxzZTtcblxuICAgIHByaXZhdGUgbG9va3VwRGF0YVByb3ZpZGVyU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLmRlc2NyaXB0b3IgPSB0aGlzLnRvWydkZXNjcmlwdG9yJ107XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IubG9va3VwVGFibGVEYXRhUHJvdmlkZXI/LnNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ1VzZURhdGFQcm92aWRlciA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLmRpYWxvZ0RhdGFQcm92aWRlclNlcnZpY2UgPSB0aGlzLmluamVjdG9yLmdldDxhbnk+KHRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURhdGFQcm92aWRlci5zZXJ2aWNlVHlwZSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5oYXNBZGRBY3Rpb24gPSB0aGlzLmRlc2NyaXB0b3IuYWN0aW9ucy5zb21lKGEgPT4gYSA9PT0gRmllbGRNYW55VG9NYW55RWRpdG9yQWN0aW9uRW51bS5BZGQpO1xuICAgICAgICB0aGlzLmhhc0RlbGV0ZUFjdGlvbiA9IHRoaXMuZGVzY3JpcHRvci5hY3Rpb25zLnNvbWUoYSA9PiBhID09PSBGaWVsZE1hbnlUb01hbnlFZGl0b3JBY3Rpb25FbnVtLkRlbGV0ZSk7XG5cbiAgICAgICAgLy8gaW5pdCB2YWx1ZXNcbiAgICAgICAgaWYgKHR5cGVvZiB0aGlzLmZvcm1Db250cm9sIS52YWx1ZSA9PT0gJ3VuZGVmaW5lZCcgfHwgdGhpcy5mb3JtQ29udHJvbCEudmFsdWUgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybUNvbnRyb2whLnBhdGNoVmFsdWUoW10pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZW1pdCBsaWZlY3ljbGUgZXZlbnRcbiAgICAgICAgdGhpcy5kZXNjcmlwdG9yPy5uZXh0RXZlbnQoTW5nRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5Db21wb25lbnRMaWZlY3ljbGUsIE1uZ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dNdWx0aXNlbGVjdENvbXBvbmVudCwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBNbmdGb3JtRmllbGRFdmVudENvbXBvbmVudFN1YnR5cGUuT05fSU5JVFxuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLmZvcm1Db250cm9sIS52YWx1ZUNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5mb3JtQ29udHJvbCEudmFsdWUpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKS5zdWJzY3JpYmUodiA9PiB7XG4gICAgICAgICAgICB0aGlzLml0ZW1zU3ViamVjdC5uZXh0KHYgPz8gW10pO1xuXG4gICAgICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICAgICAgdGhpcy5kZXNjcmlwdG9yLm5leHRFdmVudChNbmdGb3JtRmllbGRFdmVudFR5cGVFbnVtLlZhbHVlQ2hhbmdlLCBNbmdGb3JtbHlGaWVsZFRhYmxlRGlhbG9nTXVsdGlzZWxlY3RDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogdiA/PyBbXVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIC8vIGVtaXQgbGlmZWN5Y2xlIGV2ZW50XG4gICAgICAgIHRoaXMuZGVzY3JpcHRvcj8ubmV4dEV2ZW50KE1uZ0Zvcm1GaWVsZEV2ZW50VHlwZUVudW0uQ29tcG9uZW50TGlmZWN5Y2xlLCBNbmdGb3JtbHlGaWVsZFRhYmxlRGlhbG9nTXVsdGlzZWxlY3RDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogTW5nRm9ybUZpZWxkRXZlbnRDb21wb25lbnRTdWJ0eXBlLk9OX1ZJRVdfSU5JVFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIC8vIHdhcm5pbmc6IGZvcm1seSBjYWxscyBvbiBkZXN0cm95IGJlZm9yZSBvbiBpbml0XG5cbiAgICAgICAgdGhpcy5sb29rdXBEYXRhUHJvdmlkZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5mb3JFYWNoKHMgPT4gcy51bnN1YnNjcmliZSgpKTtcblxuICAgICAgICAvLyBlbWl0IGxpZmVjeWNsZSBldmVudFxuICAgICAgICB0aGlzLmRlc2NyaXB0b3I/Lm5leHRFdmVudChNbmdGb3JtRmllbGRFdmVudFR5cGVFbnVtLkNvbXBvbmVudExpZmVjeWNsZSwgTW5nRm9ybWx5RmllbGRUYWJsZURpYWxvZ011bHRpc2VsZWN0Q29tcG9uZW50LCB0aGlzLCB7XG4gICAgICAgICAgICBldmVudFN1YnR5cGU6IE1uZ0Zvcm1GaWVsZEV2ZW50Q29tcG9uZW50U3VidHlwZS5PTl9ERVNUUk9ZXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9wZW5BZGREaWFsb2coKSB7XG4gICAgICAgIGlmICghdGhpcy5kaWFsb2dBcmVJdGVtc0xvYWRlZCAmJiB0aGlzLmRpYWxvZ1VzZURhdGFQcm92aWRlcikge1xuICAgICAgICAgICAgdGhpcy5kaWFsb2dJc0xvYWRpbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgICAgICAgICBjb25zdCBxdWVyeVBhcmFtQnVpbGRlciA9IE1lZGl1c1F1ZXJ5UGFyYW1CdWlsZGVyLmNyZWF0ZSg1MCk7XG4gICAgICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGVzY3JpcHRvci5oYXNEZWZhdWx0U29ydCkge1xuICAgICAgICAgICAgICAgIHRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURlc2NyaXB0b3IuZGVmYXVsdFNvcnRQcm9wZXJ0eS5mb3JFYWNoKChwLCBpZHgpID0+XG4gICAgICAgICAgICAgICAgICAgIHF1ZXJ5UGFyYW1CdWlsZGVyLndpdGhTb3J0KHAsIHRoaXMuZGVzY3JpcHRvci5sb29rdXBUYWJsZURlc2NyaXB0b3IuZGVmYXVsdFNvcnRBc2NbaWR4XSlcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci5oYXNMb29rdXBFeGNsdWRlVmFsdWVzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyVmFsdWVzID0gdGhpcy5mb3JtQ29udHJvbCEudmFsdWUubWFwKChpOiBhbnkpID0+IGlbdGhpcy5kZXNjcmlwdG9yLmV4Y2x1ZGVWYWx1ZVByb3BlcnR5XSk7XG4gICAgICAgICAgICAgICAgcXVlcnlQYXJhbUJ1aWxkZXIud2l0aEZpbHRlcih0aGlzLmRlc2NyaXB0b3IuZXhjbHVkZUZpbHRlclByb3BlcnR5LCBmaWx0ZXJWYWx1ZXMsIHVuZGVmaW5lZCwgTWVkaXVzRmlsdGVyTWF0Y2hUeXBlLk5vdEluKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMubG9va3VwRGF0YVByb3ZpZGVyU3Vic2NyaXB0aW9uID0gdGhpcy5kZXNjcmlwdG9yLmxvb2t1cFRhYmxlRGF0YVByb3ZpZGVyPy5nZXRBbGwocXVlcnlQYXJhbUJ1aWxkZXIuYnVpbGQoKSwgdGhpcy5kaWFsb2dEYXRhUHJvdmlkZXJTZXJ2aWNlKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWRkSXRlbXNTdWJqZWN0Lm5leHQocmVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5kaWFsb2dBcmVJdGVtc0xvYWRlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nSXNMb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nSXNMb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmRpYWxvZ1NlbGVjdGVkQWRkSXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy5pc0RpYWxvZ1Zpc2libGUgPSB0cnVlO1xuXG4gICAgICAgIHRoaXMuZGVzY3JpcHRvci5uZXh0RXZlbnQoTW5nRm9ybUZpZWxkRXZlbnRUeXBlRW51bS5EaWFsb2dMaWZlY3ljbGUsIE1uZ0Zvcm1seUZpZWxkVGFibGVEaWFsb2dNdWx0aXNlbGVjdENvbXBvbmVudCwgdGhpcywge1xuICAgICAgICAgICAgZXZlbnRTdWJ0eXBlOiBNbmdGb3JtRmllbGRFdmVudERpYWxvZ1N1YnR5cGUuVklTSUJJTElUWSxcbiAgICAgICAgICAgIGRpYWxvZ1Zpc2libGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3Rpb25DaGFuZ2UoaXRlbXM6IEFycmF5PGFueT4pIHtcbiAgICAgICAgdGhpcy5kaWFsb2dTZWxlY3RlZEFkZEl0ZW1zID0gaXRlbXM7XG4gICAgfVxuXG4gICAgaGlkZURpYWxvZygpIHtcbiAgICAgICAgdGhpcy5pc0RpYWxvZ1Zpc2libGUgPSBmYWxzZTtcblxuICAgICAgICB0aGlzLmRlc2NyaXB0b3IubmV4dEV2ZW50KE1uZ0Zvcm1GaWVsZEV2ZW50VHlwZUVudW0uRGlhbG9nTGlmZWN5Y2xlLCBNbmdGb3JtbHlGaWVsZFRhYmxlRGlhbG9nTXVsdGlzZWxlY3RDb21wb25lbnQsIHRoaXMsIHtcbiAgICAgICAgICAgIGV2ZW50U3VidHlwZTogTW5nRm9ybUZpZWxkRXZlbnREaWFsb2dTdWJ0eXBlLlZJU0lCSUxJVFksXG4gICAgICAgICAgICBkaWFsb2dWaXNpYmxlOiBmYWxzZVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBhZGRJdGVtcygpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gdGhpcy5mb3JtQ29udHJvbCEudmFsdWU7XG4gICAgICAgIGlmICghQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgIHZhbHVlID0gW107XG4gICAgICAgIH1cbiAgICAgICAgdmFsdWUgPSBbLi4udmFsdWUsIC4uLnRoaXMuZGlhbG9nU2VsZWN0ZWRBZGRJdGVtc107XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2whLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmRpYWxvZ1NlbGVjdGVkQWRkSXRlbXMgPSBbXTtcbiAgICAgICAgdGhpcy5kaWFsb2dBcmVJdGVtc0xvYWRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmhpZGVEaWFsb2coKTtcbiAgICB9XG5cbiAgICByZW1vdmVJdGVtKGl0ZW06IGFueSkge1xuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmZvcm1Db250cm9sIS52YWx1ZTtcbiAgICAgICAgaWYgKCFBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgdmFsdWUgPSBbXTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjb21wYXJlUHJvcGVydHkgPSB0aGlzLmRlc2NyaXB0b3IubWFpblRhYmxlRGVzY3JpcHRvci5kYXRhS2V5UHJvcGVydHlcbiAgICAgICAgICAgID8gdGhpcy5kZXNjcmlwdG9yLm1haW5UYWJsZURlc2NyaXB0b3IuZGF0YUtleVByb3BlcnR5XG4gICAgICAgICAgICA6IHRoaXMuZGVzY3JpcHRvci5tYWluVGFibGVEZXNjcmlwdG9yLm1vZGVsLmlkUHJvcGVydHlOYW1lO1xuICAgICAgICBpZiAoIWNvbXBhcmVQcm9wZXJ0eSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgY29tcGFyZSBpdGVtcywgcGxlYXNlIHByb3ZpZGUgbWFpbiB0YWJsZSBkYXRhIGtleSBwcm9wZXJ0eSBvciBtb2RlbCBpZCBwcm9wZXJ0eS4nKTtcbiAgICAgICAgfVxuICAgICAgICB2YWx1ZSA9IHZhbHVlLmZpbHRlcigoaTogYW55KSA9PiBpW2NvbXBhcmVQcm9wZXJ0eV0gIT09IGl0ZW1bY29tcGFyZVByb3BlcnR5XSk7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2whLnBhdGNoVmFsdWUodmFsdWUpO1xuICAgICAgICB0aGlzLmRpYWxvZ0FyZUl0ZW1zTG9hZGVkID0gZmFsc2U7XG4gICAgfVxufVxuIiwiPG1uZy10YWJsZSBbZGVzY3JpcHRvcl09XCJkZXNjcmlwdG9yLm1haW5UYWJsZURlc2NyaXB0b3JcIiBbaXRlbXNdPVwiaXRlbXNBc3luY1wiPlxuICAgIDxuZy10ZW1wbGF0ZSBtbmdUZW1wbGF0ZT1cImNhcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gbWQ6ZmxleC1yb3cgbWQ6anVzdGlmeS1jb250ZW50LWVuZCBhbGlnbi1pdGVtcy1jZW50ZXIgdGFibGUtaGVhZGVyIHB0LTBcIj5cbiAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cIm1uZy1kYXRhdGFibGUtZm9ybS1sYWJlbCBwLTAgbS0wXCIgW2Zvcl09XCJrZXlcIj57eyB0bz8ubGFiZWwhIHwgdHJhbnNsYXRlIH19IDxzcGFuICpuZ0lmPVwidG8ucmVxdWlyZWQgJiYgdG9bJ2hpZGVSZXF1aXJlZE1hcmtlciddICE9PSB0cnVlXCI+Kjwvc3Bhbj48L2xhYmVsPlxuICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICpuZ0lmPVwiaGFzQWRkQWN0aW9uICYmICFvcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkXCJcbiAgICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgICAgcFJpcHBsZVxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGljb249XCJwaSBwaS1wbHVzXCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cInAtYnV0dG9uLXJvdW5kZWQgcC1idXR0b24tc3VjY2VzcyBtbmctYnV0dG9uLXhzXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib3BlbkFkZERpYWxvZygpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2whLmRpc2FibGVkXCI+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPG5nLXRlbXBsYXRlIG1uZ1RlbXBsYXRlPVwiY29sdW1uQWN0aW9uXCIgbGV0LWl0ZW09XCJyb3dJdGVtXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICpuZ0lmPVwiaGFzRGVsZXRlQWN0aW9uICYmICFvcHRpb25zPy5mb3JtU3RhdGU/LmRpc2FibGVkXCJcbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLXRyYXNoXCJcbiAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1kYW5nZXIgbW5nLWJ1dHRvbi14c1wiXG4gICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbShpdGVtKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybUNvbnRyb2whLmRpc2FibGVkXCI+PC9idXR0b24+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbW5nLXRhYmxlPlxuXG48cC1kaWFsb2dcbiAgICAqbmdJZj1cImhhc0FkZEFjdGlvblwiXG4gICAgWyh2aXNpYmxlKV09XCJpc0RpYWxvZ1Zpc2libGVcIlxuICAgIFtkcmFnZ2FibGVdPVwiZmFsc2VcIlxuICAgIFtoZWFkZXJdPVwiJ2dlbmVyYWwuYWRkSXRlbScgfCB0cmFuc2xhdGU6IHtpdGVtOiB0bz8ubGFiZWwhfVwiXG4gICAgW21vZGFsXT1cInRydWVcIlxuICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgc3R5bGVDbGFzcz1cInAtZmx1aWQgbW5nLWZpZWxkLWRpYWxvZyBtbmctYWN0aW9uLWVkaXRvci1kaWFsb2cgbW5nLWFjdGlvbi1lZGl0b3ItZGlhbG9nLXNtXCI+XG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImNvbnRlbnRcIj5cbiAgICAgICAgPG1uZy10YWJsZVxuICAgICAgICAgICAgW2Rlc2NyaXB0b3JdPVwiZGVzY3JpcHRvci5tYWluVGFibGVEZXNjcmlwdG9yXCJcbiAgICAgICAgICAgIFtxdWVyeVJlc3VsdF09XCJhZGRJdGVtc0FzeW5jXCJcbiAgICAgICAgICAgIFtzZWxlY3Rpb25FbmFibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgW2xvYWRpbmddPVwiZGlhbG9nSXNMb2FkaW5nJFwiXG4gICAgICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uU2VsZWN0aW9uQ2hhbmdlKCRldmVudClcIj5cbiAgICAgICAgPC9tbmctdGFibGU+XG4gICAgICAgIDxwLW1lc3NhZ2VzIFt2YWx1ZV09XCJkaWFsb2dNZXNzYWdlc1wiPjwvcC1tZXNzYWdlcz5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPG5nLXRlbXBsYXRlIHBUZW1wbGF0ZT1cImZvb3RlclwiPlxuICAgICAgICA8YnV0dG9uIHBCdXR0b24gcFJpcHBsZSB0eXBlPVwiYnV0dG9uXCIgW2xhYmVsXT1cIidnZW5lcmFsLmNhbmNlbCcgfCB0cmFuc2xhdGVcIiBpY29uPVwicGkgcGktdGltZXNcIiBjbGFzcz1cInAtYnV0dG9uLXRleHRcIiAoY2xpY2spPVwiaGlkZURpYWxvZygpXCI+PC9idXR0b24+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHBCdXR0b25cbiAgICAgICAgICAgIHBSaXBwbGVcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidnZW5lcmFsLmFkZCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgaWNvbj1cInBpIHBpLWNoZWNrXCJcbiAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tdGV4dFwiXG4gICAgICAgICAgICAoY2xpY2spPVwiYWRkSXRlbXMoKVwiXG4gICAgICAgICAgICBbbG9hZGluZ109XCIoZGlhbG9nSXNMb2FkaW5nJCB8IGFzeW5jKSA/PyBmYWxzZVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZm9ybS5kaXNhYmxlZFwiPjwvYnV0dG9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3AtZGlhbG9nPlxuIl19
@@ -1,17 +1,17 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { FieldType } from '@ngx-formly/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "primeng/tabview";
5
- import * as i2 from "@ngx-formly/core";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "primeng/api";
8
- import * as i5 from "@ngx-translate/core";
9
- export class MngFormlyFieldTabsComponent extends FieldType {
10
- }
11
- MngFormlyFieldTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
12
- MngFormlyFieldTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: MngFormlyFieldTabsComponent, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabView>\n <p-tabPanel\n *ngFor=\"let tab of field.fieldGroup; let i = index; let last = last\"\n [header]=\"tab.templateOptions?.label! | translate\"\n [headerStyleClass]=\"$any(formControl!.valid ? 'p-tabview-title' : null)\">\n <ng-template pTemplate=\"header\">\n <span\n class=\"p-tabview-title\"\n [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.templateOptions?.label!) + '_invalid']\"\n >{{ tab.templateOptions?.label! | translate }}</span\n >\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n</p-tabView>\n", components: [{ type: i1.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i1.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i2.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "translate": i5.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldTabsComponent, decorators: [{
14
- type: Component,
15
- args: [{ selector: 'mng-formly-field-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-tabView>\n <p-tabPanel\n *ngFor=\"let tab of field.fieldGroup; let i = index; let last = last\"\n [header]=\"tab.templateOptions?.label! | translate\"\n [headerStyleClass]=\"$any(formControl!.valid ? 'p-tabview-title' : null)\">\n <ng-template pTemplate=\"header\">\n <span\n class=\"p-tabview-title\"\n [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.templateOptions?.label!) + '_invalid']\"\n >{{ tab.templateOptions?.label! | translate }}</span\n >\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n</p-tabView>\n" }]
16
- }] });
17
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtdGFicy9mb3JtbHktZmllbGQtdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJzL2Zvcm1seS1maWVsZC10YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBTzNDLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxTQUFTOzt3SEFBN0MsMkJBQTJCOzRHQUEzQiwyQkFBMkIsb0ZDVHhDLCtzQkFlQTsyRkROYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUVoQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtGaWVsZFR5cGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy1mb3JtbHktZmllbGQtdGFicycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS1maWVsZC10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdGb3JtbHlGaWVsZFRhYnNDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGUge31cbiIsIjxwLXRhYlZpZXc+XG4gICAgPHAtdGFiUGFuZWxcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiBmaWVsZC5maWVsZEdyb3VwOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICBbaGVhZGVyXT1cInRhYi50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsISB8IHRyYW5zbGF0ZVwiXG4gICAgICAgIFtoZWFkZXJTdHlsZUNsYXNzXT1cIiRhbnkoZm9ybUNvbnRyb2whLnZhbGlkID8gJ3AtdGFidmlldy10aXRsZScgOiBudWxsKVwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgIGNsYXNzPVwicC10YWJ2aWV3LXRpdGxlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MucC10YWJ2aWV3LXRpdGxlLWVycm9yXT1cImZvcm1TdGF0ZS5zdWJtaXR0ZWRPbiAmJiBmb3JtU3RhdGVbJ3RhYl8nICsgKHRhYi5pZCA/IHRhYi5pZCA6IHRhYi50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsISkgKyAnX2ludmFsaWQnXVwiXG4gICAgICAgICAgICAgICAgPnt7IHRhYi50ZW1wbGF0ZU9wdGlvbnM/LmxhYmVsISB8IHRyYW5zbGF0ZSB9fTwvc3BhblxuICAgICAgICAgICAgPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8Zm9ybWx5LWZpZWxkIFtmaWVsZF09XCJ0YWJcIj48L2Zvcm1seS1maWVsZD5cbiAgICA8L3AtdGFiUGFuZWw+XG48L3AtdGFiVmlldz5cbiJdfQ==
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FieldType } from '@ngx-formly/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "primeng/tabview";
5
+ import * as i2 from "@ngx-formly/core";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "primeng/api";
8
+ import * as i5 from "@ngx-translate/core";
9
+ export class MngFormlyFieldTabsComponent extends FieldType {
10
+ }
11
+ MngFormlyFieldTabsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldTabsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
12
+ MngFormlyFieldTabsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: MngFormlyFieldTabsComponent, selector: "mng-formly-field-tabs", usesInheritance: true, ngImport: i0, template: "<p-tabView>\n <p-tabPanel\n *ngFor=\"let tab of field.fieldGroup; let i = index; let last = last\"\n [header]=\"tab.props?.label! | translate\"\n [headerStyleClass]=\"$any(formControl!.valid ? 'p-tabview-title' : null)\">\n <ng-template pTemplate=\"header\">\n <span class=\"p-tabview-title\" [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.props?.label!) + '_invalid']\">{{\n tab.props?.label! | translate\n }}</span>\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n</p-tabView>\n", components: [{ type: i1.TabView, selector: "p-tabView", inputs: ["orientation", "style", "styleClass", "controlClose", "scrollable", "activeIndex"], outputs: ["onChange", "onClose", "activeIndexChange"] }, { type: i1.TabPanel, selector: "p-tabPanel", inputs: ["closable", "headerStyle", "headerStyleClass", "cache", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "selected", "disabled", "header", "leftIcon", "rightIcon"] }, { type: i2.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }], pipes: { "translate": i5.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldTabsComponent, decorators: [{
14
+ type: Component,
15
+ args: [{ selector: 'mng-formly-field-tabs', changeDetection: ChangeDetectionStrategy.OnPush, template: "<p-tabView>\n <p-tabPanel\n *ngFor=\"let tab of field.fieldGroup; let i = index; let last = last\"\n [header]=\"tab.props?.label! | translate\"\n [headerStyleClass]=\"$any(formControl!.valid ? 'p-tabview-title' : null)\">\n <ng-template pTemplate=\"header\">\n <span class=\"p-tabview-title\" [class.p-tabview-title-error]=\"formState.submittedOn && formState['tab_' + (tab.id ? tab.id : tab.props?.label!) + '_invalid']\">{{\n tab.props?.label! | translate\n }}</span>\n </ng-template>\n <formly-field [field]=\"tab\"></formly-field>\n </p-tabPanel>\n</p-tabView>\n" }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXRhYnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L2ZpZWxkcy9mb3JtbHktZmllbGQtdGFicy9mb3JtbHktZmllbGQtdGFicy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2Zvcm1seS1maWVsZC10YWJzL2Zvcm1seS1maWVsZC10YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyx1QkFBdUIsRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFakUsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBTzNDLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxTQUFTOzt3SEFBN0MsMkJBQTJCOzRHQUEzQiwyQkFBMkIsb0ZDVHhDLDZvQkFhQTsyRkRKYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0ksdUJBQXVCLG1CQUVoQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtGaWVsZFR5cGV9IGZyb20gJ0BuZ3gtZm9ybWx5L2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy1mb3JtbHktZmllbGQtdGFicycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2Zvcm1seS1maWVsZC10YWJzLmNvbXBvbmVudC5odG1sJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdGb3JtbHlGaWVsZFRhYnNDb21wb25lbnQgZXh0ZW5kcyBGaWVsZFR5cGUge31cbiIsIjxwLXRhYlZpZXc+XG4gICAgPHAtdGFiUGFuZWxcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiBmaWVsZC5maWVsZEdyb3VwOyBsZXQgaSA9IGluZGV4OyBsZXQgbGFzdCA9IGxhc3RcIlxuICAgICAgICBbaGVhZGVyXT1cInRhYi5wcm9wcz8ubGFiZWwhIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgW2hlYWRlclN0eWxlQ2xhc3NdPVwiJGFueShmb3JtQ29udHJvbCEudmFsaWQgPyAncC10YWJ2aWV3LXRpdGxlJyA6IG51bGwpXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJoZWFkZXJcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicC10YWJ2aWV3LXRpdGxlXCIgW2NsYXNzLnAtdGFidmlldy10aXRsZS1lcnJvcl09XCJmb3JtU3RhdGUuc3VibWl0dGVkT24gJiYgZm9ybVN0YXRlWyd0YWJfJyArICh0YWIuaWQgPyB0YWIuaWQgOiB0YWIucHJvcHM/LmxhYmVsISkgKyAnX2ludmFsaWQnXVwiPnt7XG4gICAgICAgICAgICAgICAgdGFiLnByb3BzPy5sYWJlbCEgfCB0cmFuc2xhdGVcbiAgICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8Zm9ybWx5LWZpZWxkIFtmaWVsZF09XCJ0YWJcIj48L2Zvcm1seS1maWVsZD5cbiAgICA8L3AtdGFiUGFuZWw+XG48L3AtdGFiVmlldz5cbiJdfQ==
@@ -1,10 +1,10 @@
1
- export * from './formly-field-autocomplete/formly-field-autocomplete.component';
2
- export * from './formly-field-input/formly-field-input.component';
3
- export * from './formly-field-label/formly-field-label.component';
4
- export * from './formly-field-dropdown/formly-field-dropdown.component';
5
- export * from './formly-field-lookup-dialog/formly-field-lookup-dialog.component';
6
- export * from './formly-field-table-dialog-form/formly-field-table-dialog-form.component';
7
- export * from './formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component';
8
- export * from './formly-field-tabs/formly-field-tabs.component';
9
- export * from './formly-field-fieldset/formly-field-fieldset.component';
1
+ export * from './formly-field-autocomplete/formly-field-autocomplete.component';
2
+ export * from './formly-field-input/formly-field-input.component';
3
+ export * from './formly-field-label/formly-field-label.component';
4
+ export * from './formly-field-dropdown/formly-field-dropdown.component';
5
+ export * from './formly-field-lookup-dialog/formly-field-lookup-dialog.component';
6
+ export * from './formly-field-table-dialog-form/formly-field-table-dialog-form.component';
7
+ export * from './formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component';
8
+ export * from './formly-field-tabs/formly-field-tabs.component';
9
+ export * from './formly-field-fieldset/formly-field-fieldset.component';
10
10
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9mb3JtbHkvZmllbGRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUVBQWlFLENBQUM7QUFDaEYsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyxtRUFBbUUsQ0FBQztBQUNsRixjQUFjLDJFQUEyRSxDQUFDO0FBQzFGLGNBQWMseUZBQXlGLENBQUM7QUFDeEcsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHlEQUF5RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9mb3JtbHktZmllbGQtYXV0b2NvbXBsZXRlL2Zvcm1seS1maWVsZC1hdXRvY29tcGxldGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWx5LWZpZWxkLWlucHV0L2Zvcm1seS1maWVsZC1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtbHktZmllbGQtbGFiZWwvZm9ybWx5LWZpZWxkLWxhYmVsLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2Zvcm1seS1maWVsZC1kcm9wZG93bi9mb3JtbHktZmllbGQtZHJvcGRvd24uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWx5LWZpZWxkLWxvb2t1cC1kaWFsb2cvZm9ybWx5LWZpZWxkLWxvb2t1cC1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWx5LWZpZWxkLXRhYmxlLWRpYWxvZy1mb3JtL2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctZm9ybS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9mb3JtbHktZmllbGQtdGFibGUtZGlhbG9nLW11bHRpc2VsZWN0L2Zvcm1seS1maWVsZC10YWJsZS1kaWFsb2ctbXVsdGlzZWxlY3QuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWx5LWZpZWxkLXRhYnMvZm9ybWx5LWZpZWxkLXRhYnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZm9ybWx5LWZpZWxkLWZpZWxkc2V0L2Zvcm1seS1maWVsZC1maWVsZHNldC5jb21wb25lbnQnO1xuIl19
@@ -1,15 +1,15 @@
1
- import { ChangeDetectionStrategy, Component } from '@angular/core';
2
- import { FieldWrapper } from '@ngx-formly/core';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "@ngx-formly/core";
5
- import * as i2 from "@angular/common";
6
- import * as i3 from "@ngx-translate/core";
7
- export class MngFormlyFieldWrapperComponent extends FieldWrapper {
8
- }
9
- MngFormlyFieldWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10
- MngFormlyFieldWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: MngFormlyFieldWrapperComponent, selector: "mng-formly-field-wrapper", usesInheritance: true, ngImport: i0, template: "<div [class]=\"to?.['descriptor']?.['fieldClassName'] ?? 'field'\">\n <label *ngIf=\"to?.label\" [for]=\"key\" [class]=\"to?.['descriptor']?.['labelClassName'] ?? ''\"\n >{{ to!.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label\n >\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n", components: [{ type: i1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i3.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldWrapperComponent, decorators: [{
12
- type: Component,
13
- args: [{ selector: 'mng-formly-field-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"to?.['descriptor']?.['fieldClassName'] ?? 'field'\">\n <label *ngIf=\"to?.label\" [for]=\"key\" [class]=\"to?.['descriptor']?.['labelClassName'] ?? ''\"\n >{{ to!.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label\n >\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n" }]
14
- }] });
1
+ import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { FieldWrapper } from '@ngx-formly/core';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ngx-formly/core";
5
+ import * as i2 from "@angular/common";
6
+ import * as i3 from "@ngx-translate/core";
7
+ export class MngFormlyFieldWrapperComponent extends FieldWrapper {
8
+ }
9
+ MngFormlyFieldWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
10
+ MngFormlyFieldWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: MngFormlyFieldWrapperComponent, selector: "mng-formly-field-wrapper", usesInheritance: true, ngImport: i0, template: "<div [class]=\"to?.['descriptor']?.['fieldClassName'] ?? 'field'\">\n <label *ngIf=\"to?.label\" [for]=\"key\" [class]=\"to?.['descriptor']?.['labelClassName'] ?? ''\"\n >{{ to!.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label\n >\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n", components: [{ type: i1.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }], directives: [{ type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "translate": i3.TranslatePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngFormlyFieldWrapperComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'mng-formly-field-wrapper', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div [class]=\"to?.['descriptor']?.['fieldClassName'] ?? 'field'\">\n <label *ngIf=\"to?.label\" [for]=\"key\" [class]=\"to?.['descriptor']?.['labelClassName'] ?? ''\"\n >{{ to!.label! | translate }} <span *ngIf=\"to.required && to['hideRequiredMarker'] !== true\">*</span></label\n >\n <ng-container #fieldComponent></ng-container>\n <small *ngIf=\"to?.['descriptor']?.['helpText']\">{{ to?.['descriptor']?.['helpText'] | translate }}</small>\n <small *ngIf=\"showError\" class=\"p-error\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n</div>\n" }]
14
+ }] });
15
15
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWx5LWZpZWxkLXdyYXBwZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vZm9ybWx5L3dyYXBwZXJzL2Zvcm1seS1maWVsZC13cmFwcGVyL2Zvcm1seS1maWVsZC13cmFwcGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2Zvcm1seS93cmFwcGVycy9mb3JtbHktZmllbGQtd3JhcHBlci9mb3JtbHktZmllbGQtd3JhcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRWpFLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFPOUMsTUFBTSxPQUFPLDhCQUErQixTQUFRLFlBQVk7OzJIQUFuRCw4QkFBOEI7K0dBQTlCLDhCQUE4Qix1RkNUM0MsOG1CQVVBOzJGRERhLDhCQUE4QjtrQkFMMUMsU0FBUzsrQkFDSSwwQkFBMEIsbUJBRW5CLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0ZpZWxkV3JhcHBlcn0gZnJvbSAnQG5neC1mb3JtbHkvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbW5nLWZvcm1seS1maWVsZC13cmFwcGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZm9ybWx5LWZpZWxkLXdyYXBwZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ0Zvcm1seUZpZWxkV3JhcHBlckNvbXBvbmVudCBleHRlbmRzIEZpZWxkV3JhcHBlciB7fVxuIiwiPGRpdiBbY2xhc3NdPVwidG8/LlsnZGVzY3JpcHRvciddPy5bJ2ZpZWxkQ2xhc3NOYW1lJ10gPz8gJ2ZpZWxkJ1wiPlxuICAgIDxsYWJlbCAqbmdJZj1cInRvPy5sYWJlbFwiIFtmb3JdPVwia2V5XCIgW2NsYXNzXT1cInRvPy5bJ2Rlc2NyaXB0b3InXT8uWydsYWJlbENsYXNzTmFtZSddID8/ICcnXCJcbiAgICAgICAgPnt7IHRvIS5sYWJlbCEgfCB0cmFuc2xhdGUgfX0gPHNwYW4gKm5nSWY9XCJ0by5yZXF1aXJlZCAmJiB0b1snaGlkZVJlcXVpcmVkTWFya2VyJ10gIT09IHRydWVcIj4qPC9zcGFuPjwvbGFiZWxcbiAgICA+XG4gICAgPG5nLWNvbnRhaW5lciAjZmllbGRDb21wb25lbnQ+PC9uZy1jb250YWluZXI+XG4gICAgPHNtYWxsICpuZ0lmPVwidG8/LlsnZGVzY3JpcHRvciddPy5bJ2hlbHBUZXh0J11cIj57eyB0bz8uWydkZXNjcmlwdG9yJ10/LlsnaGVscFRleHQnXSB8IHRyYW5zbGF0ZSB9fTwvc21hbGw+XG4gICAgPHNtYWxsICpuZ0lmPVwic2hvd0Vycm9yXCIgY2xhc3M9XCJwLWVycm9yXCI+XG4gICAgICAgIDxmb3JtbHktdmFsaWRhdGlvbi1tZXNzYWdlIFtmaWVsZF09XCJmaWVsZFwiPjwvZm9ybWx5LXZhbGlkYXRpb24tbWVzc2FnZT5cbiAgICA8L3NtYWxsPlxuPC9kaXY+XG4iXX0=