@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,71 +1,71 @@
1
- import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
- import { ColumnTypeEnum } from '../../../../descriptors/types';
3
- import * as i0 from "@angular/core";
4
- import * as i1 from "primeng/api";
5
- import * as i2 from "@ngx-translate/core";
6
- import * as i3 from "@angular/common";
7
- import * as i4 from "../../../../directives/component.directive";
8
- import * as i5 from "primeng/button";
9
- import * as i6 from "primeng/ripple";
10
- import * as i7 from "../../../../pipes/json-path.pipe";
11
- import * as i8 from "../../../../pipes/boolean.pipe";
12
- import * as i9 from "../../../../pipes/enum.pipe";
13
- export class MngTableColumnValueComponent {
14
- constructor(elementRef, messageService, translate) {
15
- this.elementRef = elementRef;
16
- this.messageService = messageService;
17
- this.translate = translate;
18
- this.columnTypeString = ColumnTypeEnum.String;
19
- this.columnTypeNumber = ColumnTypeEnum.Number;
20
- this.columnTypeCurrency = ColumnTypeEnum.Currency;
21
- this.columnTypeBoolean = ColumnTypeEnum.Boolean;
22
- this.columnTypeDate = ColumnTypeEnum.Date;
23
- this.columnTypeEnum = ColumnTypeEnum.Enum;
24
- this.columnTypeCustom = ColumnTypeEnum.Custom;
25
- this.styleMaxWidth = null;
26
- this.className = 'nowrap';
27
- this.jsonPath = '$';
28
- }
29
- ngOnInit() {
30
- if (this.descriptor.columnType === ColumnTypeEnum.Currency) {
31
- this.currency = this.descriptor.currencyFromProperty ? this.item[this.descriptor.currencyFromProperty] : this.descriptor.currencyCode ?? 'EUR';
32
- }
33
- if (this.descriptor.maxWidth) {
34
- this.styleMaxWidth = this.descriptor.maxWidth;
35
- }
36
- if (this.descriptor.jsonPath) {
37
- this.jsonPath = this.descriptor.jsonPath;
38
- }
39
- else {
40
- this.jsonPath = `$.${this.descriptor.property}`;
41
- if (this.descriptor.objectModelType) {
42
- this.jsonPath = `$.${this.descriptor.property}.${this.descriptor.objectTitleProperty}`;
43
- }
44
- }
45
- }
46
- copyToClipboard(event) {
47
- event.stopPropagation();
48
- const value = this.elementRef.nativeElement.innerText.trim();
49
- navigator.clipboard.writeText(value);
50
- const title = this.translate.instant('mngTable.copyNotificationTitle');
51
- const message = this.translate.instant('mngTable.copyNotificationMessage', { value });
52
- this.messageService.add({ severity: 'info', summary: title, detail: message });
53
- }
54
- }
55
- MngTableColumnValueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngTableColumnValueComponent, deps: [{ token: i0.ElementRef }, { token: i1.MessageService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
56
- MngTableColumnValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: { descriptor: "descriptor", item: "item" }, host: { properties: { "style.max-width.px": "this.styleMaxWidth", "class": "this.className" } }, ngImport: i0, template: "<ng-container [ngSwitch]=\"descriptor.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeString\">\n {{ item | jsonPath: jsonPath }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeNumber\">\n {{ item | jsonPath: jsonPath | number: descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeCurrency\">\n {{ item | jsonPath: jsonPath | currency: currency:descriptor.currencyDisplay:descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeDate\">\n {{ item | jsonPath: jsonPath | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeBoolean\">\n <ng-container *ngIf=\"descriptor.booleanAsIcon; else booleanText\"></ng-container>\n <i [class]=\"item | jsonPath: jsonPath | boolean: descriptor.booleanYes:descriptor.booleanNo:true\"></i>\n <ng-template #booleanText>\n {{ item | jsonPath: jsonPath | boolean: descriptor.booleanYes:descriptor.booleanNo | translate }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum\">\n {{ item | jsonPath: jsonPath | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeCustom\">\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: item | jsonPath: jsonPath,\n item: item,\n descriptor: descriptor\n }\"></ng-container>\n </ng-container>\n</ng-container>\n<div class=\"help-buttons\" *ngIf=\"descriptor.hasCopyToClipboard\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n</div>\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}:host:hover .help-buttons{display:block}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"], directives: [{ type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs"], outputs: ["instanceCreated"] }, { type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i6.Ripple, selector: "[pRipple]" }], pipes: { "jsonPath": i7.JsonPathPipe, "number": i3.DecimalPipe, "currency": i3.CurrencyPipe, "date": i3.DatePipe, "boolean": i8.MngBooleanPipe, "translate": i2.TranslatePipe, "enum": i9.MngEnumPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngTableColumnValueComponent, decorators: [{
58
- type: Component,
59
- args: [{ selector: 'mng-table-column-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"descriptor.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeString\">\n {{ item | jsonPath: jsonPath }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeNumber\">\n {{ item | jsonPath: jsonPath | number: descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeCurrency\">\n {{ item | jsonPath: jsonPath | currency: currency:descriptor.currencyDisplay:descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeDate\">\n {{ item | jsonPath: jsonPath | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeBoolean\">\n <ng-container *ngIf=\"descriptor.booleanAsIcon; else booleanText\"></ng-container>\n <i [class]=\"item | jsonPath: jsonPath | boolean: descriptor.booleanYes:descriptor.booleanNo:true\"></i>\n <ng-template #booleanText>\n {{ item | jsonPath: jsonPath | boolean: descriptor.booleanYes:descriptor.booleanNo | translate }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum\">\n {{ item | jsonPath: jsonPath | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeCustom\">\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: item | jsonPath: jsonPath,\n item: item,\n descriptor: descriptor\n }\"></ng-container>\n </ng-container>\n</ng-container>\n<div class=\"help-buttons\" *ngIf=\"descriptor.hasCopyToClipboard\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n</div>\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}:host:hover .help-buttons{display:block}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"] }]
60
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.MessageService }, { type: i2.TranslateService }]; }, propDecorators: { descriptor: [{
61
- type: Input
62
- }], item: [{
63
- type: Input
64
- }], styleMaxWidth: [{
65
- type: HostBinding,
66
- args: ['style.max-width.px']
67
- }], className: [{
68
- type: HostBinding,
69
- args: ['class']
70
- }] } });
1
+ import { ChangeDetectionStrategy, Component, HostBinding, Input } from '@angular/core';
2
+ import { ColumnTypeEnum } from '../../../../descriptors/types';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "primeng/api";
5
+ import * as i2 from "@ngx-translate/core";
6
+ import * as i3 from "@angular/common";
7
+ import * as i4 from "../../../../directives/component.directive";
8
+ import * as i5 from "primeng/button";
9
+ import * as i6 from "primeng/ripple";
10
+ import * as i7 from "../../../../pipes/json-path.pipe";
11
+ import * as i8 from "../../../../pipes/boolean.pipe";
12
+ import * as i9 from "../../../../pipes/enum.pipe";
13
+ export class MngTableColumnValueComponent {
14
+ constructor(elementRef, messageService, translate) {
15
+ this.elementRef = elementRef;
16
+ this.messageService = messageService;
17
+ this.translate = translate;
18
+ this.columnTypeString = ColumnTypeEnum.String;
19
+ this.columnTypeNumber = ColumnTypeEnum.Number;
20
+ this.columnTypeCurrency = ColumnTypeEnum.Currency;
21
+ this.columnTypeBoolean = ColumnTypeEnum.Boolean;
22
+ this.columnTypeDate = ColumnTypeEnum.Date;
23
+ this.columnTypeEnum = ColumnTypeEnum.Enum;
24
+ this.columnTypeCustom = ColumnTypeEnum.Custom;
25
+ this.styleMaxWidth = null;
26
+ this.className = 'nowrap';
27
+ this.jsonPath = '$';
28
+ }
29
+ ngOnInit() {
30
+ if (this.descriptor.columnType === ColumnTypeEnum.Currency) {
31
+ this.currency = this.descriptor.currencyFromProperty ? this.item[this.descriptor.currencyFromProperty] : this.descriptor.currencyCode ?? 'EUR';
32
+ }
33
+ if (this.descriptor.maxWidth) {
34
+ this.styleMaxWidth = this.descriptor.maxWidth;
35
+ }
36
+ if (this.descriptor.jsonPath) {
37
+ this.jsonPath = this.descriptor.jsonPath;
38
+ }
39
+ else {
40
+ this.jsonPath = `$.${this.descriptor.property}`;
41
+ if (this.descriptor.objectModelType) {
42
+ this.jsonPath = `$.${this.descriptor.property}.${this.descriptor.objectTitleProperty}`;
43
+ }
44
+ }
45
+ }
46
+ copyToClipboard(event) {
47
+ event.stopPropagation();
48
+ const value = this.elementRef.nativeElement.innerText.trim();
49
+ navigator.clipboard.writeText(value);
50
+ const title = this.translate.instant('mngTable.copyNotificationTitle');
51
+ const message = this.translate.instant('mngTable.copyNotificationMessage', { value });
52
+ this.messageService.add({ severity: 'info', summary: title, detail: message });
53
+ }
54
+ }
55
+ MngTableColumnValueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngTableColumnValueComponent, deps: [{ token: i0.ElementRef }, { token: i1.MessageService }, { token: i2.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
56
+ MngTableColumnValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: MngTableColumnValueComponent, selector: "mng-table-column-value", inputs: { descriptor: "descriptor", item: "item" }, host: { properties: { "style.max-width.px": "this.styleMaxWidth", "class": "this.className" } }, ngImport: i0, template: "<ng-container [ngSwitch]=\"descriptor.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeString\">\n {{ item | jsonPath: jsonPath }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeNumber\">\n {{ item | jsonPath: jsonPath | number: descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeCurrency\">\n {{ item | jsonPath: jsonPath | currency: currency:descriptor.currencyDisplay:descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeDate\">\n {{ item | jsonPath: jsonPath | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeBoolean\">\n <ng-container *ngIf=\"descriptor.booleanAsIcon; else booleanText\"></ng-container>\n <i [class]=\"item | jsonPath: jsonPath | boolean: descriptor.booleanYes:descriptor.booleanNo:true\"></i>\n <ng-template #booleanText>\n {{ item | jsonPath: jsonPath | boolean: descriptor.booleanYes:descriptor.booleanNo | translate }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum\">\n {{ item | jsonPath: jsonPath | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeCustom\">\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: item | jsonPath: jsonPath,\n item: item,\n descriptor: descriptor\n }\"></ng-container>\n </ng-container>\n</ng-container>\n<div class=\"help-buttons\" *ngIf=\"descriptor.hasCopyToClipboard\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n</div>\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}:host:hover .help-buttons{display:block}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"], directives: [{ type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs"], outputs: ["instanceCreated"] }, { type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { type: i6.Ripple, selector: "[pRipple]" }], pipes: { "jsonPath": i7.JsonPathPipe, "number": i3.DecimalPipe, "currency": i3.CurrencyPipe, "date": i3.DatePipe, "boolean": i8.MngBooleanPipe, "translate": i2.TranslatePipe, "enum": i9.MngEnumPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
57
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: MngTableColumnValueComponent, decorators: [{
58
+ type: Component,
59
+ args: [{ selector: 'mng-table-column-value', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"descriptor.columnType\">\n <ng-container *ngSwitchCase=\"columnTypeString\">\n {{ item | jsonPath: jsonPath }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeNumber\">\n {{ item | jsonPath: jsonPath | number: descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeCurrency\">\n {{ item | jsonPath: jsonPath | currency: currency:descriptor.currencyDisplay:descriptor.displayFormat:descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeDate\">\n {{ item | jsonPath: jsonPath | date: descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeBoolean\">\n <ng-container *ngIf=\"descriptor.booleanAsIcon; else booleanText\"></ng-container>\n <i [class]=\"item | jsonPath: jsonPath | boolean: descriptor.booleanYes:descriptor.booleanNo:true\"></i>\n <ng-template #booleanText>\n {{ item | jsonPath: jsonPath | boolean: descriptor.booleanYes:descriptor.booleanNo | translate }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeEnum\">\n {{ item | jsonPath: jsonPath | enum: descriptor.enumType:descriptor.enumTitlePath:descriptor.enumNameAsValue | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnTypeCustom\">\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: item | jsonPath: jsonPath,\n item: item,\n descriptor: descriptor\n }\"></ng-container>\n </ng-container>\n</ng-container>\n<div class=\"help-buttons\" *ngIf=\"descriptor.hasCopyToClipboard\">\n <button pButton pRipple type=\"button\" icon=\"pi pi-copy\" class=\"p-button-rounded p-button-info p-button-sm\" (click)=\"copyToClipboard($event)\"></button>\n</div>\n", styles: [":host{display:inline-block;overflow:hidden}:host.nowrap{white-space:nowrap;text-overflow:ellipsis}:host:hover .help-buttons{display:block}.help-buttons{display:none;position:absolute;right:0;top:50%;transform:translateY(-50%)}.help-buttons .p-button{height:1.9rem;width:1.9rem;padding:0}\n"] }]
60
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.MessageService }, { type: i2.TranslateService }]; }, propDecorators: { descriptor: [{
61
+ type: Input
62
+ }], item: [{
63
+ type: Input
64
+ }], styleMaxWidth: [{
65
+ type: HostBinding,
66
+ args: ['style.max-width.px']
67
+ }], className: [{
68
+ type: HostBinding,
69
+ args: ['class']
70
+ }] } });
71
71
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGUvY29sdW1uLXZhbHVlL2NvbHVtbi12YWx1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL2NvbHVtbi12YWx1ZS9jb2x1bW4tdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxXQUFXLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBTXpHLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFRN0QsTUFBTSxPQUFPLDRCQUE0QjtJQW1CckMsWUFBb0IsVUFBc0IsRUFBVSxjQUE4QixFQUFVLFNBQTJCO1FBQW5HLGVBQVUsR0FBVixVQUFVLENBQVk7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFBVSxjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWxCdkcscUJBQWdCLEdBQW1CLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDekQscUJBQWdCLEdBQW1CLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFDekQsdUJBQWtCLEdBQW1CLGNBQWMsQ0FBQyxRQUFRLENBQUM7UUFDN0Qsc0JBQWlCLEdBQW1CLGNBQWMsQ0FBQyxPQUFPLENBQUM7UUFDM0QsbUJBQWMsR0FBbUIsY0FBYyxDQUFDLElBQUksQ0FBQztRQUNyRCxtQkFBYyxHQUFtQixjQUFjLENBQUMsSUFBSSxDQUFDO1FBQ3JELHFCQUFnQixHQUFtQixjQUFjLENBQUMsTUFBTSxDQUFDO1FBSy9CLGtCQUFhLEdBQWtCLElBQUksQ0FBQztRQUNqRCxjQUFTLEdBQUcsUUFBUSxDQUFDO1FBSTNDLGFBQVEsR0FBRyxHQUFHLENBQUM7SUFFb0csQ0FBQztJQUVwSCxRQUFRO1FBQ1gsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsS0FBSyxjQUFjLENBQUMsUUFBUSxFQUFFO1lBQ3hELElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxJQUFJLEtBQUssQ0FBQztTQUNsSjtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUNqRDtRQUVELElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUU7WUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztTQUM1QzthQUFNO1lBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLGVBQWUsRUFBRTtnQkFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsbUJBQW1CLEVBQUUsQ0FBQzthQUMxRjtTQUNKO0lBQ0wsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFZO1FBQy9CLEtBQUssQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN4QixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDN0QsU0FBUyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUN2RSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrQ0FBa0MsRUFBRSxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUM7UUFDcEYsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBQyxRQUFRLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBQyxDQUFDLENBQUM7SUFDakYsQ0FBQzs7eUhBL0NRLDRCQUE0Qjs2R0FBNUIsNEJBQTRCLG1OQ2R6QywwNkRBb0NBOzJGRHRCYSw0QkFBNEI7a0JBTnhDLFNBQVM7K0JBQ0ksd0JBQXdCLG1CQUdqQix1QkFBdUIsQ0FBQyxNQUFNOzZKQVd0QyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFFb0MsYUFBYTtzQkFBdEQsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBQ0osU0FBUztzQkFBckMsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge01lc3NhZ2VTZXJ2aWNlfSBmcm9tICdwcmltZW5nL2FwaSc7XG5cbmltcG9ydCB7Q29sdW1uRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vLi4vZGVzY3JpcHRvcnMnO1xuaW1wb3J0IHtDb2x1bW5UeXBlRW51bX0gZnJvbSAnLi4vLi4vLi4vLi4vZGVzY3JpcHRvcnMvdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21uZy10YWJsZS1jb2x1bW4tdmFsdWUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb2x1bW4tdmFsdWUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NvbHVtbi12YWx1ZS5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ1RhYmxlQ29sdW1uVmFsdWVDb21wb25lbnQ8VCwgVFQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uVHlwZVN0cmluZzogQ29sdW1uVHlwZUVudW0gPSBDb2x1bW5UeXBlRW51bS5TdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtblR5cGVOdW1iZXI6IENvbHVtblR5cGVFbnVtID0gQ29sdW1uVHlwZUVudW0uTnVtYmVyO1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5UeXBlQ3VycmVuY3k6IENvbHVtblR5cGVFbnVtID0gQ29sdW1uVHlwZUVudW0uQ3VycmVuY3k7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtblR5cGVCb29sZWFuOiBDb2x1bW5UeXBlRW51bSA9IENvbHVtblR5cGVFbnVtLkJvb2xlYW47XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtblR5cGVEYXRlOiBDb2x1bW5UeXBlRW51bSA9IENvbHVtblR5cGVFbnVtLkRhdGU7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtblR5cGVFbnVtOiBDb2x1bW5UeXBlRW51bSA9IENvbHVtblR5cGVFbnVtLkVudW07XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtblR5cGVDdXN0b206IENvbHVtblR5cGVFbnVtID0gQ29sdW1uVHlwZUVudW0uQ3VzdG9tO1xuXG4gICAgQElucHV0KCkgZGVzY3JpcHRvciE6IENvbHVtbkRlc2NyaXB0b3I8VCwgVFQ+O1xuICAgIEBJbnB1dCgpIGl0ZW0hOiBhbnk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1heC13aWR0aC5weCcpIHB1YmxpYyBzdHlsZU1heFdpZHRoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgcHVibGljIGNsYXNzTmFtZSA9ICdub3dyYXAnO1xuXG4gICAgcHVibGljIGN1cnJlbmN5Pzogc3RyaW5nO1xuXG4gICAgcHVibGljIGpzb25QYXRoID0gJyQnO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSwgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKSB7XG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IuY29sdW1uVHlwZSA9PT0gQ29sdW1uVHlwZUVudW0uQ3VycmVuY3kpIHtcbiAgICAgICAgICAgIHRoaXMuY3VycmVuY3kgPSB0aGlzLmRlc2NyaXB0b3IuY3VycmVuY3lGcm9tUHJvcGVydHkgPyB0aGlzLml0ZW1bdGhpcy5kZXNjcmlwdG9yLmN1cnJlbmN5RnJvbVByb3BlcnR5XSA6IHRoaXMuZGVzY3JpcHRvci5jdXJyZW5jeUNvZGUgPz8gJ0VVUic7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLm1heFdpZHRoKSB7XG4gICAgICAgICAgICB0aGlzLnN0eWxlTWF4V2lkdGggPSB0aGlzLmRlc2NyaXB0b3IubWF4V2lkdGg7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLmpzb25QYXRoKSB7XG4gICAgICAgICAgICB0aGlzLmpzb25QYXRoID0gdGhpcy5kZXNjcmlwdG9yLmpzb25QYXRoO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5qc29uUGF0aCA9IGAkLiR7dGhpcy5kZXNjcmlwdG9yLnByb3BlcnR5fWA7XG4gICAgICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLm9iamVjdE1vZGVsVHlwZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuanNvblBhdGggPSBgJC4ke3RoaXMuZGVzY3JpcHRvci5wcm9wZXJ0eX0uJHt0aGlzLmRlc2NyaXB0b3Iub2JqZWN0VGl0bGVQcm9wZXJ0eX1gO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGNvcHlUb0NsaXBib2FyZChldmVudDogRXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuaW5uZXJUZXh0LnRyaW0oKTtcbiAgICAgICAgbmF2aWdhdG9yLmNsaXBib2FyZC53cml0ZVRleHQodmFsdWUpO1xuICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ21uZ1RhYmxlLmNvcHlOb3RpZmljYXRpb25UaXRsZScpO1xuICAgICAgICBjb25zdCBtZXNzYWdlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnbW5nVGFibGUuY29weU5vdGlmaWNhdGlvbk1lc3NhZ2UnLCB7dmFsdWV9KTtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoe3NldmVyaXR5OiAnaW5mbycsIHN1bW1hcnk6IHRpdGxlLCBkZXRhaWw6IG1lc3NhZ2V9KTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJkZXNjcmlwdG9yLmNvbHVtblR5cGVcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5UeXBlU3RyaW5nXCI+XG4gICAgICAgIHt7IGl0ZW0gfCBqc29uUGF0aDoganNvblBhdGggfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5UeXBlTnVtYmVyXCI+XG4gICAgICAgIHt7IGl0ZW0gfCBqc29uUGF0aDoganNvblBhdGggfCBudW1iZXI6IGRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdDpkZXNjcmlwdG9yLmxvY2FsZSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtblR5cGVDdXJyZW5jeVwiPlxuICAgICAgICB7eyBpdGVtIHwganNvblBhdGg6IGpzb25QYXRoIHwgY3VycmVuY3k6IGN1cnJlbmN5OmRlc2NyaXB0b3IuY3VycmVuY3lEaXNwbGF5OmRlc2NyaXB0b3IuZGlzcGxheUZvcm1hdDpkZXNjcmlwdG9yLmxvY2FsZSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtblR5cGVEYXRlXCI+XG4gICAgICAgIHt7IGl0ZW0gfCBqc29uUGF0aDoganNvblBhdGggfCBkYXRlOiBkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5UeXBlQm9vbGVhblwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGVzY3JpcHRvci5ib29sZWFuQXNJY29uOyBlbHNlIGJvb2xlYW5UZXh0XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDxpIFtjbGFzc109XCJpdGVtIHwganNvblBhdGg6IGpzb25QYXRoIHwgYm9vbGVhbjogZGVzY3JpcHRvci5ib29sZWFuWWVzOmRlc2NyaXB0b3IuYm9vbGVhbk5vOnRydWVcIj48L2k+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9vbGVhblRleHQ+XG4gICAgICAgICAgICB7eyBpdGVtIHwganNvblBhdGg6IGpzb25QYXRoIHwgYm9vbGVhbjogZGVzY3JpcHRvci5ib29sZWFuWWVzOmRlc2NyaXB0b3IuYm9vbGVhbk5vIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uVHlwZUVudW1cIj5cbiAgICAgICAge3sgaXRlbSB8IGpzb25QYXRoOiBqc29uUGF0aCB8IGVudW06IGRlc2NyaXB0b3IuZW51bVR5cGU6ZGVzY3JpcHRvci5lbnVtVGl0bGVQYXRoOmRlc2NyaXB0b3IuZW51bU5hbWVBc1ZhbHVlIHwgdHJhbnNsYXRlIH19XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uVHlwZUN1c3RvbVwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbW5nQ29tcG9uZW50XT1cImRlc2NyaXB0b3IuY3VzdG9tQ29tcG9uZW50VHlwZSFcIlxuICAgICAgICAgICAgW2lucHV0c109XCJ7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW0gfCBqc29uUGF0aDoganNvblBhdGgsXG4gICAgICAgICAgICAgICAgaXRlbTogaXRlbSxcbiAgICAgICAgICAgICAgICBkZXNjcmlwdG9yOiBkZXNjcmlwdG9yXG4gICAgICAgICAgICB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbjxkaXYgY2xhc3M9XCJoZWxwLWJ1dHRvbnNcIiAqbmdJZj1cImRlc2NyaXB0b3IuaGFzQ29weVRvQ2xpcGJvYXJkXCI+XG4gICAgPGJ1dHRvbiBwQnV0dG9uIHBSaXBwbGUgdHlwZT1cImJ1dHRvblwiIGljb249XCJwaSBwaS1jb3B5XCIgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLWluZm8gcC1idXR0b24tc21cIiAoY2xpY2spPVwiY29weVRvQ2xpcGJvYXJkKCRldmVudClcIj48L2J1dHRvbj5cbjwvZGl2PlxuIl19