@mediusinc/mng-commons 6.0.0-rc.5 → 6.0.0-rc.7

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 (395) hide show
  1. package/README.md +6 -6
  2. package/core/components/notification/notification-wrapper.component.d.ts +4 -4
  3. package/core/data-list/data-list-params-helpers.d.ts +1 -0
  4. package/core/directives/component.directive.d.ts +11 -13
  5. package/core/directives/rerender.directive.d.ts +1 -1
  6. package/core/directives/template.directive.d.ts +3 -7
  7. package/core/error/error.model.d.ts +4 -4
  8. package/core/helpers/notification.d.ts +2 -2
  9. package/core/i18n/i18n-common.d.ts +2 -2
  10. package/core/provide.d.ts +3 -3
  11. package/core/styles/style-constants.d.ts +9 -8
  12. package/core/styles/style.model.d.ts +2 -1
  13. package/fesm2022/mediusinc-mng-commons-core.mjs +167 -201
  14. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  15. package/fesm2022/mediusinc-mng-commons-form-api.mjs +8 -9
  16. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  17. package/fesm2022/mediusinc-mng-commons-form.mjs +151 -52
  18. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  19. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-a8KG1NIX.mjs +30 -0
  20. package/fesm2022/mediusinc-mng-commons-table-column-toggle.component-a8KG1NIX.mjs.map +1 -0
  21. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-C2vrMoNL.mjs +2130 -0
  22. package/fesm2022/mediusinc-mng-commons-table-mediusinc-mng-commons-table-C2vrMoNL.mjs.map +1 -0
  23. package/fesm2022/mediusinc-mng-commons-table.mjs +1 -2154
  24. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  25. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +97 -49
  26. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  27. package/fesm2022/mediusinc-mng-commons-tableview.mjs +332 -293
  28. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  29. package/fesm2022/mediusinc-mng-commons.mjs.map +1 -1
  30. package/form/api/index.d.ts +1 -0
  31. package/form/api/models/empty-value.model.d.ts +7 -0
  32. package/form/components/autocomplete/autocomplete.component.d.ts +1 -2
  33. package/form/components/date-range/date-range.component.d.ts +4 -3
  34. package/form/components/dropdown/dropdown.component.d.ts +3 -2
  35. package/form/components/number-range/number-range.component.d.ts +3 -2
  36. package/form/directives/input-empty-value.directive.d.ts +40 -0
  37. package/form/directives/input-trim.directive.d.ts +3 -5
  38. package/form/index.d.ts +1 -0
  39. package/i18n/en.json +57 -8
  40. package/i18n/sl.json +1 -3
  41. package/package.json +10 -36
  42. package/provide.d.ts +2 -2
  43. package/table/components/column-toggle/column-toggle.component.d.ts +12 -0
  44. package/table/components/filter/filter-form/filter-form.component.d.ts +2 -2
  45. package/table/components/table/table.component.d.ts +0 -1
  46. package/table/helpers/filters.d.ts +3 -2
  47. package/table/helpers/notification.d.ts +2 -2
  48. package/table/provide.d.ts +7 -0
  49. package/table/services/table-metadata.service.d.ts +3 -3
  50. package/tableview/action/components/action/action.component.d.ts +1 -0
  51. package/tableview/action/components/editor/action-editor.component.d.ts +1 -1
  52. package/tableview/action/components/table/action-table.component.d.ts +2 -1
  53. package/tableview/action/helpers/notification.d.ts +3 -3
  54. package/tableview/action/models/execution/action-context.model.d.ts +2 -2
  55. package/tableview/action/services/action-executor.service.d.ts +1 -1
  56. package/tableview/api/action/descriptors/action.descriptor.d.ts +3 -3
  57. package/tableview/api/action/models/action-confirmation.model.d.ts +4 -2
  58. package/tableview/api/action/models/execution/action-context.model.d.ts +2 -2
  59. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +5 -0
  60. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +14 -10
  61. package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +10 -0
  62. package/tableview/api/editor/descriptors/field.descriptor.d.ts +36 -9
  63. package/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.d.ts +1 -1
  64. package/tableview/api/editor/models/field-action-context.model.d.ts +1 -1
  65. package/tableview/api/editor/models/field.model.d.ts +1 -2
  66. package/tableview/api/editor/models/form-editor.interface.d.ts +2 -2
  67. package/tableview/api/editor/models/formly-custom-field.model.d.ts +1 -1
  68. package/tableview/api/editor/models/formly-field.model.d.ts +2 -2
  69. package/tableview/editor/components/editor/form-editor.component.d.ts +2 -2
  70. package/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.d.ts +1 -1
  71. package/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.d.ts +2 -1
  72. package/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +4 -6
  73. package/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +0 -2
  74. package/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +2 -2
  75. package/tableview/editor/components/formly/fields/formly-field-type.abstract.component.d.ts +8 -15
  76. package/tableview/editor/components/formly/fields/formly-group-type.abstract.component.d.ts +7 -0
  77. package/tableview/editor/components/formly/fields/formly-type.abstract.component.d.ts +20 -0
  78. package/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.d.ts +11 -4
  79. package/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +2 -1
  80. package/tableview/editor/helpers/formly-config.d.ts +1 -1
  81. package/tableview/editor/helpers/notification.d.ts +3 -3
  82. package/tableview/editor/models/formly-config.model.d.ts +10 -1
  83. package/tableview/editor/models/formly.model.d.ts +23 -0
  84. package/tableview/editor/services/form-editor.service.d.ts +2 -2
  85. package/tableview/tableview/router/tableview-route-builder.d.ts +10 -3
  86. package/tableview/tableview/services/tableview-feature-config.token.d.ts +1 -1
  87. package/version-info.json +3 -3
  88. package/esm2022/core/action/action-data.model.mjs +0 -2
  89. package/esm2022/core/action/action-parameters.model.mjs +0 -2
  90. package/esm2022/core/components/notification/notification-wrapper.component.mjs +0 -50
  91. package/esm2022/core/data-list/data-list-params-helpers.mjs +0 -465
  92. package/esm2022/core/data-list/data-list.model.mjs +0 -2
  93. package/esm2022/core/data-list/filter-match.model.mjs +0 -105
  94. package/esm2022/core/data-list/filter-metadata.model.mjs +0 -2
  95. package/esm2022/core/data-providers/base.data-provider.mjs +0 -16
  96. package/esm2022/core/data-providers/lookup.data-provider.mjs +0 -2
  97. package/esm2022/core/descriptors/action.descriptor.mjs +0 -2
  98. package/esm2022/core/descriptors/column.descriptor.mjs +0 -2
  99. package/esm2022/core/descriptors/editor.descriptor.mjs +0 -2
  100. package/esm2022/core/descriptors/enum.descriptor.mjs +0 -2
  101. package/esm2022/core/descriptors/filter.descriptor.mjs +0 -2
  102. package/esm2022/core/descriptors/lookup.descriptor.mjs +0 -2
  103. package/esm2022/core/descriptors/model.descriptor.mjs +0 -2
  104. package/esm2022/core/descriptors/table.descriptor.mjs +0 -2
  105. package/esm2022/core/descriptors/tableview.descriptor.mjs +0 -2
  106. package/esm2022/core/directives/component.directive.mjs +0 -75
  107. package/esm2022/core/directives/rerender.directive.mjs +0 -25
  108. package/esm2022/core/directives/template.directive.mjs +0 -29
  109. package/esm2022/core/enum/enum-helpers.mjs +0 -90
  110. package/esm2022/core/enum/enum.model.mjs +0 -2
  111. package/esm2022/core/error/error-handler.mjs +0 -20
  112. package/esm2022/core/error/error-helpers.mjs +0 -273
  113. package/esm2022/core/error/error.model.mjs +0 -33
  114. package/esm2022/core/helpers/coercion.mjs +0 -55
  115. package/esm2022/core/helpers/date.mjs +0 -119
  116. package/esm2022/core/helpers/notification.mjs +0 -21
  117. package/esm2022/core/helpers/number.mjs +0 -19
  118. package/esm2022/core/helpers/object.mjs +0 -152
  119. package/esm2022/core/helpers/route.mjs +0 -58
  120. package/esm2022/core/helpers/string.mjs +0 -57
  121. package/esm2022/core/helpers/templates.mjs +0 -4
  122. package/esm2022/core/helpers/type-helpers.mjs +0 -2
  123. package/esm2022/core/i18n/i18n-common.mjs +0 -24
  124. package/esm2022/core/i18n/i18n-error.mjs +0 -29
  125. package/esm2022/core/i18n/i18n-type.mjs +0 -46
  126. package/esm2022/core/index.mjs +0 -107
  127. package/esm2022/core/log/log-publisher-console.service.mjs +0 -40
  128. package/esm2022/core/log/log.model.mjs +0 -10
  129. package/esm2022/core/log/logger.service.mjs +0 -131
  130. package/esm2022/core/mediusinc-mng-commons-core.mjs +0 -5
  131. package/esm2022/core/models/class-attribute.model.mjs +0 -2
  132. package/esm2022/core/models/class-service.model.mjs +0 -2
  133. package/esm2022/core/models/getter.model.mjs +0 -2
  134. package/esm2022/core/models/i18n.model.mjs +0 -2
  135. package/esm2022/core/models/menu.model.mjs +0 -2
  136. package/esm2022/core/models/user.model.mjs +0 -2
  137. package/esm2022/core/models/version.model.mjs +0 -2
  138. package/esm2022/core/pipes/boolean.pipe.mjs +0 -34
  139. package/esm2022/core/pipes/class-map.pipe.mjs +0 -23
  140. package/esm2022/core/pipes/enum.pipe.mjs +0 -38
  141. package/esm2022/core/pipes/enumerate-async.pipe.mjs +0 -36
  142. package/esm2022/core/pipes/enumerate.pipe.mjs +0 -49
  143. package/esm2022/core/pipes/getter.pipe.mjs +0 -21
  144. package/esm2022/core/pipes/i18n-property.pipe.mjs +0 -19
  145. package/esm2022/core/pipes/json-path.pipe.mjs +0 -25
  146. package/esm2022/core/pipes/parametrize.pipe.mjs +0 -86
  147. package/esm2022/core/pipes/template.pipe.mjs +0 -25
  148. package/esm2022/core/provide.mjs +0 -79
  149. package/esm2022/core/reactivity/effect.mjs +0 -22
  150. package/esm2022/core/reflect/type-enum-decorator.mjs +0 -12
  151. package/esm2022/core/reflect/type-enum-metadata.mjs +0 -62
  152. package/esm2022/core/registry/registry.model.mjs +0 -2
  153. package/esm2022/core/registry/type-registry.mjs +0 -106
  154. package/esm2022/core/router/route-builder.mjs +0 -431
  155. package/esm2022/core/router/router.model.mjs +0 -2
  156. package/esm2022/core/router/routes-builder.mjs +0 -52
  157. package/esm2022/core/rxjs/map-data-list-result-operator.mjs +0 -22
  158. package/esm2022/core/security/permission-helpers.mjs +0 -14
  159. package/esm2022/core/security/permission.guard.mjs +0 -15
  160. package/esm2022/core/security/permission.service.mjs +0 -101
  161. package/esm2022/core/security/permissions.model.mjs +0 -93
  162. package/esm2022/core/services/commons-configuration.service.mjs +0 -189
  163. package/esm2022/core/services/commons-init.service.mjs +0 -111
  164. package/esm2022/core/services/commons-router.service.mjs +0 -181
  165. package/esm2022/core/services/commons-storage.service.mjs +0 -31
  166. package/esm2022/core/services/commons.service.mjs +0 -324
  167. package/esm2022/core/services/providers/commons-init.provider.mjs +0 -4
  168. package/esm2022/core/services/tokens/browser-storage.token.mjs +0 -3
  169. package/esm2022/core/services/tokens/commons-init.token.mjs +0 -3
  170. package/esm2022/core/services/tokens/log-publisher.token.mjs +0 -3
  171. package/esm2022/core/services/tokens/module-config.token.mjs +0 -3
  172. package/esm2022/core/styles/style-constants.mjs +0 -11
  173. package/esm2022/core/styles/style.model.mjs +0 -20
  174. package/esm2022/filter/descriptors/filter-generic.descriptor.mjs +0 -31
  175. package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +0 -168
  176. package/esm2022/filter/descriptors/filter.descriptor.mjs +0 -421
  177. package/esm2022/filter/index.mjs +0 -8
  178. package/esm2022/filter/mediusinc-mng-commons-filter.mjs +0 -5
  179. package/esm2022/filter/models/filter-generic-property.model.mjs +0 -2
  180. package/esm2022/filter/models/filter.model.mjs +0 -20
  181. package/esm2022/form/api/data-providers/lookup-data-provider.factory.mjs +0 -15
  182. package/esm2022/form/api/data-providers/lookup.data-provider.mjs +0 -15
  183. package/esm2022/form/api/descriptors/action-button.descriptor.mjs +0 -56
  184. package/esm2022/form/api/descriptors/button-style.builder.mjs +0 -153
  185. package/esm2022/form/api/index.mjs +0 -10
  186. package/esm2022/form/api/mediusinc-mng-commons-form-api.mjs +0 -5
  187. package/esm2022/form/api/models/button.model.mjs +0 -2
  188. package/esm2022/form/api/models/trim.model.mjs +0 -2
  189. package/esm2022/form/components/autocomplete/autocomplete.component.mjs +0 -436
  190. package/esm2022/form/components/date-range/date-range.component.mjs +0 -147
  191. package/esm2022/form/components/dropdown/dropdown.component.mjs +0 -372
  192. package/esm2022/form/components/number-range/number-range.component.mjs +0 -123
  193. package/esm2022/form/directives/input-trim.directive.mjs +0 -50
  194. package/esm2022/form/index.mjs +0 -8
  195. package/esm2022/form/mediusinc-mng-commons-form.mjs +0 -5
  196. package/esm2022/index.mjs +0 -2
  197. package/esm2022/mediusinc-mng-commons.mjs +0 -5
  198. package/esm2022/model/class/data-providers/base-from-class-data-provider.factory.mjs +0 -5
  199. package/esm2022/model/class/descriptors/model-class.descriptor.mjs +0 -28
  200. package/esm2022/model/class/descriptors/type-class.descriptor.mjs +0 -6
  201. package/esm2022/model/class/helpers/model.mjs +0 -53
  202. package/esm2022/model/class/index.mjs +0 -8
  203. package/esm2022/model/class/mediusinc-mng-commons-model-class.mjs +0 -5
  204. package/esm2022/model/data-providers/base-from-type-data-provider.factory.mjs +0 -13
  205. package/esm2022/model/descriptors/enum.descriptor.mjs +0 -28
  206. package/esm2022/model/descriptors/model.descriptor.mjs +0 -53
  207. package/esm2022/model/descriptors/type.descriptor.mjs +0 -7
  208. package/esm2022/model/helpers/i18n.mjs +0 -47
  209. package/esm2022/model/index.mjs +0 -9
  210. package/esm2022/model/mediusinc-mng-commons-model.mjs +0 -5
  211. package/esm2022/provide.mjs +0 -6
  212. package/esm2022/table/api/class/class-table-attribute-converter.mjs +0 -80
  213. package/esm2022/table/api/class/class-table-attribute.model.mjs +0 -2
  214. package/esm2022/table/api/class/class-table-data-provider.factory.mjs +0 -5
  215. package/esm2022/table/api/class/class-table-descriptor-helpers.mjs +0 -99
  216. package/esm2022/table/api/class/class-table-descriptor.factory.mjs +0 -21
  217. package/esm2022/table/api/class/index.mjs +0 -6
  218. package/esm2022/table/api/class/mediusinc-mng-commons-table-api-class.mjs +0 -5
  219. package/esm2022/table/api/data-providers/table-data-provider.factory.mjs +0 -15
  220. package/esm2022/table/api/data-providers/table.data-provider.mjs +0 -33
  221. package/esm2022/table/api/descriptors/column.descriptor.mjs +0 -475
  222. package/esm2022/table/api/descriptors/sort.descriptor.mjs +0 -67
  223. package/esm2022/table/api/descriptors/table-descriptor.factory.mjs +0 -22
  224. package/esm2022/table/api/descriptors/table.descriptor.mjs +0 -1116
  225. package/esm2022/table/api/helpers/column-converter.mjs +0 -25
  226. package/esm2022/table/api/helpers/table-data-provider-descriptor-convert.mjs +0 -7
  227. package/esm2022/table/api/index.mjs +0 -19
  228. package/esm2022/table/api/mediusinc-mng-commons-table-api.mjs +0 -5
  229. package/esm2022/table/api/models/column-value.model.mjs +0 -2
  230. package/esm2022/table/api/models/column.model.mjs +0 -21
  231. package/esm2022/table/api/models/row-expandable-component.model.mjs +0 -2
  232. package/esm2022/table/api/models/table-columns.model.mjs +0 -2
  233. package/esm2022/table/api/models/table-event.model.mjs +0 -2
  234. package/esm2022/table/api/models/table.model.mjs +0 -21
  235. package/esm2022/table/components/column-filter/column-filter.component.mjs +0 -389
  236. package/esm2022/table/components/column-value/column-value.component.mjs +0 -78
  237. package/esm2022/table/components/filter/filter-active-tag/filter-active-tag.component.mjs +0 -55
  238. package/esm2022/table/components/filter/filter-form/filter-form.component.mjs +0 -226
  239. package/esm2022/table/components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component.mjs +0 -219
  240. package/esm2022/table/components/table/table.component.mjs +0 -319
  241. package/esm2022/table/helpers/filters.mjs +0 -312
  242. package/esm2022/table/helpers/notification.mjs +0 -21
  243. package/esm2022/table/helpers/table-layout-prefs.mjs +0 -10
  244. package/esm2022/table/helpers/table.mjs +0 -24
  245. package/esm2022/table/index.mjs +0 -24
  246. package/esm2022/table/mediusinc-mng-commons-table.mjs +0 -5
  247. package/esm2022/table/models/column-preferences.model.mjs +0 -2
  248. package/esm2022/table/models/filter.model.mjs +0 -2
  249. package/esm2022/table/pipes/filter-value.pipe.mjs +0 -77
  250. package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +0 -27
  251. package/esm2022/table/pipes/table-column-filter-class.pipe.mjs +0 -25
  252. package/esm2022/table/provide.mjs +0 -19
  253. package/esm2022/table/services/table-data.service.mjs +0 -194
  254. package/esm2022/table/services/table-feature-config.token.mjs +0 -3
  255. package/esm2022/table/services/table-metadata.service.mjs +0 -136
  256. package/esm2022/table/services/table-preferences.service.mjs +0 -142
  257. package/esm2022/tableview/action/components/action/action.component.mjs +0 -277
  258. package/esm2022/tableview/action/components/editor/action-editor.component.mjs +0 -86
  259. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +0 -428
  260. package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +0 -35
  261. package/esm2022/tableview/action/components/route/action-route.component.mjs +0 -146
  262. package/esm2022/tableview/action/components/table/action-table.component.mjs +0 -102
  263. package/esm2022/tableview/action/guards/unsaved-changes.guard.mjs +0 -4
  264. package/esm2022/tableview/action/helpers/action-execution.mjs +0 -25
  265. package/esm2022/tableview/action/helpers/i18n.mjs +0 -102
  266. package/esm2022/tableview/action/helpers/notification.mjs +0 -78
  267. package/esm2022/tableview/action/helpers/styles.mjs +0 -32
  268. package/esm2022/tableview/action/models/action-editor-dialog-data.model.mjs +0 -2
  269. package/esm2022/tableview/action/models/can-component-deactivate.model.mjs +0 -2
  270. package/esm2022/tableview/action/models/execution/action-context.model.mjs +0 -64
  271. package/esm2022/tableview/action/models/execution/action-instance.model.mjs +0 -169
  272. package/esm2022/tableview/action/services/action-error-mapper.service.mjs +0 -20
  273. package/esm2022/tableview/action/services/action-executor.service.mjs +0 -772
  274. package/esm2022/tableview/action/services/component-action-executor.service.mjs +0 -19
  275. package/esm2022/tableview/action/services/data-provider-executor.service.mjs +0 -41
  276. package/esm2022/tableview/action/services/navigation.service.mjs +0 -53
  277. package/esm2022/tableview/action/services/providers/provide-action-executor.mjs +0 -9
  278. package/esm2022/tableview/action/services/providers/provide-view-container.mjs +0 -17
  279. package/esm2022/tableview/action/services/root-action-executor.service.mjs +0 -18
  280. package/esm2022/tableview/action/services/tokens/action-editor.token.mjs +0 -3
  281. package/esm2022/tableview/action/services/view-container.service.mjs +0 -40
  282. package/esm2022/tableview/api/action/descriptors/action-descriptor.factory.mjs +0 -28
  283. package/esm2022/tableview/api/action/descriptors/action-editor-descriptor.factory.mjs +0 -30
  284. package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +0 -223
  285. package/esm2022/tableview/api/action/descriptors/action-link-descriptor.factory.mjs +0 -32
  286. package/esm2022/tableview/api/action/descriptors/action-link.descriptor.mjs +0 -74
  287. package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +0 -302
  288. package/esm2022/tableview/api/action/descriptors/editor-action-descriptor.factory.mjs +0 -21
  289. package/esm2022/tableview/api/action/descriptors/editor-action-editor-descriptor.factory.mjs +0 -21
  290. package/esm2022/tableview/api/action/descriptors/table-action-descriptor.factory.mjs +0 -37
  291. package/esm2022/tableview/api/action/descriptors/table-action-editor-descriptor.factory.mjs +0 -40
  292. package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +0 -100
  293. package/esm2022/tableview/api/action/models/action-component.model.mjs +0 -2
  294. package/esm2022/tableview/api/action/models/action-confirmation.model.mjs +0 -2
  295. package/esm2022/tableview/api/action/models/action-descriptor.types.mjs +0 -2
  296. package/esm2022/tableview/api/action/models/action-editor.model.mjs +0 -2
  297. package/esm2022/tableview/api/action/models/action-error.model.mjs +0 -14
  298. package/esm2022/tableview/api/action/models/action.type.mjs +0 -26
  299. package/esm2022/tableview/api/action/models/execution/action-context-validation.model.mjs +0 -2
  300. package/esm2022/tableview/api/action/models/execution/action-context.model.mjs +0 -2
  301. package/esm2022/tableview/api/action/models/execution/action-execution-error.model.mjs +0 -2
  302. package/esm2022/tableview/api/action/models/execution/action-instance-state.model.mjs +0 -32
  303. package/esm2022/tableview/api/action/models/execution/action-instance.model.mjs +0 -2
  304. package/esm2022/tableview/api/action/models/execution/view-container.model.mjs +0 -2
  305. package/esm2022/tableview/api/action/models/tableview-action-default-categories.model.mjs +0 -11
  306. package/esm2022/tableview/api/action/services/data-provider-executor.service.mjs +0 -28
  307. package/esm2022/tableview/api/action/services/tokens/data-language-dropdown.token.mjs +0 -3
  308. package/esm2022/tableview/api/class/editor/class-editor-attribute-converter.mjs +0 -85
  309. package/esm2022/tableview/api/class/editor/class-editor-attribute.model.mjs +0 -2
  310. package/esm2022/tableview/api/class/editor/class-editor-data-provider.factory.mjs +0 -5
  311. package/esm2022/tableview/api/class/editor/class-editor-descriptor-helpers.mjs +0 -95
  312. package/esm2022/tableview/api/class/editor/class-editor-descriptor.factory.mjs +0 -21
  313. package/esm2022/tableview/api/class/index.mjs +0 -13
  314. package/esm2022/tableview/api/class/mediusinc-mng-commons-tableview-api-class.mjs +0 -5
  315. package/esm2022/tableview/api/class/tableview/class-tableview-attribute-converter.mjs +0 -35
  316. package/esm2022/tableview/api/class/tableview/class-tableview-attribute.model.mjs +0 -2
  317. package/esm2022/tableview/api/class/tableview/class-tableview-data-provider.factory.mjs +0 -5
  318. package/esm2022/tableview/api/class/tableview/class-tableview-descriptor-helpers.mjs +0 -111
  319. package/esm2022/tableview/api/class/tableview/class-tableview-descriptor.factory.mjs +0 -26
  320. package/esm2022/tableview/api/editor/data-providers/editor-data-provider.factory.mjs +0 -15
  321. package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +0 -114
  322. package/esm2022/tableview/api/editor/descriptors/editor-descriptor.factory.mjs +0 -15
  323. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +0 -437
  324. package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +0 -51
  325. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +0 -314
  326. package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +0 -103
  327. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +0 -211
  328. package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +0 -142
  329. package/esm2022/tableview/api/editor/descriptors/field-validation.descriptor.mjs +0 -25
  330. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +0 -402
  331. package/esm2022/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.mjs +0 -51
  332. package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +0 -2
  333. package/esm2022/tableview/api/editor/models/editor.model.mjs +0 -9
  334. package/esm2022/tableview/api/editor/models/field-action-context.model.mjs +0 -2
  335. package/esm2022/tableview/api/editor/models/field-image-preview.model.mjs +0 -2
  336. package/esm2022/tableview/api/editor/models/field-validation.model.mjs +0 -2
  337. package/esm2022/tableview/api/editor/models/field.model.mjs +0 -57
  338. package/esm2022/tableview/api/editor/models/form-editor.event.mjs +0 -28
  339. package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +0 -2
  340. package/esm2022/tableview/api/editor/models/formly-custom-field.model.mjs +0 -70
  341. package/esm2022/tableview/api/editor/models/formly-field.model.mjs +0 -2
  342. package/esm2022/tableview/api/editor/models/formly-options.model.mjs +0 -2
  343. package/esm2022/tableview/api/editor/models/radio.model.mjs +0 -2
  344. package/esm2022/tableview/api/index.mjs +0 -76
  345. package/esm2022/tableview/api/mediusinc-mng-commons-tableview-api.mjs +0 -5
  346. package/esm2022/tableview/api/tableview/data-providers/tableview-data-provider.factory.mjs +0 -18
  347. package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +0 -84
  348. package/esm2022/tableview/api/tableview/descriptors/tableview-descriptor.factory.mjs +0 -34
  349. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +0 -377
  350. package/esm2022/tableview/api/tableview/helpers/files-export.mjs +0 -34
  351. package/esm2022/tableview/api/tableview/helpers/tableview-create.mjs +0 -26
  352. package/esm2022/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.mjs +0 -7
  353. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +0 -324
  354. package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +0 -319
  355. package/esm2022/tableview/api/tableview/models/tableview-descriptor-fields-manage-helper.type.mjs +0 -2
  356. package/esm2022/tableview/api/tableview/models/tableview-descriptor-helper.type.mjs +0 -2
  357. package/esm2022/tableview/api/tableview/models/tableview-input.model.mjs +0 -2
  358. package/esm2022/tableview/api/tableview/models/tableview-route.model.mjs +0 -2
  359. package/esm2022/tableview/editor/components/editor/auto-save-status/auto-save-status.component.mjs +0 -82
  360. package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +0 -480
  361. package/esm2022/tableview/editor/components/formly/constants.mjs +0 -2
  362. package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +0 -66
  363. package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +0 -47
  364. package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +0 -39
  365. package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +0 -165
  366. package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +0 -42
  367. package/esm2022/tableview/editor/components/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +0 -34
  368. package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +0 -211
  369. package/esm2022/tableview/editor/components/formly/fields/formly-field-label/formly-field-label.component.mjs +0 -23
  370. package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +0 -195
  371. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +0 -239
  372. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +0 -205
  373. package/esm2022/tableview/editor/components/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +0 -28
  374. package/esm2022/tableview/editor/components/formly/fields/formly-field-type.abstract.component.mjs +0 -46
  375. package/esm2022/tableview/editor/components/formly/pipes/formly-field-label.pipe.mjs +0 -19
  376. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +0 -33
  377. package/esm2022/tableview/editor/components/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +0 -59
  378. package/esm2022/tableview/editor/helpers/editor-autosave.mjs +0 -49
  379. package/esm2022/tableview/editor/helpers/editor-field.mjs +0 -39
  380. package/esm2022/tableview/editor/helpers/editor-formly.mjs +0 -388
  381. package/esm2022/tableview/editor/helpers/editor-validators.mjs +0 -25
  382. package/esm2022/tableview/editor/helpers/field-create.mjs +0 -21
  383. package/esm2022/tableview/editor/helpers/formly-config.mjs +0 -260
  384. package/esm2022/tableview/editor/helpers/notification.mjs +0 -11
  385. package/esm2022/tableview/editor/models/editor-auto-save-preview.model.mjs +0 -2
  386. package/esm2022/tableview/editor/models/formly-config.model.mjs +0 -2
  387. package/esm2022/tableview/editor/services/form-editor.service.mjs +0 -96
  388. package/esm2022/tableview/editor/services/formly-config.provider.mjs +0 -31
  389. package/esm2022/tableview/index.mjs +0 -67
  390. package/esm2022/tableview/mediusinc-mng-commons-tableview.mjs +0 -5
  391. package/esm2022/tableview/provide.mjs +0 -105
  392. package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +0 -15
  393. package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +0 -59
  394. package/esm2022/tableview/tableview/router/tableview-route-builder.mjs +0 -175
  395. package/esm2022/tableview/tableview/services/tableview-feature-config.token.mjs +0 -3
@@ -1,147 +0,0 @@
1
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, DestroyRef, Injector, booleanAttribute, effect, forwardRef, inject, input } from '@angular/core';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { FormBuilder, FormsModule, NG_VALIDATORS, NG_VALUE_ACCESSOR, ReactiveFormsModule, Validators } from '@angular/forms';
4
- import { CalendarModule } from 'primeng/calendar';
5
- import { merge } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/forms";
8
- import * as i2 from "primeng/calendar";
9
- export const DATE_RANGE_VALUE_ACCESSOR = {
10
- provide: NG_VALUE_ACCESSOR,
11
- useExisting: forwardRef(() => DateRangeComponent),
12
- multi: true
13
- };
14
- export const DATE_RANGE_VALIDATOR = {
15
- provide: NG_VALIDATORS,
16
- useExisting: forwardRef(() => DateRangeComponent),
17
- multi: true
18
- };
19
- export class DateRangeComponent {
20
- constructor() {
21
- this.formBuilder = inject(FormBuilder);
22
- this.injector = inject(Injector);
23
- this.destroyRef = inject(DestroyRef);
24
- this.cdr = inject(ChangeDetectorRef);
25
- this.placeholder = input();
26
- this.showTime = input(false);
27
- this.showSeconds = input(false);
28
- this.dateFormat = input();
29
- this.className = input();
30
- this.required = input(false, { transform: booleanAttribute });
31
- this.disabled = input(false, {
32
- transform: booleanAttribute
33
- });
34
- // eslint-disable-next-line @typescript-eslint/no-empty-function
35
- this.onChangeFn = () => { };
36
- // eslint-disable-next-line @typescript-eslint/no-empty-function
37
- this.onTouchedFn = () => { };
38
- // eslint-disable-next-line @typescript-eslint/no-empty-function
39
- this.onValidatorChangeFn = () => { };
40
- }
41
- get fromCtrl() {
42
- return this.fromToFormControl.get('from');
43
- }
44
- get toCtrl() {
45
- return this.fromToFormControl.get('to');
46
- }
47
- get dateRangeCtrl() {
48
- return this.fromToFormControl.get('dateRange');
49
- }
50
- ngOnInit() {
51
- this.fromToFormControl = this.formBuilder.group({
52
- from: [null, Validators.required],
53
- to: [null, Validators.required],
54
- dateRange: [null, Validators.required]
55
- });
56
- effect(() => {
57
- this.setDisabledState(this.disabled());
58
- }, { injector: this.injector });
59
- merge(this.fromCtrl.valueChanges, this.toCtrl.valueChanges, this.dateRangeCtrl.valueChanges)
60
- .pipe(takeUntilDestroyed(this.destroyRef))
61
- .subscribe(() => this.onValueChange());
62
- }
63
- registerOnChange(fn) {
64
- this.onChangeFn = fn;
65
- }
66
- registerOnTouched(fn) {
67
- this.onTouchedFn = fn;
68
- }
69
- registerOnValidatorChange(fn) {
70
- this.onValidatorChangeFn = fn;
71
- }
72
- setDisabledState(isDisabled) {
73
- if (isDisabled && this.fromToFormControl?.enabled) {
74
- this.fromToFormControl.disable();
75
- }
76
- else if (!isDisabled && this.fromToFormControl?.disabled) {
77
- this.fromToFormControl.enable();
78
- }
79
- }
80
- onBlur() {
81
- this.onTouchedFn();
82
- }
83
- writeValue(obj) {
84
- let startDate = null;
85
- let endDate = null;
86
- if (Array.isArray(obj)) {
87
- if (obj.length > 0 && (obj[0] instanceof Date || typeof obj[0] === 'string' || typeof obj[0] === 'number')) {
88
- startDate = new Date(obj[0]);
89
- }
90
- if (obj.length > 1 && (obj[1] instanceof Date || typeof obj[1] === 'string' || typeof obj[1] === 'number')) {
91
- endDate = new Date(obj[1]);
92
- }
93
- }
94
- else if (obj instanceof Date || typeof obj === 'string' || typeof obj === 'number') {
95
- startDate = new Date(obj);
96
- }
97
- if (this.showTime()) {
98
- this.fromCtrl.setValue(startDate, { emitEvent: false });
99
- this.toCtrl.setValue(endDate, { emitEvent: false });
100
- }
101
- else if (startDate || endDate) {
102
- this.dateRangeCtrl.setValue([startDate, endDate], { emitEvent: false });
103
- }
104
- else {
105
- this.dateRangeCtrl.setValue(null, { emitEvent: false });
106
- }
107
- }
108
- validate() {
109
- if (!this.required())
110
- return null;
111
- if (this.showTime()) {
112
- if (this.fromCtrl.hasError('required') || this.toCtrl.hasError('required')) {
113
- return {
114
- required: true
115
- };
116
- }
117
- }
118
- else {
119
- if (this.dateRangeCtrl.hasError('required')) {
120
- return {
121
- required: true
122
- };
123
- }
124
- }
125
- return null;
126
- }
127
- onValueChange() {
128
- if (this.showTime()) {
129
- const fromDate = this.fromCtrl.value;
130
- const toDate = this.toCtrl.value;
131
- this.onChangeFn([fromDate, toDate]);
132
- }
133
- else {
134
- const date = this.dateRangeCtrl.value;
135
- this.onChangeFn(date);
136
- }
137
- }
138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DateRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.12", type: DateRangeComponent, isStandalone: true, selector: "mng-date-range", inputs: { placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, showTime: { classPropertyName: "showTime", publicName: "showTime", isSignal: true, isRequired: false, transformFunction: null }, showSeconds: { classPropertyName: "showSeconds", publicName: "showSeconds", isSignal: true, isRequired: false, transformFunction: null }, dateFormat: { classPropertyName: "dateFormat", publicName: "dateFormat", isSignal: true, isRequired: false, transformFunction: null }, className: { classPropertyName: "className", publicName: "className", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "className()" } }, providers: [DATE_RANGE_VALUE_ACCESSOR, DATE_RANGE_VALIDATOR], ngImport: i0, template: "@if (showTime()) {\n <div class=\"flex gap-2\">\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"fromCtrl\"\n [maxDate]=\"toCtrl.value\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n [showTime]=\"true\"\n [showSeconds]=\"showSeconds()\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"toCtrl\"\n [minDate]=\"fromCtrl.value\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n [showTime]=\"true\"\n [showSeconds]=\"showSeconds()\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n </div>\n} @else {\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"dateRangeCtrl\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n selectionMode=\"range\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n}\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "ngmodule", type: CalendarModule }, { kind: "component", type: i2.Calendar, selector: "p-calendar", inputs: ["iconDisplay", "style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "ariaLabel", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepYearPicker", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "startWeekFromFirstDayOfYear", "showClear", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autofocus", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "variant", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale", "view", "defaultDate"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onClear", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
140
- }
141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.12", ngImport: i0, type: DateRangeComponent, decorators: [{
142
- type: Component,
143
- args: [{ standalone: true, selector: 'mng-date-range', providers: [DATE_RANGE_VALUE_ACCESSOR, DATE_RANGE_VALIDATOR], imports: [FormsModule, CalendarModule, ReactiveFormsModule], changeDetection: ChangeDetectionStrategy.OnPush, host: {
144
- '[class]': 'className()'
145
- }, template: "@if (showTime()) {\n <div class=\"flex gap-2\">\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"fromCtrl\"\n [maxDate]=\"toCtrl.value\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n [showTime]=\"true\"\n [showSeconds]=\"showSeconds()\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"toCtrl\"\n [minDate]=\"fromCtrl.value\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n [showTime]=\"true\"\n [showSeconds]=\"showSeconds()\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n </div>\n} @else {\n <p-calendar\n appendTo=\"body\"\n [formControl]=\"dateRangeCtrl\"\n [placeholder]=\"placeholder()\"\n [dateFormat]=\"dateFormat()\"\n selectionMode=\"range\"\n [showIcon]=\"true\"\n [firstDayOfWeek]=\"1\"\n (onBlur)=\"onBlur()\"></p-calendar>\n}\n" }]
146
- }] });
147
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9mb3JtL3NyYy9jb21wb25lbnRzL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9mb3JtL3NyYy9jb21wb25lbnRzL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUVWLFFBQVEsRUFFUixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNSLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLDRCQUE0QixDQUFDO0FBQzlELE9BQU8sRUFFSCxXQUFXLEVBR1gsV0FBVyxFQUNYLGFBQWEsRUFDYixpQkFBaUIsRUFDakIsbUJBQW1CLEVBR25CLFVBQVUsRUFDYixNQUFNLGdCQUFnQixDQUFDO0FBRXhCLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQkFBa0IsQ0FBQztBQUNoRCxPQUFPLEVBQUMsS0FBSyxFQUFDLE1BQU0sTUFBTSxDQUFDOzs7O0FBRTNCLE1BQU0sQ0FBQyxNQUFNLHlCQUF5QixHQUFxQjtJQUN2RCxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQXFCO0lBQ2xELE9BQU8sRUFBRSxhQUFhO0lBQ3RCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsa0JBQWtCLENBQUM7SUFDakQsS0FBSyxFQUFFLElBQUk7Q0FDZCxDQUFDO0FBYUYsTUFB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QUNKLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztnQkFDMUMsT0FBTztvQkFDSCxRQUFRLEVBQUUsSUFBSTtpQkFDakIsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVPLGFBQWE7UUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNsQixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQWEsQ0FBQztZQUM3QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQWEsQ0FBQztZQUN6QyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDeEMsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQWUsQ0FBQztZQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDOytHQXRJUSxrQkFBa0I7bUdBQWxCLGtCQUFrQiw2aENBUGhCLENBQUMseUJBQXlCLEVBQUUsb0JBQW9CLENBQUMsMEJDaERoRSxnc0NBb0NBLDJDRGFjLFdBQVcsc0lBQUUsY0FBYywwekNBQUUsbUJBQW1COzs0RkFNakQsa0JBQWtCO2tCQVg5QixTQUFTO2lDQUNNLElBQUksWUFDTixnQkFBZ0IsYUFFZixDQUFDLHlCQUF5QixFQUFFLG9CQUFvQixDQUFDLFdBQ25ELENBQUMsV0FBVyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxtQkFDMUMsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixTQUFTLEVBQUUsYUFBYTtxQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIEV4aXN0aW5nUHJvdmlkZXIsXG4gICAgSW5qZWN0b3IsXG4gICAgT25Jbml0LFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgZWZmZWN0LFxuICAgIGZvcndhcmRSZWYsXG4gICAgaW5qZWN0LFxuICAgIGlucHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHt0YWtlVW50aWxEZXN0cm95ZWR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUNvbnRyb2wsXG4gICAgRm9ybUdyb3VwLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE5HX1ZBTElEQVRPUlMsXG4gICAgTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICBWYWxpZGF0aW9uRXJyb3JzLFxuICAgIFZhbGlkYXRvcixcbiAgICBWYWxpZGF0b3JzXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtDYWxlbmRhck1vZHVsZX0gZnJvbSAncHJpbWVuZy9jYWxlbmRhcic7XG5pbXBvcnQge21lcmdlfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNvbnN0IERBVEVfUkFOR0VfVkFMVUVfQUNDRVNTT1I6IEV4aXN0aW5nUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVJhbmdlQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcblxuZXhwb3J0IGNvbnN0IERBVEVfUkFOR0VfVkFMSURBVE9SOiBFeGlzdGluZ1Byb3ZpZGVyID0ge1xuICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVJhbmdlQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZVxufTtcblxuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBzZWxlY3RvcjogJ21uZy1kYXRlLXJhbmdlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1yYW5nZS5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJvdmlkZXJzOiBbREFURV9SQU5HRV9WQUxVRV9BQ0NFU1NPUiwgREFURV9SQU5HRV9WQUxJREFUT1JdLFxuICAgIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgQ2FsZW5kYXJNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzc10nOiAnY2xhc3NOYW1lKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBEYXRlUmFuZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBWYWxpZGF0b3Ige1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZm9ybUJ1aWxkZXIgPSBpbmplY3QoRm9ybUJ1aWxkZXIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICBwdWJsaWMgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHNob3dUaW1lID0gaW5wdXQoZmFsc2UpO1xuICAgIHB1YmxpYyBzaG93U2Vjb25kcyA9IGlucHV0KGZhbHNlKTtcbiAgICBwdWJsaWMgZGF0ZUZvcm1hdCA9IGlucHV0PHN0cmluZz4oKTtcbiAgICBwdWJsaWMgY2xhc3NOYW1lID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIHB1YmxpYyByZXF1aXJlZCA9IGlucHV0KGZhbHNlLCB7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSk7XG4gICAgcHVibGljIGRpc2FibGVkID0gaW5wdXQoZmFsc2UsIHtcbiAgICAgICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlXG4gICAgfSk7XG5cbiAgICBwcml2YXRlIGZyb21Ub0Zvcm1Db250cm9sITogRm9ybUdyb3VwO1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHByaXZhdGUgb25DaGFuZ2VGbjogYW55ID0gKCkgPT4ge307XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICAgIHByaXZhdGUgb25Ub3VjaGVkRm46IGFueSA9ICgpID0+IHt9O1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgICBwcml2YXRlIG9uVmFsaWRhdG9yQ2hhbmdlRm46IGFueSA9ICgpID0+IHt9O1xuXG4gICAgcHVibGljIGdldCBmcm9tQ3RybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZnJvbVRvRm9ybUNvbnRyb2wuZ2V0KCdmcm9tJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0b0N0cmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyb21Ub0Zvcm1Db250cm9sLmdldCgndG8nKSBhcyBGb3JtQ29udHJvbDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGVSYW5nZUN0cmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyb21Ub0Zvcm1Db250cm9sLmdldCgnZGF0ZVJhbmdlJykgYXMgRm9ybUNvbnRyb2w7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZnJvbVRvRm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwKHtcbiAgICAgICAgICAgIGZyb206IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgICAgICAgIHRvOiBbbnVsbCwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXG4gICAgICAgICAgICBkYXRlUmFuZ2U6IFtudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICB9KTtcblxuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlKHRoaXMuZGlzYWJsZWQoKSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge2luamVjdG9yOiB0aGlzLmluamVjdG9yfVxuICAgICAgICApO1xuXG4gICAgICAgIG1lcmdlKHRoaXMuZnJvbUN0cmwudmFsdWVDaGFuZ2VzLCB0aGlzLnRvQ3RybC52YWx1ZUNoYW5nZXMsIHRoaXMuZGF0ZVJhbmdlQ3RybC52YWx1ZUNoYW5nZXMpXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblZhbHVlQ2hhbmdlKCkpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uVmFsaWRhdG9yQ2hhbmdlPyhmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICB0aGlzLm9uVmFsaWRhdG9yQ2hhbmdlRm4gPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzRGlzYWJsZWQgJiYgdGhpcy5mcm9tVG9Gb3JtQ29udHJvbD8uZW5hYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5mcm9tVG9Gb3JtQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICAgIH0gZWxzZSBpZiAoIWlzRGlzYWJsZWQgJiYgdGhpcy5mcm9tVG9Gb3JtQ29udHJvbD8uZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZnJvbVRvRm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMub25Ub3VjaGVkRm4oKTtcbiAgICB9XG5cbiAgICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XG4gICAgICAgIGxldCBzdGFydERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcbiAgICAgICAgbGV0IGVuZERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKSB7XG4gICAgICAgICAgICBpZiAob2JqLmxlbmd0aCA+IDAgJiYgKG9ialswXSBpbnN0YW5jZW9mIERhdGUgfHwgdHlwZW9mIG9ialswXSA9PT0gJ3N0cmluZycgfHwgdHlwZW9mIG9ialswXSA9PT0gJ251bWJlcicpKSB7XG4gICAgICAgICAgICAgICAgc3RhcnREYXRlID0gbmV3IERhdGUob2JqWzBdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmIChvYmoubGVuZ3RoID4gMSAmJiAob2JqWzFdIGluc3RhbmNlb2YgRGF0ZSB8fCB0eXBlb2Ygb2JqWzFdID09PSAnc3RyaW5nJyB8fCB0eXBlb2Ygb2JqWzFdID09PSAnbnVtYmVyJykpIHtcbiAgICAgICAgICAgICAgICBlbmREYXRlID0gbmV3IERhdGUob2JqWzFdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChvYmogaW5zdGFuY2VvZiBEYXRlIHx8IHR5cGVvZiBvYmogPT09ICdzdHJpbmcnIHx8IHR5cGVvZiBvYmogPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICBzdGFydERhdGUgPSBuZXcgRGF0ZShvYmopO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc2hvd1RpbWUoKSkge1xuICAgICAgICAgICAgdGhpcy5mcm9tQ3RybC5zZXRWYWx1ZShzdGFydERhdGUsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgICAgICB0aGlzLnRvQ3RybC5zZXRWYWx1ZShlbmREYXRlLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgICB9IGVsc2UgaWYgKHN0YXJ0RGF0ZSB8fCBlbmREYXRlKSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVSYW5nZUN0cmwuc2V0VmFsdWUoW3N0YXJ0RGF0ZSwgZW5kRGF0ZV0sIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRhdGVSYW5nZUN0cmwuc2V0VmFsdWUobnVsbCwge2VtaXRFdmVudDogZmFsc2V9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhbGlkYXRlKCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICAgICAgaWYgKCF0aGlzLnJlcXVpcmVkKCkpIHJldHVybiBudWxsO1xuXG4gICAgICAgIGlmICh0aGlzLnNob3dUaW1lKCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmZyb21DdHJsLmhhc0Vycm9yKCdyZXF1aXJlZCcpIHx8IHRoaXMudG9DdHJsLmhhc0Vycm9yKCdyZXF1aXJlZCcpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWVcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGF0ZVJhbmdlQ3RybC5oYXNFcnJvcigncmVxdWlyZWQnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiB0cnVlXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25WYWx1ZUNoYW5nZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc2hvd1RpbWUoKSkge1xuICAgICAgICAgICAgY29uc3QgZnJvbURhdGUgPSB0aGlzLmZyb21DdHJsLnZhbHVlIGFzIERhdGU7XG4gICAgICAgICAgICBjb25zdCB0b0RhdGUgPSB0aGlzLnRvQ3RybC52YWx1ZSBhcyBEYXRlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZUZuKFtmcm9tRGF0ZSwgdG9EYXRlXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5kYXRlUmFuZ2VDdHJsLnZhbHVlIGFzIERhdGVbXTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2VGbihkYXRlKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIkBpZiAoc2hvd1RpbWUoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGdhcC0yXCI+XG4gICAgICAgIDxwLWNhbGVuZGFyXG4gICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIlxuICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImZyb21DdHJsXCJcbiAgICAgICAgICAgIFttYXhEYXRlXT1cInRvQ3RybC52YWx1ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXG4gICAgICAgICAgICBbZGF0ZUZvcm1hdF09XCJkYXRlRm9ybWF0KClcIlxuICAgICAgICAgICAgW3Nob3dUaW1lXT1cInRydWVcIlxuICAgICAgICAgICAgW3Nob3dTZWNvbmRzXT1cInNob3dTZWNvbmRzKClcIlxuICAgICAgICAgICAgW3Nob3dJY29uXT1cInRydWVcIlxuICAgICAgICAgICAgW2ZpcnN0RGF5T2ZXZWVrXT1cIjFcIlxuICAgICAgICAgICAgKG9uQmx1cik9XCJvbkJsdXIoKVwiPjwvcC1jYWxlbmRhcj5cbiAgICAgICAgPHAtY2FsZW5kYXJcbiAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwidG9DdHJsXCJcbiAgICAgICAgICAgIFttaW5EYXRlXT1cImZyb21DdHJsLnZhbHVlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCJcbiAgICAgICAgICAgIFtkYXRlRm9ybWF0XT1cImRhdGVGb3JtYXQoKVwiXG4gICAgICAgICAgICBbc2hvd1RpbWVdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbc2hvd1NlY29uZHNdPVwic2hvd1NlY29uZHMoKVwiXG4gICAgICAgICAgICBbc2hvd0ljb25dPVwidHJ1ZVwiXG4gICAgICAgICAgICBbZmlyc3REYXlPZldlZWtdPVwiMVwiXG4gICAgICAgICAgICAob25CbHVyKT1cIm9uQmx1cigpXCI+PC9wLWNhbGVuZGFyPlxuICAgIDwvZGl2PlxufSBAZWxzZSB7XG4gICAgPHAtY2FsZW5kYXJcbiAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcbiAgICAgICAgW2Zvcm1Db250cm9sXT1cImRhdGVSYW5nZUN0cmxcIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXIoKVwiXG4gICAgICAgIFtkYXRlRm9ybWF0XT1cImRhdGVGb3JtYXQoKVwiXG4gICAgICAgIHNlbGVjdGlvbk1vZGU9XCJyYW5nZVwiXG4gICAgICAgIFtzaG93SWNvbl09XCJ0cnVlXCJcbiAgICAgICAgW2ZpcnN0RGF5T2ZXZWVrXT1cIjFcIlxuICAgICAgICAob25CbHVyKT1cIm9uQmx1cigpXCI+PC9wLWNhbGVuZGFyPlxufVxuIl19