@mediusinc/mng-commons 2.6.0 → 3.0.0-rc.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 (287) hide show
  1. package/README.md +17 -6
  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/esm2022/lib/components/form/formly/fields/formly-field-custom/formly-field-custom.component.mjs +39 -0
  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 +296 -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/editor/field.descriptor.mjs +1088 -0
  54. package/esm2022/lib/descriptors/table/table.descriptor.mjs +542 -0
  55. package/esm2022/lib/descriptors/tableview/tableview.descriptor.mjs +352 -0
  56. package/{esm2020 → esm2022}/lib/descriptors/types/table.type.mjs +1 -5
  57. package/{esm2020 → esm2022}/lib/directives/component.directive.mjs +5 -5
  58. package/{esm2020 → esm2022}/lib/directives/template.directive.mjs +5 -5
  59. package/esm2022/lib/mng-commons.module.mjs +465 -0
  60. package/{esm2020 → esm2022}/lib/pipes/boolean.pipe.mjs +4 -4
  61. package/{esm2020 → esm2022}/lib/pipes/class-map.pipe.mjs +4 -4
  62. package/{esm2020 → esm2022}/lib/pipes/enum.pipe.mjs +4 -4
  63. package/{esm2020 → esm2022}/lib/pipes/enumerate-async.pipe.mjs +4 -4
  64. package/{esm2020 → esm2022}/lib/pipes/enumerate.pipe.mjs +4 -4
  65. package/{esm2020 → esm2022}/lib/pipes/getter.pipe.mjs +4 -4
  66. package/{esm2020 → esm2022}/lib/pipes/i18n-property.pipe.mjs +4 -4
  67. package/{esm2020 → esm2022}/lib/pipes/json-path.pipe.mjs +4 -4
  68. package/{esm2020 → esm2022}/lib/pipes/locale-default-row-class.pipe.mjs +4 -4
  69. package/{esm2020 → esm2022}/lib/pipes/parametrize.pipe.mjs +4 -4
  70. package/{esm2020 → esm2022}/lib/pipes/template.pipe.mjs +4 -4
  71. package/esm2022/lib/router/route-builder.mjs +308 -0
  72. package/esm2022/lib/router/routes-builder.mjs +61 -0
  73. package/esm2022/lib/security/authorization.guard.mjs +15 -0
  74. package/{esm2020 → esm2022}/lib/security/authorization.service.mjs +4 -4
  75. package/esm2022/lib/services/action-executor.service.mjs +703 -0
  76. package/{esm2020 → esm2022}/lib/services/commons.service.mjs +4 -4
  77. package/esm2022/lib/services/configuration.service.mjs +150 -0
  78. package/{esm2020 → esm2022}/lib/services/internal/commons-init.service.mjs +4 -4
  79. package/{esm2020 → esm2022}/lib/services/mng-localstorage-config.service.mjs +4 -4
  80. package/{esm2020 → esm2022}/lib/services/navigation.service.mjs +4 -4
  81. package/{esm2020 → esm2022}/lib/services/router.service.mjs +4 -4
  82. package/{esm2020 → esm2022}/lib/services/version.service.mjs +4 -4
  83. package/{esm2020 → esm2022}/lib/services/view-container.component.service.mjs +4 -4
  84. package/esm2022/lib/styles/styles.util.mjs +42 -0
  85. package/esm2022/lib/types/type.model.mjs +2 -0
  86. package/esm2022/lib/utils/date.util.mjs +120 -0
  87. package/esm2022/lib/utils/tableview.util.mjs +193 -0
  88. package/esm2022/lib/utils/type.util.mjs +94 -0
  89. package/{fesm2020 → fesm2022}/mediusinc-mng-commons.mjs +952 -940
  90. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -0
  91. package/lib/api/utils/medius-rest.util.d.ts +4 -3
  92. package/lib/components/action/action.component.d.ts +1 -1
  93. package/lib/components/action/editor/action-editor.component.d.ts +6 -9
  94. package/lib/components/action/localization/data-language-dropdown.component.d.ts +1 -1
  95. package/lib/components/form/autocomplete/autocomplete.component.d.ts +4 -4
  96. package/lib/components/form/date-range/date-range.component.d.ts +1 -1
  97. package/lib/components/form/dropdown/dropdown.component.d.ts +3 -3
  98. package/lib/components/form/editor/form-editor.component.d.ts +1 -1
  99. package/lib/components/form/formly/fields/formly-field-custom/formly-custom-field-base.model.d.ts +1 -1
  100. package/lib/components/form/formly/fields/formly-field-custom/formly-field-custom.component.d.ts +1 -0
  101. package/lib/components/layout/breadcrumb.component.d.ts +5 -0
  102. package/lib/components/layout/menu-item.component.d.ts +1 -1
  103. package/lib/components/layout/version.component.d.ts +1 -1
  104. package/lib/components/tableview/models/table.event.d.ts +2 -2
  105. package/lib/components/tableview/route/tableview-route.component.d.ts +1 -1
  106. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +2 -2
  107. package/lib/components/tableview/table/column-value/column-value.component.d.ts +1 -1
  108. package/lib/components/tableview/table/table.component.d.ts +6 -7
  109. package/lib/components/tableview/tableview.component.d.ts +7 -11
  110. package/lib/descriptors/editor/editor.descriptor.d.ts +1 -1
  111. package/lib/descriptors/editor/field.descriptor.d.ts +3 -1
  112. package/lib/descriptors/table/table.descriptor.d.ts +8 -3
  113. package/lib/descriptors/tableview/tableview.descriptor.d.ts +4 -4
  114. package/lib/descriptors/types/table.type.d.ts +1 -5
  115. package/lib/directives/component.directive.d.ts +1 -1
  116. package/lib/directives/template.directive.d.ts +1 -1
  117. package/lib/router/route-builder.d.ts +6 -10
  118. package/lib/router/routes-builder.d.ts +0 -5
  119. package/lib/security/authorization.guard.d.ts +2 -11
  120. package/lib/services/action-executor.service.d.ts +1 -15
  121. package/lib/utils/route.util.d.ts +8 -19
  122. package/lib/utils/tableview.util.d.ts +5 -0
  123. package/package.json +12 -19
  124. package/esm2020/lib/api/models/filter-param.model.mjs +0 -33
  125. package/esm2020/lib/api/models/query-param.model.mjs +0 -68
  126. package/esm2020/lib/api/models/query-result.model.mjs +0 -24
  127. package/esm2020/lib/api/utils/medius-rest.util.mjs +0 -246
  128. package/esm2020/lib/api/utils/object-serializer.util.mjs +0 -258
  129. package/esm2020/lib/components/action/action.component.mjs +0 -303
  130. package/esm2020/lib/components/action/editor/action-editor.component.mjs +0 -390
  131. package/esm2020/lib/components/action/localization/data-language-dropdown.component.mjs +0 -47
  132. package/esm2020/lib/components/action/models/tableview-action-default-categories.model.mjs +0 -11
  133. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +0 -303
  134. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +0 -214
  135. package/esm2020/lib/components/form/editor/form-editor.component.mjs +0 -288
  136. package/esm2020/lib/components/form/formly/fields/formly-field-custom/formly-field-custom.component.mjs +0 -54
  137. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +0 -19
  138. package/esm2020/lib/components/form/models/form-editor.event.mjs +0 -49
  139. package/esm2020/lib/components/layout/breadcrumb.component.mjs +0 -19
  140. package/esm2020/lib/components/layout/menu-item.component.mjs +0 -294
  141. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +0 -126
  142. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +0 -108
  143. package/esm2020/lib/components/tableview/table/table.component.mjs +0 -749
  144. package/esm2020/lib/components/tableview/tableview.component.mjs +0 -146
  145. package/esm2020/lib/descriptors/action/action.descriptor.mjs +0 -634
  146. package/esm2020/lib/descriptors/editor/editor.descriptor.mjs +0 -304
  147. package/esm2020/lib/descriptors/editor/field.descriptor.mjs +0 -1083
  148. package/esm2020/lib/descriptors/table/table.descriptor.mjs +0 -521
  149. package/esm2020/lib/descriptors/tableview/tableview.descriptor.mjs +0 -347
  150. package/esm2020/lib/mng-commons.module.mjs +0 -469
  151. package/esm2020/lib/router/route-builder.mjs +0 -312
  152. package/esm2020/lib/router/routes-builder.mjs +0 -68
  153. package/esm2020/lib/security/authorization.guard.mjs +0 -30
  154. package/esm2020/lib/services/action-executor.service.mjs +0 -722
  155. package/esm2020/lib/services/configuration.service.mjs +0 -150
  156. package/esm2020/lib/styles/styles.util.mjs +0 -42
  157. package/esm2020/lib/types/type.model.mjs +0 -2
  158. package/esm2020/lib/utils/date.util.mjs +0 -120
  159. package/esm2020/lib/utils/tableview.util.mjs +0 -171
  160. package/esm2020/lib/utils/type.util.mjs +0 -94
  161. package/fesm2015/mediusinc-mng-commons.mjs +0 -15900
  162. package/fesm2015/mediusinc-mng-commons.mjs.map +0 -1
  163. package/fesm2020/mediusinc-mng-commons.mjs.map +0 -1
  164. /package/{esm2020 → esm2022}/index.mjs +0 -0
  165. /package/{esm2020 → esm2022}/lib/api/models/builders/query-param.builder.mjs +0 -0
  166. /package/{esm2020 → esm2022}/lib/api/models/filter-match-type.model.mjs +0 -0
  167. /package/{esm2020 → esm2022}/lib/api/models/index.mjs +0 -0
  168. /package/{esm2020 → esm2022}/lib/api/models/mappers.mjs +0 -0
  169. /package/{esm2020 → esm2022}/lib/api/models/query-mode.model.mjs +0 -0
  170. /package/{esm2020 → esm2022}/lib/api/models/serialization.model.mjs +0 -0
  171. /package/{esm2020 → esm2022}/lib/api/services/api.abstract.service.mjs +0 -0
  172. /package/{esm2020 → esm2022}/lib/api/services/crud-api.abstract.service.mjs +0 -0
  173. /package/{esm2020 → esm2022}/lib/api/services/get-all-api.abstract.service.mjs +0 -0
  174. /package/{esm2020 → esm2022}/lib/api/services/index.mjs +0 -0
  175. /package/{esm2020 → esm2022}/lib/api/utils/index.mjs +0 -0
  176. /package/{esm2020 → esm2022}/lib/components/action/index.mjs +0 -0
  177. /package/{esm2020 → esm2022}/lib/components/action/models/action-component.model.mjs +0 -0
  178. /package/{esm2020 → esm2022}/lib/components/action/models/action-confirmation-service.model.mjs +0 -0
  179. /package/{esm2020 → esm2022}/lib/components/action/models/index.mjs +0 -0
  180. /package/{esm2020 → esm2022}/lib/components/form/formly/fields/index.mjs +0 -0
  181. /package/{esm2020 → esm2022}/lib/components/form/formly/formly.config.mjs +0 -0
  182. /package/{esm2020 → esm2022}/lib/components/form/formly/index.mjs +0 -0
  183. /package/{esm2020 → esm2022}/lib/components/form/formly/models/formly-config.model.mjs +0 -0
  184. /package/{esm2020 → esm2022}/lib/components/form/formly/models/formly-field.model.mjs +0 -0
  185. /package/{esm2020 → esm2022}/lib/components/form/formly/models/index.mjs +0 -0
  186. /package/{esm2020 → esm2022}/lib/components/form/formly/wrappers/index.mjs +0 -0
  187. /package/{esm2020 → esm2022}/lib/components/form/index.mjs +0 -0
  188. /package/{esm2020 → esm2022}/lib/components/form/models/field-action-context.model.mjs +0 -0
  189. /package/{esm2020 → esm2022}/lib/components/form/models/form-editor.interface.mjs +0 -0
  190. /package/{esm2020 → esm2022}/lib/components/form/models/index.mjs +0 -0
  191. /package/{esm2020 → esm2022}/lib/components/layout/index.mjs +0 -0
  192. /package/{esm2020 → esm2022}/lib/components/layout/services/index.mjs +0 -0
  193. /package/{esm2020 → esm2022}/lib/components/pages/index.mjs +0 -0
  194. /package/{esm2020 → esm2022}/lib/components/tableview/index.mjs +0 -0
  195. /package/{esm2020 → esm2022}/lib/components/tableview/models/index.mjs +0 -0
  196. /package/{esm2020 → esm2022}/lib/components/tableview/table/models/index.mjs +0 -0
  197. /package/{esm2020 → esm2022}/lib/components/tableview/table/models/table.interface.mjs +0 -0
  198. /package/{esm2020 → esm2022}/lib/data-providers/base.data-provider.mjs +0 -0
  199. /package/{esm2020 → esm2022}/lib/data-providers/editor.data-provider.mjs +0 -0
  200. /package/{esm2020 → esm2022}/lib/data-providers/index.mjs +0 -0
  201. /package/{esm2020 → esm2022}/lib/data-providers/lookup.data-provider.mjs +0 -0
  202. /package/{esm2020 → esm2022}/lib/data-providers/table.data-provider.mjs +0 -0
  203. /package/{esm2020 → esm2022}/lib/data-providers/tableview-crud.data-provider.mjs +0 -0
  204. /package/{esm2020 → esm2022}/lib/data-providers/tableview.data-provider.mjs +0 -0
  205. /package/{esm2020 → esm2022}/lib/descriptors/action/action-button.descriptor.mjs +0 -0
  206. /package/{esm2020 → esm2022}/lib/descriptors/action/action-confirmation.descriptor.mjs +0 -0
  207. /package/{esm2020 → esm2022}/lib/descriptors/action/index.mjs +0 -0
  208. /package/{esm2020 → esm2022}/lib/descriptors/editor/field-validation.descriptor.mjs +0 -0
  209. /package/{esm2020 → esm2022}/lib/descriptors/editor/index.mjs +0 -0
  210. /package/{esm2020 → esm2022}/lib/descriptors/filter/filter.descriptor.mjs +0 -0
  211. /package/{esm2020 → esm2022}/lib/descriptors/filter/index.mjs +0 -0
  212. /package/{esm2020 → esm2022}/lib/descriptors/index.mjs +0 -0
  213. /package/{esm2020 → esm2022}/lib/descriptors/interfaces/field-config.interface.mjs +0 -0
  214. /package/{esm2020 → esm2022}/lib/descriptors/interfaces/index.mjs +0 -0
  215. /package/{esm2020 → esm2022}/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +0 -0
  216. /package/{esm2020 → esm2022}/lib/descriptors/model.descriptor.mjs +0 -0
  217. /package/{esm2020 → esm2022}/lib/descriptors/table/column.descriptor.mjs +0 -0
  218. /package/{esm2020 → esm2022}/lib/descriptors/table/index.mjs +0 -0
  219. /package/{esm2020 → esm2022}/lib/descriptors/tableview/index.mjs +0 -0
  220. /package/{esm2020 → esm2022}/lib/descriptors/types/action.type.mjs +0 -0
  221. /package/{esm2020 → esm2022}/lib/descriptors/types/column.type.mjs +0 -0
  222. /package/{esm2020 → esm2022}/lib/descriptors/types/editor.type.mjs +0 -0
  223. /package/{esm2020 → esm2022}/lib/descriptors/types/field.type.mjs +0 -0
  224. /package/{esm2020 → esm2022}/lib/descriptors/types/filter.type.mjs +0 -0
  225. /package/{esm2020 → esm2022}/lib/descriptors/types/index.mjs +0 -0
  226. /package/{esm2020 → esm2022}/lib/directives/index.mjs +0 -0
  227. /package/{esm2020 → esm2022}/lib/models/column-value.model.mjs +0 -0
  228. /package/{esm2020 → esm2022}/lib/models/config.model.mjs +0 -0
  229. /package/{esm2020 → esm2022}/lib/models/enum.model.mjs +0 -0
  230. /package/{esm2020 → esm2022}/lib/models/error-internal.model.mjs +0 -0
  231. /package/{esm2020 → esm2022}/lib/models/error.model.mjs +0 -0
  232. /package/{esm2020 → esm2022}/lib/models/index.mjs +0 -0
  233. /package/{esm2020 → esm2022}/lib/models/menu.model.mjs +0 -0
  234. /package/{esm2020 → esm2022}/lib/models/tableview-attr.model.mjs +0 -0
  235. /package/{esm2020 → esm2022}/lib/models/user.model.mjs +0 -0
  236. /package/{esm2020 → esm2022}/lib/models/version.model.mjs +0 -0
  237. /package/{esm2020 → esm2022}/lib/models/view-container.model.mjs +0 -0
  238. /package/{esm2020 → esm2022}/lib/pipes/index.mjs +0 -0
  239. /package/{esm2020 → esm2022}/lib/pipes/models/internal/enumrate-pipe-i18n.model.mjs +0 -0
  240. /package/{esm2020 → esm2022}/lib/pipes/models/internal/index.mjs +0 -0
  241. /package/{esm2020 → esm2022}/lib/provide-commons.mjs +0 -0
  242. /package/{esm2020 → esm2022}/lib/router/index.mjs +0 -0
  243. /package/{esm2020 → esm2022}/lib/router/models/index.mjs +0 -0
  244. /package/{esm2020 → esm2022}/lib/router/models/router.model.mjs +0 -0
  245. /package/{esm2020 → esm2022}/lib/router/tableview-route-builder.mjs +0 -0
  246. /package/{esm2020 → esm2022}/lib/security/authorization.util.mjs +0 -0
  247. /package/{esm2020 → esm2022}/lib/security/index.mjs +0 -0
  248. /package/{esm2020 → esm2022}/lib/security/model/authorization.type.mjs +0 -0
  249. /package/{esm2020 → esm2022}/lib/security/model/index.mjs +0 -0
  250. /package/{esm2020 → esm2022}/lib/security/model/permission-service.interface.mjs +0 -0
  251. /package/{esm2020 → esm2022}/lib/security/model/permissions.model.mjs +0 -0
  252. /package/{esm2020 → esm2022}/lib/services/error-mapper.service.mjs +0 -0
  253. /package/{esm2020 → esm2022}/lib/services/index.mjs +0 -0
  254. /package/{esm2020 → esm2022}/lib/services/internal/commons-init.provider.mjs +0 -0
  255. /package/{esm2020 → esm2022}/lib/services/internal/index.mjs +0 -0
  256. /package/{esm2020 → esm2022}/lib/services/providers/config-service.provider.mjs +0 -0
  257. /package/{esm2020 → esm2022}/lib/services/providers/formly-config.provider.mjs +0 -0
  258. /package/{esm2020 → esm2022}/lib/services/providers/index.mjs +0 -0
  259. /package/{esm2020 → esm2022}/lib/services/tokens/browser-storage.token.mjs +0 -0
  260. /package/{esm2020 → esm2022}/lib/services/tokens/commons-init.token.mjs +0 -0
  261. /package/{esm2020 → esm2022}/lib/services/tokens/default-setting.token.mjs +0 -0
  262. /package/{esm2020 → esm2022}/lib/services/tokens/index.mjs +0 -0
  263. /package/{esm2020 → esm2022}/lib/services/tokens/module-config.token.mjs +0 -0
  264. /package/{esm2020 → esm2022}/lib/styles/button-style.builder.mjs +0 -0
  265. /package/{esm2020 → esm2022}/lib/styles/index.mjs +0 -0
  266. /package/{esm2020 → esm2022}/lib/styles/models/index.mjs +0 -0
  267. /package/{esm2020 → esm2022}/lib/styles/models/style-level.enum.mjs +0 -0
  268. /package/{esm2020 → esm2022}/lib/styles/models/style-size.enum.mjs +0 -0
  269. /package/{esm2020 → esm2022}/lib/types/i18n.type.mjs +0 -0
  270. /package/{esm2020 → esm2022}/lib/types/index.mjs +0 -0
  271. /package/{esm2020 → esm2022}/lib/types/mng-localstorage-config-value.type.mjs +0 -0
  272. /package/{esm2020 → esm2022}/lib/types/type.decorator.mjs +0 -0
  273. /package/{esm2020 → esm2022}/lib/utils/action-data-provider.util.mjs +0 -0
  274. /package/{esm2020 → esm2022}/lib/utils/editor-formly.util.mjs +0 -0
  275. /package/{esm2020 → esm2022}/lib/utils/enum.util.mjs +0 -0
  276. /package/{esm2020 → esm2022}/lib/utils/export.util.mjs +0 -0
  277. /package/{esm2020 → esm2022}/lib/utils/file.util.mjs +0 -0
  278. /package/{esm2020 → esm2022}/lib/utils/i18n.util.mjs +0 -0
  279. /package/{esm2020 → esm2022}/lib/utils/index.mjs +0 -0
  280. /package/{esm2020 → esm2022}/lib/utils/model.util.mjs +0 -0
  281. /package/{esm2020 → esm2022}/lib/utils/notification.util.mjs +0 -0
  282. /package/{esm2020 → esm2022}/lib/utils/object.util.mjs +0 -0
  283. /package/{esm2020 → esm2022}/lib/utils/route.util.mjs +0 -0
  284. /package/{esm2020 → esm2022}/lib/utils/string.util.mjs +0 -0
  285. /package/{esm2020 → esm2022}/lib/validators/field.validator.mjs +0 -0
  286. /package/{esm2020 → esm2022}/lib/validators/index.mjs +0 -0
  287. /package/{esm2020 → esm2022}/mediusinc-mng-commons.mjs +0 -0
@@ -1,390 +0,0 @@
1
- import { AsyncPipe, NgForOf, NgIf } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, ContentChildren, ElementRef, EventEmitter, Injector, Input, Optional, Output, QueryList, ViewChild } from '@angular/core';
3
- import { TranslateService } from '@ngx-translate/core';
4
- import { ProgressSpinnerModule } from 'primeng/progressspinner';
5
- import { ToolbarModule } from 'primeng/toolbar';
6
- import { ReplaySubject, of } from 'rxjs';
7
- import { take } from 'rxjs/operators';
8
- import { ActionEditorDescriptor, ActionEditorSubmitDescriptor } from '../../../descriptors/action';
9
- import { ActionActivationTriggerEnum, ActionEditorSubmitTypeEnum, ActionPositionEnum } from '../../../descriptors/types';
10
- import { MngTemplateDirective } from '../../../directives';
11
- import { MngErrorInternal } from '../../../models';
12
- import { MngActionExecutorService, MngCommonsService, MngNavigationService } from '../../../services';
13
- import { I18nUtils } from '../../../utils';
14
- import { MngFormEditorComponent } from '../../form';
15
- import { MngActionComponent } from '../action.component';
16
- import { ActionInstanceStateEnum, ActionParameters } from '../models';
17
- import * as i0 from "@angular/core";
18
- import * as i1 from "@ngx-translate/core";
19
- import * as i2 from "../../../services";
20
- import * as i3 from "primeng/dynamicdialog";
21
- import * as i4 from "primeng/toolbar";
22
- import * as i5 from "primeng/progressspinner";
23
- export class MngActionEditorComponent {
24
- constructor(injector, translate, actionExecutor, mngCommonsService, navigationService, dialogRef, dialogConfig, viewContainerService) {
25
- this.injector = injector;
26
- this.translate = translate;
27
- this.actionExecutor = actionExecutor;
28
- this.mngCommonsService = mngCommonsService;
29
- this.navigationService = navigationService;
30
- this.dialogRef = dialogRef;
31
- this.dialogConfig = dialogConfig;
32
- this.viewContainerService = viewContainerService;
33
- this.actionEditorSubmitTypeSubmit = ActionEditorSubmitTypeEnum.Submit;
34
- this.actionDefaultLoadingInput = of(false);
35
- this.actionRunEventEmitter = new EventEmitter();
36
- this.actionCancelEventEmitter = new EventEmitter();
37
- this.isDialog = true;
38
- this.isFormDisabled = false;
39
- this.toolbarLeftActions = [];
40
- this.toolbarRightActions = [];
41
- this.footerLeftActions = [];
42
- this.footerRightActions = [];
43
- this.loadingSubject = new ReplaySubject(1);
44
- this.loading$ = this.loadingSubject.asObservable();
45
- this.submitActionIdSubject = new ReplaySubject(1);
46
- this.submitLoadingSubject = new ReplaySubject(1);
47
- this.submitLoading$ = this.submitLoadingSubject.asObservable();
48
- this.sourceComponent = this;
49
- this.subscriptions = [];
50
- }
51
- ngOnInit() {
52
- this.initializeAsDialog();
53
- this.initializeAsStandalone();
54
- // arrange the sub-actions
55
- this.initializeSubActions();
56
- // notify executor to for activation to end
57
- this.processActionInstance(this.actionExecutor.onActionEditorInit(this.action, this.instance));
58
- // set title
59
- this.updateTitle();
60
- // subscribe to events that could be triggered from outside from any reason
61
- if (typeof this.viewContainer?.getEditorReset$ === 'function') {
62
- const viewContainerEditor = this.viewContainer;
63
- this.subscriptions.push(viewContainerEditor.getEditorReset$().subscribe({
64
- next: e => {
65
- if (e.fetch) {
66
- this.fetchItem();
67
- }
68
- else if (e.item) {
69
- this.editorComponent?.resetFormModel(e.item);
70
- }
71
- else if (e.fields) {
72
- for (const key in e.fields) {
73
- this.editorComponent?.resetFormFieldValue(key, e.fields[key]);
74
- }
75
- }
76
- }
77
- }));
78
- }
79
- if (typeof this.viewContainer?.getEditorClose$ === 'function') {
80
- const viewContainerEditor = this.viewContainer;
81
- this.subscriptions.push(viewContainerEditor.getEditorClose$().subscribe({
82
- next: () => {
83
- this.cancel();
84
- }
85
- }));
86
- }
87
- }
88
- ngOnChanges(changes) {
89
- if (changes['viewContainerInit'] && !changes['viewContainerInit'].firstChange) {
90
- this.initializeViewContainer();
91
- }
92
- if (changes['itemIdInit'] && !changes['itemIdInit'].firstChange) {
93
- this.itemId = this.itemIdInit;
94
- }
95
- if (changes['itemInit'] && !changes['itemInit'].firstChange) {
96
- this.item = this.itemInit;
97
- }
98
- }
99
- ngOnDestroy() {
100
- this.fetchExecutionSubscription?.unsubscribe();
101
- this.submitExecutionSubscription?.unsubscribe();
102
- const instance = this.instance;
103
- this.unsetInstance();
104
- this.actionExecutor.onActionEditorDestroy(instance);
105
- this.subscriptions.forEach(s => s.unsubscribe());
106
- }
107
- onSubmit(event) {
108
- if (!this.instance) {
109
- throw new MngErrorInternal(`Action is not instantiated in action editor for action ${this.action.actionName}.`);
110
- }
111
- if (event.success) {
112
- this.instanceSubmitFormItem = event.formItem;
113
- // prepare parameters
114
- const actionParameters = new ActionParameters(this.itemId, event.formItem)
115
- .withActionData(this.actionData)
116
- .withViewContainer(this.viewContainer)
117
- .withSourceComponent(this.sourceComponent);
118
- if (this.action.editorDescriptor.isLocalized) {
119
- actionParameters.withLocale(this.mngCommonsService.appDataLanguageDefault);
120
- }
121
- const context = this.actionExecutor.prepareContextForEditorSubmit(this.action, actionParameters, this.dataProvider, this.instance, this.previousActionInstance);
122
- this.submitExecutionSubscription?.unsubscribe();
123
- this.submitExecutionSubscription = context.execution$.pipe(take(1)).subscribe({
124
- next: res => {
125
- if (res && typeof res === 'object' && !this.itemId && this.action.model?.idPropertyName) {
126
- // to cover creation!
127
- this.itemId = res[this.action.model.idPropertyName];
128
- }
129
- this.actionRunEventEmitter.next(res);
130
- this.instanceSubmitResult = res;
131
- }
132
- });
133
- this.actionExecutor.run(context);
134
- }
135
- }
136
- cancel() {
137
- if (!this.instance) {
138
- console.warn('Action editor cannot be canceled, because no action instance is present');
139
- return;
140
- }
141
- this.actionCancelEventEmitter.next(undefined);
142
- this.actionExecutor.finishAction(this.instance);
143
- }
144
- triggerSubmit() {
145
- this.editorComponent.submit();
146
- }
147
- initializeAsDialog() {
148
- if (!this.dialogConfig?.data) {
149
- this.isDialog = false;
150
- return;
151
- }
152
- this.isDialog = true;
153
- // initialize action from dialog data
154
- if (this.dialogConfig.data.actionInstance) {
155
- this.processActionInstance(this.dialogConfig.data.actionInstance);
156
- if (this.dialogConfig.data.previousActionInstance) {
157
- this.previousActionInstance = this.dialogConfig.data.previousActionInstance;
158
- }
159
- }
160
- if (this.instance) {
161
- this.action = this.instance.action;
162
- }
163
- this.itemId = this.instance?.activationParameters?.itemId;
164
- this.item = this.instance?.activationParameters?.item;
165
- this.actionData = this.instance?.activationParameters?.actionData;
166
- this.viewContainer = this.instance?.activationParameters?.viewContainer;
167
- this.sourceComponent = this.instance?.activationParameters?.sourceComponent;
168
- this.dialogRoute = this.instance?.activationParameters?.route;
169
- if (!this.dataProvider && this.viewContainer) {
170
- const dataProvider = this.viewContainer.getDataProvider();
171
- if (dataProvider && typeof dataProvider['fetch'] === 'function') {
172
- this.dataProvider = dataProvider;
173
- }
174
- }
175
- }
176
- initializeAsStandalone() {
177
- if (this.isDialog) {
178
- return;
179
- }
180
- this.itemId = this.itemIdInit;
181
- this.item = this.itemInit;
182
- this.initializeViewContainer();
183
- }
184
- initializeSubActions() {
185
- for (const action of this.action.editorActions) {
186
- if (action instanceof ActionEditorSubmitDescriptor) {
187
- if (typeof action.button.icon === 'undefined') {
188
- action.button.withIcon(action.submitType === ActionEditorSubmitTypeEnum.Submit ? 'pi pi-check' : 'pi pi-times');
189
- }
190
- if (typeof action.button.label === 'undefined') {
191
- action.button.withLabel(action.submitType === ActionEditorSubmitTypeEnum.Submit ? 'general.save' : this.isDialog ? 'general.close' : 'general.cancel');
192
- }
193
- // assign run operations
194
- action.withRunNotificationSuccess(undefined, undefined, false);
195
- if (action.submitType === ActionEditorSubmitTypeEnum.Submit) {
196
- action.withRunFunction(() => {
197
- this.triggerSubmit();
198
- return of(null);
199
- });
200
- }
201
- else {
202
- action.withRunFunction(() => {
203
- this.cancel();
204
- return of(null);
205
- });
206
- }
207
- }
208
- this.placeActionsOnPositions(action);
209
- }
210
- for (const action of this.viewContainer?.getActions().filter(value => value.positionTableviewCategories?.includes(this.action.tableviewCategory)) ?? []) {
211
- this.placeActionsOnPositions(action);
212
- }
213
- this.toolbarRightActions = this.toolbarRightActions.reverse();
214
- this.footerRightActions = this.footerRightActions.reverse();
215
- }
216
- fetchItem() {
217
- if (!this.instance) {
218
- throw new MngErrorInternal(`Action is not instantiated in action editor for action ${this.action.actionName}.`);
219
- }
220
- const actionParameters = new ActionParameters(this.itemId, this.item)
221
- .withActionData(this.actionData)
222
- .withViewContainer(this.viewContainer)
223
- .withSourceComponent(this.sourceComponent);
224
- if (this.action.editorDescriptor.isLocalized) {
225
- if (this.action.editorDescriptor.disabled) {
226
- actionParameters.withLocale(this.mngCommonsService.appDataLanguage);
227
- }
228
- else {
229
- actionParameters.withLocale(this.mngCommonsService.appDataLanguageDefault);
230
- }
231
- }
232
- if (this.instance?.previousInstance?.context?.parameters.item) {
233
- actionParameters.withFormItem(this.instance?.previousInstance?.context?.parameters.item);
234
- }
235
- if (typeof this.instance?.previousInstance?.result !== 'undefined') {
236
- actionParameters.withSubmitResult(this.instance?.previousInstance?.result);
237
- }
238
- const context = this.actionExecutor.prepareContextForEditorFetch(this.action, actionParameters, this.dataProvider, this.instance, this.previousActionInstance);
239
- this.fetchExecutionSubscription?.unsubscribe();
240
- this.fetchExecutionSubscription = context.execution$.pipe(take(1)).subscribe(res => {
241
- this.item = res ?? undefined;
242
- this.updateTitle();
243
- });
244
- this.actionExecutor.run(context);
245
- }
246
- updateTitle() {
247
- if (this.action.editorTitle === null) {
248
- this.title = undefined;
249
- if (this.dialogConfig) {
250
- requestAnimationFrame(() => {
251
- this.dialogConfig.header = undefined;
252
- });
253
- }
254
- return;
255
- }
256
- const subscription = I18nUtils.Action.getEditorTitleAsync(this.translate, this.action, this.item).subscribe(t => {
257
- this.title = t ?? undefined;
258
- if (this.dialogConfig) {
259
- requestAnimationFrame(() => {
260
- this.dialogConfig.header = t ?? undefined;
261
- if (this.action.activationTrigger === ActionActivationTriggerEnum.OnRoute) {
262
- this.mngCommonsService.setPageTitle(t ?? undefined);
263
- }
264
- });
265
- }
266
- });
267
- this.subscriptions.push(subscription);
268
- }
269
- placeActionsOnPositions(action) {
270
- switch (action.position) {
271
- case ActionPositionEnum.ToolbarLeft:
272
- this.toolbarLeftActions.push(action);
273
- break;
274
- case ActionPositionEnum.ToolbarRight:
275
- this.toolbarRightActions.push(action);
276
- break;
277
- case ActionPositionEnum.FooterLeft:
278
- this.footerLeftActions.push(action);
279
- break;
280
- case ActionPositionEnum.FooterRight:
281
- this.footerRightActions.push(action);
282
- break;
283
- }
284
- }
285
- initializeViewContainer() {
286
- if (this.isDialog) {
287
- return;
288
- }
289
- this.viewContainer = this.viewContainerInit ?? this.viewContainerService ?? undefined;
290
- }
291
- setEditorEnabled(isEnabled = true) {
292
- this.isFormDisabled = !isEnabled;
293
- }
294
- processActionInstance(instance) {
295
- if (!this.instance || this.instance.instanceLongName !== instance.instanceLongName) {
296
- this.unsetInstance();
297
- this.instance = instance;
298
- this.instanceStateSubscription = this.instance.state$.subscribe(s => {
299
- switch (s) {
300
- case ActionInstanceStateEnum.ActivationEnd:
301
- this.fetchItem();
302
- break;
303
- case ActionInstanceStateEnum.FetchStart:
304
- this.setEditorEnabled(false);
305
- this.loadingSubject.next(true);
306
- break;
307
- case ActionInstanceStateEnum.FetchError:
308
- this.loadingSubject.next(false);
309
- break;
310
- case ActionInstanceStateEnum.FetchEnd:
311
- this.setEditorEnabled(true);
312
- this.loadingSubject.next(false);
313
- break;
314
- case ActionInstanceStateEnum.RunStart:
315
- this.setEditorEnabled(false);
316
- this.submitLoadingSubject.next(true);
317
- break;
318
- case ActionInstanceStateEnum.RunEnd:
319
- case ActionInstanceStateEnum.RunError:
320
- this.setEditorEnabled(true);
321
- this.submitLoadingSubject.next(false);
322
- break;
323
- case ActionInstanceStateEnum.FinishErrorFinal:
324
- this.setEditorEnabled(false);
325
- break;
326
- case ActionInstanceStateEnum.FinishSuccessFinal:
327
- case ActionInstanceStateEnum.FinishDismissedFinal:
328
- this.setEditorEnabled(false);
329
- this.unsetInstance();
330
- break;
331
- case ActionInstanceStateEnum.FinishSuccessReactivateFinal:
332
- this.setEditorEnabled(false);
333
- // should also unsetInstance, but let this for reactivationInstance$ listener to not interfere
334
- break;
335
- }
336
- });
337
- this.instanceReactivationSubscription = this.instance.reactivationInstance$.subscribe(newInstance => {
338
- this.processActionInstance(newInstance);
339
- });
340
- }
341
- }
342
- unsetInstance() {
343
- this.instance = undefined;
344
- this.instanceStateSubscription?.unsubscribe();
345
- this.instanceReactivationSubscription?.unsubscribe();
346
- }
347
- }
348
- MngActionEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MngActionEditorComponent, deps: [{ token: i0.Injector }, { token: i1.TranslateService }, { token: i2.MngActionExecutorService }, { token: i2.MngCommonsService }, { token: i2.MngNavigationService }, { token: i3.DynamicDialogRef, optional: true }, { token: i3.DynamicDialogConfig, optional: true }, { token: i2.MngViewContainerComponentService, optional: true }], target: i0.ɵɵFactoryTarget.Component });
349
- MngActionEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: MngActionEditorComponent, isStandalone: true, selector: "mng-action-editor", inputs: { action: "action", itemIdInit: ["itemId", "itemIdInit"], itemInit: ["item", "itemInit"], actionData: "actionData", dataProvider: "dataProvider", viewContainerInit: ["viewContainer", "viewContainerInit"] }, outputs: { actionRunEventEmitter: "actionSubmit", actionCancelEventEmitter: "actionCancel" }, queries: [{ propertyName: "templates", predicate: MngTemplateDirective }], viewQueries: [{ propertyName: "submitButtonElementRef", first: true, predicate: ["submitButton"], descendants: true }, { propertyName: "editorComponent", first: true, predicate: MngFormEditorComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<h5 *ngIf=\"!isDialog && title\">{{ title }}</h5>\n<div class=\"h-full flex flex-column\">\n <div class=\"flex-grow-1 mng-action-editor-toolbar-container\" *ngIf=\"toolbarLeftActions.length > 0 || toolbarRightActions.length > 0\">\n <p-toolbar styleClass=\"mng-action-editor-toolbar\">\n <ng-template pTemplate=\"left\">\n <mng-action\n *ngFor=\"let action of toolbarLeftActions\"\n [action]=\"action\"\n [disabled]=\"submitLoading$\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading$ : actionDefaultLoadingInput\"\n [viewContainer]=\"viewContainer\"\n [hostComponent]=\"this\"\n [route]=\"dialogRoute\"\n [item]=\"item\"\n [itemId]=\"itemId\"></mng-action>\n </ng-template>\n <ng-template pTemplate=\"right\">\n <mng-action\n *ngFor=\"let action of toolbarRightActions\"\n [action]=\"action\"\n [disabled]=\"submitLoading$\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading$ : actionDefaultLoadingInput\"\n [viewContainer]=\"viewContainer\"\n [hostComponent]=\"this\"\n [route]=\"dialogRoute\"\n [item]=\"item\"\n [itemId]=\"itemId\"></mng-action>\n </ng-template>\n </p-toolbar>\n </div>\n\n <div class=\"flex-grow-1 mng-action-editor-form-container\">\n <div class=\"text-center\" *ngIf=\"loading$ | async\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n <mng-form-editor\n *ngIf=\"action.editorDescriptor && (loading$ | async) === false\"\n [descriptor]=\"action.editorDescriptor\"\n [item]=\"item\"\n [viewContainer]=\"viewContainer\"\n [isFormDisabled]=\"isFormDisabled\"\n (formSubmit)=\"onSubmit($event)\">\n </mng-form-editor>\n </div>\n\n <div class=\"flex flex-row justify-content-between mng-action-editor-footer-container\">\n <div>\n <mng-action\n *ngFor=\"let action of footerLeftActions\"\n [action]=\"action\"\n [disabled]=\"submitLoading$\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading$ : actionDefaultLoadingInput\"\n [viewContainer]=\"viewContainer\"\n [hostComponent]=\"this\"\n [route]=\"dialogRoute\"\n [item]=\"item\"\n [itemId]=\"itemId\"></mng-action>\n </div>\n <div>\n <mng-action\n *ngFor=\"let action of footerRightActions\"\n [action]=\"action\"\n [disabled]=\"submitLoading$\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading$ : actionDefaultLoadingInput\"\n [viewContainer]=\"viewContainer\"\n [hostComponent]=\"this\"\n [route]=\"dialogRoute\"\n [item]=\"item\"\n [itemId]=\"itemId\"></mng-action>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ToolbarModule }, { kind: "component", type: i4.Toolbar, selector: "p-toolbar", inputs: ["style", "styleClass"] }, { kind: "component", type: MngActionComponent, selector: "mng-action", inputs: ["action", "item", "itemId", "actionData", "queryParam", "dataProvider", "hostComponent", "route", "disabled", "loading", "viewContainer", "selectedItems"], outputs: ["finish"] }, { kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "ngmodule", type: ProgressSpinnerModule }, { kind: "component", type: i5.ProgressSpinner, selector: "p-progressSpinner", inputs: ["style", "styleClass", "strokeWidth", "fill", "animationDuration"] }, { kind: "component", type: MngFormEditorComponent, selector: "mng-form-editor", inputs: ["descriptor", "submitLoading", "item", "viewContainer", "isFormDisabled"], outputs: ["formSubmit"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
350
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MngActionEditorComponent, decorators: [{
351
- type: Component,
352
- args: [{ standalone: true, selector: 'mng-action-editor', imports: [NgIf, ToolbarModule, MngActionComponent, NgForOf, AsyncPipe, ProgressSpinnerModule, MngFormEditorComponent], changeDetection: ChangeDetectionStrategy.OnPush, template: "<h5 *ngIf=\"!isDialog && title\">{{ title }}</h5>\n<div class=\"h-full flex flex-column\">\n <div class=\"flex-grow-1 mng-action-editor-toolbar-container\" *ngIf=\"toolbarLeftActions.length > 0 || toolbarRightActions.length > 0\">\n <p-toolbar styleClass=\"mng-action-editor-toolbar\">\n <ng-template pTemplate=\"left\">\n <mng-action\n *ngFor=\"let action of toolbarLeftActions\"\n [action]=\"action\"\n [disabled]=\"submitLoading$\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading$ : actionDefaultLoadingInput\"\n [viewContainer]=\"viewContainer\"\n [hostComponent]=\"this\"\n [route]=\"dialogRoute\"\n [item]=\"item\"\n [itemId]=\"itemId\"></mng-action>\n </ng-template>\n <ng-template pTemplate=\"right\">\n <mng-action\n *ngFor=\"let action of toolbarRightActions\"\n [action]=\"action\"\n [disabled]=\"submitLoading$\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading$ : actionDefaultLoadingInput\"\n [viewContainer]=\"viewContainer\"\n [hostComponent]=\"this\"\n [route]=\"dialogRoute\"\n [item]=\"item\"\n [itemId]=\"itemId\"></mng-action>\n </ng-template>\n </p-toolbar>\n </div>\n\n <div class=\"flex-grow-1 mng-action-editor-form-container\">\n <div class=\"text-center\" *ngIf=\"loading$ | async\">\n <p-progressSpinner [style]=\"{width: '3rem', height: '3rem'}\" strokeWidth=\"3\"></p-progressSpinner>\n </div>\n <mng-form-editor\n *ngIf=\"action.editorDescriptor && (loading$ | async) === false\"\n [descriptor]=\"action.editorDescriptor\"\n [item]=\"item\"\n [viewContainer]=\"viewContainer\"\n [isFormDisabled]=\"isFormDisabled\"\n (formSubmit)=\"onSubmit($event)\">\n </mng-form-editor>\n </div>\n\n <div class=\"flex flex-row justify-content-between mng-action-editor-footer-container\">\n <div>\n <mng-action\n *ngFor=\"let action of footerLeftActions\"\n [action]=\"action\"\n [disabled]=\"submitLoading$\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading$ : actionDefaultLoadingInput\"\n [viewContainer]=\"viewContainer\"\n [hostComponent]=\"this\"\n [route]=\"dialogRoute\"\n [item]=\"item\"\n [itemId]=\"itemId\"></mng-action>\n </div>\n <div>\n <mng-action\n *ngFor=\"let action of footerRightActions\"\n [action]=\"action\"\n [disabled]=\"submitLoading$\"\n [loading]=\"$any(action).submitType === actionEditorSubmitTypeSubmit ? submitLoading$ : actionDefaultLoadingInput\"\n [viewContainer]=\"viewContainer\"\n [hostComponent]=\"this\"\n [route]=\"dialogRoute\"\n [item]=\"item\"\n [itemId]=\"itemId\"></mng-action>\n </div>\n </div>\n</div>\n" }]
353
- }], ctorParameters: function () { return [{ type: i0.Injector }, { type: i1.TranslateService }, { type: i2.MngActionExecutorService }, { type: i2.MngCommonsService }, { type: i2.MngNavigationService }, { type: i3.DynamicDialogRef, decorators: [{
354
- type: Optional
355
- }] }, { type: i3.DynamicDialogConfig, decorators: [{
356
- type: Optional
357
- }] }, { type: i2.MngViewContainerComponentService, decorators: [{
358
- type: Optional
359
- }] }]; }, propDecorators: { action: [{
360
- type: Input
361
- }], itemIdInit: [{
362
- type: Input,
363
- args: ['itemId']
364
- }], itemInit: [{
365
- type: Input,
366
- args: ['item']
367
- }], actionData: [{
368
- type: Input
369
- }], dataProvider: [{
370
- type: Input
371
- }], viewContainerInit: [{
372
- type: Input,
373
- args: ['viewContainer']
374
- }], actionRunEventEmitter: [{
375
- type: Output,
376
- args: ['actionSubmit']
377
- }], actionCancelEventEmitter: [{
378
- type: Output,
379
- args: ['actionCancel']
380
- }], templates: [{
381
- type: ContentChildren,
382
- args: [MngTemplateDirective]
383
- }], submitButtonElementRef: [{
384
- type: ViewChild,
385
- args: ['submitButton']
386
- }], editorComponent: [{
387
- type: ViewChild,
388
- args: [MngFormEditorComponent]
389
- }] } });
390
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uL2VkaXRvci9hY3Rpb24tZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vZWRpdG9yL2FjdGlvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFJTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFFVCxTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDOUQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQzlDLE9BQU8sRUFBYSxhQUFhLEVBQWdCLEVBQUUsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUNqRSxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEMsT0FBTyxFQUFtQixzQkFBc0IsRUFBRSw0QkFBNEIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQ25ILE9BQU8sRUFBQywyQkFBMkIsRUFBRSwwQkFBMEIsRUFBRSxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQ3ZILE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ3pELE9BQU8sRUFBdUMsZ0JBQWdCLEVBQUMsTUFB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LGVBQWU7dUJBQUMsb0JBQW9CO2dCQUNILHNCQUFzQjtzQkFBdkQsU0FBUzt1QkFBQyxjQUFjO2dCQUNpQixlQUFlO3NCQUF4RCxTQUFTO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7QXN5bmNQaXBlLCBOZ0Zvck9mLCBOZ0lmfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkcmVuLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIE9uQ2hhbmdlcyxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT25Jbml0LFxuICAgIE9wdGlvbmFsLFxuICAgIE91dHB1dCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHtEeW5hbWljRGlhbG9nQ29uZmlnLCBEeW5hbWljRGlhbG9nUmVmfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHtQcm9ncmVzc1NwaW5uZXJNb2R1bGV9IGZyb20gJ3ByaW1lbmcvcHJvZ3Jlc3NzcGlubmVyJztcbmltcG9ydCB7VG9vbGJhck1vZHVsZX0gZnJvbSAncHJpbWVuZy90b29sYmFyJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgU3Vic2NyaXB0aW9uLCBvZn0gZnJvbSAncnhqcyc7XG5pbXBvcnQge3Rha2V9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHtJRWRpdG9yRGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvckRlc2NyaXB0b3IsIEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzL2FjdGlvbic7XG5pbXBvcnQge0FjdGlvbkFjdGl2YXRpb25UcmlnZ2VyRW51bSwgQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0sIEFjdGlvblBvc2l0aW9uRW51bX0gZnJvbSAnLi4vLi4vLi4vZGVzY3JpcHRvcnMvdHlwZXMnO1xuaW1wb3J0IHtNbmdUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQge0lWaWV3Q29udGFpbmVyLCBJVmlld0NvbnRhaW5lckVkaXRvciwgTW5nRXJyb3JJbnRlcm5hbH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7TW5nQWN0aW9uRXhlY3V0b3JTZXJ2aWNlLCBNbmdDb21tb25zU2VydmljZSwgTW5nTmF2aWdhdGlvblNlcnZpY2UsIE1uZ1ZpZXdDb250YWluZXJDb21wb25lbnRTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0lkVHlwZX0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHtJMThuVXRpbHN9IGZyb20gJy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7TW5nRm9ybUVkaXRvckNvbXBvbmVudH0gZnJvbSAnLi4vLi4vZm9ybSc7XG5pbXBvcnQge01uZ0Zvcm1FZGl0b3JTdWJtaXRFdmVudH0gZnJvbSAnLi4vLi4vZm9ybS9tb2RlbHMnO1xuaW1wb3J0IHtNbmdBY3Rpb25Db21wb25lbnR9IGZyb20gJy4uL2FjdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHtBY3Rpb25EYXRhLCBBY3Rpb25JbnN0YW5jZSwgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0sIEFjdGlvblBhcmFtZXRlcnN9IGZyb20gJy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctYWN0aW9uLWVkaXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2FjdGlvbi1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICAgIGltcG9ydHM6IFtOZ0lmLCBUb29sYmFyTW9kdWxlLCBNbmdBY3Rpb25Db21wb25lbnQsIE5nRm9yT2YsIEFzeW5jUGlwZSwgUHJvZ3Jlc3NTcGlubmVyTW9kdWxlLCBNbmdGb3JtRWRpdG9yQ29tcG9uZW50XSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNbmdBY3Rpb25FZGl0b3JDb21wb25lbnQ8VCwgUz4gaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uRWRpdG9yU3VibWl0VHlwZVN1Ym1pdCA9IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLlN1Ym1pdDtcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uRGVmYXVsdExvYWRpbmdJbnB1dCA9IG9mKGZhbHNlKTtcblxuICAgIC8vIG1ldGFkYXRhIGFuZCBlZGl0b3IgbW9kZSBpbnB1dFxuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb24hOiBBY3Rpb25FZGl0b3JEZXNjcmlwdG9yPFQ+O1xuXG4gICAgLy8gZGF0YSBzb3VyY2UgaW5wdXRzXG4gICAgQElucHV0KCdpdGVtSWQnKSBwdWJsaWMgaXRlbUlkSW5pdD86IElkVHlwZTtcbiAgICBASW5wdXQoJ2l0ZW0nKSBwdWJsaWMgaXRlbUluaXQ/OiBUO1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25EYXRhPzogQWN0aW9uRGF0YTtcbiAgICBASW5wdXQoKSBwdWJsaWMgZGF0YVByb3ZpZGVyPzogSUVkaXRvckRhdGFQcm92aWRlcjxULCBTPjtcbiAgICBASW5wdXQoJ3ZpZXdDb250YWluZXInKSBwdWJsaWMgdmlld0NvbnRhaW5lckluaXQ/OiBJVmlld0NvbnRhaW5lcjxULCBTPjtcblxuICAgIEBPdXRwdXQoJ2FjdGlvblN1Ym1pdCcpIHB1YmxpYyBhY3Rpb25SdW5FdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFQgfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuICAgIEBPdXRwdXQoJ2FjdGlvbkNhbmNlbCcpIHB1YmxpYyBhY3Rpb25DYW5jZWxFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFQgfCBudWxsIHwgdW5kZWZpbmVkPigpO1xuXG4gICAgLy8gY29udGVudCBhbmQgdmlldyBxdWVyaWVzXG4gICAgQENvbnRlbnRDaGlsZHJlbihNbmdUZW1wbGF0ZURpcmVjdGl2ZSkgcHVibGljIHRlbXBsYXRlcyE6IFF1ZXJ5TGlzdDxNbmdUZW1wbGF0ZURpcmVjdGl2ZT47XG4gICAgQFZpZXdDaGlsZCgnc3VibWl0QnV0dG9uJykgcHVibGljIHN1Ym1pdEJ1dHRvbkVsZW1lbnRSZWYhOiBFbGVtZW50UmVmO1xuICAgIEBWaWV3Q2hpbGQoTW5nRm9ybUVkaXRvckNvbXBvbmVudCkgcHVibGljIGVkaXRvckNvbXBvbmVudCE6IE1uZ0Zvcm1FZGl0b3JDb21wb25lbnQ8VD47XG5cbiAgICBwdWJsaWMgdGl0bGU/OiBzdHJpbmc7XG4gICAgcHVibGljIGlzRGlhbG9nID0gdHJ1ZTtcbiAgICBwdWJsaWMgaXNGb3JtRGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8vIGFjdGlvbnNcbiAgICBwdWJsaWMgaXRlbUlkPzogSWRUeXBlO1xuICAgIHB1YmxpYyBpdGVtPzogVDtcbiAgICBwcml2YXRlIGluc3RhbmNlPzogQWN0aW9uSW5zdGFuY2U8VCwgUz47XG4gICAgcHJpdmF0ZSBpbnN0YW5jZVN0YXRlU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuICAgIHByaXZhdGUgaW5zdGFuY2VSZWFjdGl2YXRpb25TdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG4gICAgcHJpdmF0ZSBpbnN0YW5jZVN1Ym1pdEZvcm1JdGVtPzogVCB8IG51bGw7XG4gICAgcHJpdmF0ZSBpbnN0YW5jZVN1Ym1pdFJlc3VsdD86IFQgfCBudWxsO1xuICAgIHByaXZhdGUgcHJldmlvdXNBY3Rpb25JbnN0YW5jZT86IEFjdGlvbkluc3RhbmNlPHVua25vd24sIHVua25vd24+O1xuICAgIHB1YmxpYyB0b29sYmFyTGVmdEFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3I8VD5bXSA9IFtdO1xuICAgIHB1YmxpYyB0b29sYmFyUmlnaHRBY3Rpb25zOiBBY3Rpb25EZXNjcmlwdG9yPFQ+W10gPSBbXTtcbiAgICBwdWJsaWMgZm9vdGVyTGVmdEFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3I8VD5bXSA9IFtdO1xuICAgIHB1YmxpYyBmb290ZXJSaWdodEFjdGlvbnM6IEFjdGlvbkRlc2NyaXB0b3I8VD5bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBsb2FkaW5nU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHB1YmxpYyBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMubG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgcHJpdmF0ZSBmZXRjaEV4ZWN1dGlvblN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBwcml2YXRlIHN1Ym1pdEFjdGlvbklkU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PGJvb2xlYW4+KDEpO1xuICAgIHByaXZhdGUgc3VibWl0TG9hZGluZ1N1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuPigxKTtcbiAgICBwdWJsaWMgc3VibWl0TG9hZGluZyQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnN1Ym1pdExvYWRpbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIHByaXZhdGUgc3VibWl0RXhlY3V0aW9uU3Vic2NyaXB0aW9uPzogU3Vic2NyaXB0aW9uO1xuXG4gICAgcHVibGljIHZpZXdDb250YWluZXI/OiBJVmlld0NvbnRhaW5lcjxULCBTPjtcbiAgICBwdWJsaWMgZGlhbG9nUm91dGU/OiBBY3RpdmF0ZWRSb3V0ZTtcbiAgICBwcml2YXRlIHNvdXJjZUNvbXBvbmVudDogYW55ID0gdGhpcztcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uczogQXJyYXk8U3Vic2NyaXB0aW9uPiA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBhY3Rpb25FeGVjdXRvcjogTW5nQWN0aW9uRXhlY3V0b3JTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG1uZ0NvbW1vbnNTZXJ2aWNlOiBNbmdDb21tb25zU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBuYXZpZ2F0aW9uU2VydmljZTogTW5nTmF2aWdhdGlvblNlcnZpY2UsXG4gICAgICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZGlhbG9nUmVmOiBEeW5hbWljRGlhbG9nUmVmIHwgbnVsbCxcbiAgICAgICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkaWFsb2dDb25maWc6IER5bmFtaWNEaWFsb2dDb25maWcgfCBudWxsLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHZpZXdDb250YWluZXJTZXJ2aWNlOiBNbmdWaWV3Q29udGFpbmVyQ29tcG9uZW50U2VydmljZTxULCBTPiB8IG51bGxcbiAgICApIHt9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplQXNEaWFsb2coKTtcbiAgICAgICAgdGhpcy5pbml0aWFsaXplQXNTdGFuZGFsb25lKCk7XG5cbiAgICAgICAgLy8gYXJyYW5nZSB0aGUgc3ViLWFjdGlvbnNcbiAgICAgICAgdGhpcy5pbml0aWFsaXplU3ViQWN0aW9ucygpO1xuXG4gICAgICAgIC8vIG5vdGlmeSBleGVjdXRvciB0byBmb3IgYWN0aXZhdGlvbiB0byBlbmRcbiAgICAgICAgdGhpcy5wcm9jZXNzQWN0aW9uSW5zdGFuY2UodGhpcy5hY3Rpb25FeGVjdXRvci5vbkFjdGlvbkVkaXRvckluaXQodGhpcy5hY3Rpb24sIHRoaXMuaW5zdGFuY2UpKTtcblxuICAgICAgICAvLyBzZXQgdGl0bGVcbiAgICAgICAgdGhpcy51cGRhdGVUaXRsZSgpO1xuXG4gICAgICAgIC8vIHN1YnNjcmliZSB0byBldmVudHMgdGhhdCBjb3VsZCBiZSB0cmlnZ2VyZWQgZnJvbSBvdXRzaWRlIGZyb20gYW55IHJlYXNvblxuICAgICAgICBpZiAodHlwZW9mICh0aGlzLnZpZXdDb250YWluZXIgYXMgSVZpZXdDb250YWluZXJFZGl0b3I8VCwgUz4pPy5nZXRFZGl0b3JSZXNldCQgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGNvbnN0IHZpZXdDb250YWluZXJFZGl0b3IgPSB0aGlzLnZpZXdDb250YWluZXIgYXMgSVZpZXdDb250YWluZXJFZGl0b3I8VCwgUz47XG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgICAgICB2aWV3Q29udGFpbmVyRWRpdG9yLmdldEVkaXRvclJlc2V0JCgpLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgICAgIG5leHQ6IGUgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuZmV0Y2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmZldGNoSXRlbSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChlLml0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRvckNvbXBvbmVudD8ucmVzZXRGb3JtTW9kZWwoZS5pdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoZS5maWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBlLmZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRvckNvbXBvbmVudD8ucmVzZXRGb3JtRmllbGRWYWx1ZShrZXksIGUuZmllbGRzW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHR5cGVvZiAodGhpcy52aWV3Q29udGFpbmVyIGFzIElWaWV3Q29udGFpbmVyRWRpdG9yPFQsIFM+KT8uZ2V0RWRpdG9yQ2xvc2UkID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBjb25zdCB2aWV3Q29udGFpbmVyRWRpdG9yID0gdGhpcy52aWV3Q29udGFpbmVyIGFzIElWaWV3Q29udGFpbmVyRWRpdG9yPFQsIFM+O1xuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICAgICAgICAgICAgdmlld0NvbnRhaW5lckVkaXRvci5nZXRFZGl0b3JDbG9zZSQoKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNhbmNlbCgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIGlmIChjaGFuZ2VzWyd2aWV3Q29udGFpbmVySW5pdCddICYmICFjaGFuZ2VzWyd2aWV3Q29udGFpbmVySW5pdCddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLmluaXRpYWxpemVWaWV3Q29udGFpbmVyKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNoYW5nZXNbJ2l0ZW1JZEluaXQnXSAmJiAhY2hhbmdlc1snaXRlbUlkSW5pdCddLmZpcnN0Q2hhbmdlKSB7XG4gICAgICAgICAgICB0aGlzLml0ZW1JZCA9IHRoaXMuaXRlbUlkSW5pdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhbmdlc1snaXRlbUluaXQnXSAmJiAhY2hhbmdlc1snaXRlbUluaXQnXS5maXJzdENoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy5pdGVtID0gdGhpcy5pdGVtSW5pdDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5mZXRjaEV4ZWN1dGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5zdWJtaXRFeGVjdXRpb25TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5pbnN0YW5jZTtcbiAgICAgICAgdGhpcy51bnNldEluc3RhbmNlKCk7XG4gICAgICAgIHRoaXMuYWN0aW9uRXhlY3V0b3Iub25BY3Rpb25FZGl0b3JEZXN0cm95KGluc3RhbmNlKTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBvblN1Ym1pdChldmVudDogTW5nRm9ybUVkaXRvclN1Ym1pdEV2ZW50PFQ+KSB7XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IE1uZ0Vycm9ySW50ZXJuYWwoYEFjdGlvbiBpcyBub3QgaW5zdGFudGlhdGVkIGluIGFjdGlvbiBlZGl0b3IgZm9yIGFjdGlvbiAke3RoaXMuYWN0aW9uLmFjdGlvbk5hbWV9LmApO1xuICAgICAgICB9XG4gICAgICAgIGlmIChldmVudC5zdWNjZXNzKSB7XG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlU3VibWl0Rm9ybUl0ZW0gPSBldmVudC5mb3JtSXRlbTtcblxuICAgICAgICAgICAgLy8gcHJlcGFyZSBwYXJhbWV0ZXJzXG4gICAgICAgICAgICBjb25zdCBhY3Rpb25QYXJhbWV0ZXJzID0gbmV3IEFjdGlvblBhcmFtZXRlcnModGhpcy5pdGVtSWQsIGV2ZW50LmZvcm1JdGVtKVxuICAgICAgICAgICAgICAgIC53aXRoQWN0aW9uRGF0YSh0aGlzLmFjdGlvbkRhdGEpXG4gICAgICAgICAgICAgICAgLndpdGhWaWV3Q29udGFpbmVyKHRoaXMudmlld0NvbnRhaW5lcilcbiAgICAgICAgICAgICAgICAud2l0aFNvdXJjZUNvbXBvbmVudCh0aGlzLnNvdXJjZUNvbXBvbmVudCk7XG4gICAgICAgICAgICBpZiAodGhpcy5hY3Rpb24uZWRpdG9yRGVzY3JpcHRvci5pc0xvY2FsaXplZCkge1xuICAgICAgICAgICAgICAgIGFjdGlvblBhcmFtZXRlcnMud2l0aExvY2FsZSh0aGlzLm1uZ0NvbW1vbnNTZXJ2aWNlLmFwcERhdGFMYW5ndWFnZURlZmF1bHQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gdGhpcy5hY3Rpb25FeGVjdXRvci5wcmVwYXJlQ29udGV4dEZvckVkaXRvclN1Ym1pdCh0aGlzLmFjdGlvbiwgYWN0aW9uUGFyYW1ldGVycywgdGhpcy5kYXRhUHJvdmlkZXIsIHRoaXMuaW5zdGFuY2UsIHRoaXMucHJldmlvdXNBY3Rpb25JbnN0YW5jZSk7XG5cbiAgICAgICAgICAgIHRoaXMuc3VibWl0RXhlY3V0aW9uU3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgdGhpcy5zdWJtaXRFeGVjdXRpb25TdWJzY3JpcHRpb24gPSBjb250ZXh0LmV4ZWN1dGlvbiQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IHJlcyA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChyZXMgJiYgdHlwZW9mIHJlcyA9PT0gJ29iamVjdCcgJiYgIXRoaXMuaXRlbUlkICYmIHRoaXMuYWN0aW9uLm1vZGVsPy5pZFByb3BlcnR5TmFtZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gdG8gY292ZXIgY3JlYXRpb24hXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLml0ZW1JZCA9IHJlc1t0aGlzLmFjdGlvbi5tb2RlbC5pZFByb3BlcnR5TmFtZSBhcyBrZXlvZiBvYmplY3RdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYWN0aW9uUnVuRXZlbnRFbWl0dGVyLm5leHQocmVzKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbnN0YW5jZVN1Ym1pdFJlc3VsdCA9IHJlcztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5hY3Rpb25FeGVjdXRvci5ydW4oY29udGV4dCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2FuY2VsKCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIGNvbnNvbGUud2FybignQWN0aW9uIGVkaXRvciBjYW5ub3QgYmUgY2FuY2VsZWQsIGJlY2F1c2Ugbm8gYWN0aW9uIGluc3RhbmNlIGlzIHByZXNlbnQnKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFjdGlvbkNhbmNlbEV2ZW50RW1pdHRlci5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICAgIHRoaXMuYWN0aW9uRXhlY3V0b3IuZmluaXNoQWN0aW9uKHRoaXMuaW5zdGFuY2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0cmlnZ2VyU3VibWl0KCkge1xuICAgICAgICB0aGlzLmVkaXRvckNvbXBvbmVudC5zdWJtaXQoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVBc0RpYWxvZygpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRpYWxvZ0NvbmZpZz8uZGF0YSkge1xuICAgICAgICAgICAgdGhpcy5pc0RpYWxvZyA9IGZhbHNlO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pc0RpYWxvZyA9IHRydWU7XG5cbiAgICAgICAgLy8gaW5pdGlhbGl6ZSBhY3Rpb24gZnJvbSBkaWFsb2cgZGF0YVxuICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcuZGF0YS5hY3Rpb25JbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5wcm9jZXNzQWN0aW9uSW5zdGFuY2UodGhpcy5kaWFsb2dDb25maWcuZGF0YS5hY3Rpb25JbnN0YW5jZSk7XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcuZGF0YS5wcmV2aW91c0FjdGlvbkluc3RhbmNlKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcmV2aW91c0FjdGlvbkluc3RhbmNlID0gdGhpcy5kaWFsb2dDb25maWcuZGF0YS5wcmV2aW91c0FjdGlvbkluc3RhbmNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGlvbiA9IHRoaXMuaW5zdGFuY2UuYWN0aW9uIGFzIEFjdGlvbkVkaXRvckRlc2NyaXB0b3I8VD47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5pdGVtSWQgPSB0aGlzLmluc3RhbmNlPy5hY3RpdmF0aW9uUGFyYW1ldGVycz8uaXRlbUlkO1xuICAgICAgICB0aGlzLml0ZW0gPSB0aGlzLmluc3RhbmNlPy5hY3RpdmF0aW9uUGFyYW1ldGVycz8uaXRlbTtcbiAgICAgICAgdGhpcy5hY3Rpb25EYXRhID0gdGhpcy5pbnN0YW5jZT8uYWN0aXZhdGlvblBhcmFtZXRlcnM/LmFjdGlvbkRhdGE7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lciA9IHRoaXMuaW5zdGFuY2U/LmFjdGl2YXRpb25QYXJhbWV0ZXJzPy52aWV3Q29udGFpbmVyIGFzIElWaWV3Q29udGFpbmVyPFQsIFM+O1xuICAgICAgICB0aGlzLnNvdXJjZUNvbXBvbmVudCA9IHRoaXMuaW5zdGFuY2U/LmFjdGl2YXRpb25QYXJhbWV0ZXJzPy5zb3VyY2VDb21wb25lbnQ7XG4gICAgICAgIHRoaXMuZGlhbG9nUm91dGUgPSB0aGlzLmluc3RhbmNlPy5hY3RpdmF0aW9uUGFyYW1ldGVycz8ucm91dGU7XG4gICAgICAgIGlmICghdGhpcy5kYXRhUHJvdmlkZXIgJiYgdGhpcy52aWV3Q29udGFpbmVyKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRhUHJvdmlkZXIgPSB0aGlzLnZpZXdDb250YWluZXIuZ2V0RGF0YVByb3ZpZGVyKCk7XG4gICAgICAgICAgICBpZiAoZGF0YVByb3ZpZGVyICYmIHR5cGVvZiBkYXRhUHJvdmlkZXJbJ2ZldGNoJyBhcyBrZXlvZiBvYmplY3RdID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhUHJvdmlkZXIgPSBkYXRhUHJvdmlkZXIgYXMgSUVkaXRvckRhdGFQcm92aWRlcjxULCBTPjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdGlhbGl6ZUFzU3RhbmRhbG9uZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaXNEaWFsb2cpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaXRlbUlkID0gdGhpcy5pdGVtSWRJbml0O1xuICAgICAgICB0aGlzLml0ZW0gPSB0aGlzLml0ZW1Jbml0O1xuICAgICAgICB0aGlzLmluaXRpYWxpemVWaWV3Q29udGFpbmVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0aWFsaXplU3ViQWN0aW9ucygpIHtcbiAgICAgICAgZm9yIChjb25zdCBhY3Rpb24gb2YgdGhpcy5hY3Rpb24uZWRpdG9yQWN0aW9ucykge1xuICAgICAgICAgICAgaWYgKGFjdGlvbiBpbnN0YW5jZW9mIEFjdGlvbkVkaXRvclN1Ym1pdERlc2NyaXB0b3IpIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFjdGlvbi5idXR0b24uaWNvbiA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmJ1dHRvbi53aXRoSWNvbihhY3Rpb24uc3VibWl0VHlwZSA9PT0gQWN0aW9uRWRpdG9yU3VibWl0VHlwZUVudW0uU3VibWl0ID8gJ3BpIHBpLWNoZWNrJyA6ICdwaSBwaS10aW1lcycpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGFjdGlvbi5idXR0b24ubGFiZWwgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5idXR0b24ud2l0aExhYmVsKGFjdGlvbi5zdWJtaXRUeXBlID09PSBBY3Rpb25FZGl0b3JTdWJtaXRUeXBlRW51bS5TdWJtaXQgPyAnZ2VuZXJhbC5zYXZlJyA6IHRoaXMuaXNEaWFsb2cgPyAnZ2VuZXJhbC5jbG9zZScgOiAnZ2VuZXJhbC5jYW5jZWwnKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAvLyBhc3NpZ24gcnVuIG9wZXJhdGlvbnNcbiAgICAgICAgICAgICAgICBhY3Rpb24ud2l0aFJ1bk5vdGlmaWNhdGlvblN1Y2Nlc3ModW5kZWZpbmVkLCB1bmRlZmluZWQsIGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAoYWN0aW9uLnN1Ym1pdFR5cGUgPT09IEFjdGlvbkVkaXRvclN1Ym1pdFR5cGVFbnVtLlN1Ym1pdCkge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb24ud2l0aFJ1bkZ1bmN0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJpZ2dlclN1Ym1pdCgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBhY3Rpb24ud2l0aFJ1bkZ1bmN0aW9uKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuY2VsKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucGxhY2VBY3Rpb25zT25Qb3NpdGlvbnMoYWN0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgYWN0aW9uIG9mIHRoaXMudmlld0NvbnRhaW5lcj8uZ2V0QWN0aW9ucygpLmZpbHRlcih2YWx1ZSA9PiB2YWx1ZS5wb3NpdGlvblRhYmxldmlld0NhdGVnb3JpZXM/LmluY2x1ZGVzKHRoaXMuYWN0aW9uLnRhYmxldmlld0NhdGVnb3J5ISkpID8/IFtdKSB7XG4gICAgICAgICAgICB0aGlzLnBsYWNlQWN0aW9uc09uUG9zaXRpb25zKGFjdGlvbik7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMgPSB0aGlzLnRvb2xiYXJSaWdodEFjdGlvbnMucmV2ZXJzZSgpO1xuICAgICAgICB0aGlzLmZvb3RlclJpZ2h0QWN0aW9ucyA9IHRoaXMuZm9vdGVyUmlnaHRBY3Rpb25zLnJldmVyc2UoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZldGNoSXRlbSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgTW5nRXJyb3JJbnRlcm5hbChgQWN0aW9uIGlzIG5vdCBpbnN0YW50aWF0ZWQgaW4gYWN0aW9uIGVkaXRvciBmb3IgYWN0aW9uICR7dGhpcy5hY3Rpb24uYWN0aW9uTmFtZX0uYCk7XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBhY3Rpb25QYXJhbWV0ZXJzID0gbmV3IEFjdGlvblBhcmFtZXRlcnModGhpcy5pdGVtSWQsIHRoaXMuaXRlbSlcbiAgICAgICAgICAgIC53aXRoQWN0aW9uRGF0YSh0aGlzLmFjdGlvbkRhdGEpXG4gICAgICAgICAgICAud2l0aFZpZXdDb250YWluZXIodGhpcy52aWV3Q29udGFpbmVyKVxuICAgICAgICAgICAgLndpdGhTb3VyY2VDb21wb25lbnQodGhpcy5zb3VyY2VDb21wb25lbnQpO1xuICAgICAgICBpZiAodGhpcy5hY3Rpb24uZWRpdG9yRGVzY3JpcHRvci5pc0xvY2FsaXplZCkge1xuICAgICAgICAgICAgaWYgKHRoaXMuYWN0aW9uLmVkaXRvckRlc2NyaXB0b3IuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBhY3Rpb25QYXJhbWV0ZXJzLndpdGhMb2NhbGUodGhpcy5tbmdDb21tb25zU2VydmljZS5hcHBEYXRhTGFuZ3VhZ2UhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgYWN0aW9uUGFyYW1ldGVycy53aXRoTG9jYWxlKHRoaXMubW5nQ29tbW9uc1NlcnZpY2UuYXBwRGF0YUxhbmd1YWdlRGVmYXVsdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2U/LnByZXZpb3VzSW5zdGFuY2U/LmNvbnRleHQ/LnBhcmFtZXRlcnMuaXRlbSkge1xuICAgICAgICAgICAgYWN0aW9uUGFyYW1ldGVycy53aXRoRm9ybUl0ZW0odGhpcy5pbnN0YW5jZT8ucHJldmlvdXNJbnN0YW5jZT8uY29udGV4dD8ucGFyYW1ldGVycy5pdGVtKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIHRoaXMuaW5zdGFuY2U/LnByZXZpb3VzSW5zdGFuY2U/LnJlc3VsdCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIGFjdGlvblBhcmFtZXRlcnMud2l0aFN1Ym1pdFJlc3VsdCh0aGlzLmluc3RhbmNlPy5wcmV2aW91c0luc3RhbmNlPy5yZXN1bHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29udGV4dCA9IHRoaXMuYWN0aW9uRXhlY3V0b3IucHJlcGFyZUNvbnRleHRGb3JFZGl0b3JGZXRjaCh0aGlzLmFjdGlvbiwgYWN0aW9uUGFyYW1ldGVycywgdGhpcy5kYXRhUHJvdmlkZXIsIHRoaXMuaW5zdGFuY2UsIHRoaXMucHJldmlvdXNBY3Rpb25JbnN0YW5jZSk7XG4gICAgICAgIHRoaXMuZmV0Y2hFeGVjdXRpb25TdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIHRoaXMuZmV0Y2hFeGVjdXRpb25TdWJzY3JpcHRpb24gPSBjb250ZXh0LmV4ZWN1dGlvbiQucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUocmVzID0+IHtcbiAgICAgICAgICAgIHRoaXMuaXRlbSA9IHJlcyA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVRpdGxlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuYWN0aW9uRXhlY3V0b3IucnVuKGNvbnRleHQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlVGl0bGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmFjdGlvbi5lZGl0b3JUaXRsZSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy50aXRsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIGlmICh0aGlzLmRpYWxvZ0NvbmZpZykge1xuICAgICAgICAgICAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGlhbG9nQ29uZmlnIS5oZWFkZXIgPSB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gSTE4blV0aWxzLkFjdGlvbi5nZXRFZGl0b3JUaXRsZUFzeW5jKHRoaXMudHJhbnNsYXRlLCB0aGlzLmFjdGlvbiwgdGhpcy5pdGVtKS5zdWJzY3JpYmUodCA9PiB7XG4gICAgICAgICAgICB0aGlzLnRpdGxlID0gdCA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICBpZiAodGhpcy5kaWFsb2dDb25maWcpIHtcbiAgICAgICAgICAgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmRpYWxvZ0NvbmZpZyEuaGVhZGVyID0gdCA/PyB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0aGlzLmFjdGlvbi5hY3RpdmF0aW9uVHJpZ2dlciA9PT0gQWN0aW9uQWN0aXZhdGlvblRyaWdnZXJFbnVtLk9uUm91dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubW5nQ29tbW9uc1NlcnZpY2Uuc2V0UGFnZVRpdGxlKHQgPz8gdW5kZWZpbmVkKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHBsYWNlQWN0aW9uc09uUG9zaXRpb25zKGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxhbnk+KSB7XG4gICAgICAgIHN3aXRjaCAoYWN0aW9uLnBvc2l0aW9uKSB7XG4gICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyTGVmdDpcbiAgICAgICAgICAgICAgICB0aGlzLnRvb2xiYXJMZWZ0QWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Ub29sYmFyUmlnaHQ6XG4gICAgICAgICAgICAgICAgdGhpcy50b29sYmFyUmlnaHRBY3Rpb25zLnB1c2goYWN0aW9uKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgQWN0aW9uUG9zaXRpb25FbnVtLkZvb3RlckxlZnQ6XG4gICAgICAgICAgICAgICAgdGhpcy5mb290ZXJMZWZ0QWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEFjdGlvblBvc2l0aW9uRW51bS5Gb290ZXJSaWdodDpcbiAgICAgICAgICAgICAgICB0aGlzLmZvb3RlclJpZ2h0QWN0aW9ucy5wdXNoKGFjdGlvbik7XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRpYWxpemVWaWV3Q29udGFpbmVyKCkge1xuICAgICAgICBpZiAodGhpcy5pc0RpYWxvZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lciA9IHRoaXMudmlld0NvbnRhaW5lckluaXQgPz8gdGhpcy52aWV3Q29udGFpbmVyU2VydmljZSA/PyB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXRFZGl0b3JFbmFibGVkKGlzRW5hYmxlZCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5pc0Zvcm1EaXNhYmxlZCA9ICFpc0VuYWJsZWQ7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBwcm9jZXNzQWN0aW9uSW5zdGFuY2UoaW5zdGFuY2U6IEFjdGlvbkluc3RhbmNlPFQsIFM+KSB7XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSB8fCB0aGlzLmluc3RhbmNlLmluc3RhbmNlTG9uZ05hbWUgIT09IGluc3RhbmNlLmluc3RhbmNlTG9uZ05hbWUpIHtcbiAgICAgICAgICAgIHRoaXMudW5zZXRJbnN0YW5jZSgpO1xuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZSA9IGluc3RhbmNlO1xuXG4gICAgICAgICAgICB0aGlzLmluc3RhbmNlU3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLmluc3RhbmNlLnN0YXRlJC5zdWJzY3JpYmUocyA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uQWN0aXZhdGlvbkVuZDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZmV0Y2hJdGVtKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5GZXRjaFN0YXJ0OlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFZGl0b3JFbmFibGVkKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMubG9hZGluZ1N1YmplY3QubmV4dCh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZldGNoRXJyb3I6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRmV0Y2hFbmQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEVkaXRvckVuYWJsZWQodHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmxvYWRpbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uUnVuU3RhcnQ6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEVkaXRvckVuYWJsZWQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXRMb2FkaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uUnVuRW5kOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLlJ1bkVycm9yOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFZGl0b3JFbmFibGVkKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zdWJtaXRMb2FkaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaEVycm9yRmluYWw6XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnNldEVkaXRvckVuYWJsZWQoZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRmluaXNoU3VjY2Vzc0ZpbmFsOlxuICAgICAgICAgICAgICAgICAgICBjYXNlIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaERpc21pc3NlZEZpbmFsOlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRFZGl0b3JFbmFibGVkKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudW5zZXRJbnN0YW5jZSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRmluaXNoU3VjY2Vzc1JlYWN0aXZhdGVGaW5hbDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc2V0RWRpdG9yRW5hYmxlZChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBzaG91bGQgYWxzbyB1bnNldEluc3RhbmNlLCBidXQgbGV0IHRoaXMgZm9yIHJlYWN0aXZhdGlvbkluc3RhbmNlJCBsaXN0ZW5lciB0byBub3QgaW50ZXJmZXJlXG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5pbnN0YW5jZVJlYWN0aXZhdGlvblN1YnNjcmlwdGlvbiA9IHRoaXMuaW5zdGFuY2UucmVhY3RpdmF0aW9uSW5zdGFuY2UkLnN1YnNjcmliZShuZXdJbnN0YW5jZSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQWN0aW9uSW5zdGFuY2UobmV3SW5zdGFuY2UpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVuc2V0SW5zdGFuY2UoKSB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VTdGF0ZVN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZVJlYWN0aXZhdGlvblN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICB9XG59XG4iLCI8aDUgKm5nSWY9XCIhaXNEaWFsb2cgJiYgdGl0bGVcIj57eyB0aXRsZSB9fTwvaDU+XG48ZGl2IGNsYXNzPVwiaC1mdWxsIGZsZXggZmxleC1jb2x1bW5cIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93LTEgbW5nLWFjdGlvbi1lZGl0b3ItdG9vbGJhci1jb250YWluZXJcIiAqbmdJZj1cInRvb2xiYXJMZWZ0QWN0aW9ucy5sZW5ndGggPiAwIHx8IHRvb2xiYXJSaWdodEFjdGlvbnMubGVuZ3RoID4gMFwiPlxuICAgICAgICA8cC10b29sYmFyIHN0eWxlQ2xhc3M9XCJtbmctYWN0aW9uLWVkaXRvci10b29sYmFyXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwibGVmdFwiPlxuICAgICAgICAgICAgICAgIDxtbmctYWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdG9vbGJhckxlZnRBY3Rpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgW2FjdGlvbl09XCJhY3Rpb25cIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic3VibWl0TG9hZGluZyRcIlxuICAgICAgICAgICAgICAgICAgICBbbG9hZGluZ109XCIkYW55KGFjdGlvbikuc3VibWl0VHlwZSA9PT0gYWN0aW9uRWRpdG9yU3VibWl0VHlwZVN1Ym1pdCA/IHN1Ym1pdExvYWRpbmckIDogYWN0aW9uRGVmYXVsdExvYWRpbmdJbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgIFt2aWV3Q29udGFpbmVyXT1cInZpZXdDb250YWluZXJcIlxuICAgICAgICAgICAgICAgICAgICBbaG9zdENvbXBvbmVudF09XCJ0aGlzXCJcbiAgICAgICAgICAgICAgICAgICAgW3JvdXRlXT1cImRpYWxvZ1JvdXRlXCJcbiAgICAgICAgICAgICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtSWRdPVwiaXRlbUlkXCI+PC9tbmctYWN0aW9uPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBwVGVtcGxhdGU9XCJyaWdodFwiPlxuICAgICAgICAgICAgICAgIDxtbmctYWN0aW9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgdG9vbGJhclJpZ2h0QWN0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cInN1Ym1pdExvYWRpbmckXCJcbiAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmddPVwiJGFueShhY3Rpb24pLnN1Ym1pdFR5cGUgPT09IGFjdGlvbkVkaXRvclN1Ym1pdFR5cGVTdWJtaXQgPyBzdWJtaXRMb2FkaW5nJCA6IGFjdGlvbkRlZmF1bHRMb2FkaW5nSW5wdXRcIlxuICAgICAgICAgICAgICAgICAgICBbdmlld0NvbnRhaW5lcl09XCJ2aWV3Q29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICAgICAgW2hvc3RDb21wb25lbnRdPVwidGhpc1wiXG4gICAgICAgICAgICAgICAgICAgIFtyb3V0ZV09XCJkaWFsb2dSb3V0ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgICAgICBbaXRlbUlkXT1cIml0ZW1JZFwiPjwvbW5nLWFjdGlvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvcC10b29sYmFyPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtZ3Jvdy0xIG1uZy1hY3Rpb24tZWRpdG9yLWZvcm0tY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlclwiICpuZ0lmPVwibG9hZGluZyQgfCBhc3luY1wiPlxuICAgICAgICAgICAgPHAtcHJvZ3Jlc3NTcGlubmVyIFtzdHlsZV09XCJ7d2lkdGg6ICczcmVtJywgaGVpZ2h0OiAnM3JlbSd9XCIgc3Ryb2tlV2lkdGg9XCIzXCI+PC9wLXByb2dyZXNzU3Bpbm5lcj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxtbmctZm9ybS1lZGl0b3JcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uLmVkaXRvckRlc2NyaXB0b3IgJiYgKGxvYWRpbmckIHwgYXN5bmMpID09PSBmYWxzZVwiXG4gICAgICAgICAgICBbZGVzY3JpcHRvcl09XCJhY3Rpb24uZWRpdG9yRGVzY3JpcHRvclwiXG4gICAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICAgIFt2aWV3Q29udGFpbmVyXT1cInZpZXdDb250YWluZXJcIlxuICAgICAgICAgICAgW2lzRm9ybURpc2FibGVkXT1cImlzRm9ybURpc2FibGVkXCJcbiAgICAgICAgICAgIChmb3JtU3VibWl0KT1cIm9uU3VibWl0KCRldmVudClcIj5cbiAgICAgICAgPC9tbmctZm9ybS1lZGl0b3I+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXJvdyBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtbmctYWN0aW9uLWVkaXRvci1mb290ZXItY29udGFpbmVyXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8bW5nLWFjdGlvblxuICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgZm9vdGVyTGVmdEFjdGlvbnNcIlxuICAgICAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic3VibWl0TG9hZGluZyRcIlxuICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cIiRhbnkoYWN0aW9uKS5zdWJtaXRUeXBlID09PSBhY3Rpb25FZGl0b3JTdWJtaXRUeXBlU3VibWl0ID8gc3VibWl0TG9hZGluZyQgOiBhY3Rpb25EZWZhdWx0TG9hZGluZ0lucHV0XCJcbiAgICAgICAgICAgICAgICBbdmlld0NvbnRhaW5lcl09XCJ2aWV3Q29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICBbaG9zdENvbXBvbmVudF09XCJ0aGlzXCJcbiAgICAgICAgICAgICAgICBbcm91dGVdPVwiZGlhbG9nUm91dGVcIlxuICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIFtpdGVtSWRdPVwiaXRlbUlkXCI+PC9tbmctYWN0aW9uPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxtbmctYWN0aW9uXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGFjdGlvbiBvZiBmb290ZXJSaWdodEFjdGlvbnNcIlxuICAgICAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwic3VibWl0TG9hZGluZyRcIlxuICAgICAgICAgICAgICAgIFtsb2FkaW5nXT1cIiRhbnkoYWN0aW9uKS5zdWJtaXRUeXBlID09PSBhY3Rpb25FZGl0b3JTdWJtaXRUeXBlU3VibWl0ID8gc3VibWl0TG9hZGluZyQgOiBhY3Rpb25EZWZhdWx0TG9hZGluZ0lucHV0XCJcbiAgICAgICAgICAgICAgICBbdmlld0NvbnRhaW5lcl09XCJ2aWV3Q29udGFpbmVyXCJcbiAgICAgICAgICAgICAgICBbaG9zdENvbXBvbmVudF09XCJ0aGlzXCJcbiAgICAgICAgICAgICAgICBbcm91dGVdPVwiZGlhbG9nUm91dGVcIlxuICAgICAgICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgICAgICAgIFtpdGVtSWRdPVwiaXRlbUlkXCI+PC9tbmctYWN0aW9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -1,47 +0,0 @@
1
- import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { of } from 'rxjs';
4
- import { LookupDataProvider } from '../../../data-providers';
5
- import { ActionDescriptor } from '../../../descriptors/action';
6
- import { MngCommonsService } from '../../../services';
7
- import { MngDropdownComponent } from '../../form';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "../../../services";
10
- import * as i2 from "@angular/forms";
11
- export class MngDataLanguageDropdownComponent {
12
- constructor(mngCommons) {
13
- this.mngCommons = mngCommons;
14
- this.triggerActionEventEmitter = new EventEmitter();
15
- this.selectionItemsDataProvider = new LookupDataProvider(null).withLookup(() => of(mngCommons.appDataLanguages));
16
- }
17
- updateDataLanguage(dataLang) {
18
- this.mngCommons.appDataLanguage = dataLang;
19
- this.viewContainer?.reloadTable?.({});
20
- }
21
- }
22
- MngDataLanguageDropdownComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MngDataLanguageDropdownComponent, deps: [{ token: i1.MngCommonsService }], target: i0.ɵɵFactoryTarget.Component });
23
- MngDataLanguageDropdownComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.6", type: MngDataLanguageDropdownComponent, isStandalone: true, selector: "mng-data-language-dropdown", inputs: { action: "action", actionData: "actionData", item: "item", itemId: "itemId", enabled: "enabled", loading: "loading", viewContainer: "viewContainer" }, outputs: { triggerActionEventEmitter: "triggerActionEventEmitter" }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: MngDropdownComponent, descendants: true }], ngImport: i0, template: "<mng-dropdown [dataProvider]=\"selectionItemsDataProvider\" [ngModel]=\"mngCommons.appDataLanguage\" [showClear]=\"false\" (valueChange)=\"updateDataLanguage($event)\"></mng-dropdown>\n", dependencies: [{ kind: "component", type: MngDropdownComponent, selector: "mng-dropdown", inputs: ["dataProvider", "dataKeyProperty", "itemsLabelProperty", "itemsLabelTranslate", "itemsValueProperty", "itemsDisabledProperty", "multiselect", "placeholder", "showClear", "selectFirstItem", "className", "dropdownClassName", "changeValueOnBlur"], outputs: ["valueChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.6", ngImport: i0, type: MngDataLanguageDropdownComponent, decorators: [{
25
- type: Component,
26
- args: [{ standalone: true, selector: 'mng-data-language-dropdown', imports: [MngDropdownComponent, FormsModule], template: "<mng-dropdown [dataProvider]=\"selectionItemsDataProvider\" [ngModel]=\"mngCommons.appDataLanguage\" [showClear]=\"false\" (valueChange)=\"updateDataLanguage($event)\"></mng-dropdown>\n" }]
27
- }], ctorParameters: function () { return [{ type: i1.MngCommonsService }]; }, propDecorators: { action: [{
28
- type: Input
29
- }], actionData: [{
30
- type: Input
31
- }], item: [{
32
- type: Input
33
- }], itemId: [{
34
- type: Input
35
- }], enabled: [{
36
- type: Input
37
- }], loading: [{
38
- type: Input
39
- }], viewContainer: [{
40
- type: Input
41
- }], triggerActionEventEmitter: [{
42
- type: Output
43
- }], dropdown: [{
44
- type: ViewChild,
45
- args: [MngDropdownComponent]
46
- }] } });
47
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1sYW5ndWFnZS1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uL2xvY2FsaXphdGlvbi9kYXRhLWxhbmd1YWdlLWRyb3Bkb3duLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vbG9jYWxpemF0aW9uL2RhdGEtbGFuZ3VhZ2UtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBQyxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFeEIsT0FBTyxFQUFDLGtCQUFrQixFQUFDLE1BQU0seUJBQXlCLENBQUM7QUFDM0QsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFN0QsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFFcEQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sWUFBWSxDQUFDOzs7O0FBU2hELE1BQU0sT0FBTyxnQ0FBZ0M7SUFlekMsWUFBbUIsVUFBNkI7UUFBN0IsZUFBVSxHQUFWLFVBQVUsQ0FBbUI7UUFOL0IsOEJBQXlCLEdBQXNDLElBQUksWUFBWSxFQUF1QixDQUFDO1FBT3BILElBQUksQ0FBQywwQkFBMEIsR0FBRyxJQUFJLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztJQUNySCxDQUFDO0lBRU0sa0JBQWtCLENBQUMsUUFBZ0I7UUFDdEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEdBQUcsUUFBUSxDQUFDO1FBQzFDLElBQUksQ0FBQyxhQUFpRCxFQUFFLFdBQVcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7OzZIQXRCUSxnQ0FBZ0M7aUhBQWhDLGdDQUFnQyxxV0FVOUIsb0JBQW9CLGdEQzdCbkMsMkxBQ0EsNENEZWMsb0JBQW9CLGdWQUFFLFdBQVc7MkZBR2xDLGdDQUFnQztrQkFONUMsU0FBUztpQ0FDTSxJQUFJLFlBQ04sNEJBQTRCLFdBQzdCLENBQUMsb0JBQW9CLEVBQUUsV0FBVyxDQUFDO3dHQUk1QixNQUFNO3NCQUFyQixLQUFLO2dCQUNVLFVBQVU7c0JBQXpCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsT0FBTztzQkFBdEIsS0FBSztnQkFFVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNXLHlCQUF5QjtzQkFBekMsTUFBTTtnQkFDa0MsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtGb3Jtc01vZHVsZX0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQge29mfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtMb29rdXBEYXRhUHJvdmlkZXJ9IGZyb20gJy4uLy4uLy4uL2RhdGEtcHJvdmlkZXJzJztcbmltcG9ydCB7QWN0aW9uRGVzY3JpcHRvcn0gZnJvbSAnLi4vLi4vLi4vZGVzY3JpcHRvcnMvYWN0aW9uJztcbmltcG9ydCB7SVZpZXdDb250YWluZXIsIElWaWV3Q29udGFpbmVyVGFibGV9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQge01uZ0NvbW1vbnNTZXJ2aWNlfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcyc7XG5pbXBvcnQge0lkVHlwZX0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHtNbmdEcm9wZG93bkNvbXBvbmVudH0gZnJvbSAnLi4vLi4vZm9ybSc7XG5pbXBvcnQge0FjdGlvbkRhdGEsIEFjdGlvblBhcmFtZXRlcnMsIElBY3Rpb25Db21wb25lbnR9IGZyb20gJy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdtbmctZGF0YS1sYW5ndWFnZS1kcm9wZG93bicsXG4gICAgaW1wb3J0czogW01uZ0Ryb3Bkb3duQ29tcG9uZW50LCBGb3Jtc01vZHVsZV0sXG4gICAgdGVtcGxhdGVVcmw6ICdkYXRhLWxhbmd1YWdlLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBNbmdEYXRhTGFuZ3VhZ2VEcm9wZG93bkNvbXBvbmVudDxUPiBpbXBsZW1lbnRzIElBY3Rpb25Db21wb25lbnQ8VD4ge1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb24hOiBBY3Rpb25EZXNjcmlwdG9yPFQ+O1xuICAgIEBJbnB1dCgpIHB1YmxpYyBhY3Rpb25EYXRhITogQWN0aW9uRGF0YTtcbiAgICBASW5wdXQoKSBwdWJsaWMgaXRlbSE6IFQ7XG4gICAgQElucHV0KCkgcHVibGljIGl0ZW1JZCE6IElkVHlwZTtcbiAgICBASW5wdXQoKSBwdWJsaWMgZW5hYmxlZCE6IGJvb2xlYW47XG4gICAgQElucHV0KCkgcHVibGljIGxvYWRpbmchOiBib29sZWFuO1xuXG4gICAgQElucHV0KCkgcHVibGljIHZpZXdDb250YWluZXIhOiBJVmlld0NvbnRhaW5lcjxULCB1bmtub3duPjtcbiAgICBAT3V0cHV0KCkgcHVibGljIHRyaWdnZXJBY3Rpb25FdmVudEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxBY3Rpb25QYXJhbWV0ZXJzPFQ+PiA9IG5ldyBFdmVudEVtaXR0ZXI8QWN0aW9uUGFyYW1ldGVyczxUPj4oKTtcbiAgICBAVmlld0NoaWxkKE1uZ0Ryb3Bkb3duQ29tcG9uZW50KSBwcml2YXRlIGRyb3Bkb3duPzogTW5nRHJvcGRvd25Db21wb25lbnQ7XG5cbiAgICAvLyBkcm9wZG93biBwcm9wZXJ0aWVzXG4gICAgcHVibGljIHNlbGVjdGlvbkl0ZW1zRGF0YVByb3ZpZGVyOiBMb29rdXBEYXRhUHJvdmlkZXI8YW55LCBhbnk+O1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIG1uZ0NvbW1vbnM6IE1uZ0NvbW1vbnNTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuc2VsZWN0aW9uSXRlbXNEYXRhUHJvdmlkZXIgPSBuZXcgTG9va3VwRGF0YVByb3ZpZGVyKG51bGwpLndpdGhMb29rdXAoKCkgPT4gb2YobW5nQ29tbW9ucy5hcHBEYXRhTGFuZ3VhZ2VzKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHVwZGF0ZURhdGFMYW5ndWFnZShkYXRhTGFuZzogc3RyaW5nKTogdm9pZCB7XG4gICAgICAgIHRoaXMubW5nQ29tbW9ucy5hcHBEYXRhTGFuZ3VhZ2UgPSBkYXRhTGFuZztcbiAgICAgICAgKHRoaXMudmlld0NvbnRhaW5lciBhcyBJVmlld0NvbnRhaW5lclRhYmxlPFQsIHVua25vd24+KT8ucmVsb2FkVGFibGU/Lih7fSk7XG4gICAgfVxufVxuIiwiPG1uZy1kcm9wZG93biBbZGF0YVByb3ZpZGVyXT1cInNlbGVjdGlvbkl0ZW1zRGF0YVByb3ZpZGVyXCIgW25nTW9kZWxdPVwibW5nQ29tbW9ucy5hcHBEYXRhTGFuZ3VhZ2VcIiBbc2hvd0NsZWFyXT1cImZhbHNlXCIgKHZhbHVlQ2hhbmdlKT1cInVwZGF0ZURhdGFMYW5ndWFnZSgkZXZlbnQpXCI+PC9tbmctZHJvcGRvd24+XG4iXX0=
@@ -1,11 +0,0 @@
1
- /**
2
- * Default categories for tableview actions
3
- */
4
- export class TableviewActionDefaultCategories {
5
- }
6
- TableviewActionDefaultCategories.READ = 'read';
7
- TableviewActionDefaultCategories.ADD = 'add';
8
- TableviewActionDefaultCategories.EDIT = 'edit';
9
- TableviewActionDefaultCategories.DELETE = 'delete';
10
- TableviewActionDefaultCategories.DETAILS = 'details';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LWFjdGlvbi1kZWZhdWx0LWNhdGVnb3JpZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uL21vZGVscy90YWJsZXZpZXctYWN0aW9uLWRlZmF1bHQtY2F0ZWdvcmllcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxnQ0FBZ0M7O0FBQ2xCLHFDQUFJLEdBQUcsTUFBTSxDQUFDO0FBQ2Qsb0NBQUcsR0FBRyxLQUFLLENBQUM7QUFDWixxQ0FBSSxHQUFHLE1BQU0sQ0FBQztBQUNkLHVDQUFNLEdBQUcsUUFBUSxDQUFDO0FBQ2xCLHdDQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZhdWx0IGNhdGVnb3JpZXMgZm9yIHRhYmxldmlldyBhY3Rpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcyB7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRUFEID0gJ3JlYWQnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUREID0gJ2FkZCc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBFRElUID0gJ2VkaXQnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVMRVRFID0gJ2RlbGV0ZSc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBERVRBSUxTID0gJ2RldGFpbHMnO1xufVxuIl19