@mediusinc/mng-commons 2.6.0 → 3.0.0-rc.0

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 (283) hide show
  1. package/README.md +15 -4
  2. package/dev-scripts/version-info.js +1 -0
  3. package/esm2022/lib/api/models/filter-param.model.mjs +33 -0
  4. package/esm2022/lib/api/models/query-param.model.mjs +68 -0
  5. package/esm2022/lib/api/models/query-result.model.mjs +24 -0
  6. package/esm2022/lib/api/utils/medius-rest.util.mjs +255 -0
  7. package/esm2022/lib/api/utils/object-serializer.util.mjs +258 -0
  8. package/esm2022/lib/components/action/action.component.mjs +304 -0
  9. package/esm2022/lib/components/action/editor/action-editor.component.mjs +386 -0
  10. package/esm2022/lib/components/action/localization/data-language-dropdown.component.mjs +54 -0
  11. package/{esm2020 → esm2022}/lib/components/action/models/action-execution.model.mjs +1 -1
  12. package/esm2022/lib/components/action/models/tableview-action-default-categories.model.mjs +11 -0
  13. package/{esm2020 → esm2022}/lib/components/action/route/action-route.component.mjs +4 -4
  14. package/esm2022/lib/components/form/autocomplete/autocomplete.component.mjs +300 -0
  15. package/{esm2020 → esm2022}/lib/components/form/date-range/date-range.component.mjs +5 -5
  16. package/esm2022/lib/components/form/dropdown/dropdown.component.mjs +212 -0
  17. package/esm2022/lib/components/form/editor/form-editor.component.mjs +288 -0
  18. package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +4 -4
  19. package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +5 -5
  20. package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-custom/formly-custom-field-base.model.mjs +4 -4
  21. package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-custom/formly-field-custom.component.mjs +6 -6
  22. package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +4 -4
  23. package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +4 -4
  24. package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +5 -5
  25. package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +4 -4
  26. package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +7 -7
  27. package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +4 -4
  28. package/{esm2020 → esm2022}/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +4 -4
  29. package/esm2022/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +19 -0
  30. package/{esm2020 → esm2022}/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +4 -4
  31. package/{esm2020 → esm2022}/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +4 -4
  32. package/esm2022/lib/components/form/models/form-editor.event.mjs +49 -0
  33. package/esm2022/lib/components/layout/breadcrumb.component.mjs +34 -0
  34. package/{esm2020 → esm2022}/lib/components/layout/footer.component.mjs +4 -4
  35. package/{esm2020 → esm2022}/lib/components/layout/main-layout.component.mjs +4 -4
  36. package/esm2022/lib/components/layout/menu-item.component.mjs +297 -0
  37. package/{esm2020 → esm2022}/lib/components/layout/menu.component.mjs +4 -4
  38. package/{esm2020 → esm2022}/lib/components/layout/services/main-layout.component.service.mjs +4 -4
  39. package/{esm2020 → esm2022}/lib/components/layout/topbar-user.component.mjs +4 -4
  40. package/{esm2020 → esm2022}/lib/components/layout/topbar.component.mjs +4 -4
  41. package/{esm2020 → esm2022}/lib/components/layout/version.component.mjs +4 -4
  42. package/{esm2020 → esm2022}/lib/components/pages/error/error-page.component.mjs +4 -4
  43. package/{esm2020 → esm2022}/lib/components/pages/not-found/not-found-page.component.mjs +4 -4
  44. package/{esm2020 → esm2022}/lib/components/tableview/models/table.event.mjs +1 -1
  45. package/{esm2020 → esm2022}/lib/components/tableview/route/tableview-route.abstract.component.mjs +5 -5
  46. package/{esm2020 → esm2022}/lib/components/tableview/route/tableview-route.component.mjs +4 -4
  47. package/esm2022/lib/components/tableview/table/column-filter/column-filter.component.mjs +124 -0
  48. package/esm2022/lib/components/tableview/table/column-value/column-value.component.mjs +110 -0
  49. package/esm2022/lib/components/tableview/table/table.component.mjs +747 -0
  50. package/esm2022/lib/components/tableview/tableview.component.mjs +147 -0
  51. package/esm2022/lib/descriptors/action/action.descriptor.mjs +634 -0
  52. package/esm2022/lib/descriptors/editor/editor.descriptor.mjs +304 -0
  53. package/esm2022/lib/descriptors/table/table.descriptor.mjs +542 -0
  54. package/esm2022/lib/descriptors/tableview/tableview.descriptor.mjs +352 -0
  55. package/{esm2020 → esm2022}/lib/descriptors/types/table.type.mjs +1 -5
  56. package/{esm2020 → esm2022}/lib/directives/component.directive.mjs +5 -5
  57. package/{esm2020 → esm2022}/lib/directives/template.directive.mjs +5 -5
  58. package/esm2022/lib/mng-commons.module.mjs +465 -0
  59. package/{esm2020 → esm2022}/lib/pipes/boolean.pipe.mjs +4 -4
  60. package/{esm2020 → esm2022}/lib/pipes/class-map.pipe.mjs +4 -4
  61. package/{esm2020 → esm2022}/lib/pipes/enum.pipe.mjs +4 -4
  62. package/{esm2020 → esm2022}/lib/pipes/enumerate-async.pipe.mjs +4 -4
  63. package/{esm2020 → esm2022}/lib/pipes/enumerate.pipe.mjs +4 -4
  64. package/{esm2020 → esm2022}/lib/pipes/getter.pipe.mjs +4 -4
  65. package/{esm2020 → esm2022}/lib/pipes/i18n-property.pipe.mjs +4 -4
  66. package/{esm2020 → esm2022}/lib/pipes/json-path.pipe.mjs +4 -4
  67. package/{esm2020 → esm2022}/lib/pipes/locale-default-row-class.pipe.mjs +4 -4
  68. package/{esm2020 → esm2022}/lib/pipes/parametrize.pipe.mjs +4 -4
  69. package/{esm2020 → esm2022}/lib/pipes/template.pipe.mjs +4 -4
  70. package/esm2022/lib/router/route-builder.mjs +308 -0
  71. package/esm2022/lib/router/routes-builder.mjs +61 -0
  72. package/esm2022/lib/security/authorization.guard.mjs +15 -0
  73. package/{esm2020 → esm2022}/lib/security/authorization.service.mjs +4 -4
  74. package/esm2022/lib/services/action-executor.service.mjs +703 -0
  75. package/{esm2020 → esm2022}/lib/services/commons.service.mjs +4 -4
  76. package/esm2022/lib/services/configuration.service.mjs +150 -0
  77. package/{esm2020 → esm2022}/lib/services/internal/commons-init.service.mjs +4 -4
  78. package/{esm2020 → esm2022}/lib/services/mng-localstorage-config.service.mjs +4 -4
  79. package/{esm2020 → esm2022}/lib/services/navigation.service.mjs +4 -4
  80. package/{esm2020 → esm2022}/lib/services/router.service.mjs +4 -4
  81. package/{esm2020 → esm2022}/lib/services/version.service.mjs +4 -4
  82. package/{esm2020 → esm2022}/lib/services/view-container.component.service.mjs +4 -4
  83. package/esm2022/lib/styles/styles.util.mjs +42 -0
  84. package/esm2022/lib/types/type.model.mjs +2 -0
  85. package/esm2022/lib/utils/date.util.mjs +120 -0
  86. package/esm2022/lib/utils/tableview.util.mjs +193 -0
  87. package/esm2022/lib/utils/type.util.mjs +94 -0
  88. package/{fesm2020 → fesm2022}/mediusinc-mng-commons.mjs +930 -908
  89. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -0
  90. package/lib/api/utils/medius-rest.util.d.ts +4 -3
  91. package/lib/components/action/action.component.d.ts +1 -1
  92. package/lib/components/action/editor/action-editor.component.d.ts +6 -9
  93. package/lib/components/action/localization/data-language-dropdown.component.d.ts +1 -1
  94. package/lib/components/form/autocomplete/autocomplete.component.d.ts +4 -4
  95. package/lib/components/form/date-range/date-range.component.d.ts +1 -1
  96. package/lib/components/form/dropdown/dropdown.component.d.ts +3 -3
  97. package/lib/components/form/editor/form-editor.component.d.ts +1 -1
  98. package/lib/components/form/formly/fields/formly-field-custom/formly-custom-field-base.model.d.ts +1 -1
  99. package/lib/components/layout/breadcrumb.component.d.ts +5 -0
  100. package/lib/components/layout/menu-item.component.d.ts +1 -1
  101. package/lib/components/layout/version.component.d.ts +1 -1
  102. package/lib/components/tableview/models/table.event.d.ts +2 -2
  103. package/lib/components/tableview/route/tableview-route.component.d.ts +1 -1
  104. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +2 -2
  105. package/lib/components/tableview/table/column-value/column-value.component.d.ts +1 -1
  106. package/lib/components/tableview/table/table.component.d.ts +6 -7
  107. package/lib/components/tableview/tableview.component.d.ts +7 -11
  108. package/lib/descriptors/editor/editor.descriptor.d.ts +1 -1
  109. package/lib/descriptors/table/table.descriptor.d.ts +7 -1
  110. package/lib/descriptors/tableview/tableview.descriptor.d.ts +4 -4
  111. package/lib/descriptors/types/table.type.d.ts +1 -5
  112. package/lib/directives/component.directive.d.ts +1 -1
  113. package/lib/directives/template.directive.d.ts +1 -1
  114. package/lib/router/route-builder.d.ts +6 -10
  115. package/lib/router/routes-builder.d.ts +0 -5
  116. package/lib/security/authorization.guard.d.ts +2 -11
  117. package/lib/services/action-executor.service.d.ts +1 -15
  118. package/lib/utils/route.util.d.ts +8 -19
  119. package/lib/utils/tableview.util.d.ts +5 -0
  120. package/package.json +12 -19
  121. package/esm2020/lib/api/models/filter-param.model.mjs +0 -33
  122. package/esm2020/lib/api/models/query-param.model.mjs +0 -68
  123. package/esm2020/lib/api/models/query-result.model.mjs +0 -24
  124. package/esm2020/lib/api/utils/medius-rest.util.mjs +0 -246
  125. package/esm2020/lib/api/utils/object-serializer.util.mjs +0 -258
  126. package/esm2020/lib/components/action/action.component.mjs +0 -303
  127. package/esm2020/lib/components/action/editor/action-editor.component.mjs +0 -390
  128. package/esm2020/lib/components/action/localization/data-language-dropdown.component.mjs +0 -47
  129. package/esm2020/lib/components/action/models/tableview-action-default-categories.model.mjs +0 -11
  130. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +0 -303
  131. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +0 -214
  132. package/esm2020/lib/components/form/editor/form-editor.component.mjs +0 -288
  133. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +0 -19
  134. package/esm2020/lib/components/form/models/form-editor.event.mjs +0 -49
  135. package/esm2020/lib/components/layout/breadcrumb.component.mjs +0 -19
  136. package/esm2020/lib/components/layout/menu-item.component.mjs +0 -294
  137. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +0 -126
  138. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +0 -108
  139. package/esm2020/lib/components/tableview/table/table.component.mjs +0 -749
  140. package/esm2020/lib/components/tableview/tableview.component.mjs +0 -146
  141. package/esm2020/lib/descriptors/action/action.descriptor.mjs +0 -634
  142. package/esm2020/lib/descriptors/editor/editor.descriptor.mjs +0 -304
  143. package/esm2020/lib/descriptors/table/table.descriptor.mjs +0 -521
  144. package/esm2020/lib/descriptors/tableview/tableview.descriptor.mjs +0 -347
  145. package/esm2020/lib/mng-commons.module.mjs +0 -469
  146. package/esm2020/lib/router/route-builder.mjs +0 -312
  147. package/esm2020/lib/router/routes-builder.mjs +0 -68
  148. package/esm2020/lib/security/authorization.guard.mjs +0 -30
  149. package/esm2020/lib/services/action-executor.service.mjs +0 -722
  150. package/esm2020/lib/services/configuration.service.mjs +0 -150
  151. package/esm2020/lib/styles/styles.util.mjs +0 -42
  152. package/esm2020/lib/types/type.model.mjs +0 -2
  153. package/esm2020/lib/utils/date.util.mjs +0 -120
  154. package/esm2020/lib/utils/tableview.util.mjs +0 -171
  155. package/esm2020/lib/utils/type.util.mjs +0 -94
  156. package/fesm2015/mediusinc-mng-commons.mjs +0 -15900
  157. package/fesm2015/mediusinc-mng-commons.mjs.map +0 -1
  158. package/fesm2020/mediusinc-mng-commons.mjs.map +0 -1
  159. /package/{esm2020 → esm2022}/index.mjs +0 -0
  160. /package/{esm2020 → esm2022}/lib/api/models/builders/query-param.builder.mjs +0 -0
  161. /package/{esm2020 → esm2022}/lib/api/models/filter-match-type.model.mjs +0 -0
  162. /package/{esm2020 → esm2022}/lib/api/models/index.mjs +0 -0
  163. /package/{esm2020 → esm2022}/lib/api/models/mappers.mjs +0 -0
  164. /package/{esm2020 → esm2022}/lib/api/models/query-mode.model.mjs +0 -0
  165. /package/{esm2020 → esm2022}/lib/api/models/serialization.model.mjs +0 -0
  166. /package/{esm2020 → esm2022}/lib/api/services/api.abstract.service.mjs +0 -0
  167. /package/{esm2020 → esm2022}/lib/api/services/crud-api.abstract.service.mjs +0 -0
  168. /package/{esm2020 → esm2022}/lib/api/services/get-all-api.abstract.service.mjs +0 -0
  169. /package/{esm2020 → esm2022}/lib/api/services/index.mjs +0 -0
  170. /package/{esm2020 → esm2022}/lib/api/utils/index.mjs +0 -0
  171. /package/{esm2020 → esm2022}/lib/components/action/index.mjs +0 -0
  172. /package/{esm2020 → esm2022}/lib/components/action/models/action-component.model.mjs +0 -0
  173. /package/{esm2020 → esm2022}/lib/components/action/models/action-confirmation-service.model.mjs +0 -0
  174. /package/{esm2020 → esm2022}/lib/components/action/models/index.mjs +0 -0
  175. /package/{esm2020 → esm2022}/lib/components/form/formly/fields/index.mjs +0 -0
  176. /package/{esm2020 → esm2022}/lib/components/form/formly/formly.config.mjs +0 -0
  177. /package/{esm2020 → esm2022}/lib/components/form/formly/index.mjs +0 -0
  178. /package/{esm2020 → esm2022}/lib/components/form/formly/models/formly-config.model.mjs +0 -0
  179. /package/{esm2020 → esm2022}/lib/components/form/formly/models/formly-field.model.mjs +0 -0
  180. /package/{esm2020 → esm2022}/lib/components/form/formly/models/index.mjs +0 -0
  181. /package/{esm2020 → esm2022}/lib/components/form/formly/wrappers/index.mjs +0 -0
  182. /package/{esm2020 → esm2022}/lib/components/form/index.mjs +0 -0
  183. /package/{esm2020 → esm2022}/lib/components/form/models/field-action-context.model.mjs +0 -0
  184. /package/{esm2020 → esm2022}/lib/components/form/models/form-editor.interface.mjs +0 -0
  185. /package/{esm2020 → esm2022}/lib/components/form/models/index.mjs +0 -0
  186. /package/{esm2020 → esm2022}/lib/components/layout/index.mjs +0 -0
  187. /package/{esm2020 → esm2022}/lib/components/layout/services/index.mjs +0 -0
  188. /package/{esm2020 → esm2022}/lib/components/pages/index.mjs +0 -0
  189. /package/{esm2020 → esm2022}/lib/components/tableview/index.mjs +0 -0
  190. /package/{esm2020 → esm2022}/lib/components/tableview/models/index.mjs +0 -0
  191. /package/{esm2020 → esm2022}/lib/components/tableview/table/models/index.mjs +0 -0
  192. /package/{esm2020 → esm2022}/lib/components/tableview/table/models/table.interface.mjs +0 -0
  193. /package/{esm2020 → esm2022}/lib/data-providers/base.data-provider.mjs +0 -0
  194. /package/{esm2020 → esm2022}/lib/data-providers/editor.data-provider.mjs +0 -0
  195. /package/{esm2020 → esm2022}/lib/data-providers/index.mjs +0 -0
  196. /package/{esm2020 → esm2022}/lib/data-providers/lookup.data-provider.mjs +0 -0
  197. /package/{esm2020 → esm2022}/lib/data-providers/table.data-provider.mjs +0 -0
  198. /package/{esm2020 → esm2022}/lib/data-providers/tableview-crud.data-provider.mjs +0 -0
  199. /package/{esm2020 → esm2022}/lib/data-providers/tableview.data-provider.mjs +0 -0
  200. /package/{esm2020 → esm2022}/lib/descriptors/action/action-button.descriptor.mjs +0 -0
  201. /package/{esm2020 → esm2022}/lib/descriptors/action/action-confirmation.descriptor.mjs +0 -0
  202. /package/{esm2020 → esm2022}/lib/descriptors/action/index.mjs +0 -0
  203. /package/{esm2020 → esm2022}/lib/descriptors/editor/field-validation.descriptor.mjs +0 -0
  204. /package/{esm2020 → esm2022}/lib/descriptors/editor/field.descriptor.mjs +0 -0
  205. /package/{esm2020 → esm2022}/lib/descriptors/editor/index.mjs +0 -0
  206. /package/{esm2020 → esm2022}/lib/descriptors/filter/filter.descriptor.mjs +0 -0
  207. /package/{esm2020 → esm2022}/lib/descriptors/filter/index.mjs +0 -0
  208. /package/{esm2020 → esm2022}/lib/descriptors/index.mjs +0 -0
  209. /package/{esm2020 → esm2022}/lib/descriptors/interfaces/field-config.interface.mjs +0 -0
  210. /package/{esm2020 → esm2022}/lib/descriptors/interfaces/index.mjs +0 -0
  211. /package/{esm2020 → esm2022}/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +0 -0
  212. /package/{esm2020 → esm2022}/lib/descriptors/model.descriptor.mjs +0 -0
  213. /package/{esm2020 → esm2022}/lib/descriptors/table/column.descriptor.mjs +0 -0
  214. /package/{esm2020 → esm2022}/lib/descriptors/table/index.mjs +0 -0
  215. /package/{esm2020 → esm2022}/lib/descriptors/tableview/index.mjs +0 -0
  216. /package/{esm2020 → esm2022}/lib/descriptors/types/action.type.mjs +0 -0
  217. /package/{esm2020 → esm2022}/lib/descriptors/types/column.type.mjs +0 -0
  218. /package/{esm2020 → esm2022}/lib/descriptors/types/editor.type.mjs +0 -0
  219. /package/{esm2020 → esm2022}/lib/descriptors/types/field.type.mjs +0 -0
  220. /package/{esm2020 → esm2022}/lib/descriptors/types/filter.type.mjs +0 -0
  221. /package/{esm2020 → esm2022}/lib/descriptors/types/index.mjs +0 -0
  222. /package/{esm2020 → esm2022}/lib/directives/index.mjs +0 -0
  223. /package/{esm2020 → esm2022}/lib/models/column-value.model.mjs +0 -0
  224. /package/{esm2020 → esm2022}/lib/models/config.model.mjs +0 -0
  225. /package/{esm2020 → esm2022}/lib/models/enum.model.mjs +0 -0
  226. /package/{esm2020 → esm2022}/lib/models/error-internal.model.mjs +0 -0
  227. /package/{esm2020 → esm2022}/lib/models/error.model.mjs +0 -0
  228. /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
  229. /package/{esm2020 → esm2022}/lib/models/menu.model.mjs +0 -0
  230. /package/{esm2020 → esm2022}/lib/models/tableview-attr.model.mjs +0 -0
  231. /package/{esm2020 → esm2022}/lib/models/user.model.mjs +0 -0
  232. /package/{esm2020 → esm2022}/lib/models/version.model.mjs +0 -0
  233. /package/{esm2020 → esm2022}/lib/models/view-container.model.mjs +0 -0
  234. /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
  235. /package/{esm2020 → esm2022}/lib/pipes/models/internal/enumrate-pipe-i18n.model.mjs +0 -0
  236. /package/{esm2020 → esm2022}/lib/pipes/models/internal/index.mjs +0 -0
  237. /package/{esm2020 → esm2022}/lib/provide-commons.mjs +0 -0
  238. /package/{esm2020 → esm2022}/lib/router/index.mjs +0 -0
  239. /package/{esm2020 → esm2022}/lib/router/models/index.mjs +0 -0
  240. /package/{esm2020 → esm2022}/lib/router/models/router.model.mjs +0 -0
  241. /package/{esm2020 → esm2022}/lib/router/tableview-route-builder.mjs +0 -0
  242. /package/{esm2020 → esm2022}/lib/security/authorization.util.mjs +0 -0
  243. /package/{esm2020 → esm2022}/lib/security/index.mjs +0 -0
  244. /package/{esm2020 → esm2022}/lib/security/model/authorization.type.mjs +0 -0
  245. /package/{esm2020 → esm2022}/lib/security/model/index.mjs +0 -0
  246. /package/{esm2020 → esm2022}/lib/security/model/permission-service.interface.mjs +0 -0
  247. /package/{esm2020 → esm2022}/lib/security/model/permissions.model.mjs +0 -0
  248. /package/{esm2020 → esm2022}/lib/services/error-mapper.service.mjs +0 -0
  249. /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
  250. /package/{esm2020 → esm2022}/lib/services/internal/commons-init.provider.mjs +0 -0
  251. /package/{esm2020 → esm2022}/lib/services/internal/index.mjs +0 -0
  252. /package/{esm2020 → esm2022}/lib/services/providers/config-service.provider.mjs +0 -0
  253. /package/{esm2020 → esm2022}/lib/services/providers/formly-config.provider.mjs +0 -0
  254. /package/{esm2020 → esm2022}/lib/services/providers/index.mjs +0 -0
  255. /package/{esm2020 → esm2022}/lib/services/tokens/browser-storage.token.mjs +0 -0
  256. /package/{esm2020 → esm2022}/lib/services/tokens/commons-init.token.mjs +0 -0
  257. /package/{esm2020 → esm2022}/lib/services/tokens/default-setting.token.mjs +0 -0
  258. /package/{esm2020 → esm2022}/lib/services/tokens/index.mjs +0 -0
  259. /package/{esm2020 → esm2022}/lib/services/tokens/module-config.token.mjs +0 -0
  260. /package/{esm2020 → esm2022}/lib/styles/button-style.builder.mjs +0 -0
  261. /package/{esm2020 → esm2022}/lib/styles/index.mjs +0 -0
  262. /package/{esm2020 → esm2022}/lib/styles/models/index.mjs +0 -0
  263. /package/{esm2020 → esm2022}/lib/styles/models/style-level.enum.mjs +0 -0
  264. /package/{esm2020 → esm2022}/lib/styles/models/style-size.enum.mjs +0 -0
  265. /package/{esm2020 → esm2022}/lib/types/i18n.type.mjs +0 -0
  266. /package/{esm2020 → esm2022}/lib/types/index.mjs +0 -0
  267. /package/{esm2020 → esm2022}/lib/types/mng-localstorage-config-value.type.mjs +0 -0
  268. /package/{esm2020 → esm2022}/lib/types/type.decorator.mjs +0 -0
  269. /package/{esm2020 → esm2022}/lib/utils/action-data-provider.util.mjs +0 -0
  270. /package/{esm2020 → esm2022}/lib/utils/editor-formly.util.mjs +0 -0
  271. /package/{esm2020 → esm2022}/lib/utils/enum.util.mjs +0 -0
  272. /package/{esm2020 → esm2022}/lib/utils/export.util.mjs +0 -0
  273. /package/{esm2020 → esm2022}/lib/utils/file.util.mjs +0 -0
  274. /package/{esm2020 → esm2022}/lib/utils/i18n.util.mjs +0 -0
  275. /package/{esm2020 → esm2022}/lib/utils/index.mjs +0 -0
  276. /package/{esm2020 → esm2022}/lib/utils/model.util.mjs +0 -0
  277. /package/{esm2020 → esm2022}/lib/utils/notification.util.mjs +0 -0
  278. /package/{esm2020 → esm2022}/lib/utils/object.util.mjs +0 -0
  279. /package/{esm2020 → esm2022}/lib/utils/route.util.mjs +0 -0
  280. /package/{esm2020 → esm2022}/lib/utils/string.util.mjs +0 -0
  281. /package/{esm2020 → esm2022}/lib/validators/field.validator.mjs +0 -0
  282. /package/{esm2020 → esm2022}/lib/validators/index.mjs +0 -0
  283. /package/{esm2020 → esm2022}/mediusinc-mng-commons.mjs +0 -0
@@ -1,126 +0,0 @@
1
- import { NgIf, NgSwitch, NgSwitchCase } from '@angular/common';
2
- import { Component, Input, ViewChild } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { TranslateModule } from '@ngx-translate/core';
5
- import { PrimeNGConfig } from 'primeng/api';
6
- import { CalendarModule } from 'primeng/calendar';
7
- import { ColumnFilter, TableModule } from 'primeng/table';
8
- import { Subject, debounceTime, distinctUntilChanged } from 'rxjs';
9
- import { FilterDescriptor } from '../../../../descriptors/filter';
10
- import { FilterLookupTypeEnum, FilterMatchModeEnum, FilterTypeEnum, TableFilterDisplayEnum } from '../../../../descriptors/types';
11
- import { MngAutocompleteComponent, MngDateRangeComponent, MngDropdownComponent } from '../../../form';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "primeng/api";
14
- import * as i2 from "primeng/table";
15
- import * as i3 from "@ngx-translate/core";
16
- import * as i4 from "primeng/calendar";
17
- import * as i5 from "@angular/forms";
18
- /**
19
- * Cannot be on push change detection strategy because of filter updates triggered from route which causes to force update values in force metadata
20
- * and these must be propagated through to this component and beyond to primeNG.
21
- */
22
- export class MngTableColumnFilterComponent {
23
- constructor(primeConfig) {
24
- this.primeConfig = primeConfig;
25
- this.lookupTypeDropdown = FilterLookupTypeEnum.Dropdown;
26
- this.lookupTypeAutocomplete = FilterLookupTypeEnum.Autocomplete;
27
- this.primeType = 'text';
28
- this.primeShowMatchMode = true;
29
- this.primeDisplay = 'row';
30
- this.primeMatchModeCustomOptions = null;
31
- this.dateDebounceSubject = new Subject();
32
- this.dateDebounceSubscription = this.dateDebounceSubject.pipe(debounceTime(500), distinctUntilChanged()).subscribe(v => {
33
- this.dateFilterCallback?.(v);
34
- });
35
- }
36
- get activeMatchMode() {
37
- const filter = this.primeColumnFilter?.dt.filters[this.descriptor.property];
38
- return filter?.matchMode;
39
- }
40
- ngOnInit() {
41
- this.primeDefaultMatchMode = this.descriptor.defaultFilterMatchMode ?? FilterMatchModeEnum.Equals;
42
- switch (this.descriptor.filterType) {
43
- case FilterTypeEnum.Boolean:
44
- this.primeType = 'boolean';
45
- this.primeShowMatchMode = false;
46
- break;
47
- case FilterTypeEnum.Number:
48
- this.primeType = 'numeric';
49
- break;
50
- case FilterTypeEnum.Date:
51
- this.primeType = 'date';
52
- this.primeDefaultMatchMode = FilterMatchModeEnum.DateIs;
53
- break;
54
- case FilterTypeEnum.Lookup:
55
- this.primeType = 'lookup';
56
- this.lookupDescriptor = this.descriptor;
57
- this.primeField = `${this.descriptor.property}${this.lookupDescriptor.itemsValueProperty ? `.${this.lookupDescriptor.itemsValueProperty}` : ''}`;
58
- this.primeMatchModeCustomOptions = [
59
- { value: FilterMatchModeEnum.Equals, label: this.primeConfig.getTranslation(FilterMatchModeEnum.Equals) },
60
- { value: FilterMatchModeEnum.NotEquals, label: this.primeConfig.getTranslation(FilterMatchModeEnum.NotEquals) }
61
- ];
62
- if (this.lookupDescriptor.multiselect) {
63
- this.primeMatchModeCustomOptions = null;
64
- this.primeDefaultMatchMode = FilterMatchModeEnum.In;
65
- }
66
- break;
67
- case FilterTypeEnum.String:
68
- this.primeType = 'text';
69
- this.primeDefaultMatchMode = FilterMatchModeEnum.Contains;
70
- break;
71
- }
72
- if (this.descriptor.matchModes) {
73
- this.primeMatchModeCustomOptions = this.descriptor.matchModes.map(mm => ({ value: mm, label: this.primeConfig.getTranslation(mm) }));
74
- if (!this.primeMatchModeCustomOptions.map(matchMode => matchMode.value).includes(this.primeDefaultMatchMode)) {
75
- this.primeDefaultMatchMode = this.descriptor.matchModes[0];
76
- }
77
- this.primeShowMatchMode = this.primeMatchModeCustomOptions?.length > 1;
78
- }
79
- if (this.display === TableFilterDisplayEnum.Menu) {
80
- this.primeDisplay = 'menu';
81
- }
82
- }
83
- ngOnDestroy() {
84
- this.dateDebounceSubscription?.unsubscribe();
85
- }
86
- // eslint-disable-next-line @typescript-eslint/ban-types
87
- dateFilter(value, filterCallback) {
88
- this.dateFilterCallback = filterCallback;
89
- if (this.activeMatchMode === FilterMatchModeEnum.Between && Array.isArray(value)) {
90
- const dateValues = value.filter(v => v instanceof Date);
91
- if (dateValues.length <= 1) {
92
- return;
93
- }
94
- }
95
- this.dateDebounceSubject.next(value);
96
- }
97
- // eslint-disable-next-line @typescript-eslint/ban-types
98
- dateRangeChange(value, filterCallback) {
99
- filterCallback(value);
100
- }
101
- // eslint-disable-next-line @typescript-eslint/ban-types
102
- autocompleteFilter(value, filterCallback) {
103
- filterCallback(value);
104
- }
105
- // eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any
106
- dropdownFilter(value, filterCallback) {
107
- if (Array.isArray(value) && value.length === 0) {
108
- value = undefined;
109
- }
110
- filterCallback(value);
111
- }
112
- }
113
- MngTableColumnFilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MngTableColumnFilterComponent, deps: [{ token: i1.PrimeNGConfig }], target: i0.ɵɵFactoryTarget.Component });
114
- MngTableColumnFilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: MngTableColumnFilterComponent, isStandalone: true, selector: "mng-table-column-filter", inputs: { descriptor: "descriptor", display: "display" }, viewQueries: [{ propertyName: "primeColumnFilter", first: true, predicate: ColumnFilter, descendants: true }], ngImport: i0, template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"$any(primeDefaultMatchMode)\"\n [matchModeOptions]=\"$any(primeMatchModeCustomOptions)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\"\n [showMenu]=\"primeShowMatchMode\"\n [minFractionDigits]=\"$any(descriptor.numberMinFractionDigits)\"\n [maxFractionDigits]=\"$any(descriptor.numberMaxFractionDigits)\"\n [useGrouping]=\"descriptor.numberUseGrouping\">\n <ng-template *ngIf=\"primeType === 'date'\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container *ngIf=\"activeMatchMode === 'between'; else datePicker\">\n <mng-date-range\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [dateFormat]=\"descriptor.datePickerFormat\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"></mng-date-range>\n </ng-container>\n <ng-template #datePicker>\n <p-calendar\n appendTo=\"body\"\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showIcon]=\"true\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [firstDayOfWeek]=\"1\">\n </p-calendar>\n </ng-template>\n </ng-template>\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [openOnFocus]=\"lookupDescriptor.autocompleteOpenOnFocus\"\n [inlineSearch]=\"lookupDescriptor.autocompleteInlineSearch\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"false\"\n [changeValueOnBlur]=\"lookupDescriptor.multiselect\"\n (valueChange)=\"dropdownFilter($event, filterCallback)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n", dependencies: [{ kind: "ngmodule", type: TableModule }, { kind: "directive", type: i1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i2.ColumnFilter, selector: "p-columnFilter", inputs: ["field", "type", "display", "showMenu", "matchMode", "operator", "showOperator", "showClearButton", "showApplyButton", "showMatchModes", "showAddButton", "hideOnClear", "placeholder", "matchModeOptions", "maxConstraints", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping", "showButtons"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }, { kind: "component", type: MngDateRangeComponent, selector: "mng-date-range", inputs: ["placeholder", "showTime", "showSeconds", "dateFormat"] }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i4.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "component", type: MngAutocompleteComponent, selector: "mng-autocomplete", inputs: ["dataProvider", "dataKeyProperty", "itemsValueProperty", "itemsLabelProperty", "itemsLabelTranslate", "inlineSearch", "openOnFocus", "multiselect", "placeholder", "className", "dropdownClassName", "showClear", "autoClear", "selectFirst"], outputs: ["valueChange"] }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsLabelTranslate", "itemsValueProperty", "itemsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur"], outputs: ["valueChange"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MngTableColumnFilterComponent, decorators: [{
116
- type: Component,
117
- args: [{ standalone: true, selector: 'mng-table-column-filter', imports: [TableModule, TranslateModule, MngDateRangeComponent, CalendarModule, FormsModule, NgSwitch, MngAutocompleteComponent, NgSwitchCase, MngDropdownComponent, NgIf], template: "<p-columnFilter\n class=\"ml-auto\"\n [type]=\"primeType\"\n [field]=\"descriptor.property\"\n [display]=\"primeDisplay\"\n [matchMode]=\"$any(primeDefaultMatchMode)\"\n [matchModeOptions]=\"$any(primeMatchModeCustomOptions)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showMatchModes]=\"true\"\n [showOperator]=\"false\"\n [showAddButton]=\"false\"\n [hideOnClear]=\"true\"\n [showMenu]=\"primeShowMatchMode\"\n [minFractionDigits]=\"$any(descriptor.numberMinFractionDigits)\"\n [maxFractionDigits]=\"$any(descriptor.numberMaxFractionDigits)\"\n [useGrouping]=\"descriptor.numberUseGrouping\">\n <ng-template *ngIf=\"primeType === 'date'\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container *ngIf=\"activeMatchMode === 'between'; else datePicker\">\n <mng-date-range\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [dateFormat]=\"descriptor.datePickerFormat\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"></mng-date-range>\n </ng-container>\n <ng-template #datePicker>\n <p-calendar\n appendTo=\"body\"\n [ngModel]=\"value\"\n (ngModelChange)=\"dateFilter($event, filterCallback)\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.typeToFilter' | translate\"\n [showIcon]=\"true\"\n [dateFormat]=\"descriptor.datePickerFormat ?? 'dd.mm.yy'\"\n [showTime]=\"descriptor.datePickerShowTime\"\n [firstDayOfWeek]=\"1\">\n </p-calendar>\n </ng-template>\n </ng-template>\n <ng-template *ngIf=\"lookupDescriptor\" pTemplate=\"filter\" let-value let-filterCallback=\"filterCallback\">\n <ng-container [ngSwitch]=\"lookupDescriptor.lookupType\">\n <mng-autocomplete\n *ngSwitchCase=\"lookupTypeAutocomplete\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [dataKeyProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [openOnFocus]=\"lookupDescriptor.autocompleteOpenOnFocus\"\n [inlineSearch]=\"lookupDescriptor.autocompleteInlineSearch\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.searchToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n (valueChange)=\"autocompleteFilter($event, filterCallback)\">\n </mng-autocomplete>\n <mng-dropdown\n *ngSwitchCase=\"lookupTypeDropdown\"\n [ngModel]=\"value\"\n [dataProvider]=\"lookupDescriptor.dataProvider\"\n [itemsValueProperty]=\"lookupDescriptor.itemsValueProperty\"\n [itemsLabelProperty]=\"lookupDescriptor.itemsLabelProperty\"\n [itemsLabelTranslate]=\"lookupDescriptor.itemsLabelTranslate\"\n [multiselect]=\"lookupDescriptor.multiselect\"\n [placeholder]=\"descriptor.placeholder ?? 'mngTable.selectToFilter' | translate\"\n [className]=\"lookupDescriptor.className\"\n [dropdownClassName]=\"lookupDescriptor.dropdownClassName\"\n [showClear]=\"false\"\n [changeValueOnBlur]=\"lookupDescriptor.multiselect\"\n (valueChange)=\"dropdownFilter($event, filterCallback)\">\n </mng-dropdown>\n </ng-container>\n </ng-template>\n</p-columnFilter>\n" }]
118
- }], ctorParameters: function () { return [{ type: i1.PrimeNGConfig }]; }, propDecorators: { descriptor: [{
119
- type: Input
120
- }], display: [{
121
- type: Input
122
- }], primeColumnFilter: [{
123
- type: ViewChild,
124
- args: [ColumnFilter]
125
- }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLWZpbHRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL2NvbHVtbi1maWx0ZXIvY29sdW1uLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL2NvbHVtbi1maWx0ZXIvY29sdW1uLWZpbHRlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUUzQyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFpQixhQUFhLEVBQWEsTUFBTSxhQUFhLENBQUM7QUFDdEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGtCQUFrQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxZQUFZLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBQyxPQUFPLEVBQWdCLFlBQVksRUFBRSxvQkFBb0IsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUUvRSxPQUFPLEVBQUMsZ0JBQWdCLEVBQXlCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEYsT0FBTyxFQUFDLG9CQUFvQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsRUFBRSxzQkFBc0IsRUFBQyxNQUFNLCtCQUErQixDQUFDO0FBQ2hJLE9BQU8sRUFBQyx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxvQkFBb0IsRUFBQyxNQUFNLGVBQWUsQ0FB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Q0FDTSxJQUFJLFlBQ04seUJBQXlCLFdBQzFCLENBQUMsV0FBVyxFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDO29HQU9oSyxVQUFVO3NCQUFsQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFMEIsaUJBQWlCO3NCQUFoRCxTQUFTO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nSWYsIE5nU3dpdGNoLCBOZ1N3aXRjaENhc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge1RyYW5zbGF0ZU1vZHVsZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0ZpbHRlck1ldGFkYXRhLCBQcmltZU5HQ29uZmlnLCBTZWxlY3RJdGVtfSBmcm9tICdwcmltZW5nL2FwaSc7XG5pbXBvcnQge0NhbGVuZGFyTW9kdWxlfSBmcm9tICdwcmltZW5nL2NhbGVuZGFyJztcbmltcG9ydCB7Q29sdW1uRmlsdGVyLCBUYWJsZU1vZHVsZX0gZnJvbSAncHJpbWVuZy90YWJsZSc7XG5pbXBvcnQge1N1YmplY3QsIFN1YnNjcmlwdGlvbiwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7RmlsdGVyRGVzY3JpcHRvciwgRmlsdGVyTG9va3VwRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vLi4vZGVzY3JpcHRvcnMvZmlsdGVyJztcbmltcG9ydCB7RmlsdGVyTG9va3VwVHlwZUVudW0sIEZpbHRlck1hdGNoTW9kZUVudW0sIEZpbHRlclR5cGVFbnVtLCBUYWJsZUZpbHRlckRpc3BsYXlFbnVtfSBmcm9tICcuLi8uLi8uLi8uLi9kZXNjcmlwdG9ycy90eXBlcyc7XG5pbXBvcnQge01uZ0F1dG9jb21wbGV0ZUNvbXBvbmVudCwgTW5nRGF0ZVJhbmdlQ29tcG9uZW50LCBNbmdEcm9wZG93bkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vLi4vZm9ybSc7XG5cbi8qKlxuICogQ2Fubm90IGJlIG9uIHB1c2ggY2hhbmdlIGRldGVjdGlvbiBzdHJhdGVneSBiZWNhdXNlIG9mIGZpbHRlciB1cGRhdGVzIHRyaWdnZXJlZCBmcm9tIHJvdXRlIHdoaWNoIGNhdXNlcyB0byBmb3JjZSB1cGRhdGUgdmFsdWVzIGluIGZvcmNlIG1ldGFkYXRhXG4gKiBhbmQgdGhlc2UgbXVzdCBiZSBwcm9wYWdhdGVkIHRocm91Z2ggdG8gdGhpcyBjb21wb25lbnQgYW5kIGJleW9uZCB0byBwcmltZU5HLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLXRhYmxlLWNvbHVtbi1maWx0ZXInLFxuICAgIGltcG9ydHM6IFtUYWJsZU1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBNbmdEYXRlUmFuZ2VDb21wb25lbnQsIENhbGVuZGFyTW9kdWxlLCBGb3Jtc01vZHVsZSwgTmdTd2l0Y2gsIE1uZ0F1dG9jb21wbGV0ZUNvbXBvbmVudCwgTmdTd2l0Y2hDYXNlLCBNbmdEcm9wZG93bkNvbXBvbmVudCwgTmdJZl0sXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi1maWx0ZXIuY29tcG9uZW50Lmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIE1uZ1RhYmxlQ29sdW1uRmlsdGVyQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICAgIHB1YmxpYyByZWFkb25seSBsb29rdXBUeXBlRHJvcGRvd246IEZpbHRlckxvb2t1cFR5cGVFbnVtID0gRmlsdGVyTG9va3VwVHlwZUVudW0uRHJvcGRvd247XG4gICAgcHVibGljIHJlYWRvbmx5IGxvb2t1cFR5cGVBdXRvY29tcGxldGU6IEZpbHRlckxvb2t1cFR5cGVFbnVtID0gRmlsdGVyTG9va3VwVHlwZUVudW0uQXV0b2NvbXBsZXRlO1xuXG4gICAgQElucHV0KCkgZGVzY3JpcHRvciE6IEZpbHRlckRlc2NyaXB0b3I8VD47XG4gICAgQElucHV0KCkgZGlzcGxheSE6IFRhYmxlRmlsdGVyRGlzcGxheUVudW07XG5cbiAgICBAVmlld0NoaWxkKENvbHVtbkZpbHRlcikgcHVibGljIHByaW1lQ29sdW1uRmlsdGVyITogQ29sdW1uRmlsdGVyO1xuXG4gICAgcHVibGljIGxvb2t1cERlc2NyaXB0b3I/OiBGaWx0ZXJMb29rdXBEZXNjcmlwdG9yPFQ+O1xuXG4gICAgcHVibGljIHByaW1lRmllbGQhOiBzdHJpbmc7XG4gICAgcHVibGljIHByaW1lVHlwZSA9ICd0ZXh0JztcbiAgICBwdWJsaWMgcHJpbWVTaG93TWF0Y2hNb2RlID0gdHJ1ZTtcbiAgICBwdWJsaWMgcHJpbWVEZWZhdWx0TWF0Y2hNb2RlITogRmlsdGVyTWF0Y2hNb2RlRW51bTtcbiAgICBwdWJsaWMgcHJpbWVEaXNwbGF5ID0gJ3Jvdyc7XG4gICAgcHVibGljIHByaW1lTWF0Y2hNb2RlQ3VzdG9tT3B0aW9uczogU2VsZWN0SXRlbVtdIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICAgIHByaXZhdGUgZGF0ZUZpbHRlckNhbGxiYWNrPzogRnVuY3Rpb247XG4gICAgcHJpdmF0ZSBkYXRlRGVib3VuY2VTdWJqZWN0ID0gbmV3IFN1YmplY3Q8RGF0ZSB8IERhdGVbXSB8IG51bGw+KCk7XG4gICAgcHJpdmF0ZSBkYXRlRGVib3VuY2VTdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHByaW1lQ29uZmlnOiBQcmltZU5HQ29uZmlnKSB7XG4gICAgICAgIHRoaXMuZGF0ZURlYm91bmNlU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRlRGVib3VuY2VTdWJqZWN0LnBpcGUoZGVib3VuY2VUaW1lKDUwMCksIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpLnN1YnNjcmliZSh2ID0+IHtcbiAgICAgICAgICAgIHRoaXMuZGF0ZUZpbHRlckNhbGxiYWNrPy4odik7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYWN0aXZlTWF0Y2hNb2RlKCk6IEZpbHRlck1hdGNoTW9kZUVudW0gfCB1bmRlZmluZWQge1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLnByaW1lQ29sdW1uRmlsdGVyPy5kdC5maWx0ZXJzW3RoaXMuZGVzY3JpcHRvci5wcm9wZXJ0eV0gYXMgRmlsdGVyTWV0YWRhdGE7XG4gICAgICAgIHJldHVybiBmaWx0ZXI/Lm1hdGNoTW9kZSBhcyBGaWx0ZXJNYXRjaE1vZGVFbnVtIHwgdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIG5nT25Jbml0KCkge1xuICAgICAgICB0aGlzLnByaW1lRGVmYXVsdE1hdGNoTW9kZSA9IHRoaXMuZGVzY3JpcHRvci5kZWZhdWx0RmlsdGVyTWF0Y2hNb2RlID8/IEZpbHRlck1hdGNoTW9kZUVudW0uRXF1YWxzO1xuXG4gICAgICAgIHN3aXRjaCAodGhpcy5kZXNjcmlwdG9yLmZpbHRlclR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZUVudW0uQm9vbGVhbjpcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lVHlwZSA9ICdib29sZWFuJztcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lU2hvd01hdGNoTW9kZSA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBGaWx0ZXJUeXBlRW51bS5OdW1iZXI6XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltZVR5cGUgPSAnbnVtZXJpYyc7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLkRhdGU6XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltZVR5cGUgPSAnZGF0ZSc7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltZURlZmF1bHRNYXRjaE1vZGUgPSBGaWx0ZXJNYXRjaE1vZGVFbnVtLkRhdGVJcztcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRmlsdGVyVHlwZUVudW0uTG9va3VwOlxuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVUeXBlID0gJ2xvb2t1cCc7XG4gICAgICAgICAgICAgICAgdGhpcy5sb29rdXBEZXNjcmlwdG9yID0gdGhpcy5kZXNjcmlwdG9yIGFzIEZpbHRlckxvb2t1cERlc2NyaXB0b3I8VD47XG4gICAgICAgICAgICAgICAgdGhpcy5wcmltZUZpZWxkID0gYCR7dGhpcy5kZXNjcmlwdG9yLnByb3BlcnR5fSR7dGhpcy5sb29rdXBEZXNjcmlwdG9yLml0ZW1zVmFsdWVQcm9wZXJ0eSA/IGAuJHt0aGlzLmxvb2t1cERlc2NyaXB0b3IuaXRlbXNWYWx1ZVByb3BlcnR5fWAgOiAnJ31gO1xuICAgICAgICAgICAgICAgIHRoaXMucHJpbWVNYXRjaE1vZGVDdXN0b21PcHRpb25zID0gW1xuICAgICAgICAgICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZUVudW0uRXF1YWxzLCBsYWJlbDogdGhpcy5wcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGVFbnVtLkVxdWFscyl9LFxuICAgICAgICAgICAgICAgICAgICB7dmFsdWU6IEZpbHRlck1hdGNoTW9kZUVudW0uTm90RXF1YWxzLCBsYWJlbDogdGhpcy5wcmltZUNvbmZpZy5nZXRUcmFuc2xhdGlvbihGaWx0ZXJNYXRjaE1vZGVFbnVtLk5vdEVxdWFscyl9XG4gICAgICAgICAgICAgICAgXTtcblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvb2t1cERlc2NyaXB0b3IubXVsdGlzZWxlY3QpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5wcmltZU1hdGNoTW9kZUN1c3RvbU9wdGlvbnMgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnByaW1lRGVmYXVsdE1hdGNoTW9kZSA9IEZpbHRlck1hdGNoTW9kZUVudW0uSW47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEZpbHRlclR5cGVFbnVtLlN0cmluZzpcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lVHlwZSA9ICd0ZXh0JztcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lRGVmYXVsdE1hdGNoTW9kZSA9IEZpbHRlck1hdGNoTW9kZUVudW0uQ29udGFpbnM7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLm1hdGNoTW9kZXMpIHtcbiAgICAgICAgICAgIHRoaXMucHJpbWVNYXRjaE1vZGVDdXN0b21PcHRpb25zID0gdGhpcy5kZXNjcmlwdG9yLm1hdGNoTW9kZXMubWFwKG1tID0+IDxTZWxlY3RJdGVtPnt2YWx1ZTogbW0sIGxhYmVsOiB0aGlzLnByaW1lQ29uZmlnLmdldFRyYW5zbGF0aW9uKG1tKX0pO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMucHJpbWVNYXRjaE1vZGVDdXN0b21PcHRpb25zLm1hcChtYXRjaE1vZGUgPT4gbWF0Y2hNb2RlLnZhbHVlKS5pbmNsdWRlcyh0aGlzLnByaW1lRGVmYXVsdE1hdGNoTW9kZSkpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnByaW1lRGVmYXVsdE1hdGNoTW9kZSA9IHRoaXMuZGVzY3JpcHRvci5tYXRjaE1vZGVzWzBdIGFzIEZpbHRlck1hdGNoTW9kZUVudW07XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHRoaXMucHJpbWVTaG93TWF0Y2hNb2RlID0gdGhpcy5wcmltZU1hdGNoTW9kZUN1c3RvbU9wdGlvbnM/Lmxlbmd0aCA+IDE7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5ID09PSBUYWJsZUZpbHRlckRpc3BsYXlFbnVtLk1lbnUpIHtcbiAgICAgICAgICAgIHRoaXMucHJpbWVEaXNwbGF5ID0gJ21lbnUnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHRoaXMuZGF0ZURlYm91bmNlU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzXG4gICAgZGF0ZUZpbHRlcih2YWx1ZTogRGF0ZSB8IERhdGVbXSB8IG51bGwsIGZpbHRlckNhbGxiYWNrOiBGdW5jdGlvbikge1xuICAgICAgICB0aGlzLmRhdGVGaWx0ZXJDYWxsYmFjayA9IGZpbHRlckNhbGxiYWNrO1xuICAgICAgICBpZiAodGhpcy5hY3RpdmVNYXRjaE1vZGUgPT09IEZpbHRlck1hdGNoTW9kZUVudW0uQmV0d2VlbiAmJiBBcnJheS5pc0FycmF5KHZhbHVlKSkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZVZhbHVlcyA9IHZhbHVlLmZpbHRlcih2ID0+IHYgaW5zdGFuY2VvZiBEYXRlKTtcbiAgICAgICAgICAgIGlmIChkYXRlVmFsdWVzLmxlbmd0aCA8PSAxKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZGF0ZURlYm91bmNlU3ViamVjdC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICAgIGRhdGVSYW5nZUNoYW5nZSh2YWx1ZTogRGF0ZVtdIHwgbnVsbCwgZmlsdGVyQ2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgICAgIGZpbHRlckNhbGxiYWNrKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlc1xuICAgIGF1dG9jb21wbGV0ZUZpbHRlcih2YWx1ZTogVCwgZmlsdGVyQ2FsbGJhY2s6IEZ1bmN0aW9uKSB7XG4gICAgICAgIGZpbHRlckNhbGxiYWNrKHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L2Jhbi10eXBlcywgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIGRyb3Bkb3duRmlsdGVyKHZhbHVlOiBhbnksIGZpbHRlckNhbGxiYWNrOiBGdW5jdGlvbikge1xuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgICAgICBmaWx0ZXJDYWxsYmFjayh2YWx1ZSk7XG4gICAgfVxufVxuIiwiPHAtY29sdW1uRmlsdGVyXG4gICAgY2xhc3M9XCJtbC1hdXRvXCJcbiAgICBbdHlwZV09XCJwcmltZVR5cGVcIlxuICAgIFtmaWVsZF09XCJkZXNjcmlwdG9yLnByb3BlcnR5XCJcbiAgICBbZGlzcGxheV09XCJwcmltZURpc3BsYXlcIlxuICAgIFttYXRjaE1vZGVdPVwiJGFueShwcmltZURlZmF1bHRNYXRjaE1vZGUpXCJcbiAgICBbbWF0Y2hNb2RlT3B0aW9uc109XCIkYW55KHByaW1lTWF0Y2hNb2RlQ3VzdG9tT3B0aW9ucylcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJkZXNjcmlwdG9yLnBsYWNlaG9sZGVyID8/ICdtbmdUYWJsZS50eXBlVG9GaWx0ZXInIHwgdHJhbnNsYXRlXCJcbiAgICBbc2hvd01hdGNoTW9kZXNdPVwidHJ1ZVwiXG4gICAgW3Nob3dPcGVyYXRvcl09XCJmYWxzZVwiXG4gICAgW3Nob3dBZGRCdXR0b25dPVwiZmFsc2VcIlxuICAgIFtoaWRlT25DbGVhcl09XCJ0cnVlXCJcbiAgICBbc2hvd01lbnVdPVwicHJpbWVTaG93TWF0Y2hNb2RlXCJcbiAgICBbbWluRnJhY3Rpb25EaWdpdHNdPVwiJGFueShkZXNjcmlwdG9yLm51bWJlck1pbkZyYWN0aW9uRGlnaXRzKVwiXG4gICAgW21heEZyYWN0aW9uRGlnaXRzXT1cIiRhbnkoZGVzY3JpcHRvci5udW1iZXJNYXhGcmFjdGlvbkRpZ2l0cylcIlxuICAgIFt1c2VHcm91cGluZ109XCJkZXNjcmlwdG9yLm51bWJlclVzZUdyb3VwaW5nXCI+XG4gICAgPG5nLXRlbXBsYXRlICpuZ0lmPVwicHJpbWVUeXBlID09PSAnZGF0ZSdcIiBwVGVtcGxhdGU9XCJmaWx0ZXJcIiBsZXQtdmFsdWUgbGV0LWZpbHRlckNhbGxiYWNrPVwiZmlsdGVyQ2FsbGJhY2tcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFjdGl2ZU1hdGNoTW9kZSA9PT0gJ2JldHdlZW4nOyBlbHNlIGRhdGVQaWNrZXJcIj5cbiAgICAgICAgICAgIDxtbmctZGF0ZS1yYW5nZVxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJkYXRlRmlsdGVyKCRldmVudCwgZmlsdGVyQ2FsbGJhY2spXCJcbiAgICAgICAgICAgICAgICBbc2hvd1RpbWVdPVwiZGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWVcIlxuICAgICAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cImRlc2NyaXB0b3IuZGF0ZVBpY2tlckZvcm1hdFwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImRlc2NyaXB0b3IucGxhY2Vob2xkZXIgPz8gJ21uZ1RhYmxlLnR5cGVUb0ZpbHRlcicgfCB0cmFuc2xhdGVcIj48L21uZy1kYXRlLXJhbmdlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkYXRlUGlja2VyPlxuICAgICAgICAgICAgPHAtY2FsZW5kYXJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJkYXRlRmlsdGVyKCRldmVudCwgZmlsdGVyQ2FsbGJhY2spXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGVzY3JpcHRvci5wbGFjZWhvbGRlciA/PyAnbW5nVGFibGUudHlwZVRvRmlsdGVyJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cImRlc2NyaXB0b3IuZGF0ZVBpY2tlckZvcm1hdCA/PyAnZGQubW0ueXknXCJcbiAgICAgICAgICAgICAgICBbc2hvd1RpbWVdPVwiZGVzY3JpcHRvci5kYXRlUGlja2VyU2hvd1RpbWVcIlxuICAgICAgICAgICAgICAgIFtmaXJzdERheU9mV2Vla109XCIxXCI+XG4gICAgICAgICAgICA8L3AtY2FsZW5kYXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgKm5nSWY9XCJsb29rdXBEZXNjcmlwdG9yXCIgcFRlbXBsYXRlPVwiZmlsdGVyXCIgbGV0LXZhbHVlIGxldC1maWx0ZXJDYWxsYmFjaz1cImZpbHRlckNhbGxiYWNrXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImxvb2t1cERlc2NyaXB0b3IubG9va3VwVHlwZVwiPlxuICAgICAgICAgICAgPG1uZy1hdXRvY29tcGxldGVcbiAgICAgICAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwibG9va3VwVHlwZUF1dG9jb21wbGV0ZVwiXG4gICAgICAgICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAgICAgICAgIFtkYXRhUHJvdmlkZXJdPVwibG9va3VwRGVzY3JpcHRvci5kYXRhUHJvdmlkZXJcIlxuICAgICAgICAgICAgICAgIFtkYXRhS2V5UHJvcGVydHldPVwibG9va3VwRGVzY3JpcHRvci5pdGVtc1ZhbHVlUHJvcGVydHlcIlxuICAgICAgICAgICAgICAgIFtpdGVtc1ZhbHVlUHJvcGVydHldPVwibG9va3VwRGVzY3JpcHRvci5pdGVtc1ZhbHVlUHJvcGVydHlcIlxuICAgICAgICAgICAgICAgIFtpdGVtc0xhYmVsUHJvcGVydHldPVwibG9va3VwRGVzY3JpcHRvci5pdGVtc0xhYmVsUHJvcGVydHlcIlxuICAgICAgICAgICAgICAgIFtpdGVtc0xhYmVsVHJhbnNsYXRlXT1cImxvb2t1cERlc2NyaXB0b3IuaXRlbXNMYWJlbFRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICAgW211bHRpc2VsZWN0XT1cImxvb2t1cERlc2NyaXB0b3IubXVsdGlzZWxlY3RcIlxuICAgICAgICAgICAgICAgIFtvcGVuT25Gb2N1c109XCJsb29rdXBEZXNjcmlwdG9yLmF1dG9jb21wbGV0ZU9wZW5PbkZvY3VzXCJcbiAgICAgICAgICAgICAgICBbaW5saW5lU2VhcmNoXT1cImxvb2t1cERlc2NyaXB0b3IuYXV0b2NvbXBsZXRlSW5saW5lU2VhcmNoXCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGVzY3JpcHRvci5wbGFjZWhvbGRlciA/PyAnbW5nVGFibGUuc2VhcmNoVG9GaWx0ZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cImxvb2t1cERlc2NyaXB0b3IuY2xhc3NOYW1lXCJcbiAgICAgICAgICAgICAgICBbZHJvcGRvd25DbGFzc05hbWVdPVwibG9va3VwRGVzY3JpcHRvci5kcm9wZG93bkNsYXNzTmFtZVwiXG4gICAgICAgICAgICAgICAgKHZhbHVlQ2hhbmdlKT1cImF1dG9jb21wbGV0ZUZpbHRlcigkZXZlbnQsIGZpbHRlckNhbGxiYWNrKVwiPlxuICAgICAgICAgICAgPC9tbmctYXV0b2NvbXBsZXRlPlxuICAgICAgICAgICAgPG1uZy1kcm9wZG93blxuICAgICAgICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJsb29rdXBUeXBlRHJvcGRvd25cIlxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cInZhbHVlXCJcbiAgICAgICAgICAgICAgICBbZGF0YVByb3ZpZGVyXT1cImxvb2t1cERlc2NyaXB0b3IuZGF0YVByb3ZpZGVyXCJcbiAgICAgICAgICAgICAgICBbaXRlbXNWYWx1ZVByb3BlcnR5XT1cImxvb2t1cERlc2NyaXB0b3IuaXRlbXNWYWx1ZVByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICBbaXRlbXNMYWJlbFByb3BlcnR5XT1cImxvb2t1cERlc2NyaXB0b3IuaXRlbXNMYWJlbFByb3BlcnR5XCJcbiAgICAgICAgICAgICAgICBbaXRlbXNMYWJlbFRyYW5zbGF0ZV09XCJsb29rdXBEZXNjcmlwdG9yLml0ZW1zTGFiZWxUcmFuc2xhdGVcIlxuICAgICAgICAgICAgICAgIFttdWx0aXNlbGVjdF09XCJsb29rdXBEZXNjcmlwdG9yLm11bHRpc2VsZWN0XCJcbiAgICAgICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiZGVzY3JpcHRvci5wbGFjZWhvbGRlciA/PyAnbW5nVGFibGUuc2VsZWN0VG9GaWx0ZXInIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgICAgICBbY2xhc3NOYW1lXT1cImxvb2t1cERlc2NyaXB0b3IuY2xhc3NOYW1lXCJcbiAgICAgICAgICAgICAgICBbZHJvcGRvd25DbGFzc05hbWVdPVwibG9va3VwRGVzY3JpcHRvci5kcm9wZG93bkNsYXNzTmFtZVwiXG4gICAgICAgICAgICAgICAgW3Nob3dDbGVhcl09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgW2NoYW5nZVZhbHVlT25CbHVyXT1cImxvb2t1cERlc2NyaXB0b3IubXVsdGlzZWxlY3RcIlxuICAgICAgICAgICAgICAgICh2YWx1ZUNoYW5nZSk9XCJkcm9wZG93bkZpbHRlcigkZXZlbnQsIGZpbHRlckNhbGxiYWNrKVwiPlxuICAgICAgICAgICAgPC9tbmctZHJvcGRvd24+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctdGVtcGxhdGU+XG48L3AtY29sdW1uRmlsdGVyPlxuIl19
@@ -1,108 +0,0 @@
1
- import { CurrencyPipe, DatePipe, DecimalPipe, NgIf, NgSwitch, NgSwitchCase } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ElementRef, HostBinding, Input } from '@angular/core';
3
- import { TranslateModule, TranslateService } from '@ngx-translate/core';
4
- import { MessageService } from 'primeng/api';
5
- import { ButtonModule } from 'primeng/button';
6
- import { RippleModule } from 'primeng/ripple';
7
- import { TooltipModule } from 'primeng/tooltip';
8
- import { ColumnDescriptor } from '../../../../descriptors/table';
9
- import { ColumnDisplayTypeEnum } from '../../../../descriptors/types';
10
- import { MngComponentDirective } from '../../../../directives';
11
- import { JsonPathPipe, MngBooleanPipe, MngEnumPipe, MngGetterPipe, MngTemplatePipe } from '../../../../pipes';
12
- import * as i0 from "@angular/core";
13
- import * as i1 from "primeng/api";
14
- import * as i2 from "@ngx-translate/core";
15
- import * as i3 from "../../../../pipes";
16
- import * as i4 from "primeng/tooltip";
17
- import * as i5 from "primeng/button";
18
- import * as i6 from "primeng/ripple";
19
- export class MngTableColumnValueComponent {
20
- constructor(elementRef, messageService, translate, jsonPathPipe, getterPipe, templatePipe) {
21
- this.elementRef = elementRef;
22
- this.messageService = messageService;
23
- this.translate = translate;
24
- this.jsonPathPipe = jsonPathPipe;
25
- this.getterPipe = getterPipe;
26
- this.templatePipe = templatePipe;
27
- this.columnDisplayTypeString = ColumnDisplayTypeEnum.String;
28
- this.columnDisplayTypeNumber = ColumnDisplayTypeEnum.Number;
29
- this.columnDisplayTypeCurrency = ColumnDisplayTypeEnum.Currency;
30
- this.columnDisplayTypeBoolean = ColumnDisplayTypeEnum.Boolean;
31
- this.columnDisplayTypeDate = ColumnDisplayTypeEnum.Date;
32
- this.columnDisplayTypeEnum = ColumnDisplayTypeEnum.Enum;
33
- this.columnDisplayTypeComponent = ColumnDisplayTypeEnum.Component;
34
- this.columnDisplayTypeHtml = ColumnDisplayTypeEnum.Html;
35
- this.styleMaxWidth = null;
36
- this.className = 'nowrap';
37
- this.jsonPath = '$';
38
- }
39
- ngOnInit() {
40
- if (this.descriptor.columnDisplayType === ColumnDisplayTypeEnum.Currency) {
41
- this.currency = this.descriptor.currencyFromProperty ? this.item[this.descriptor.currencyFromProperty] : this.descriptor.currencyCode ?? 'EUR';
42
- }
43
- else if (this.descriptor.columnDisplayType === ColumnDisplayTypeEnum.String) {
44
- if (this.descriptor.isMultiline) {
45
- this.className += ' multiline';
46
- }
47
- }
48
- if (this.descriptor.maxWidth) {
49
- this.styleMaxWidth = this.descriptor.maxWidth;
50
- }
51
- if (this.descriptor.jsonPath) {
52
- this.jsonPath = this.descriptor.jsonPath;
53
- }
54
- else {
55
- this.jsonPath = `$.${this.descriptor.property}`;
56
- if (this.descriptor.objectModelType) {
57
- this.jsonPath = `$.${this.descriptor.property}.${this.descriptor.objectTitleProperty}`;
58
- }
59
- }
60
- let value = this.jsonPathPipe.transform(this.item, this.jsonPath);
61
- if (typeof this.descriptor.getter === 'function') {
62
- value = this.getterPipe.transform(this.item, this.descriptor.getter, value);
63
- }
64
- if (this.descriptor.template) {
65
- value = this.templatePipe.transform(value, this.descriptor.template);
66
- }
67
- this.value = value;
68
- }
69
- copyToClipboard(event) {
70
- event.stopPropagation();
71
- const value = this.elementRef.nativeElement.innerText.trim();
72
- navigator.clipboard.writeText(value);
73
- const title = this.translate.instant('mngTable.copyNotificationTitle');
74
- const message = this.translate.instant('mngTable.copyNotificationMessage', { value });
75
- this.messageService.add({ severity: 'info', summary: title, detail: message });
76
- }
77
- }
78
- MngTableColumnValueComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MngTableColumnValueComponent, deps: [{ token: i0.ElementRef }, { token: i1.MessageService }, { token: i2.TranslateService }, { token: i3.JsonPathPipe }, { token: i3.MngGetterPipe }, { token: i3.MngTemplatePipe }], target: i0.ɵɵFactoryTarget.Component });
79
- MngTableColumnValueComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: MngTableColumnValueComponent, isStandalone: true, 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.columnDisplayType\">\n <i\n *ngIf=\"descriptor.localizationExistsProperty && !item[descriptor.localizationExistsProperty]\"\n class=\"pi pi-exclamation-circle\"\n [pTooltip]=\"'mngTable.translationMissing' | translate\"></i>\n <ng-container *ngSwitchCase=\"columnDisplayTypeString\">\n <span *ngIf=\"descriptor.hasValueAsTooltip\" [pTooltip]=\"value\" tooltipPosition=\"left\">{{ value }}</span>\n <ng-container *ngIf=\"!descriptor.hasValueAsTooltip\">{{ value }}</ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeHtml\">\n <span [innerHTML]=\"value\"></span>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeNumber\">\n {{ value | number : descriptor.displayFormat : descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeCurrency\">\n {{ value | currency : currency : descriptor.currencyDisplay : descriptor.displayFormat : descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeDate\">\n {{ value | date : descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeBoolean\">\n <ng-container *ngIf=\"descriptor.booleanAsIcon; else booleanText\">\n <i [class]=\"value | boolean : descriptor.booleanYes : descriptor.booleanNo : true\"></i>\n </ng-container>\n <ng-template #booleanText>\n {{ value | boolean : descriptor.booleanYes : descriptor.booleanNo | translate }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeEnum\">\n {{ value | enum : descriptor.enumType : descriptor.enumTitlePath : descriptor.enumNameAsValue | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeComponent\">\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: value,\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.multiline{white-space:pre-wrap;word-wrap:break-word}.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"], dependencies: [{ kind: "directive", type: NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: TooltipModule }, { kind: "directive", type: i4.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "autoHide", "fitContent", "hideOnEscape", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "directive", type: NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: MngBooleanPipe, name: "boolean" }, { kind: "pipe", type: MngEnumPipe, name: "enum" }, { kind: "directive", type: MngComponentDirective, selector: "[mngComponent]", inputs: ["mngComponent", "inputs", "attachToHost"], outputs: ["instanceCreated"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "directive", type: i5.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "ngmodule", type: RippleModule }, { kind: "directive", type: i6.Ripple, selector: "[pRipple]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MngTableColumnValueComponent, decorators: [{
81
- type: Component,
82
- args: [{ standalone: true, selector: 'mng-table-column-value', imports: [
83
- NgSwitch,
84
- NgIf,
85
- TooltipModule,
86
- TranslateModule,
87
- NgSwitchCase,
88
- DecimalPipe,
89
- CurrencyPipe,
90
- DatePipe,
91
- MngBooleanPipe,
92
- MngEnumPipe,
93
- MngComponentDirective,
94
- ButtonModule,
95
- RippleModule
96
- ], changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"descriptor.columnDisplayType\">\n <i\n *ngIf=\"descriptor.localizationExistsProperty && !item[descriptor.localizationExistsProperty]\"\n class=\"pi pi-exclamation-circle\"\n [pTooltip]=\"'mngTable.translationMissing' | translate\"></i>\n <ng-container *ngSwitchCase=\"columnDisplayTypeString\">\n <span *ngIf=\"descriptor.hasValueAsTooltip\" [pTooltip]=\"value\" tooltipPosition=\"left\">{{ value }}</span>\n <ng-container *ngIf=\"!descriptor.hasValueAsTooltip\">{{ value }}</ng-container>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeHtml\">\n <span [innerHTML]=\"value\"></span>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeNumber\">\n {{ value | number : descriptor.displayFormat : descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeCurrency\">\n {{ value | currency : currency : descriptor.currencyDisplay : descriptor.displayFormat : descriptor.locale }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeDate\">\n {{ value | date : descriptor.displayFormat }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeBoolean\">\n <ng-container *ngIf=\"descriptor.booleanAsIcon; else booleanText\">\n <i [class]=\"value | boolean : descriptor.booleanYes : descriptor.booleanNo : true\"></i>\n </ng-container>\n <ng-template #booleanText>\n {{ value | boolean : descriptor.booleanYes : descriptor.booleanNo | translate }}\n </ng-template>\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeEnum\">\n {{ value | enum : descriptor.enumType : descriptor.enumTitlePath : descriptor.enumNameAsValue | translate }}\n </ng-container>\n <ng-container *ngSwitchCase=\"columnDisplayTypeComponent\">\n <ng-container\n [mngComponent]=\"descriptor.customComponentType!\"\n [inputs]=\"{\n value: value,\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.multiline{white-space:pre-wrap;word-wrap:break-word}.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"] }]
97
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.MessageService }, { type: i2.TranslateService }, { type: i3.JsonPathPipe }, { type: i3.MngGetterPipe }, { type: i3.MngTemplatePipe }]; }, propDecorators: { descriptor: [{
98
- type: Input
99
- }], item: [{
100
- type: Input
101
- }], styleMaxWidth: [{
102
- type: HostBinding,
103
- args: ['style.max-width.px']
104
- }], className: [{
105
- type: HostBinding,
106
- args: ['class']
107
- }] } });
108
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29sdW1uLXZhbHVlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy90YWJsZXZpZXcvdGFibGUvY29sdW1uLXZhbHVlL2NvbHVtbi12YWx1ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvdGFibGV2aWV3L3RhYmxlL2NvbHVtbi12YWx1ZS9jb2x1bW4tdmFsdWUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFlBQVksRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDbEcsT0FBTyxFQUFDLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUMsZUFBZSxFQUFFLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUU5QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUNwRSxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMsWUFBWSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLGVBQWUsRUFBQyxNQUFN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UTt3QkFDUixJQUFJO3dCQUNKLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsV0FBVzt3QkFDWCxxQkFBcUI7d0JBQ3JCLFlBQVk7d0JBQ1osWUFBWTtxQkFDZixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTTtrUEFZdEMsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRW9DLGFBQWE7c0JBQXRELFdBQVc7dUJBQUMsb0JBQW9CO2dCQUNKLFNBQVM7c0JBQXJDLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q3VycmVuY3lQaXBlLCBEYXRlUGlwZSwgRGVjaW1hbFBpcGUsIE5nSWYsIE5nU3dpdGNoLCBOZ1N3aXRjaENhc2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge0NoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbnB1dCwgT25Jbml0fSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtUcmFuc2xhdGVNb2R1bGUsIFRyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtNZXNzYWdlU2VydmljZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtCdXR0b25Nb2R1bGV9IGZyb20gJ3ByaW1lbmcvYnV0dG9uJztcbmltcG9ydCB7UmlwcGxlTW9kdWxlfSBmcm9tICdwcmltZW5nL3JpcHBsZSc7XG5pbXBvcnQge1Rvb2x0aXBNb2R1bGV9IGZyb20gJ3ByaW1lbmcvdG9vbHRpcCc7XG5cbmltcG9ydCB7Q29sdW1uRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vLi4vZGVzY3JpcHRvcnMvdGFibGUnO1xuaW1wb3J0IHtDb2x1bW5EaXNwbGF5VHlwZUVudW19IGZyb20gJy4uLy4uLy4uLy4uL2Rlc2NyaXB0b3JzL3R5cGVzJztcbmltcG9ydCB7TW5nQ29tcG9uZW50RGlyZWN0aXZlfSBmcm9tICcuLi8uLi8uLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7SnNvblBhdGhQaXBlLCBNbmdCb29sZWFuUGlwZSwgTW5nRW51bVBpcGUsIE1uZ0dldHRlclBpcGUsIE1uZ1RlbXBsYXRlUGlwZX0gZnJvbSAnLi4vLi4vLi4vLi4vcGlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnbW5nLXRhYmxlLWNvbHVtbi12YWx1ZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NvbHVtbi12YWx1ZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vY29sdW1uLXZhbHVlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBOZ1N3aXRjaCxcbiAgICAgICAgTmdJZixcbiAgICAgICAgVG9vbHRpcE1vZHVsZSxcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgICAgICBOZ1N3aXRjaENhc2UsXG4gICAgICAgIERlY2ltYWxQaXBlLFxuICAgICAgICBDdXJyZW5jeVBpcGUsXG4gICAgICAgIERhdGVQaXBlLFxuICAgICAgICBNbmdCb29sZWFuUGlwZSxcbiAgICAgICAgTW5nRW51bVBpcGUsXG4gICAgICAgIE1uZ0NvbXBvbmVudERpcmVjdGl2ZSxcbiAgICAgICAgQnV0dG9uTW9kdWxlLFxuICAgICAgICBSaXBwbGVNb2R1bGVcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIE1uZ1RhYmxlQ29sdW1uVmFsdWVDb21wb25lbnQ8VCwgVFQ+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29sdW1uRGlzcGxheVR5cGVTdHJpbmc6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5TdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlTnVtYmVyOiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uTnVtYmVyO1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZUN1cnJlbmN5OiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ3VycmVuY3k7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlQm9vbGVhbjogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkJvb2xlYW47XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlRGF0ZTogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkRhdGU7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlRW51bTogQ29sdW1uRGlzcGxheVR5cGVFbnVtID0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkVudW07XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbHVtbkRpc3BsYXlUeXBlQ29tcG9uZW50OiBDb2x1bW5EaXNwbGF5VHlwZUVudW0gPSBDb2x1bW5EaXNwbGF5VHlwZUVudW0uQ29tcG9uZW50O1xuICAgIHB1YmxpYyByZWFkb25seSBjb2x1bW5EaXNwbGF5VHlwZUh0bWw6IENvbHVtbkRpc3BsYXlUeXBlRW51bSA9IENvbHVtbkRpc3BsYXlUeXBlRW51bS5IdG1sO1xuXG4gICAgQElucHV0KCkgZGVzY3JpcHRvciE6IENvbHVtbkRlc2NyaXB0b3I8VCwgVFQ+O1xuICAgIEBJbnB1dCgpIGl0ZW0hOiBhbnk7XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLm1heC13aWR0aC5weCcpIHB1YmxpYyBzdHlsZU1heFdpZHRoOiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgcHVibGljIGNsYXNzTmFtZSA9ICdub3dyYXAnO1xuXG4gICAgcHVibGljIGN1cnJlbmN5Pzogc3RyaW5nO1xuXG4gICAgcHVibGljIGpzb25QYXRoID0gJyQnO1xuXG4gICAgcHVibGljIHZhbHVlOiBhbnk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUganNvblBhdGhQaXBlOiBKc29uUGF0aFBpcGUsXG4gICAgICAgIHByaXZhdGUgZ2V0dGVyUGlwZTogTW5nR2V0dGVyUGlwZSxcbiAgICAgICAgcHJpdmF0ZSB0ZW1wbGF0ZVBpcGU6IE1uZ1RlbXBsYXRlUGlwZVxuICAgICkge31cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci5jb2x1bW5EaXNwbGF5VHlwZSA9PT0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLkN1cnJlbmN5KSB7XG4gICAgICAgICAgICB0aGlzLmN1cnJlbmN5ID0gdGhpcy5kZXNjcmlwdG9yLmN1cnJlbmN5RnJvbVByb3BlcnR5ID8gdGhpcy5pdGVtW3RoaXMuZGVzY3JpcHRvci5jdXJyZW5jeUZyb21Qcm9wZXJ0eV0gOiB0aGlzLmRlc2NyaXB0b3IuY3VycmVuY3lDb2RlID8/ICdFVVInO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZGVzY3JpcHRvci5jb2x1bW5EaXNwbGF5VHlwZSA9PT0gQ29sdW1uRGlzcGxheVR5cGVFbnVtLlN0cmluZykge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVzY3JpcHRvci5pc011bHRpbGluZSkge1xuICAgICAgICAgICAgICAgIHRoaXMuY2xhc3NOYW1lICs9ICcgbXVsdGlsaW5lJztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IubWF4V2lkdGgpIHtcbiAgICAgICAgICAgIHRoaXMuc3R5bGVNYXhXaWR0aCA9IHRoaXMuZGVzY3JpcHRvci5tYXhXaWR0aDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3IuanNvblBhdGgpIHtcbiAgICAgICAgICAgIHRoaXMuanNvblBhdGggPSB0aGlzLmRlc2NyaXB0b3IuanNvblBhdGg7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmpzb25QYXRoID0gYCQuJHt0aGlzLmRlc2NyaXB0b3IucHJvcGVydHl9YDtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlc2NyaXB0b3Iub2JqZWN0TW9kZWxUeXBlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5qc29uUGF0aCA9IGAkLiR7dGhpcy5kZXNjcmlwdG9yLnByb3BlcnR5fS4ke3RoaXMuZGVzY3JpcHRvci5vYmplY3RUaXRsZVByb3BlcnR5fWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBsZXQgdmFsdWUgPSB0aGlzLmpzb25QYXRoUGlwZS50cmFuc2Zvcm0odGhpcy5pdGVtLCB0aGlzLmpzb25QYXRoKTtcblxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuZGVzY3JpcHRvci5nZXR0ZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHZhbHVlID0gdGhpcy5nZXR0ZXJQaXBlLnRyYW5zZm9ybSh0aGlzLml0ZW0sIHRoaXMuZGVzY3JpcHRvci5nZXR0ZXIsIHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZXNjcmlwdG9yLnRlbXBsYXRlKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IHRoaXMudGVtcGxhdGVQaXBlLnRyYW5zZm9ybSh2YWx1ZSwgdGhpcy5kZXNjcmlwdG9yLnRlbXBsYXRlKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weVRvQ2xpcGJvYXJkKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5pbm5lclRleHQudHJpbSgpO1xuICAgICAgICBuYXZpZ2F0b3IuY2xpcGJvYXJkLndyaXRlVGV4dCh2YWx1ZSk7XG4gICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgnbW5nVGFibGUuY29weU5vdGlmaWNhdGlvblRpdGxlJyk7XG4gICAgICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdtbmdUYWJsZS5jb3B5Tm90aWZpY2F0aW9uTWVzc2FnZScsIHt2YWx1ZX0pO1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7c2V2ZXJpdHk6ICdpbmZvJywgc3VtbWFyeTogdGl0bGUsIGRldGFpbDogbWVzc2FnZX0pO1xuICAgIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImRlc2NyaXB0b3IuY29sdW1uRGlzcGxheVR5cGVcIj5cbiAgICA8aVxuICAgICAgICAqbmdJZj1cImRlc2NyaXB0b3IubG9jYWxpemF0aW9uRXhpc3RzUHJvcGVydHkgJiYgIWl0ZW1bZGVzY3JpcHRvci5sb2NhbGl6YXRpb25FeGlzdHNQcm9wZXJ0eV1cIlxuICAgICAgICBjbGFzcz1cInBpIHBpLWV4Y2xhbWF0aW9uLWNpcmNsZVwiXG4gICAgICAgIFtwVG9vbHRpcF09XCInbW5nVGFibGUudHJhbnNsYXRpb25NaXNzaW5nJyB8IHRyYW5zbGF0ZVwiPjwvaT5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5EaXNwbGF5VHlwZVN0cmluZ1wiPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImRlc2NyaXB0b3IuaGFzVmFsdWVBc1Rvb2x0aXBcIiBbcFRvb2x0aXBdPVwidmFsdWVcIiB0b29sdGlwUG9zaXRpb249XCJsZWZ0XCI+e3sgdmFsdWUgfX08L3NwYW4+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhZGVzY3JpcHRvci5oYXNWYWx1ZUFzVG9vbHRpcFwiPnt7IHZhbHVlIH19PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uRGlzcGxheVR5cGVIdG1sXCI+XG4gICAgICAgIDxzcGFuIFtpbm5lckhUTUxdPVwidmFsdWVcIj48L3NwYW4+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY29sdW1uRGlzcGxheVR5cGVOdW1iZXJcIj5cbiAgICAgICAge3sgdmFsdWUgfCBudW1iZXIgOiBkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQgOiBkZXNjcmlwdG9yLmxvY2FsZSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbkRpc3BsYXlUeXBlQ3VycmVuY3lcIj5cbiAgICAgICAge3sgdmFsdWUgfCBjdXJyZW5jeSA6IGN1cnJlbmN5IDogZGVzY3JpcHRvci5jdXJyZW5jeURpc3BsYXkgOiBkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQgOiBkZXNjcmlwdG9yLmxvY2FsZSB9fVxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbkRpc3BsYXlUeXBlRGF0ZVwiPlxuICAgICAgICB7eyB2YWx1ZSB8IGRhdGUgOiBkZXNjcmlwdG9yLmRpc3BsYXlGb3JtYXQgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5EaXNwbGF5VHlwZUJvb2xlYW5cIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRlc2NyaXB0b3IuYm9vbGVhbkFzSWNvbjsgZWxzZSBib29sZWFuVGV4dFwiPlxuICAgICAgICAgICAgPGkgW2NsYXNzXT1cInZhbHVlIHwgYm9vbGVhbiA6IGRlc2NyaXB0b3IuYm9vbGVhblllcyA6IGRlc2NyaXB0b3IuYm9vbGVhbk5vIDogdHJ1ZVwiPjwvaT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjYm9vbGVhblRleHQ+XG4gICAgICAgICAgICB7eyB2YWx1ZSB8IGJvb2xlYW4gOiBkZXNjcmlwdG9yLmJvb2xlYW5ZZXMgOiBkZXNjcmlwdG9yLmJvb2xlYW5ObyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cImNvbHVtbkRpc3BsYXlUeXBlRW51bVwiPlxuICAgICAgICB7eyB2YWx1ZSB8IGVudW0gOiBkZXNjcmlwdG9yLmVudW1UeXBlIDogZGVzY3JpcHRvci5lbnVtVGl0bGVQYXRoIDogZGVzY3JpcHRvci5lbnVtTmFtZUFzVmFsdWUgfCB0cmFuc2xhdGUgfX1cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjb2x1bW5EaXNwbGF5VHlwZUNvbXBvbmVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICBbbW5nQ29tcG9uZW50XT1cImRlc2NyaXB0b3IuY3VzdG9tQ29tcG9uZW50VHlwZSFcIlxuICAgICAgICAgICAgW2lucHV0c109XCJ7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICAgICAgICAgICAgZGVzY3JpcHRvcjogZGVzY3JpcHRvclxuICAgICAgICAgICAgfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9uZy1jb250YWluZXI+XG48ZGl2IGNsYXNzPVwiaGVscC1idXR0b25zXCIgKm5nSWY9XCJkZXNjcmlwdG9yLmhhc0NvcHlUb0NsaXBib2FyZFwiPlxuICAgIDxidXR0b24gcEJ1dHRvbiBwUmlwcGxlIHR5cGU9XCJidXR0b25cIiBpY29uPVwicGkgcGktY29weVwiIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1pbmZvIHAtYnV0dG9uLXNtXCIgKGNsaWNrKT1cImNvcHlUb0NsaXBib2FyZCgkZXZlbnQpXCI+PC9idXR0b24+XG48L2Rpdj5cbiJdfQ==