@mediusinc/mng-commons 1.4.0 → 2.0.0-rc.0-08f92864

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 (416) hide show
  1. package/esm2020/lib/api/models/builders/query-param.builder.mjs +58 -58
  2. package/esm2020/lib/api/models/filter-match-type.model.mjs +24 -24
  3. package/esm2020/lib/api/models/filter-param.model.mjs +32 -32
  4. package/esm2020/lib/api/models/index.mjs +8 -8
  5. package/esm2020/lib/api/models/mappers.mjs +12 -12
  6. package/esm2020/lib/api/models/query-mode.model.mjs +17 -17
  7. package/esm2020/lib/api/models/query-param.model.mjs +67 -67
  8. package/esm2020/lib/api/models/query-result.model.mjs +23 -23
  9. package/esm2020/lib/api/models/serialization.model.mjs +1 -1
  10. package/esm2020/lib/api/services/api.abstract.service.mjs +57 -57
  11. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +74 -74
  12. package/esm2020/lib/api/services/get-all-api.abstract.service.mjs +29 -29
  13. package/esm2020/lib/api/services/index.mjs +3 -3
  14. package/esm2020/lib/api/utils/index.mjs +2 -2
  15. package/esm2020/lib/api/utils/medius-rest.util.mjs +213 -213
  16. package/esm2020/lib/api/utils/object-serializer.util.mjs +247 -247
  17. package/esm2020/lib/components/action/action.component.mjs +281 -275
  18. package/esm2020/lib/components/action/editor/action-editor.component.mjs +303 -303
  19. package/esm2020/lib/components/action/index.mjs +4 -4
  20. package/esm2020/lib/components/action/localization/data-language-dropdown.component.mjs +45 -45
  21. package/esm2020/lib/components/action/models/action-component.model.mjs +2 -2
  22. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +2 -2
  23. package/esm2020/lib/components/action/models/action-execution.model.mjs +249 -249
  24. package/esm2020/lib/components/action/models/index.mjs +4 -4
  25. package/esm2020/lib/components/action/models/tableview-action-default-categories.model.mjs +10 -10
  26. package/esm2020/lib/components/action/route/action-route.component.mjs +131 -130
  27. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +301 -300
  28. package/esm2020/lib/components/form/date-range/date-range.component.mjs +110 -109
  29. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +196 -194
  30. package/esm2020/lib/components/form/editor/form-editor.component.mjs +246 -243
  31. package/esm2020/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.mjs +43 -39
  32. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +51 -50
  33. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +46 -45
  34. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +28 -26
  35. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +180 -150
  36. package/esm2020/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +24 -24
  37. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +191 -186
  38. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +198 -197
  39. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +158 -154
  40. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +19 -17
  41. package/esm2020/lib/components/form/formly/fields/index.mjs +10 -10
  42. package/esm2020/lib/components/form/formly/formly.config.mjs +211 -211
  43. package/esm2020/lib/components/form/formly/index.mjs +1 -1
  44. package/esm2020/lib/components/form/formly/models/formly-config.model.mjs +1 -1
  45. package/esm2020/lib/components/form/formly/models/formly-field.model.mjs +2 -2
  46. package/esm2020/lib/components/form/formly/models/index.mjs +2 -2
  47. package/esm2020/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.mjs +16 -15
  48. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +84 -83
  49. package/esm2020/lib/components/form/formly/wrappers/index.mjs +2 -2
  50. package/esm2020/lib/components/form/index.mjs +4 -4
  51. package/esm2020/lib/components/form/models/field-action-context.model.mjs +2 -2
  52. package/esm2020/lib/components/form/models/form-editor.event.mjs +33 -33
  53. package/esm2020/lib/components/form/models/form-editor.interface.mjs +1 -1
  54. package/esm2020/lib/components/form/models/index.mjs +2 -2
  55. package/esm2020/lib/components/layout/breadcrumb.component.mjs +18 -17
  56. package/esm2020/lib/components/layout/footer.component.mjs +18 -17
  57. package/esm2020/lib/components/layout/index.mjs +7 -7
  58. package/esm2020/lib/components/layout/main-layout.component.mjs +52 -52
  59. package/esm2020/lib/components/layout/menu-item.component.mjs +292 -272
  60. package/esm2020/lib/components/layout/menu.component.mjs +32 -21
  61. package/esm2020/lib/components/layout/services/index.mjs +1 -1
  62. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +194 -194
  63. package/esm2020/lib/components/layout/topbar.component.mjs +67 -65
  64. package/esm2020/lib/components/layout/version.component.mjs +58 -58
  65. package/esm2020/lib/components/tableview/index.mjs +6 -6
  66. package/esm2020/lib/components/tableview/models/index.mjs +1 -1
  67. package/esm2020/lib/components/tableview/models/table.event.mjs +16 -16
  68. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +150 -147
  69. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +52 -53
  70. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +121 -120
  71. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +101 -84
  72. package/esm2020/lib/components/tableview/table/table.component.mjs +611 -595
  73. package/esm2020/lib/components/tableview/tableview.component.mjs +115 -113
  74. package/esm2020/lib/data-providers/base.data-provider.mjs +16 -16
  75. package/esm2020/lib/data-providers/editor.data-provider.mjs +36 -36
  76. package/esm2020/lib/data-providers/index.mjs +6 -6
  77. package/esm2020/lib/data-providers/lookup.data-provider.mjs +15 -15
  78. package/esm2020/lib/data-providers/table.data-provider.mjs +37 -37
  79. package/esm2020/lib/data-providers/tableview-crud.data-provider.mjs +23 -23
  80. package/esm2020/lib/data-providers/tableview.data-provider.mjs +44 -44
  81. package/esm2020/lib/descriptors/action/action-button.descriptor.mjs +60 -0
  82. package/esm2020/lib/descriptors/action/action-confirmation.descriptor.mjs +77 -77
  83. package/esm2020/lib/descriptors/action/action.descriptor.mjs +579 -0
  84. package/esm2020/lib/descriptors/action/index.mjs +4 -0
  85. package/esm2020/lib/descriptors/editor/editor.descriptor.mjs +291 -0
  86. package/esm2020/lib/descriptors/editor/field-validation.descriptor.mjs +25 -0
  87. package/esm2020/lib/descriptors/editor/field.descriptor.mjs +990 -0
  88. package/esm2020/lib/descriptors/editor/index.mjs +4 -0
  89. package/esm2020/lib/descriptors/filter/filter.descriptor.mjs +370 -0
  90. package/esm2020/lib/descriptors/filter/index.mjs +2 -0
  91. package/esm2020/lib/descriptors/index.mjs +2 -12
  92. package/esm2020/lib/descriptors/interfaces/field-config.interface.mjs +1 -1
  93. package/esm2020/lib/descriptors/interfaces/index.mjs +2 -2
  94. package/esm2020/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +1 -1
  95. package/esm2020/lib/descriptors/model.descriptor.mjs +44 -44
  96. package/esm2020/lib/descriptors/table/column.descriptor.mjs +406 -0
  97. package/esm2020/lib/descriptors/table/index.mjs +3 -0
  98. package/esm2020/lib/descriptors/table/table.descriptor.mjs +497 -0
  99. package/esm2020/lib/descriptors/tableview/index.mjs +2 -0
  100. package/esm2020/lib/descriptors/tableview/tableview.descriptor.mjs +346 -0
  101. package/esm2020/lib/descriptors/types/action.type.mjs +25 -25
  102. package/esm2020/lib/descriptors/types/column.type.mjs +20 -20
  103. package/esm2020/lib/descriptors/types/editor.type.mjs +7 -7
  104. package/esm2020/lib/descriptors/types/field.type.mjs +55 -55
  105. package/esm2020/lib/descriptors/types/filter.type.mjs +30 -30
  106. package/esm2020/lib/descriptors/types/index.mjs +6 -6
  107. package/esm2020/lib/descriptors/types/table.type.mjs +26 -26
  108. package/esm2020/lib/directives/component.directive.mjs +45 -44
  109. package/esm2020/lib/directives/index.mjs +2 -2
  110. package/esm2020/lib/directives/template.directive.mjs +29 -28
  111. package/esm2020/lib/mng-commons.module.mjs +445 -485
  112. package/esm2020/lib/models/column-value.model.mjs +2 -2
  113. package/esm2020/lib/models/config.model.mjs +2 -2
  114. package/esm2020/lib/models/enum.model.mjs +1 -1
  115. package/esm2020/lib/models/error.model.mjs +1 -1
  116. package/esm2020/lib/models/index.mjs +9 -9
  117. package/esm2020/lib/models/menu.model.mjs +2 -2
  118. package/esm2020/lib/models/tableview-attr.model.mjs +1 -1
  119. package/esm2020/lib/models/user.model.mjs +1 -1
  120. package/esm2020/lib/models/version.model.mjs +1 -1
  121. package/esm2020/lib/models/view-container.model.mjs +2 -2
  122. package/esm2020/lib/pipes/boolean.pipe.mjs +28 -27
  123. package/esm2020/lib/pipes/class-map.pipe.mjs +23 -22
  124. package/esm2020/lib/pipes/enum.pipe.mjs +26 -25
  125. package/esm2020/lib/pipes/enumerate-async.pipe.mjs +39 -38
  126. package/esm2020/lib/pipes/enumerate.pipe.mjs +56 -55
  127. package/esm2020/lib/pipes/getter.pipe.mjs +21 -20
  128. package/esm2020/lib/pipes/i18n-property.pipe.mjs +19 -18
  129. package/esm2020/lib/pipes/index.mjs +11 -11
  130. package/esm2020/lib/pipes/json-path.pipe.mjs +80 -79
  131. package/esm2020/lib/pipes/locale-default-row-class.pipe.mjs +27 -26
  132. package/esm2020/lib/pipes/models/internal/enumrate-pipe-i18n.model.mjs +1 -1
  133. package/esm2020/lib/pipes/models/internal/index.mjs +1 -1
  134. package/esm2020/lib/pipes/parametrize.pipe.mjs +86 -85
  135. package/esm2020/lib/pipes/template.pipe.mjs +25 -24
  136. package/esm2020/lib/provide-commons.mjs +73 -0
  137. package/esm2020/lib/router/index.mjs +4 -3
  138. package/esm2020/lib/router/models/index.mjs +1 -1
  139. package/esm2020/lib/router/models/router.model.mjs +2 -2
  140. package/esm2020/lib/router/route-builder.mjs +313 -426
  141. package/esm2020/lib/router/routes-builder.mjs +67 -0
  142. package/esm2020/lib/router/tableview-route-builder.mjs +187 -187
  143. package/esm2020/lib/security/authorization.guard.mjs +29 -26
  144. package/esm2020/lib/security/authorization.service.mjs +50 -47
  145. package/esm2020/lib/security/authorization.util.mjs +15 -15
  146. package/esm2020/lib/security/index.mjs +3 -3
  147. package/esm2020/lib/security/model/authorization.type.mjs +7 -7
  148. package/esm2020/lib/security/model/index.mjs +3 -3
  149. package/esm2020/lib/security/model/permission-service.interface.mjs +1 -1
  150. package/esm2020/lib/security/model/permissions.model.mjs +86 -86
  151. package/esm2020/lib/services/action-executor.service.mjs +558 -555
  152. package/esm2020/lib/services/commons.service.mjs +464 -461
  153. package/esm2020/lib/services/configuration.service.mjs +149 -142
  154. package/esm2020/lib/services/error-mapper.service.mjs +13 -13
  155. package/esm2020/lib/services/index.mjs +6 -6
  156. package/esm2020/lib/services/internal/commons-init.provider.mjs +3 -3
  157. package/esm2020/lib/services/internal/commons-init.service.mjs +50 -44
  158. package/esm2020/lib/services/internal/index.mjs +2 -2
  159. package/esm2020/lib/services/navigation.service.mjs +51 -48
  160. package/esm2020/lib/services/providers/config-service.provider.mjs +31 -30
  161. package/esm2020/lib/services/providers/formly-config.provider.mjs +30 -30
  162. package/esm2020/lib/services/providers/index.mjs +2 -2
  163. package/esm2020/lib/services/router.service.mjs +97 -0
  164. package/esm2020/lib/services/tokens/browser-storage.token.mjs +5 -5
  165. package/esm2020/lib/services/tokens/commons-init.token.mjs +2 -2
  166. package/esm2020/lib/services/tokens/default-setting.token.mjs +2 -2
  167. package/esm2020/lib/services/tokens/index.mjs +4 -4
  168. package/esm2020/lib/services/tokens/module-config.token.mjs +2 -2
  169. package/esm2020/lib/services/version.service.mjs +42 -39
  170. package/esm2020/lib/services/view-container.component.service.mjs +55 -55
  171. package/esm2020/lib/styles/button-style.builder.mjs +164 -164
  172. package/esm2020/lib/styles/index.mjs +2 -2
  173. package/esm2020/lib/styles/models/index.mjs +2 -2
  174. package/esm2020/lib/styles/models/style-level.enum.mjs +11 -11
  175. package/esm2020/lib/styles/models/style-size.enum.mjs +8 -8
  176. package/esm2020/lib/styles/styles.util.mjs +42 -42
  177. package/esm2020/lib/types/index.mjs +2 -2
  178. package/esm2020/lib/types/type.decorator.mjs +21 -21
  179. package/esm2020/lib/types/type.model.mjs +1 -1
  180. package/esm2020/lib/utils/action-data-provider.util.mjs +145 -145
  181. package/esm2020/lib/utils/date.util.mjs +117 -117
  182. package/esm2020/lib/utils/editor-formly.util.mjs +288 -288
  183. package/esm2020/lib/utils/enum.util.mjs +81 -81
  184. package/esm2020/lib/utils/export.util.mjs +20 -20
  185. package/esm2020/lib/utils/i18n.util.mjs +233 -233
  186. package/esm2020/lib/utils/index.mjs +10 -10
  187. package/esm2020/lib/utils/model.util.mjs +68 -68
  188. package/esm2020/lib/utils/notification.util.mjs +51 -51
  189. package/esm2020/lib/utils/route.util.mjs +36 -24
  190. package/esm2020/lib/utils/string.util.mjs +26 -26
  191. package/esm2020/lib/utils/tableview.util.mjs +160 -160
  192. package/esm2020/lib/utils/type.util.mjs +92 -92
  193. package/esm2020/mediusinc-mng-commons.mjs +4 -4
  194. package/esm2020/public-api.mjs +61 -55
  195. package/fesm2015/mediusinc-mng-commons.mjs +14147 -13931
  196. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  197. package/fesm2020/mediusinc-mng-commons.mjs +13980 -13768
  198. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  199. package/index.d.ts +5 -5
  200. package/lib/api/models/builders/query-param.builder.d.ts +13 -13
  201. package/lib/api/models/filter-match-type.model.d.ts +23 -23
  202. package/lib/api/models/filter-param.model.d.ts +23 -23
  203. package/lib/api/models/index.d.ts +8 -8
  204. package/lib/api/models/mappers.d.ts +6 -6
  205. package/lib/api/models/query-mode.model.d.ts +16 -16
  206. package/lib/api/models/query-param.model.d.ts +31 -31
  207. package/lib/api/models/query-result.model.d.ts +24 -24
  208. package/lib/api/models/serialization.model.d.ts +8 -8
  209. package/lib/api/services/api.abstract.service.d.ts +24 -24
  210. package/lib/api/services/crud-api.abstract.service.d.ts +22 -22
  211. package/lib/api/services/get-all-api.abstract.service.d.ts +14 -14
  212. package/lib/api/services/index.d.ts +3 -3
  213. package/lib/api/utils/index.d.ts +2 -2
  214. package/lib/api/utils/medius-rest.util.d.ts +16 -16
  215. package/lib/api/utils/object-serializer.util.d.ts +33 -33
  216. package/lib/components/action/action.component.d.ts +79 -79
  217. package/lib/components/action/editor/action-editor.component.d.ts +69 -69
  218. package/lib/components/action/index.d.ts +4 -4
  219. package/lib/components/action/localization/data-language-dropdown.component.d.ts +25 -25
  220. package/lib/components/action/models/action-component.model.d.ts +15 -15
  221. package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
  222. package/lib/components/action/models/action-execution.model.d.ts +135 -135
  223. package/lib/components/action/models/index.d.ts +4 -4
  224. package/lib/components/action/models/tableview-action-default-categories.model.d.ts +10 -10
  225. package/lib/components/action/route/action-route.component.d.ts +31 -31
  226. package/lib/components/form/autocomplete/autocomplete.component.d.ts +61 -61
  227. package/lib/components/form/date-range/date-range.component.d.ts +28 -28
  228. package/lib/components/form/dropdown/dropdown.component.d.ts +52 -52
  229. package/lib/components/form/editor/form-editor.component.d.ts +52 -52
  230. package/lib/components/form/formly/fields/formly-field-action/formly-field-action.component.d.ts +13 -13
  231. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +16 -16
  232. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +15 -15
  233. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +14 -14
  234. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +29 -29
  235. package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +11 -11
  236. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +46 -46
  237. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +25 -24
  238. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +37 -37
  239. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +7 -7
  240. package/lib/components/form/formly/fields/index.d.ts +10 -10
  241. package/lib/components/form/formly/formly.config.d.ts +14 -14
  242. package/lib/components/form/formly/index.d.ts +1 -1
  243. package/lib/components/form/formly/models/formly-config.model.d.ts +11 -11
  244. package/lib/components/form/formly/models/formly-field.model.d.ts +16 -16
  245. package/lib/components/form/formly/models/index.d.ts +2 -2
  246. package/lib/components/form/formly/wrappers/formly-field-no-label-wrapper/formly-field-no-label-wrapper.component.d.ts +6 -6
  247. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +11 -11
  248. package/lib/components/form/formly/wrappers/index.d.ts +2 -2
  249. package/lib/components/form/index.d.ts +4 -4
  250. package/lib/components/form/models/field-action-context.model.d.ts +17 -17
  251. package/lib/components/form/models/form-editor.event.d.ts +37 -37
  252. package/lib/components/form/models/form-editor.interface.d.ts +10 -10
  253. package/lib/components/form/models/index.d.ts +2 -2
  254. package/lib/components/layout/breadcrumb.component.d.ts +8 -8
  255. package/lib/components/layout/footer.component.d.ts +9 -9
  256. package/lib/components/layout/index.d.ts +7 -7
  257. package/lib/components/layout/main-layout.component.d.ts +20 -20
  258. package/lib/components/layout/menu-item.component.d.ts +56 -52
  259. package/lib/components/layout/menu.component.d.ts +16 -10
  260. package/lib/components/layout/services/index.d.ts +1 -1
  261. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
  262. package/lib/components/layout/topbar.component.d.ts +28 -28
  263. package/lib/components/layout/version.component.d.ts +19 -19
  264. package/lib/components/tableview/index.d.ts +6 -6
  265. package/lib/components/tableview/models/index.d.ts +1 -1
  266. package/lib/components/tableview/models/table.event.d.ts +17 -17
  267. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +36 -33
  268. package/lib/components/tableview/route/tableview-route.component.d.ts +19 -18
  269. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +38 -38
  270. package/lib/components/tableview/table/column-value/column-value.component.d.ts +35 -35
  271. package/lib/components/tableview/table/table.component.d.ts +117 -115
  272. package/lib/components/tableview/tableview.component.d.ts +49 -48
  273. package/lib/data-providers/base.data-provider.d.ts +14 -14
  274. package/lib/data-providers/editor.data-provider.d.ts +25 -25
  275. package/lib/data-providers/index.d.ts +6 -6
  276. package/lib/data-providers/lookup.data-provider.d.ts +14 -14
  277. package/lib/data-providers/table.data-provider.d.ts +27 -27
  278. package/lib/data-providers/tableview-crud.data-provider.d.ts +8 -8
  279. package/lib/data-providers/tableview.data-provider.d.ts +33 -33
  280. package/lib/descriptors/{action-button.descriptor.d.ts → action/action-button.descriptor.d.ts} +22 -22
  281. package/lib/descriptors/action/action-confirmation.descriptor.d.ts +36 -36
  282. package/lib/descriptors/{action.descriptor.d.ts → action/action.descriptor.d.ts} +225 -223
  283. package/lib/descriptors/action/index.d.ts +3 -0
  284. package/lib/descriptors/{editor.descriptor.d.ts → editor/editor.descriptor.d.ts} +119 -116
  285. package/lib/descriptors/{field-validation.descriptor.d.ts → editor/field-validation.descriptor.d.ts} +19 -19
  286. package/lib/descriptors/{field.descriptor.d.ts → editor/field.descriptor.d.ts} +349 -345
  287. package/lib/descriptors/editor/index.d.ts +3 -0
  288. package/lib/descriptors/{filter.descriptor.d.ts → filter/filter.descriptor.d.ts} +120 -118
  289. package/lib/descriptors/filter/index.d.ts +1 -0
  290. package/lib/descriptors/index.d.ts +1 -11
  291. package/lib/descriptors/interfaces/field-config.interface.d.ts +9 -9
  292. package/lib/descriptors/interfaces/index.d.ts +2 -2
  293. package/lib/descriptors/interfaces/lookup-descriptor.interface.d.ts +17 -17
  294. package/lib/descriptors/model.descriptor.d.ts +18 -18
  295. package/lib/descriptors/{column.descriptor.d.ts → table/column.descriptor.d.ts} +130 -130
  296. package/lib/descriptors/table/index.d.ts +2 -0
  297. package/lib/descriptors/{table.descriptor.d.ts → table/table.descriptor.d.ts} +193 -193
  298. package/lib/descriptors/tableview/index.d.ts +1 -0
  299. package/lib/descriptors/{tableview.descriptor.d.ts → tableview/tableview.descriptor.d.ts} +131 -129
  300. package/lib/descriptors/types/action.type.d.ts +21 -21
  301. package/lib/descriptors/types/column.type.d.ts +18 -18
  302. package/lib/descriptors/types/editor.type.d.ts +6 -6
  303. package/lib/descriptors/types/field.type.d.ts +47 -47
  304. package/lib/descriptors/types/filter.type.d.ts +27 -27
  305. package/lib/descriptors/types/index.d.ts +6 -6
  306. package/lib/descriptors/types/table.type.d.ts +22 -22
  307. package/lib/directives/component.directive.d.ts +16 -16
  308. package/lib/directives/index.d.ts +2 -2
  309. package/lib/directives/template.directive.d.ts +13 -13
  310. package/lib/mng-commons.module.d.ts +99 -99
  311. package/lib/models/column-value.model.d.ts +4 -4
  312. package/lib/models/config.model.d.ts +41 -40
  313. package/lib/models/enum.model.d.ts +6 -6
  314. package/lib/models/error.model.d.ts +14 -14
  315. package/lib/models/index.d.ts +9 -9
  316. package/lib/models/menu.model.d.ts +30 -30
  317. package/lib/models/tableview-attr.model.d.ts +10 -10
  318. package/lib/models/user.model.d.ts +8 -8
  319. package/lib/models/version.model.d.ts +18 -18
  320. package/lib/models/view-container.model.d.ts +43 -43
  321. package/lib/pipes/boolean.pipe.d.ts +7 -7
  322. package/lib/pipes/class-map.pipe.d.ts +7 -7
  323. package/lib/pipes/enum.pipe.d.ts +8 -8
  324. package/lib/pipes/enumerate-async.pipe.d.ts +14 -14
  325. package/lib/pipes/enumerate.pipe.d.ts +21 -21
  326. package/lib/pipes/getter.pipe.d.ts +7 -7
  327. package/lib/pipes/i18n-property.pipe.d.ts +8 -8
  328. package/lib/pipes/index.d.ts +11 -11
  329. package/lib/pipes/json-path.pipe.d.ts +13 -13
  330. package/lib/pipes/locale-default-row-class.pipe.d.ts +10 -10
  331. package/lib/pipes/models/internal/enumrate-pipe-i18n.model.d.ts +5 -5
  332. package/lib/pipes/models/internal/index.d.ts +1 -1
  333. package/lib/pipes/parametrize.pipe.d.ts +13 -13
  334. package/lib/pipes/template.pipe.d.ts +10 -10
  335. package/lib/provide-commons.d.ts +3 -0
  336. package/lib/router/index.d.ts +3 -2
  337. package/lib/router/models/index.d.ts +1 -1
  338. package/lib/router/models/router.model.d.ts +36 -33
  339. package/lib/router/route-builder.d.ts +62 -98
  340. package/lib/router/routes-builder.d.ts +29 -0
  341. package/lib/router/tableview-route-builder.d.ts +38 -37
  342. package/lib/security/authorization.guard.d.ts +11 -11
  343. package/lib/security/authorization.service.d.ts +19 -19
  344. package/lib/security/authorization.util.d.ts +5 -5
  345. package/lib/security/index.d.ts +3 -3
  346. package/lib/security/model/authorization.type.d.ts +6 -6
  347. package/lib/security/model/index.d.ts +3 -3
  348. package/lib/security/model/permission-service.interface.d.ts +6 -6
  349. package/lib/security/model/permissions.model.d.ts +37 -37
  350. package/lib/services/action-executor.service.d.ts +150 -149
  351. package/lib/services/commons.service.d.ts +93 -93
  352. package/lib/services/configuration.service.d.ts +60 -57
  353. package/lib/services/error-mapper.service.d.ts +7 -7
  354. package/lib/services/index.d.ts +6 -6
  355. package/lib/services/internal/commons-init.provider.d.ts +3 -3
  356. package/lib/services/internal/commons-init.service.d.ts +18 -16
  357. package/lib/services/internal/index.d.ts +2 -2
  358. package/lib/services/navigation.service.d.ts +14 -14
  359. package/lib/services/providers/config-service.provider.d.ts +6 -6
  360. package/lib/services/providers/formly-config.provider.d.ts +4 -4
  361. package/lib/services/providers/index.d.ts +2 -2
  362. package/lib/services/router.service.d.ts +22 -0
  363. package/lib/services/tokens/browser-storage.token.d.ts +2 -2
  364. package/lib/services/tokens/commons-init.token.d.ts +3 -3
  365. package/lib/services/tokens/default-setting.token.d.ts +2 -2
  366. package/lib/services/tokens/index.d.ts +4 -4
  367. package/lib/services/tokens/module-config.token.d.ts +3 -3
  368. package/lib/services/version.service.d.ts +13 -13
  369. package/lib/services/view-container.component.service.d.ts +31 -31
  370. package/lib/styles/button-style.builder.d.ts +67 -67
  371. package/lib/styles/index.d.ts +2 -2
  372. package/lib/styles/models/index.d.ts +2 -2
  373. package/lib/styles/models/style-level.enum.d.ts +10 -10
  374. package/lib/styles/models/style-size.enum.d.ts +7 -7
  375. package/lib/styles/styles.util.d.ts +15 -14
  376. package/lib/types/index.d.ts +2 -2
  377. package/lib/types/type.decorator.d.ts +4 -4
  378. package/lib/types/type.model.d.ts +23 -23
  379. package/lib/utils/action-data-provider.util.d.ts +20 -20
  380. package/lib/utils/date.util.d.ts +7 -7
  381. package/lib/utils/editor-formly.util.d.ts +12 -12
  382. package/lib/utils/enum.util.d.ts +50 -50
  383. package/lib/utils/export.util.d.ts +5 -5
  384. package/lib/utils/i18n.util.d.ts +57 -56
  385. package/lib/utils/index.d.ts +10 -10
  386. package/lib/utils/model.util.d.ts +8 -8
  387. package/lib/utils/notification.util.d.ts +13 -12
  388. package/lib/utils/route.util.d.ts +59 -4
  389. package/lib/utils/string.util.d.ts +4 -4
  390. package/lib/utils/tableview.util.d.ts +40 -40
  391. package/lib/utils/type.util.d.ts +57 -57
  392. package/package.json +6 -6
  393. package/public-api.d.ts +40 -34
  394. package/scss/common/layout/_breadcrumb.scss +12 -2
  395. package/scss/common/layout/_exception.scss +1 -1
  396. package/scss/common/layout/_inlinemenu.scss +13 -0
  397. package/scss/common/layout/_login.scss +1 -0
  398. package/scss/common/layout/_rightmenu.scss +5 -0
  399. package/scss/common/layout/menu/_menu_common.scss +1 -1
  400. package/scss/common/theme/designer/_mixins.scss +29 -0
  401. package/scss/common/theme/extensions/_datatable.scss +2 -2
  402. package/scss/common/variables/layout/_layout_dark.scss +0 -1
  403. package/scss/common/variables/layout/_layout_light.scss +0 -1
  404. package/scss/common/variables/theme/_theme_dark.scss +72 -46
  405. package/scss/common/variables/theme/_theme_light.scss +70 -33
  406. package/version-info.json +7 -7
  407. package/esm2020/lib/descriptors/action-button.descriptor.mjs +0 -60
  408. package/esm2020/lib/descriptors/action.descriptor.mjs +0 -577
  409. package/esm2020/lib/descriptors/column.descriptor.mjs +0 -405
  410. package/esm2020/lib/descriptors/editor.descriptor.mjs +0 -290
  411. package/esm2020/lib/descriptors/field-validation.descriptor.mjs +0 -25
  412. package/esm2020/lib/descriptors/field.descriptor.mjs +0 -987
  413. package/esm2020/lib/descriptors/filter.descriptor.mjs +0 -368
  414. package/esm2020/lib/descriptors/table.descriptor.mjs +0 -497
  415. package/esm2020/lib/descriptors/tableview.descriptor.mjs +0 -344
  416. package/mediusinc-mng-commons-1.4.0.tgz +0 -0
@@ -1,249 +1,249 @@
1
- import { BehaviorSubject, ReplaySubject, Subject, distinctUntilChanged } from 'rxjs';
2
- export class ActionError {
3
- constructor(error, // error details
4
- dismissed = false // by user
5
- ) {
6
- this.error = error;
7
- this.dismissed = dismissed;
8
- }
9
- }
10
- /**
11
- * Action execution instance containing data about execution state of action
12
- */
13
- export class ActionInstance {
14
- constructor(action, state = ActionInstanceStateEnum.TriggerStart, debug = false) {
15
- this.debug = debug;
16
- // function execution
17
- this.isRunLoadingSubject = new BehaviorSubject(false);
18
- this.contexts = [];
19
- this.executionSubject = new Subject();
20
- this.executionIsRunningSubject = new BehaviorSubject(false);
21
- this.stateSubject = new BehaviorSubject(1);
22
- this.resultSubject = new ReplaySubject(1);
23
- this.errorSubject = new ReplaySubject(1);
24
- this.contextExecutionSubscriptions = [];
25
- this.instanceId = Math.random().toString(36).substring(2);
26
- this.instanceLongName = `${action.actionNameLong}_${this.instanceId}`;
27
- this.action = action;
28
- this.state = state;
29
- }
30
- get isRunLoading$() {
31
- return this.isRunLoadingSubject.asObservable();
32
- }
33
- get context() {
34
- return this.contexts.length === 0 ? undefined : this.contexts[this.contexts.length - 1];
35
- }
36
- get execution$() {
37
- return this.executionSubject.asObservable();
38
- }
39
- get executionIsRunning$() {
40
- return this.executionIsRunningSubject.asObservable().pipe(distinctUntilChanged());
41
- }
42
- get state() {
43
- return this.stateSubject.value;
44
- }
45
- set state(state) {
46
- if (state > this.stateSubject.value) {
47
- if (this.debug) {
48
- console.debug(`ActionInstance ${this.instanceLongName} - state #${state}: ${ActionInstanceStateEnum[state]}`);
49
- }
50
- this.stateSubject.next(state);
51
- }
52
- }
53
- get state$() {
54
- return this.stateSubject.asObservable().pipe(distinctUntilChanged());
55
- }
56
- get result() {
57
- return this._result;
58
- }
59
- set result(result) {
60
- if (typeof result === 'undefined') {
61
- return;
62
- }
63
- if (this.debug) {
64
- console.debug(`ActionInstance ${this.instanceLongName} - result`, result);
65
- }
66
- this._result = result;
67
- this.resultSubject.next(result);
68
- }
69
- get result$() {
70
- return this.resultSubject.asObservable();
71
- }
72
- get error() {
73
- return this._error;
74
- }
75
- set error(error) {
76
- if (typeof error === 'undefined') {
77
- return;
78
- }
79
- if (this.debug) {
80
- console.debug(`ActionInstance ${this.instanceLongName} - error`, error);
81
- }
82
- this._error = error;
83
- this.errorSubject.next(error);
84
- }
85
- get error$() {
86
- return this.errorSubject.asObservable();
87
- }
88
- contextAt(idx) {
89
- return idx < this.contexts.length ? this.contexts[idx] : undefined;
90
- }
91
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
92
- newContext(context, finishPrevious = true) {
93
- if (this.debug) {
94
- console.debug(`ActionInstance ${this.instanceLongName} - new context ${context.contextLongName}`);
95
- }
96
- const currentContext = this.context;
97
- if (currentContext) {
98
- currentContext.executionComplete();
99
- }
100
- this.contextExecutionSubscriptions.forEach(s => s.unsubscribe());
101
- this.contextExecutionSubscriptions = [];
102
- this.contextExecutionSubscriptions.push(context.execution$.subscribe({
103
- next: next => this.executionSubject.next(next),
104
- error: error => this.executionSubject.error(error)
105
- }));
106
- this.contextExecutionSubscriptions.push(context.executionIsRunning$.subscribe({
107
- next: next => this.executionIsRunningSubject.next(next)
108
- }));
109
- this.contexts.push(context);
110
- }
111
- finish() {
112
- if (this.stateSubject.value < ActionInstanceStateEnum.FinishSuccess) {
113
- this.state = ActionInstanceStateEnum.FinishSuccess;
114
- }
115
- // complete all subjects
116
- this.contexts.forEach(c => c.finish());
117
- this.executionSubject.complete();
118
- this.executionIsRunningSubject.complete();
119
- this.stateSubject.complete();
120
- this.resultSubject.complete();
121
- this.errorSubject.complete();
122
- }
123
- }
124
- /**
125
- * Class containing all main data for action to be executed in run/fetch/submit states.
126
- */
127
- export class ActionContext {
128
- constructor(instance, parameters, functionName, dataProvider, serviceInstance, executionSubject = new ReplaySubject(1), executionIsRunningSubject = new BehaviorSubject(false)) {
129
- this.instance = instance;
130
- this.parameters = parameters;
131
- this.functionName = functionName;
132
- this.dataProvider = dataProvider;
133
- this.serviceInstance = serviceInstance;
134
- this.executionSubject = executionSubject;
135
- this.executionIsRunningSubject = executionIsRunningSubject;
136
- this.contextLongName = `${this.instance.instanceLongName}_${functionName}`;
137
- }
138
- get execution$() {
139
- return this.executionSubject.asObservable();
140
- }
141
- get executionIsRunning$() {
142
- return this.executionIsRunningSubject.asObservable().pipe(distinctUntilChanged());
143
- }
144
- executionStart() {
145
- if (this.instance.debug) {
146
- console.debug(`ActionContext ${this.contextLongName} - execution start`);
147
- }
148
- this.executionIsRunningSubject.next(true);
149
- }
150
- executionNext(next, finish = true) {
151
- if (this.instance.debug) {
152
- console.debug(`ActionContext ${this.contextLongName} - execution next event`, next, finish);
153
- }
154
- this.executionSubject.next(next);
155
- if (finish) {
156
- this.executionComplete();
157
- }
158
- }
159
- executionComplete() {
160
- if (this.instance.debug) {
161
- console.debug(`ActionContext ${this.contextLongName} - execution complete`);
162
- }
163
- this.executionSubject.complete();
164
- this.executionIsRunningSubject.next(false);
165
- }
166
- executionError(err) {
167
- if (this.instance.debug) {
168
- console.debug(`ActionContext ${this.contextLongName} - execution error`, err);
169
- }
170
- this.executionSubject.error(err);
171
- this.executionIsRunningSubject.next(false);
172
- }
173
- finish() {
174
- this.executionSubject.complete();
175
- this.executionIsRunningSubject.complete();
176
- }
177
- }
178
- /**
179
- * Class containing all main data for action validations (enabled/visible) to be executed in validation states.
180
- */
181
- export class ActionContextValidation {
182
- constructor(descriptor, parameters, dataProvider, serviceInstance) {
183
- this.descriptor = descriptor;
184
- this.parameters = parameters;
185
- this.dataProvider = dataProvider;
186
- this.serviceInstance = serviceInstance;
187
- }
188
- }
189
- export class ActionParameters {
190
- constructor(itemId, item) {
191
- this.itemId = itemId;
192
- this.item = item;
193
- this.selectedItems = [];
194
- }
195
- withActionData(actionData) {
196
- this.actionData = actionData;
197
- return this;
198
- }
199
- withQueryParam(queryParam) {
200
- this.queryParam = queryParam;
201
- return this;
202
- }
203
- withViewContainer(viewContainer) {
204
- this.viewContainer = viewContainer;
205
- return this;
206
- }
207
- withSourceComponent(sourceComponent) {
208
- this.sourceComponent = sourceComponent;
209
- return this;
210
- }
211
- withHostComponent(hostComponent) {
212
- this.hostComponent = hostComponent;
213
- return this;
214
- }
215
- withRoute(route) {
216
- this.route = route;
217
- return this;
218
- }
219
- withSelectedItems(selectedItems) {
220
- this.selectedItems = selectedItems;
221
- return this;
222
- }
223
- withLocale(locale) {
224
- this.locale = locale;
225
- return this;
226
- }
227
- }
228
- export var ActionInstanceStateEnum;
229
- (function (ActionInstanceStateEnum) {
230
- ActionInstanceStateEnum[ActionInstanceStateEnum["TriggerStart"] = 0] = "TriggerStart";
231
- ActionInstanceStateEnum[ActionInstanceStateEnum["TriggerEnd"] = 1] = "TriggerEnd";
232
- ActionInstanceStateEnum[ActionInstanceStateEnum["ActivationStart"] = 2] = "ActivationStart";
233
- ActionInstanceStateEnum[ActionInstanceStateEnum["ActivationEnd"] = 3] = "ActivationEnd";
234
- ActionInstanceStateEnum[ActionInstanceStateEnum["FetchStart"] = 4] = "FetchStart";
235
- ActionInstanceStateEnum[ActionInstanceStateEnum["FetchEnd"] = 5] = "FetchEnd";
236
- ActionInstanceStateEnum[ActionInstanceStateEnum["FetchError"] = 6] = "FetchError";
237
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationStart"] = 7] = "RunConfirmationStart";
238
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationEndAccept"] = 8] = "RunConfirmationEndAccept";
239
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationEndReject"] = 9] = "RunConfirmationEndReject";
240
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunStart"] = 10] = "RunStart";
241
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunEnd"] = 11] = "RunEnd";
242
- ActionInstanceStateEnum[ActionInstanceStateEnum["RunError"] = 12] = "RunError";
243
- ActionInstanceStateEnum[ActionInstanceStateEnum["NextActionStart"] = 13] = "NextActionStart";
244
- ActionInstanceStateEnum[ActionInstanceStateEnum["NextActionEnd"] = 14] = "NextActionEnd";
245
- ActionInstanceStateEnum[ActionInstanceStateEnum["FinishSuccess"] = 15] = "FinishSuccess";
246
- ActionInstanceStateEnum[ActionInstanceStateEnum["FinishError"] = 16] = "FinishError";
247
- ActionInstanceStateEnum[ActionInstanceStateEnum["FinishDismissed"] = 17] = "FinishDismissed"; // action was dismissed by user
248
- })(ActionInstanceStateEnum || (ActionInstanceStateEnum = {}));
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWV4ZWN1dGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vbW9kZWxzL2FjdGlvbi1leGVjdXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFDLGVBQWUsRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFnQixvQkFBb0IsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQVE3RyxNQUFNLE9BQU8sV0FBVztJQUNwQixZQUNvQixLQUFVLEVBQUUsZ0JBQWdCO0lBQzVCLFlBQXFCLEtBQUssQ0FBQyxVQUFVOztRQURyQyxVQUFLLEdBQUwsS0FBSyxDQUFLO1FBQ1YsY0FBUyxHQUFULFNBQVMsQ0FBaUI7SUFDM0MsQ0FBQztDQUNQO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQWdDdkIsWUFBWSxNQUEyQixFQUFFLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxZQUFZLEVBQVMsUUFBUSxLQUFLO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQTNCM0cscUJBQXFCO1FBQ0wsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFLaEQsYUFBUSxHQUErQixFQUFFLENBQUM7UUFDMUMscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQXdCLENBQUM7UUFDdkQsOEJBQXlCLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBMEIsQ0FBQyxDQUFDLENBQUM7UUFDL0Qsa0JBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBVyxDQUFDLENBQUMsQ0FBQztRQUMvQyxpQkFBWSxHQUFHLElBQUksYUFBYSxDQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTFELGtDQUE2QixHQUF3QixFQUFFLENBQUM7UUFlNUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMs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dUZBQWEsQ0FBQTtJQUNiLGlGQUFVLENBQUE7SUFDViw2RUFBUSxDQUFBO0lBQ1IsaUZBQVUsQ0FBQTtJQUNWLHFHQUFvQixDQUFBO0lBQ3BCLDZHQUF3QixDQUFBO0lBQ3hCLDZHQUF3QixDQUFBO0lBQ3hCLDhFQUFRLENBQUE7SUFDUiwwRUFBTSxDQUFBO0lBQ04sOEVBQVEsQ0FBQTtJQUNSLDRGQUFlLENBQUE7SUFDZix3RkFBYSxDQUFBO0lBQ2Isd0ZBQWEsQ0FBQTtJQUNiLG9GQUFXLENBQUE7SUFDWCw0RkFBZSxDQUFBLENBQUMsK0JBQStCO0FBQ25ELENBQUMsRUFuQlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQW1CbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0NvbmZpcm1hdGlvbiwgTWVzc2FnZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtEeW5hbWljRGlhbG9nUmVmfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW19IGZyb20gJy4uLy4uLy4uL2FwaS9tb2RlbHMnO1xuaW1wb3J0IHtJRGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzJztcbmltcG9ydCB7SVZpZXdDb250YWluZXIsIE1uZ0Vycm9yfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtJZFR5cGV9IGZyb20gJy4uLy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIEFjdGlvbkVycm9yIHtcbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGVycm9yOiBhbnksIC8vIGVycm9yIGRldGFpbHNcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGRpc21pc3NlZDogYm9vbGVhbiA9IGZhbHNlIC8vIGJ5IHVzZXJcbiAgICApIHt9XG59XG5cbi8qKlxuICogQWN0aW9uIGV4ZWN1dGlvbiBpbnN0YW5jZSBjb250YWluaW5nIGRhdGEgYWJvdXQgZXhlY3V0aW9uIHN0YXRlIG9mIGFjdGlvblxuICovXG5leHBvcnQgY2xhc3MgQWN0aW9uSW5zdGFuY2U8VCwgUz4ge1xuICAgIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZUlkOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGluc3RhbmNlTG9uZ05hbWU6IHN0cmluZztcbiAgICBwdWJsaWMgcmVhZG9ubHkgYWN0aW9uOiBBY3Rpb25EZXNjcmlwdG9yPFQ+O1xuXG4gICAgLy8gZnVuY3Rpb24gZXhlY3V0aW9uXG4gICAgcHVibGljIHJlYWRvbmx5IGlzUnVuTG9hZGluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuICAgIC8vIHBhcmFtZXRlcnMsIGNvbnRleHRzLCBzdGF0ZXNcbiAgICBwdWJsaWMgdHJpZ2dlclBhcmFtZXRlcnM/OiBBY3Rpb25QYXJhbWV0ZXJzPFQ+O1xuICAgIHB1YmxpYyBhY3RpdmF0aW9uUGFyYW1ldGVycz86IEFjdGlvblBhcmFtZXRlcnM8VD47XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250ZXh0czogQXJyYXk8QWN0aW9uQ29udGV4dDxULCBTPj4gPSBbXTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvblN1YmplY3QgPSBuZXcgU3ViamVjdDxUIHwgbnVsbCB8IHVuZGVmaW5lZD4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHN0YXRlU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8QWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0+KDEpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdWx0U3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PFQgfCBudWxsPigxKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVycm9yU3ViamVjdCA9IG5ldyBSZXBsYXlTdWJqZWN0PEFjdGlvbkVycm9yPigxKTtcblxuICAgIHByaXZhdGUgY29udGV4dEV4ZWN1dGlvblN1YnNjcmlwdGlvbnM6IEFycmF5PFN1YnNjcmlwdGlvbj4gPSBbXTtcblxuICAgIC8vIHJlc3VsdCBvciBlcnJvclxuICAgIHByaXZhdGUgX3Jlc3VsdD86IFQgfCBudWxsO1xuICAgIHByaXZhdGUgX2Vycm9yPzogQWN0aW9uRXJyb3I7XG5cbiAgICAvLyBhZGRpdGlvbmFsIGRhdGEgZnJvbSB0cmlnZ2VyL2FjdGl2YXRpb25cbiAgICBwdWJsaWMgdHJpZ2dlclJvdXRlTmF2aWdhdGlvbj86IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gICAgcHVibGljIGFjdGl2YXRpb25EaWFsb2dSZWY/OiBEeW5hbWljRGlhbG9nUmVmO1xuXG4gICAgLy8gbGlua2VkIGFjdGlvbnNcbiAgICBwdWJsaWMgbmV4dEFjdGlvbkluc3RhbmNlPzogQWN0aW9uSW5zdGFuY2U8dW5rbm93biwgdW5rbm93bj47XG4gICAgcHVibGljIGVycm9yQWN0aW9uSW5zdGFuY2U/OiBBY3Rpb25JbnN0YW5jZTxULCBTPjsgLy8gZXJyb3IgYWN0aW9uIG11c3QgcmVseSBvbiBzYW1lIHR5cGVcblxuICAgIGNvbnN0cnVjdG9yKGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxUPiwgc3RhdGUgPSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5UcmlnZ2VyU3RhcnQsIHB1YmxpYyBkZWJ1ZyA9IGZhbHNlKSB7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VJZCA9IE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZUxvbmdOYW1lID0gYCR7YWN0aW9uLmFjdGlvbk5hbWVMb25nfV8ke3RoaXMuaW5zdGFuY2VJZH1gO1xuICAgICAgICB0aGlzLmFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgdGhpcy5zdGF0ZSA9IHN0YXRlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgaXNSdW5Mb2FkaW5nJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNSdW5Mb2FkaW5nU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGNvbnRleHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRleHRzLmxlbmd0aCA9PT0gMCA/IHVuZGVmaW5lZCA6IHRoaXMuY29udGV4dHNbdGhpcy5jb250ZXh0cy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGV4ZWN1dGlvbiQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGlvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBleGVjdXRpb25Jc1J1bm5pbmckKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzdGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVTdWJqZWN0LnZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgc3RhdGUoc3RhdGU6IEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtKSB7XG4gICAgICAgIGlmIChzdGF0ZSA+IHRoaXMuc3RhdGVTdWJqZWN0LnZhbHVlKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYEFjdGlvbkluc3RhbmNlICR7dGhpcy5pbnN0YW5jZUxvbmdOYW1lfSAtIHN0YXRlICMke3N0YXRlfTogJHtBY3Rpb25JbnN0YW5jZVN0YXRlRW51bVtzdGF0ZV19YCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5uZXh0KHN0YXRlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3RhdGUkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdGF0ZVN1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlc3VsdCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3Jlc3VsdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHJlc3VsdChyZXN1bHQ6IFQgfCBudWxsIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgcmVzdWx0ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBBY3Rpb25JbnN0YW5jZSAke3RoaXMuaW5zdGFuY2VMb25nTmFtZX0gLSByZXN1bHRgLCByZXN1bHQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3Jlc3VsdCA9IHJlc3VsdDtcbiAgICAgICAgdGhpcy5yZXN1bHRTdWJqZWN0Lm5leHQocmVzdWx0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHJlc3VsdCQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlc3VsdFN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlcnJvcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Vycm9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBzZXQgZXJyb3IoZXJyb3I6IEFjdGlvbkVycm9yIHwgdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh0eXBlb2YgZXJyb3IgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYEFjdGlvbkluc3RhbmNlICR7dGhpcy5pbnN0YW5jZUxvbmdOYW1lfSAtIGVycm9yYCwgZXJyb3IpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2Vycm9yID0gZXJyb3I7XG4gICAgICAgIHRoaXMuZXJyb3JTdWJqZWN0Lm5leHQoZXJyb3IpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXJyb3IkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5lcnJvclN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbnRleHRBdChpZHg6IG51bWJlcikge1xuICAgICAgICByZXR1cm4gaWR4IDwgdGhpcy5jb250ZXh0cy5sZW5ndGggPyB0aGlzLmNvbnRleHRzW2lkeF0gOiB1bmRlZmluZWQ7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyc1xuICAgIHB1YmxpYyBuZXdDb250ZXh0KGNvbnRleHQ6IEFjdGlvbkNvbnRleHQ8VCwgUz4sIGZpbmlzaFByZXZpb3VzID0gdHJ1ZSkge1xuICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgQWN0aW9uSW5zdGFuY2UgJHt0aGlzLmluc3RhbmNlTG9uZ05hbWV9IC0gbmV3IGNvbnRleHQgJHtjb250ZXh0LmNvbnRleHRMb25nTmFtZX1gKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBjdXJyZW50Q29udGV4dCA9IHRoaXMuY29udGV4dDtcbiAgICAgICAgaWYgKGN1cnJlbnRDb250ZXh0KSB7XG4gICAgICAgICAgICBjdXJyZW50Q29udGV4dC5leGVjdXRpb25Db21wbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29udGV4dEV4ZWN1dGlvblN1YnNjcmlwdGlvbnMuZm9yRWFjaChzID0+IHMudW5zdWJzY3JpYmUoKSk7XG4gICAgICAgIHRoaXMuY29udGV4dEV4ZWN1dGlvblN1YnNjcmlwdGlvbnMgPSBbXTtcbiAgICAgICAgdGhpcy5jb250ZXh0RXhlY3V0aW9uU3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgY29udGV4dC5leGVjdXRpb24kLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogbmV4dCA9PiB0aGlzLmV4ZWN1dGlvblN1YmplY3QubmV4dChuZXh0KSxcbiAgICAgICAgICAgICAgICBlcnJvcjogZXJyb3IgPT4gdGhpcy5leGVjdXRpb25TdWJqZWN0LmVycm9yKGVycm9yKVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb250ZXh0RXhlY3V0aW9uU3Vic2NyaXB0aW9ucy5wdXNoKFxuICAgICAgICAgICAgY29udGV4dC5leGVjdXRpb25Jc1J1bm5pbmckLnN1YnNjcmliZSh7XG4gICAgICAgICAgICAgICAgbmV4dDogbmV4dCA9PiB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QubmV4dChuZXh0KVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5jb250ZXh0cy5wdXNoKGNvbnRleHQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaW5pc2goKSB7XG4gICAgICAgIGlmICh0aGlzLnN0YXRlU3ViamVjdC52YWx1ZSA8IEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtLkZpbmlzaFN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuc3RhdGUgPSBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5GaW5pc2hTdWNjZXNzO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbXBsZXRlIGFsbCBzdWJqZWN0c1xuICAgICAgICB0aGlzLmNvbnRleHRzLmZvckVhY2goYyA9PiBjLmZpbmlzaCgpKTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25TdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnN0YXRlU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLnJlc3VsdFN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5lcnJvclN1YmplY3QuY29tcGxldGUoKTtcbiAgICB9XG59XG5cbi8qKlxuICogQ2xhc3MgY29udGFpbmluZyBhbGwgbWFpbiBkYXRhIGZvciBhY3Rpb24gdG8gYmUgZXhlY3V0ZWQgaW4gcnVuL2ZldGNoL3N1Ym1pdCBzdGF0ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb25Db250ZXh0PFQsIFM+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgY29udGV4dExvbmdOYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIHByZXZpb3VzQWN0aW9uSW5zdGFuY2U/OiBBY3Rpb25JbnN0YW5jZTx1bmtub3duLCB1bmtub3duPjtcbiAgICBwdWJsaWMgY29uZmlybWF0aW9uPzogQ29uZmlybWF0aW9uO1xuICAgIHB1YmxpYyBub3RpZmljYXRpb24/OiBNZXNzYWdlO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZTogQWN0aW9uSW5zdGFuY2U8VCwgUz4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBwYXJhbWV0ZXJzOiBBY3Rpb25QYXJhbWV0ZXJzPFQ+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZnVuY3Rpb25OYW1lOiAncnVuJyB8ICdmZXRjaCcgfCAnc3VibWl0JyxcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGRhdGFQcm92aWRlcj86IElEYXRhUHJvdmlkZXI8VCwgUz4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlSW5zdGFuY2U/OiBTLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvblN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxUIHwgbnVsbCB8IHVuZGVmaW5lZD4oMSksXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpXG4gICAgKSB7XG4gICAgICAgIHRoaXMuY29udGV4dExvbmdOYW1lID0gYCR7dGhpcy5pbnN0YW5jZS5pbnN0YW5jZUxvbmdOYW1lfV8ke2Z1bmN0aW9uTmFtZX1gO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXhlY3V0aW9uJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGV4ZWN1dGlvbklzUnVubmluZyQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhlY3V0aW9uU3RhcnQoKSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBBY3Rpb25Db250ZXh0ICR7dGhpcy5jb250ZXh0TG9uZ05hbWV9IC0gZXhlY3V0aW9uIHN0YXJ0YCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0Lm5leHQodHJ1ZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4ZWN1dGlvbk5leHQobmV4dDogVCB8IG51bGwgfCB1bmRlZmluZWQsIGZpbmlzaCA9IHRydWUpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYEFjdGlvbkNvbnRleHQgJHt0aGlzLmNvbnRleHRMb25nTmFtZX0gLSBleGVjdXRpb24gbmV4dCBldmVudGAsIG5leHQsIGZpbmlzaCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leGVjdXRpb25TdWJqZWN0Lm5leHQobmV4dCk7XG4gICAgICAgIGlmIChmaW5pc2gpIHtcbiAgICAgICAgICAgIHRoaXMuZXhlY3V0aW9uQ29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBleGVjdXRpb25Db21wbGV0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuaW5zdGFuY2UuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYEFjdGlvbkNvbnRleHQgJHt0aGlzLmNvbnRleHRMb25nTmFtZX0gLSBleGVjdXRpb24gY29tcGxldGVgKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV4ZWN1dGlvblN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleGVjdXRpb25FcnJvcihlcnI6IE1uZ0Vycm9yKSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBBY3Rpb25Db250ZXh0ICR7dGhpcy5jb250ZXh0TG9uZ05hbWV9IC0gZXhlY3V0aW9uIGVycm9yYCwgZXJyKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmV4ZWN1dGlvblN1YmplY3QuZXJyb3IoZXJyKTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0Lm5leHQoZmFsc2UpO1xuICAgIH1cblxuICAgIHB1YmxpYyBmaW5pc2goKSB7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QuY29tcGxldGUoKTtcbiAgICB9XG59XG5cbi8qKlxuICogQ2xhc3MgY29udGFpbmluZyBhbGwgbWFpbiBkYXRhIGZvciBhY3Rpb24gdmFsaWRhdGlvbnMgKGVuYWJsZWQvdmlzaWJsZSkgdG8gYmUgZXhlY3V0ZWQgaW4gdmFsaWRhdGlvbiBzdGF0ZXMuXG4gKi9cbmV4cG9ydCBjbGFzcyBBY3Rpb25Db250ZXh0VmFsaWRhdGlvbjxULCBTPiB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBkZXNjcmlwdG9yOiBBY3Rpb25EZXNjcmlwdG9yPFQ+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyczogQWN0aW9uUGFyYW1ldGVyczxUPixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGRhdGFQcm92aWRlcj86IElEYXRhUHJvdmlkZXI8VCwgUz4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBzZXJ2aWNlSW5zdGFuY2U/OiBTXG4gICAgKSB7fVxufVxuXG5leHBvcnQgY2xhc3MgQWN0aW9uUGFyYW1ldGVyczxUPiB7XG4gICAgcHVibGljIGFjdGlvbkRhdGE/OiBBY3Rpb25EYXRhO1xuICAgIHB1YmxpYyBxdWVyeVBhcmFtPzogTWVkaXVzUXVlcnlQYXJhbTtcbiAgICBwdWJsaWMgdmlld0NvbnRhaW5lcj86IElWaWV3Q29udGFpbmVyPFQsIHVua25vd24+O1xuICAgIHB1YmxpYyBzb3VyY2VDb21wb25lbnQ/OiBhbnk7XG4gICAgcHVibGljIGhvc3RDb21wb25lbnQ/OiB1bmtub3duO1xuICAgIHB1YmxpYyByb3V0ZT86IEFjdGl2YXRlZFJvdXRlO1xuICAgIHB1YmxpYyBzZWxlY3RlZEl0ZW1zOiBUW10gPSBbXTtcbiAgICBwdWJsaWMgbG9jYWxlPzogc3RyaW5nO1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIGl0ZW1JZD86IElkVHlwZSwgcHVibGljIGl0ZW0/OiBUKSB7fVxuXG4gICAgcHVibGljIHdpdGhBY3Rpb25EYXRhKGFjdGlvbkRhdGE/OiBBY3Rpb25EYXRhKSB7XG4gICAgICAgIHRoaXMuYWN0aW9uRGF0YSA9IGFjdGlvbkRhdGE7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUXVlcnlQYXJhbShxdWVyeVBhcmFtPzogTWVkaXVzUXVlcnlQYXJhbSkge1xuICAgICAgICB0aGlzLnF1ZXJ5UGFyYW0gPSBxdWVyeVBhcmFtO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFZpZXdDb250YWluZXIodmlld0NvbnRhaW5lcj86IElWaWV3Q29udGFpbmVyPFQsIHVua25vd24+KSB7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lciA9IHZpZXdDb250YWluZXI7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoU291cmNlQ29tcG9uZW50KHNvdXJjZUNvbXBvbmVudD86IGFueSkge1xuICAgICAgICB0aGlzLnNvdXJjZUNvbXBvbmVudCA9IHNvdXJjZUNvbXBvbmVudDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhIb3N0Q29tcG9uZW50KGhvc3RDb21wb25lbnQ/OiB1bmtub3duKSB7XG4gICAgICAgIHRoaXMuaG9zdENvbXBvbmVudCA9IGhvc3RDb21wb25lbnQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoUm91dGUocm91dGU/OiBBY3RpdmF0ZWRSb3V0ZSkge1xuICAgICAgICB0aGlzLnJvdXRlID0gcm91dGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoU2VsZWN0ZWRJdGVtcyhzZWxlY3RlZEl0ZW1zOiBUW10pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW1zID0gc2VsZWN0ZWRJdGVtcztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhMb2NhbGUobG9jYWxlOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5sb2NhbGUgPSBsb2NhbGU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cbn1cblxuZXhwb3J0IGVudW0gQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0ge1xuICAgIFRyaWdnZXJTdGFydCwgLy8gYWN0aW9uIHdhcyB0cmlnZ2VyZWQgKGNsaWNrIG9yIGRpcmVjdClcbiAgICBUcmlnZ2VyRW5kLFxuICAgIEFjdGl2YXRpb25TdGFydCwgLy8gYWN0aW9uIGFjdGl2YXRpb24gc3RhcnRlZCAoZGlyZWN0LCBldmVudCBvciBlZGl0b3IpXG4gICAgQWN0aXZhdGlvbkVuZCwgLy8gYWN0aW9uIGFjdGl2YXRpb24gZW5kZWRcbiAgICBGZXRjaFN0YXJ0LCAvLyBmZXRjaCBzdGFydGVkXG4gICAgRmV0Y2hFbmQsIC8vIGZldGNoIGVuZGVkXG4gICAgRmV0Y2hFcnJvciwgLy8gZmV0Y2ggZXJyb3JcbiAgICBSdW5Db25maXJtYXRpb25TdGFydCwgLy8gY29uZmlybWF0aW9uIGZvciBydW4gaXMgc3RhcnRlZFxuICAgIFJ1bkNvbmZpcm1hdGlvbkVuZEFjY2VwdCwgLy8gY29uZmlybWF0aW9uIGFjY2VwdGVkXG4gICAgUnVuQ29uZmlybWF0aW9uRW5kUmVqZWN0LCAvLyBjb25maXJtYXRpb24gcmVqZWN0ZWRcbiAgICBSdW5TdGFydCwgLy8gYWN0aW9uIHdhcyBydW4gYnkgY2FsbGluZyBtYWluIGZ1bmN0aW9uXG4gICAgUnVuRW5kLCAvLyBhY3Rpb24gcnVuIGZ1bmN0aW9uIGV4ZWN1dGVkXG4gICAgUnVuRXJyb3IsIC8vIGFjdGlvbiBydW4gZnVuY3Rpb24gZXhlY3V0ZWRcbiAgICBOZXh0QWN0aW9uU3RhcnQsIC8vIG5leHQgYWN0aW9uIHN0YXJ0ZWRcbiAgICBOZXh0QWN0aW9uRW5kLCAvLyBuZXh0IGFjdGlvbiBmaW5pc2hlZFxuICAgIEZpbmlzaFN1Y2Nlc3MsIC8vIGFjdGlvbiBleGVjdXRlZCBzdWNjZXNzZnVsbHlcbiAgICBGaW5pc2hFcnJvciwgLy8gYWN0aW9uIGV4ZWN1dGVkIHdpdGggZXJyb3JcbiAgICBGaW5pc2hEaXNtaXNzZWQgLy8gYWN0aW9uIHdhcyBkaXNtaXNzZWQgYnkgdXNlclxufVxuXG5leHBvcnQgdHlwZSBBY3Rpb25EYXRhID0ge1xuICAgIFtrZXk6IHN0cmluZ106IGFueTtcbn07XG4iXX0=
1
+ import { BehaviorSubject, ReplaySubject, Subject, distinctUntilChanged } from 'rxjs';
2
+ export class ActionError {
3
+ constructor(error, // error details
4
+ dismissed = false // by user
5
+ ) {
6
+ this.error = error;
7
+ this.dismissed = dismissed;
8
+ }
9
+ }
10
+ /**
11
+ * Action execution instance containing data about execution state of action
12
+ */
13
+ export class ActionInstance {
14
+ constructor(action, state = ActionInstanceStateEnum.TriggerStart, debug = false) {
15
+ this.debug = debug;
16
+ // function execution
17
+ this.isRunLoadingSubject = new BehaviorSubject(false);
18
+ this.contexts = [];
19
+ this.executionSubject = new Subject();
20
+ this.executionIsRunningSubject = new BehaviorSubject(false);
21
+ this.stateSubject = new BehaviorSubject(1);
22
+ this.resultSubject = new ReplaySubject(1);
23
+ this.errorSubject = new ReplaySubject(1);
24
+ this.contextExecutionSubscriptions = [];
25
+ this.instanceId = Math.random().toString(36).substring(2);
26
+ this.instanceLongName = `${action.actionNameLong}_${this.instanceId}`;
27
+ this.action = action;
28
+ this.state = state;
29
+ }
30
+ get isRunLoading$() {
31
+ return this.isRunLoadingSubject.asObservable();
32
+ }
33
+ get context() {
34
+ return this.contexts.length === 0 ? undefined : this.contexts[this.contexts.length - 1];
35
+ }
36
+ get execution$() {
37
+ return this.executionSubject.asObservable();
38
+ }
39
+ get executionIsRunning$() {
40
+ return this.executionIsRunningSubject.asObservable().pipe(distinctUntilChanged());
41
+ }
42
+ get state() {
43
+ return this.stateSubject.value;
44
+ }
45
+ set state(state) {
46
+ if (state > this.stateSubject.value) {
47
+ if (this.debug) {
48
+ console.debug(`ActionInstance ${this.instanceLongName} - state #${state}: ${ActionInstanceStateEnum[state]}`);
49
+ }
50
+ this.stateSubject.next(state);
51
+ }
52
+ }
53
+ get state$() {
54
+ return this.stateSubject.asObservable().pipe(distinctUntilChanged());
55
+ }
56
+ get result() {
57
+ return this._result;
58
+ }
59
+ set result(result) {
60
+ if (typeof result === 'undefined') {
61
+ return;
62
+ }
63
+ if (this.debug) {
64
+ console.debug(`ActionInstance ${this.instanceLongName} - result`, result);
65
+ }
66
+ this._result = result;
67
+ this.resultSubject.next(result);
68
+ }
69
+ get result$() {
70
+ return this.resultSubject.asObservable();
71
+ }
72
+ get error() {
73
+ return this._error;
74
+ }
75
+ set error(error) {
76
+ if (typeof error === 'undefined') {
77
+ return;
78
+ }
79
+ if (this.debug) {
80
+ console.debug(`ActionInstance ${this.instanceLongName} - error`, error);
81
+ }
82
+ this._error = error;
83
+ this.errorSubject.next(error);
84
+ }
85
+ get error$() {
86
+ return this.errorSubject.asObservable();
87
+ }
88
+ contextAt(idx) {
89
+ return idx < this.contexts.length ? this.contexts[idx] : undefined;
90
+ }
91
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
92
+ newContext(context, finishPrevious = true) {
93
+ if (this.debug) {
94
+ console.debug(`ActionInstance ${this.instanceLongName} - new context ${context.contextLongName}`);
95
+ }
96
+ const currentContext = this.context;
97
+ if (currentContext) {
98
+ currentContext.executionComplete();
99
+ }
100
+ this.contextExecutionSubscriptions.forEach(s => s.unsubscribe());
101
+ this.contextExecutionSubscriptions = [];
102
+ this.contextExecutionSubscriptions.push(context.execution$.subscribe({
103
+ next: next => this.executionSubject.next(next),
104
+ error: error => this.executionSubject.error(error)
105
+ }));
106
+ this.contextExecutionSubscriptions.push(context.executionIsRunning$.subscribe({
107
+ next: next => this.executionIsRunningSubject.next(next)
108
+ }));
109
+ this.contexts.push(context);
110
+ }
111
+ finish() {
112
+ if (this.stateSubject.value < ActionInstanceStateEnum.FinishSuccess) {
113
+ this.state = ActionInstanceStateEnum.FinishSuccess;
114
+ }
115
+ // complete all subjects
116
+ this.contexts.forEach(c => c.finish());
117
+ this.executionSubject.complete();
118
+ this.executionIsRunningSubject.complete();
119
+ this.stateSubject.complete();
120
+ this.resultSubject.complete();
121
+ this.errorSubject.complete();
122
+ }
123
+ }
124
+ /**
125
+ * Class containing all main data for action to be executed in run/fetch/submit states.
126
+ */
127
+ export class ActionContext {
128
+ constructor(instance, parameters, functionName, dataProvider, serviceInstance, executionSubject = new ReplaySubject(1), executionIsRunningSubject = new BehaviorSubject(false)) {
129
+ this.instance = instance;
130
+ this.parameters = parameters;
131
+ this.functionName = functionName;
132
+ this.dataProvider = dataProvider;
133
+ this.serviceInstance = serviceInstance;
134
+ this.executionSubject = executionSubject;
135
+ this.executionIsRunningSubject = executionIsRunningSubject;
136
+ this.contextLongName = `${this.instance.instanceLongName}_${functionName}`;
137
+ }
138
+ get execution$() {
139
+ return this.executionSubject.asObservable();
140
+ }
141
+ get executionIsRunning$() {
142
+ return this.executionIsRunningSubject.asObservable().pipe(distinctUntilChanged());
143
+ }
144
+ executionStart() {
145
+ if (this.instance.debug) {
146
+ console.debug(`ActionContext ${this.contextLongName} - execution start`);
147
+ }
148
+ this.executionIsRunningSubject.next(true);
149
+ }
150
+ executionNext(next, finish = true) {
151
+ if (this.instance.debug) {
152
+ console.debug(`ActionContext ${this.contextLongName} - execution next event`, next, finish);
153
+ }
154
+ this.executionSubject.next(next);
155
+ if (finish) {
156
+ this.executionComplete();
157
+ }
158
+ }
159
+ executionComplete() {
160
+ if (this.instance.debug) {
161
+ console.debug(`ActionContext ${this.contextLongName} - execution complete`);
162
+ }
163
+ this.executionSubject.complete();
164
+ this.executionIsRunningSubject.next(false);
165
+ }
166
+ executionError(err) {
167
+ if (this.instance.debug) {
168
+ console.debug(`ActionContext ${this.contextLongName} - execution error`, err);
169
+ }
170
+ this.executionSubject.error(err);
171
+ this.executionIsRunningSubject.next(false);
172
+ }
173
+ finish() {
174
+ this.executionSubject.complete();
175
+ this.executionIsRunningSubject.complete();
176
+ }
177
+ }
178
+ /**
179
+ * Class containing all main data for action validations (enabled/visible) to be executed in validation states.
180
+ */
181
+ export class ActionContextValidation {
182
+ constructor(descriptor, parameters, dataProvider, serviceInstance) {
183
+ this.descriptor = descriptor;
184
+ this.parameters = parameters;
185
+ this.dataProvider = dataProvider;
186
+ this.serviceInstance = serviceInstance;
187
+ }
188
+ }
189
+ export class ActionParameters {
190
+ constructor(itemId, item) {
191
+ this.itemId = itemId;
192
+ this.item = item;
193
+ this.selectedItems = [];
194
+ }
195
+ withActionData(actionData) {
196
+ this.actionData = actionData;
197
+ return this;
198
+ }
199
+ withQueryParam(queryParam) {
200
+ this.queryParam = queryParam;
201
+ return this;
202
+ }
203
+ withViewContainer(viewContainer) {
204
+ this.viewContainer = viewContainer;
205
+ return this;
206
+ }
207
+ withSourceComponent(sourceComponent) {
208
+ this.sourceComponent = sourceComponent;
209
+ return this;
210
+ }
211
+ withHostComponent(hostComponent) {
212
+ this.hostComponent = hostComponent;
213
+ return this;
214
+ }
215
+ withRoute(route) {
216
+ this.route = route;
217
+ return this;
218
+ }
219
+ withSelectedItems(selectedItems) {
220
+ this.selectedItems = selectedItems;
221
+ return this;
222
+ }
223
+ withLocale(locale) {
224
+ this.locale = locale;
225
+ return this;
226
+ }
227
+ }
228
+ export var ActionInstanceStateEnum;
229
+ (function (ActionInstanceStateEnum) {
230
+ ActionInstanceStateEnum[ActionInstanceStateEnum["TriggerStart"] = 0] = "TriggerStart";
231
+ ActionInstanceStateEnum[ActionInstanceStateEnum["TriggerEnd"] = 1] = "TriggerEnd";
232
+ ActionInstanceStateEnum[ActionInstanceStateEnum["ActivationStart"] = 2] = "ActivationStart";
233
+ ActionInstanceStateEnum[ActionInstanceStateEnum["ActivationEnd"] = 3] = "ActivationEnd";
234
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FetchStart"] = 4] = "FetchStart";
235
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FetchEnd"] = 5] = "FetchEnd";
236
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FetchError"] = 6] = "FetchError";
237
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationStart"] = 7] = "RunConfirmationStart";
238
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationEndAccept"] = 8] = "RunConfirmationEndAccept";
239
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunConfirmationEndReject"] = 9] = "RunConfirmationEndReject";
240
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunStart"] = 10] = "RunStart";
241
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunEnd"] = 11] = "RunEnd";
242
+ ActionInstanceStateEnum[ActionInstanceStateEnum["RunError"] = 12] = "RunError";
243
+ ActionInstanceStateEnum[ActionInstanceStateEnum["NextActionStart"] = 13] = "NextActionStart";
244
+ ActionInstanceStateEnum[ActionInstanceStateEnum["NextActionEnd"] = 14] = "NextActionEnd";
245
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FinishSuccess"] = 15] = "FinishSuccess";
246
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FinishError"] = 16] = "FinishError";
247
+ ActionInstanceStateEnum[ActionInstanceStateEnum["FinishDismissed"] = 17] = "FinishDismissed"; // action was dismissed by user
248
+ })(ActionInstanceStateEnum || (ActionInstanceStateEnum = {}));
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWN0aW9uLWV4ZWN1dGlvbi5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9hY3Rpb24vbW9kZWxzL2FjdGlvbi1leGVjdXRpb24ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsT0FBTyxFQUFDLGVBQWUsRUFBYyxhQUFhLEVBQUUsT0FBTyxFQUFnQixvQkFBb0IsRUFBQyxNQUFNLE1BQU0sQ0FBQztBQVE3RyxNQUFNLE9BQU8sV0FBVztJQUNwQixZQUNvQixLQUFVLEVBQUUsZ0JBQWdCO0lBQzVCLFlBQXFCLEtBQUssQ0FBQyxVQUFVOztRQURyQyxVQUFLLEdBQUwsS0FBSyxDQUFLO1FBQ1YsY0FBUyxHQUFULFNBQVMsQ0FBaUI7SUFDM0MsQ0FBQztDQUNQO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sY0FBYztJQWdDdkIsWUFBWSxNQUEyQixFQUFFLEtBQUssR0FBRyx1QkFBdUIsQ0FBQyxZQUFZLEVBQVMsUUFBUSxLQUFLO1FBQWIsVUFBSyxHQUFMLEtBQUssQ0FBUTtRQTNCM0cscUJBQXFCO1FBQ0wsd0JBQW1CLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFLaEQsYUFBUSxHQUErQixFQUFFLENBQUM7UUFDMUMscUJBQWdCLEdBQUcsSUFBSSxPQUFPLEVBQXdCLENBQUM7UUFDdkQsOEJBQXlCLEdBQUcsSUFBSSxlQUFlLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdkQsaUJBQVksR0FBRyxJQUFJLGVBQWUsQ0FBMEIsQ0FBQyxDQUFDLENBQUM7UUFDL0Qsa0JBQWEsR0FBRyxJQUFJLGFBQWEsQ0FBVyxDQUFDLENBQUMsQ0FBQztRQUMvQyxpQkFBWSxHQUFHLElBQUksYUFBYSxDQUFjLENBQUMsQ0FBQyxDQUFDO1FBRTFELGtDQUE2QixHQUF3QixFQUFFLENBQUM7UUFlNUQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMs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dUZBQWEsQ0FBQTtJQUNiLGlGQUFVLENBQUE7SUFDViw2RUFBUSxDQUFBO0lBQ1IsaUZBQVUsQ0FBQTtJQUNWLHFHQUFvQixDQUFBO0lBQ3BCLDZHQUF3QixDQUFBO0lBQ3hCLDZHQUF3QixDQUFBO0lBQ3hCLDhFQUFRLENBQUE7SUFDUiwwRUFBTSxDQUFBO0lBQ04sOEVBQVEsQ0FBQTtJQUNSLDRGQUFlLENBQUE7SUFDZix3RkFBYSxDQUFBO0lBQ2Isd0ZBQWEsQ0FBQTtJQUNiLG9GQUFXLENBQUE7SUFDWCw0RkFBZSxDQUFBLENBQUMsK0JBQStCO0FBQ25ELENBQUMsRUFuQlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQW1CbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FjdGl2YXRlZFJvdXRlfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge0NvbmZpcm1hdGlvbiwgTWVzc2FnZX0gZnJvbSAncHJpbWVuZy9hcGknO1xuaW1wb3J0IHtEeW5hbWljRGlhbG9nUmVmfSBmcm9tICdwcmltZW5nL2R5bmFtaWNkaWFsb2cnO1xuaW1wb3J0IHtCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiwgZGlzdGluY3RVbnRpbENoYW5nZWR9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge01lZGl1c1F1ZXJ5UGFyYW19IGZyb20gJy4uLy4uLy4uL2FwaS9tb2RlbHMnO1xuaW1wb3J0IHtJRGF0YVByb3ZpZGVyfSBmcm9tICcuLi8uLi8uLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge0FjdGlvbkRlc2NyaXB0b3J9IGZyb20gJy4uLy4uLy4uL2Rlc2NyaXB0b3JzL2FjdGlvbic7XG5pbXBvcnQge0lWaWV3Q29udGFpbmVyLCBNbmdFcnJvcn0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7SWRUeXBlfSBmcm9tICcuLi8uLi8uLi90eXBlcyc7XG5cbmV4cG9ydCBjbGFzcyBBY3Rpb25FcnJvciB7XG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBlcnJvcjogYW55LCAvLyBlcnJvciBkZXRhaWxzXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBkaXNtaXNzZWQ6IGJvb2xlYW4gPSBmYWxzZSAvLyBieSB1c2VyXG4gICAgKSB7fVxufVxuXG4vKipcbiAqIEFjdGlvbiBleGVjdXRpb24gaW5zdGFuY2UgY29udGFpbmluZyBkYXRhIGFib3V0IGV4ZWN1dGlvbiBzdGF0ZSBvZiBhY3Rpb25cbiAqL1xuZXhwb3J0IGNsYXNzIEFjdGlvbkluc3RhbmNlPFQsIFM+IHtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2VJZDogc3RyaW5nO1xuICAgIHB1YmxpYyByZWFkb25seSBpbnN0YW5jZUxvbmdOYW1lOiBzdHJpbmc7XG4gICAgcHVibGljIHJlYWRvbmx5IGFjdGlvbjogQWN0aW9uRGVzY3JpcHRvcjxUPjtcblxuICAgIC8vIGZ1bmN0aW9uIGV4ZWN1dGlvblxuICAgIHB1YmxpYyByZWFkb25seSBpc1J1bkxvYWRpbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICAvLyBwYXJhbWV0ZXJzLCBjb250ZXh0cywgc3RhdGVzXG4gICAgcHVibGljIHRyaWdnZXJQYXJhbWV0ZXJzPzogQWN0aW9uUGFyYW1ldGVyczxUPjtcbiAgICBwdWJsaWMgYWN0aXZhdGlvblBhcmFtZXRlcnM/OiBBY3Rpb25QYXJhbWV0ZXJzPFQ+O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dHM6IEFycmF5PEFjdGlvbkNvbnRleHQ8VCwgUz4+ID0gW107XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRpb25TdWJqZWN0ID0gbmV3IFN1YmplY3Q8VCB8IG51bGwgfCB1bmRlZmluZWQ+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0ID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzdGF0ZVN1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtPigxKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc3VsdFN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxUIHwgbnVsbD4oMSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlcnJvclN1YmplY3QgPSBuZXcgUmVwbGF5U3ViamVjdDxBY3Rpb25FcnJvcj4oMSk7XG5cbiAgICBwcml2YXRlIGNvbnRleHRFeGVjdXRpb25TdWJzY3JpcHRpb25zOiBBcnJheTxTdWJzY3JpcHRpb24+ID0gW107XG5cbiAgICAvLyByZXN1bHQgb3IgZXJyb3JcbiAgICBwcml2YXRlIF9yZXN1bHQ/OiBUIHwgbnVsbDtcbiAgICBwcml2YXRlIF9lcnJvcj86IEFjdGlvbkVycm9yO1xuXG4gICAgLy8gYWRkaXRpb25hbCBkYXRhIGZyb20gdHJpZ2dlci9hY3RpdmF0aW9uXG4gICAgcHVibGljIHRyaWdnZXJSb3V0ZU5hdmlnYXRpb24/OiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuICAgIHB1YmxpYyBhY3RpdmF0aW9uRGlhbG9nUmVmPzogRHluYW1pY0RpYWxvZ1JlZjtcblxuICAgIC8vIGxpbmtlZCBhY3Rpb25zXG4gICAgcHVibGljIG5leHRBY3Rpb25JbnN0YW5jZT86IEFjdGlvbkluc3RhbmNlPHVua25vd24sIHVua25vd24+O1xuICAgIHB1YmxpYyBlcnJvckFjdGlvbkluc3RhbmNlPzogQWN0aW9uSW5zdGFuY2U8VCwgUz47IC8vIGVycm9yIGFjdGlvbiBtdXN0IHJlbHkgb24gc2FtZSB0eXBlXG5cbiAgICBjb25zdHJ1Y3RvcihhY3Rpb246IEFjdGlvbkRlc2NyaXB0b3I8VD4sIHN0YXRlID0gQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uVHJpZ2dlclN0YXJ0LCBwdWJsaWMgZGVidWcgPSBmYWxzZSkge1xuICAgICAgICB0aGlzLmluc3RhbmNlSWQgPSBNYXRoLnJhbmRvbSgpLnRvU3RyaW5nKDM2KS5zdWJzdHJpbmcoMik7XG4gICAgICAgIHRoaXMuaW5zdGFuY2VMb25nTmFtZSA9IGAke2FjdGlvbi5hY3Rpb25OYW1lTG9uZ31fJHt0aGlzLmluc3RhbmNlSWR9YDtcbiAgICAgICAgdGhpcy5hY3Rpb24gPSBhY3Rpb247XG4gICAgICAgIHRoaXMuc3RhdGUgPSBzdGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGlzUnVuTG9hZGluZyQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzUnVuTG9hZGluZ1N1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb250ZXh0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb250ZXh0cy5sZW5ndGggPT09IDAgPyB1bmRlZmluZWQgOiB0aGlzLmNvbnRleHRzW3RoaXMuY29udGV4dHMubGVuZ3RoIC0gMV07XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBleGVjdXRpb24kKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRpb25TdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXhlY3V0aW9uSXNSdW5uaW5nJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5hc09ic2VydmFibGUoKS5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc3RhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnN0YXRlU3ViamVjdC52YWx1ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IHN0YXRlKHN0YXRlOiBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bSkge1xuICAgICAgICBpZiAoc3RhdGUgPiB0aGlzLnN0YXRlU3ViamVjdC52YWx1ZSkge1xuICAgICAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBBY3Rpb25JbnN0YW5jZSAke3RoaXMuaW5zdGFuY2VMb25nTmFtZX0gLSBzdGF0ZSAjJHtzdGF0ZX06ICR7QWN0aW9uSW5zdGFuY2VTdGF0ZUVudW1bc3RhdGVdfWApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QubmV4dChzdGF0ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHN0YXRlJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3RhdGVTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXN1bHQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXN1bHQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNldCByZXN1bHQocmVzdWx0OiBUIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIHJlc3VsdCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgQWN0aW9uSW5zdGFuY2UgJHt0aGlzLmluc3RhbmNlTG9uZ05hbWV9IC0gcmVzdWx0YCwgcmVzdWx0KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9yZXN1bHQgPSByZXN1bHQ7XG4gICAgICAgIHRoaXMucmVzdWx0U3ViamVjdC5uZXh0KHJlc3VsdCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCByZXN1bHQkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5yZXN1bHRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZXJyb3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9lcnJvcjtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2V0IGVycm9yKGVycm9yOiBBY3Rpb25FcnJvciB8IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAodHlwZW9mIGVycm9yID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBBY3Rpb25JbnN0YW5jZSAke3RoaXMuaW5zdGFuY2VMb25nTmFtZX0gLSBlcnJvcmAsIGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9lcnJvciA9IGVycm9yO1xuICAgICAgICB0aGlzLmVycm9yU3ViamVjdC5uZXh0KGVycm9yKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGVycm9yJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXJyb3JTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb250ZXh0QXQoaWR4OiBudW1iZXIpIHtcbiAgICAgICAgcmV0dXJuIGlkeCA8IHRoaXMuY29udGV4dHMubGVuZ3RoID8gdGhpcy5jb250ZXh0c1tpZHhdIDogdW5kZWZpbmVkO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW51c2VkLXZhcnNcbiAgICBwdWJsaWMgbmV3Q29udGV4dChjb250ZXh0OiBBY3Rpb25Db250ZXh0PFQsIFM+LCBmaW5pc2hQcmV2aW91cyA9IHRydWUpIHtcbiAgICAgICAgaWYgKHRoaXMuZGVidWcpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZGVidWcoYEFjdGlvbkluc3RhbmNlICR7dGhpcy5pbnN0YW5jZUxvbmdOYW1lfSAtIG5ldyBjb250ZXh0ICR7Y29udGV4dC5jb250ZXh0TG9uZ05hbWV9YCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgY3VycmVudENvbnRleHQgPSB0aGlzLmNvbnRleHQ7XG4gICAgICAgIGlmIChjdXJyZW50Q29udGV4dCkge1xuICAgICAgICAgICAgY3VycmVudENvbnRleHQuZXhlY3V0aW9uQ29tcGxldGUoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbnRleHRFeGVjdXRpb25TdWJzY3JpcHRpb25zLmZvckVhY2gocyA9PiBzLnVuc3Vic2NyaWJlKCkpO1xuICAgICAgICB0aGlzLmNvbnRleHRFeGVjdXRpb25TdWJzY3JpcHRpb25zID0gW107XG4gICAgICAgIHRoaXMuY29udGV4dEV4ZWN1dGlvblN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIGNvbnRleHQuZXhlY3V0aW9uJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IG5leHQgPT4gdGhpcy5leGVjdXRpb25TdWJqZWN0Lm5leHQobmV4dCksXG4gICAgICAgICAgICAgICAgZXJyb3I6IGVycm9yID0+IHRoaXMuZXhlY3V0aW9uU3ViamVjdC5lcnJvcihlcnJvcilcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29udGV4dEV4ZWN1dGlvblN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgICAgICAgIGNvbnRleHQuZXhlY3V0aW9uSXNSdW5uaW5nJC5zdWJzY3JpYmUoe1xuICAgICAgICAgICAgICAgIG5leHQ6IG5leHQgPT4gdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0Lm5leHQobmV4dClcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuY29udGV4dHMucHVzaChjb250ZXh0KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmluaXNoKCkge1xuICAgICAgICBpZiAodGhpcy5zdGF0ZVN1YmplY3QudmFsdWUgPCBBY3Rpb25JbnN0YW5jZVN0YXRlRW51bS5GaW5pc2hTdWNjZXNzKSB7XG4gICAgICAgICAgICB0aGlzLnN0YXRlID0gQWN0aW9uSW5zdGFuY2VTdGF0ZUVudW0uRmluaXNoU3VjY2VzcztcbiAgICAgICAgfVxuICAgICAgICAvLyBjb21wbGV0ZSBhbGwgc3ViamVjdHNcbiAgICAgICAgdGhpcy5jb250ZXh0cy5mb3JFYWNoKGMgPT4gYy5maW5pc2goKSk7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLmV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5zdGF0ZVN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5yZXN1bHRTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZXJyb3JTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgfVxufVxuXG4vKipcbiAqIENsYXNzIGNvbnRhaW5pbmcgYWxsIG1haW4gZGF0YSBmb3IgYWN0aW9uIHRvIGJlIGV4ZWN1dGVkIGluIHJ1bi9mZXRjaC9zdWJtaXQgc3RhdGVzLlxuICovXG5leHBvcnQgY2xhc3MgQWN0aW9uQ29udGV4dDxULCBTPiB7XG4gICAgcHVibGljIHJlYWRvbmx5IGNvbnRleHRMb25nTmFtZTogc3RyaW5nO1xuICAgIHB1YmxpYyBwcmV2aW91c0FjdGlvbkluc3RhbmNlPzogQWN0aW9uSW5zdGFuY2U8dW5rbm93biwgdW5rbm93bj47XG4gICAgcHVibGljIGNvbmZpcm1hdGlvbj86IENvbmZpcm1hdGlvbjtcbiAgICBwdWJsaWMgbm90aWZpY2F0aW9uPzogTWVzc2FnZTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgaW5zdGFuY2U6IEFjdGlvbkluc3RhbmNlPFQsIFM+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgcGFyYW1ldGVyczogQWN0aW9uUGFyYW1ldGVyczxUPixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogJ3J1bicgfCAnZmV0Y2gnIHwgJ3N1Ym1pdCcsXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBkYXRhUHJvdmlkZXI/OiBJRGF0YVByb3ZpZGVyPFQsIFM+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZUluc3RhbmNlPzogUyxcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBleGVjdXRpb25TdWJqZWN0ID0gbmV3IFJlcGxheVN1YmplY3Q8VCB8IG51bGwgfCB1bmRlZmluZWQ+KDEpLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IGV4ZWN1dGlvbklzUnVubmluZ1N1YmplY3QgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKVxuICAgICkge1xuICAgICAgICB0aGlzLmNvbnRleHRMb25nTmFtZSA9IGAke3RoaXMuaW5zdGFuY2UuaW5zdGFuY2VMb25nTmFtZX1fJHtmdW5jdGlvbk5hbWV9YDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGV4ZWN1dGlvbiQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmV4ZWN1dGlvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBleGVjdXRpb25Jc1J1bm5pbmckKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpLnBpcGUoZGlzdGluY3RVbnRpbENoYW5nZWQoKSk7XG4gICAgfVxuXG4gICAgcHVibGljIGV4ZWN1dGlvblN0YXJ0KCkge1xuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZS5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgQWN0aW9uQ29udGV4dCAke3RoaXMuY29udGV4dExvbmdOYW1lfSAtIGV4ZWN1dGlvbiBzdGFydGApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5uZXh0KHRydWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleGVjdXRpb25OZXh0KG5leHQ6IFQgfCBudWxsIHwgdW5kZWZpbmVkLCBmaW5pc2ggPSB0cnVlKSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBBY3Rpb25Db250ZXh0ICR7dGhpcy5jb250ZXh0TG9uZ05hbWV9IC0gZXhlY3V0aW9uIG5leHQgZXZlbnRgLCBuZXh0LCBmaW5pc2gpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uU3ViamVjdC5uZXh0KG5leHQpO1xuICAgICAgICBpZiAoZmluaXNoKSB7XG4gICAgICAgICAgICB0aGlzLmV4ZWN1dGlvbkNvbXBsZXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgZXhlY3V0aW9uQ29tcGxldGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmluc3RhbmNlLmRlYnVnKSB7XG4gICAgICAgICAgICBjb25zb2xlLmRlYnVnKGBBY3Rpb25Db250ZXh0ICR7dGhpcy5jb250ZXh0TG9uZ05hbWV9IC0gZXhlY3V0aW9uIGNvbXBsZXRlYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leGVjdXRpb25TdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhlY3V0aW9uRXJyb3IoZXJyOiBNbmdFcnJvcikge1xuICAgICAgICBpZiAodGhpcy5pbnN0YW5jZS5kZWJ1Zykge1xuICAgICAgICAgICAgY29uc29sZS5kZWJ1ZyhgQWN0aW9uQ29udGV4dCAke3RoaXMuY29udGV4dExvbmdOYW1lfSAtIGV4ZWN1dGlvbiBlcnJvcmAsIGVycik7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5leGVjdXRpb25TdWJqZWN0LmVycm9yKGVycik7XG4gICAgICAgIHRoaXMuZXhlY3V0aW9uSXNSdW5uaW5nU3ViamVjdC5uZXh0KGZhbHNlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZmluaXNoKCkge1xuICAgICAgICB0aGlzLmV4ZWN1dGlvblN1YmplY3QuY29tcGxldGUoKTtcbiAgICAgICAgdGhpcy5leGVjdXRpb25Jc1J1bm5pbmdTdWJqZWN0LmNvbXBsZXRlKCk7XG4gICAgfVxufVxuXG4vKipcbiAqIENsYXNzIGNvbnRhaW5pbmcgYWxsIG1haW4gZGF0YSBmb3IgYWN0aW9uIHZhbGlkYXRpb25zIChlbmFibGVkL3Zpc2libGUpIHRvIGJlIGV4ZWN1dGVkIGluIHZhbGlkYXRpb24gc3RhdGVzLlxuICovXG5leHBvcnQgY2xhc3MgQWN0aW9uQ29udGV4dFZhbGlkYXRpb248VCwgUz4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRvcjogQWN0aW9uRGVzY3JpcHRvcjxUPixcbiAgICAgICAgcHVibGljIHJlYWRvbmx5IHBhcmFtZXRlcnM6IEFjdGlvblBhcmFtZXRlcnM8VD4sXG4gICAgICAgIHB1YmxpYyByZWFkb25seSBkYXRhUHJvdmlkZXI/OiBJRGF0YVByb3ZpZGVyPFQsIFM+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgc2VydmljZUluc3RhbmNlPzogU1xuICAgICkge31cbn1cblxuZXhwb3J0IGNsYXNzIEFjdGlvblBhcmFtZXRlcnM8VD4ge1xuICAgIHB1YmxpYyBhY3Rpb25EYXRhPzogQWN0aW9uRGF0YTtcbiAgICBwdWJsaWMgcXVlcnlQYXJhbT86IE1lZGl1c1F1ZXJ5UGFyYW07XG4gICAgcHVibGljIHZpZXdDb250YWluZXI/OiBJVmlld0NvbnRhaW5lcjxULCB1bmtub3duPjtcbiAgICBwdWJsaWMgc291cmNlQ29tcG9uZW50PzogYW55O1xuICAgIHB1YmxpYyBob3N0Q29tcG9uZW50PzogdW5rbm93bjtcbiAgICBwdWJsaWMgcm91dGU/OiBBY3RpdmF0ZWRSb3V0ZTtcbiAgICBwdWJsaWMgc2VsZWN0ZWRJdGVtczogVFtdID0gW107XG4gICAgcHVibGljIGxvY2FsZT86IHN0cmluZztcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBpdGVtSWQ/OiBJZFR5cGUsIHB1YmxpYyBpdGVtPzogVCkge31cblxuICAgIHB1YmxpYyB3aXRoQWN0aW9uRGF0YShhY3Rpb25EYXRhPzogQWN0aW9uRGF0YSkge1xuICAgICAgICB0aGlzLmFjdGlvbkRhdGEgPSBhY3Rpb25EYXRhO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFF1ZXJ5UGFyYW0ocXVlcnlQYXJhbT86IE1lZGl1c1F1ZXJ5UGFyYW0pIHtcbiAgICAgICAgdGhpcy5xdWVyeVBhcmFtID0gcXVlcnlQYXJhbTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhWaWV3Q29udGFpbmVyKHZpZXdDb250YWluZXI/OiBJVmlld0NvbnRhaW5lcjxULCB1bmtub3duPikge1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXIgPSB2aWV3Q29udGFpbmVyO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFNvdXJjZUNvbXBvbmVudChzb3VyY2VDb21wb25lbnQ/OiBhbnkpIHtcbiAgICAgICAgdGhpcy5zb3VyY2VDb21wb25lbnQgPSBzb3VyY2VDb21wb25lbnQ7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoSG9zdENvbXBvbmVudChob3N0Q29tcG9uZW50PzogdW5rbm93bikge1xuICAgICAgICB0aGlzLmhvc3RDb21wb25lbnQgPSBob3N0Q29tcG9uZW50O1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFJvdXRlKHJvdXRlPzogQWN0aXZhdGVkUm91dGUpIHtcbiAgICAgICAgdGhpcy5yb3V0ZSA9IHJvdXRlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aFNlbGVjdGVkSXRlbXMoc2VsZWN0ZWRJdGVtczogVFtdKTogdGhpcyB7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtcyA9IHNlbGVjdGVkSXRlbXM7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoTG9jYWxlKGxvY2FsZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMubG9jYWxlID0gbG9jYWxlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG59XG5cbmV4cG9ydCBlbnVtIEFjdGlvbkluc3RhbmNlU3RhdGVFbnVtIHtcbiAgICBUcmlnZ2VyU3RhcnQsIC8vIGFjdGlvbiB3YXMgdHJpZ2dlcmVkIChjbGljayBvciBkaXJlY3QpXG4gICAgVHJpZ2dlckVuZCxcbiAgICBBY3RpdmF0aW9uU3RhcnQsIC8vIGFjdGlvbiBhY3RpdmF0aW9uIHN0YXJ0ZWQgKGRpcmVjdCwgZXZlbnQgb3IgZWRpdG9yKVxuICAgIEFjdGl2YXRpb25FbmQsIC8vIGFjdGlvbiBhY3RpdmF0aW9uIGVuZGVkXG4gICAgRmV0Y2hTdGFydCwgLy8gZmV0Y2ggc3RhcnRlZFxuICAgIEZldGNoRW5kLCAvLyBmZXRjaCBlbmRlZFxuICAgIEZldGNoRXJyb3IsIC8vIGZldGNoIGVycm9yXG4gICAgUnVuQ29uZmlybWF0aW9uU3RhcnQsIC8vIGNvbmZpcm1hdGlvbiBmb3IgcnVuIGlzIHN0YXJ0ZWRcbiAgICBSdW5Db25maXJtYXRpb25FbmRBY2NlcHQsIC8vIGNvbmZpcm1hdGlvbiBhY2NlcHRlZFxuICAgIFJ1bkNvbmZpcm1hdGlvbkVuZFJlamVjdCwgLy8gY29uZmlybWF0aW9uIHJlamVjdGVkXG4gICAgUnVuU3RhcnQsIC8vIGFjdGlvbiB3YXMgcnVuIGJ5IGNhbGxpbmcgbWFpbiBmdW5jdGlvblxuICAgIFJ1bkVuZCwgLy8gYWN0aW9uIHJ1biBmdW5jdGlvbiBleGVjdXRlZFxuICAgIFJ1bkVycm9yLCAvLyBhY3Rpb24gcnVuIGZ1bmN0aW9uIGV4ZWN1dGVkXG4gICAgTmV4dEFjdGlvblN0YXJ0LCAvLyBuZXh0IGFjdGlvbiBzdGFydGVkXG4gICAgTmV4dEFjdGlvbkVuZCwgLy8gbmV4dCBhY3Rpb24gZmluaXNoZWRcbiAgICBGaW5pc2hTdWNjZXNzLCAvLyBhY3Rpb24gZXhlY3V0ZWQgc3VjY2Vzc2Z1bGx5XG4gICAgRmluaXNoRXJyb3IsIC8vIGFjdGlvbiBleGVjdXRlZCB3aXRoIGVycm9yXG4gICAgRmluaXNoRGlzbWlzc2VkIC8vIGFjdGlvbiB3YXMgZGlzbWlzc2VkIGJ5IHVzZXJcbn1cblxuZXhwb3J0IHR5cGUgQWN0aW9uRGF0YSA9IHtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59O1xuIl19
@@ -1,5 +1,5 @@
1
- export * from './action-confirmation-service.model';
2
- export * from './action-execution.model';
3
- export * from './tableview-action-default-categories.model';
4
- export * from './action-component.model';
1
+ export * from './action-confirmation-service.model';
2
+ export * from './action-execution.model';
3
+ export * from './tableview-action-default-categories.model';
4
+ export * from './action-component.model';
5
5
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uL21vZGVscy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLDBCQUEwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tY29uZmlybWF0aW9uLXNlcnZpY2UubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tZXhlY3V0aW9uLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGV2aWV3LWFjdGlvbi1kZWZhdWx0LWNhdGVnb3JpZXMubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24tY29tcG9uZW50Lm1vZGVsJztcbiJdfQ==
@@ -1,11 +1,11 @@
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';
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
11
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGV2aWV3LWFjdGlvbi1kZWZhdWx0LWNhdGVnb3JpZXMubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvYWN0aW9uL21vZGVscy90YWJsZXZpZXctYWN0aW9uLWRlZmF1bHQtY2F0ZWdvcmllcy5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBTyxnQ0FBZ0M7O0FBQ2xCLHFDQUFJLEdBQUcsTUFBTSxDQUFDO0FBQ2Qsb0NBQUcsR0FBRyxLQUFLLENBQUM7QUFDWixxQ0FBSSxHQUFHLE1BQU0sQ0FBQztBQUNkLHVDQUFNLEdBQUcsUUFBUSxDQUFDO0FBQ2xCLHdDQUFPLEdBQUcsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZhdWx0IGNhdGVnb3JpZXMgZm9yIHRhYmxldmlldyBhY3Rpb25zXG4gKi9cbmV4cG9ydCBjbGFzcyBUYWJsZXZpZXdBY3Rpb25EZWZhdWx0Q2F0ZWdvcmllcyB7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBSRUFEID0gJ3JlYWQnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQUREID0gJ2FkZCc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBFRElUID0gJ2VkaXQnO1xuICAgIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgREVMRVRFID0gJ2RlbGV0ZSc7XG4gICAgcHVibGljIHN0YXRpYyByZWFkb25seSBERVRBSUxTID0gJ2RldGFpbHMnO1xufVxuIl19