@mediusinc/mng-commons 5.5.0 → 6.0.0-rc.2

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 (267) hide show
  1. package/core/action/action-parameters.model.d.ts +4 -4
  2. package/core/data-providers/base.data-provider.d.ts +4 -7
  3. package/core/data-providers/lookup.data-provider.d.ts +2 -2
  4. package/core/descriptors/model.descriptor.d.ts +1 -7
  5. package/core/descriptors/tableview.descriptor.d.ts +5 -5
  6. package/core/helpers/route.d.ts +0 -1
  7. package/core/helpers/type-helpers.d.ts +8 -0
  8. package/core/index.d.ts +0 -3
  9. package/core/models/menu.model.d.ts +0 -4
  10. package/core/services/commons.service.d.ts +0 -32
  11. package/core/services/tokens/module-config.token.d.ts +0 -28
  12. package/esm2022/core/action/action-parameters.model.mjs +1 -1
  13. package/esm2022/core/data-providers/base.data-provider.mjs +2 -4
  14. package/esm2022/core/data-providers/lookup.data-provider.mjs +1 -1
  15. package/esm2022/core/descriptors/model.descriptor.mjs +1 -1
  16. package/esm2022/core/descriptors/tableview.descriptor.mjs +1 -1
  17. package/esm2022/core/helpers/type-helpers.mjs +1 -1
  18. package/esm2022/core/index.mjs +1 -4
  19. package/esm2022/core/models/menu.model.mjs +1 -1
  20. package/esm2022/core/services/commons.service.mjs +1 -34
  21. package/esm2022/core/services/tokens/module-config.token.mjs +1 -1
  22. package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +5 -86
  23. package/esm2022/filter/descriptors/filter.descriptor.mjs +7 -29
  24. package/esm2022/form/api/data-providers/lookup-data-provider.factory.mjs +14 -41
  25. package/esm2022/form/api/data-providers/lookup.data-provider.mjs +3 -3
  26. package/esm2022/model/class/data-providers/base-from-class-data-provider.factory.mjs +5 -0
  27. package/esm2022/model/class/descriptors/model-class.descriptor.mjs +28 -0
  28. package/esm2022/model/class/descriptors/type-class.descriptor.mjs +6 -0
  29. package/esm2022/model/class/helpers/model.mjs +53 -0
  30. package/esm2022/model/class/index.mjs +8 -0
  31. package/esm2022/model/class/mediusinc-mng-commons-model-class.mjs +5 -0
  32. package/esm2022/model/data-providers/base-from-type-data-provider.factory.mjs +11 -6
  33. package/esm2022/model/descriptors/model.descriptor.mjs +11 -54
  34. package/esm2022/model/descriptors/type.descriptor.mjs +2 -10
  35. package/esm2022/model/index.mjs +1 -2
  36. package/esm2022/table/api/class/class-table-attribute-converter.mjs +80 -0
  37. package/esm2022/table/api/class/class-table-attribute.model.mjs +2 -0
  38. package/esm2022/table/api/class/class-table-data-provider.factory.mjs +5 -0
  39. package/esm2022/table/api/class/class-table-descriptor-helpers.mjs +99 -0
  40. package/esm2022/table/api/class/class-table-descriptor.factory.mjs +21 -0
  41. package/esm2022/table/api/class/index.mjs +6 -0
  42. package/esm2022/table/api/class/mediusinc-mng-commons-table-api-class.mjs +5 -0
  43. package/esm2022/table/api/data-providers/table-data-provider.factory.mjs +14 -41
  44. package/esm2022/table/api/data-providers/table.data-provider.mjs +3 -9
  45. package/esm2022/table/api/descriptors/column.descriptor.mjs +8 -3
  46. package/esm2022/table/api/descriptors/table-descriptor.factory.mjs +10 -77
  47. package/esm2022/table/api/descriptors/table.descriptor.mjs +3 -3
  48. package/esm2022/table/api/helpers/column-converter.mjs +25 -0
  49. package/esm2022/table/api/helpers/table-data-provider-descriptor-convert.mjs +4 -4
  50. package/esm2022/table/api/index.mjs +2 -4
  51. package/esm2022/table/api/models/table-columns.model.mjs +1 -1
  52. package/esm2022/table/components/column-value/column-value.component.mjs +4 -3
  53. package/esm2022/table/components/filter/filter-active-tag/filter-active-tag.component.mjs +3 -3
  54. package/esm2022/table/components/filter/filter-form/filter-form.component.mjs +5 -5
  55. package/esm2022/table/components/table/table.component.mjs +6 -8
  56. package/esm2022/tableview/action/components/action/action.component.mjs +1 -1
  57. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +10 -6
  58. package/esm2022/tableview/action/helpers/action-execution.mjs +1 -1
  59. package/esm2022/tableview/action/models/execution/action-context.model.mjs +1 -1
  60. package/esm2022/tableview/action/models/execution/action-instance.model.mjs +1 -1
  61. package/esm2022/tableview/action/services/action-executor.service.mjs +11 -11
  62. package/esm2022/tableview/action/services/data-provider-executor.service.mjs +18 -3
  63. package/esm2022/tableview/api/action/descriptors/action-confirmation.descriptor.mjs +1 -1
  64. package/esm2022/tableview/api/action/descriptors/action-descriptor.factory.mjs +13 -104
  65. package/esm2022/tableview/api/action/descriptors/action-editor-descriptor.factory.mjs +15 -62
  66. package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +3 -63
  67. package/esm2022/tableview/api/action/descriptors/action-link-descriptor.factory.mjs +17 -30
  68. package/esm2022/tableview/api/action/descriptors/action-link.descriptor.mjs +1 -1
  69. package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +6 -29
  70. package/esm2022/tableview/api/action/descriptors/editor-action-descriptor.factory.mjs +21 -0
  71. package/esm2022/tableview/api/action/descriptors/editor-action-editor-descriptor.factory.mjs +21 -0
  72. package/esm2022/tableview/api/action/descriptors/table-action-descriptor.factory.mjs +37 -0
  73. package/esm2022/tableview/api/action/descriptors/table-action-editor-descriptor.factory.mjs +40 -0
  74. package/esm2022/tableview/api/action/helpers/data-provider-executors.mjs +25 -5
  75. package/esm2022/tableview/api/action/models/action-descriptor.types.mjs +1 -1
  76. package/esm2022/tableview/api/action/models/action-error.model.mjs +1 -1
  77. package/esm2022/tableview/api/action/models/execution/action-context-validation.model.mjs +1 -1
  78. package/esm2022/tableview/api/action/models/execution/action-context.model.mjs +1 -1
  79. package/esm2022/tableview/api/action/models/execution/action-instance.model.mjs +1 -1
  80. package/esm2022/tableview/api/action/models/tableview-action-default-categories.model.mjs +6 -6
  81. package/esm2022/tableview/api/action/services/data-provider-executor.service.mjs +3 -3
  82. package/esm2022/tableview/api/class/editor/class-editor-attribute-converter.mjs +85 -0
  83. package/esm2022/tableview/api/class/editor/class-editor-attribute.model.mjs +2 -0
  84. package/esm2022/tableview/api/class/editor/class-editor-data-provider.factory.mjs +5 -0
  85. package/esm2022/tableview/api/class/editor/class-editor-descriptor-helpers.mjs +95 -0
  86. package/esm2022/tableview/api/class/editor/class-editor-descriptor.factory.mjs +21 -0
  87. package/esm2022/tableview/api/class/index.mjs +13 -0
  88. package/esm2022/tableview/api/class/mediusinc-mng-commons-tableview-api-class.mjs +5 -0
  89. package/esm2022/tableview/api/class/tableview/class-tableview-attribute-converter.mjs +35 -0
  90. package/esm2022/tableview/api/class/tableview/class-tableview-attribute.model.mjs +2 -0
  91. package/esm2022/tableview/api/class/tableview/class-tableview-data-provider.factory.mjs +5 -0
  92. package/esm2022/tableview/api/class/tableview/class-tableview-descriptor-helpers.mjs +111 -0
  93. package/esm2022/tableview/api/class/tableview/class-tableview-descriptor.factory.mjs +26 -0
  94. package/esm2022/tableview/api/editor/data-providers/editor-data-provider.factory.mjs +14 -32
  95. package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +40 -7
  96. package/esm2022/tableview/api/editor/descriptors/editor-descriptor.factory.mjs +7 -73
  97. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +49 -134
  98. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +11 -2
  99. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +3 -5
  100. package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +2 -18
  101. package/esm2022/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.mjs +51 -0
  102. package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
  103. package/esm2022/tableview/api/editor/models/form-editor.event.mjs +1 -1
  104. package/esm2022/tableview/api/index.mjs +8 -8
  105. package/esm2022/tableview/api/tableview/data-providers/tableview-data-provider.factory.mjs +13 -51
  106. package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +19 -11
  107. package/esm2022/tableview/api/tableview/descriptors/tableview-descriptor.factory.mjs +19 -96
  108. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +29 -182
  109. package/esm2022/tableview/api/tableview/helpers/tableview-create.mjs +8 -6
  110. package/esm2022/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.mjs +4 -4
  111. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +117 -99
  112. package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +164 -7
  113. package/esm2022/tableview/api/tableview/models/tableview-descriptor-fields-manage-helper.type.mjs +2 -0
  114. package/esm2022/tableview/api/tableview/models/tableview-descriptor-helper.type.mjs +2 -0
  115. package/esm2022/tableview/api/tableview/models/tableview-input.model.mjs +1 -1
  116. package/esm2022/tableview/api/tableview/models/tableview-route.model.mjs +1 -1
  117. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +6 -6
  118. package/esm2022/tableview/editor/helpers/editor-field.mjs +3 -3
  119. package/esm2022/tableview/editor/helpers/editor-formly.mjs +4 -4
  120. package/esm2022/tableview/editor/helpers/field-create.mjs +21 -0
  121. package/esm2022/tableview/index.mjs +3 -2
  122. package/esm2022/tableview/tableview/components/route/tableview-route.component.mjs +1 -1
  123. package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +3 -1
  124. package/fesm2022/mediusinc-mng-commons-core.mjs +687 -781
  125. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  126. package/fesm2022/mediusinc-mng-commons-filter.mjs +10 -113
  127. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  128. package/fesm2022/mediusinc-mng-commons-form-api.mjs +15 -42
  129. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  130. package/fesm2022/mediusinc-mng-commons-model-class.mjs +97 -0
  131. package/fesm2022/mediusinc-mng-commons-model-class.mjs.map +1 -0
  132. package/fesm2022/mediusinc-mng-commons-model.mjs +23 -137
  133. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  134. package/fesm2022/mediusinc-mng-commons-table-api-class.mjs +204 -0
  135. package/fesm2022/mediusinc-mng-commons-table-api-class.mjs.map +1 -0
  136. package/fesm2022/mediusinc-mng-commons-table-api.mjs +55 -319
  137. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  138. package/fesm2022/mediusinc-mng-commons-table.mjs +14 -15
  139. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  140. package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs +367 -0
  141. package/fesm2022/mediusinc-mng-commons-tableview-api-class.mjs.map +1 -0
  142. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +715 -1298
  143. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  144. package/fesm2022/mediusinc-mng-commons-tableview.mjs +67 -27
  145. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  146. package/filter/descriptors/filter-lookup.descriptor.d.ts +1 -26
  147. package/filter/descriptors/filter.descriptor.d.ts +5 -12
  148. package/form/api/data-providers/lookup-data-provider.factory.d.ts +17 -20
  149. package/form/api/data-providers/lookup.data-provider.d.ts +3 -3
  150. package/model/class/README.md +8 -0
  151. package/model/class/data-providers/base-from-class-data-provider.factory.d.ts +3 -0
  152. package/model/class/descriptors/model-class.descriptor.d.ts +12 -0
  153. package/model/class/descriptors/type-class.descriptor.d.ts +3 -0
  154. package/model/{helpers → class/helpers}/model.d.ts +1 -2
  155. package/model/class/index.d.ts +4 -0
  156. package/model/data-providers/base-from-type-data-provider.factory.d.ts +13 -6
  157. package/model/descriptors/model.descriptor.d.ts +12 -27
  158. package/model/descriptors/type.descriptor.d.ts +0 -5
  159. package/model/index.d.ts +0 -1
  160. package/package.json +19 -1
  161. package/table/api/class/README.md +10 -0
  162. package/table/api/{helpers/class-attribute-converter.d.ts → class/class-table-attribute-converter.d.ts} +2 -9
  163. package/table/api/{models → class}/class-table-attribute.model.d.ts +1 -1
  164. package/table/api/class/class-table-data-provider.factory.d.ts +4 -0
  165. package/table/api/{helpers/table-descriptor-helpers.d.ts → class/class-table-descriptor-helpers.d.ts} +2 -4
  166. package/table/api/class/class-table-descriptor.factory.d.ts +11 -0
  167. package/table/api/class/index.d.ts +5 -0
  168. package/table/api/data-providers/table-data-provider.factory.d.ts +17 -20
  169. package/table/api/data-providers/table.data-provider.d.ts +4 -12
  170. package/table/api/descriptors/column.descriptor.d.ts +5 -2
  171. package/table/api/descriptors/table-descriptor.factory.d.ts +3 -39
  172. package/table/api/descriptors/table.descriptor.d.ts +3 -3
  173. package/table/api/helpers/column-converter.d.ts +7 -0
  174. package/table/api/helpers/table-data-provider-descriptor-convert.d.ts +3 -3
  175. package/table/api/index.d.ts +1 -3
  176. package/table/api/models/table-columns.model.d.ts +2 -2
  177. package/table/components/column-value/column-value.component.d.ts +1 -0
  178. package/table/components/filter/filter-active-tag/filter-active-tag.component.d.ts +1 -1
  179. package/table/components/filter/filter-form/filter-form.component.d.ts +1 -1
  180. package/table/components/filter/filter-overlay-with-tag/filter-overlay-with-tag.component.d.ts +1 -1
  181. package/table/components/table/table.component.d.ts +0 -9
  182. package/tableview/action/components/action/action.component.d.ts +2 -2
  183. package/tableview/action/components/editor/action-editor.component.d.ts +1 -1
  184. package/tableview/action/components/editor/injector-context/action-editor-injector-context.component.d.ts +6 -5
  185. package/tableview/action/components/localization/data-language-dropdown.component.d.ts +3 -3
  186. package/tableview/action/components/table/action-table.component.d.ts +3 -3
  187. package/tableview/action/helpers/action-execution.d.ts +1 -1
  188. package/tableview/action/models/execution/action-context.model.d.ts +3 -3
  189. package/tableview/action/models/execution/action-instance.model.d.ts +5 -5
  190. package/tableview/action/services/action-executor.service.d.ts +7 -7
  191. package/tableview/action/services/data-provider-executor.service.d.ts +16 -16
  192. package/tableview/action/services/view-container.service.d.ts +1 -1
  193. package/tableview/api/action/descriptors/action-confirmation.descriptor.d.ts +1 -1
  194. package/tableview/api/action/descriptors/action-descriptor.factory.d.ts +20 -31
  195. package/tableview/api/action/descriptors/action-editor-descriptor.factory.d.ts +18 -25
  196. package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +22 -40
  197. package/tableview/api/action/descriptors/action-link-descriptor.factory.d.ts +21 -13
  198. package/tableview/api/action/descriptors/action-link.descriptor.d.ts +3 -3
  199. package/tableview/api/action/descriptors/action.descriptor.d.ts +31 -33
  200. package/tableview/api/action/descriptors/editor-action-descriptor.factory.d.ts +21 -0
  201. package/tableview/api/action/descriptors/editor-action-editor-descriptor.factory.d.ts +21 -0
  202. package/tableview/api/action/descriptors/table-action-descriptor.factory.d.ts +36 -0
  203. package/tableview/api/action/descriptors/table-action-editor-descriptor.factory.d.ts +40 -0
  204. package/tableview/api/action/helpers/data-provider-executors.d.ts +13 -8
  205. package/tableview/api/action/models/action-descriptor.types.d.ts +2 -2
  206. package/tableview/api/action/models/action-error.model.d.ts +1 -1
  207. package/tableview/api/action/models/execution/action-context-validation.model.d.ts +2 -2
  208. package/tableview/api/action/models/execution/action-context.model.d.ts +2 -2
  209. package/tableview/api/action/models/execution/action-instance.model.d.ts +1 -1
  210. package/tableview/api/action/models/tableview-action-default-categories.model.d.ts +5 -5
  211. package/tableview/api/action/services/data-provider-executor.service.d.ts +26 -25
  212. package/tableview/api/class/README.md +13 -0
  213. package/tableview/api/{editor/helpers/class-attribute-converter.d.ts → class/editor/class-editor-attribute-converter.d.ts} +2 -2
  214. package/tableview/api/{editor/models/class-tableview-attribute.model.d.ts → class/editor/class-editor-attribute.model.d.ts} +1 -1
  215. package/tableview/api/class/editor/class-editor-data-provider.factory.d.ts +4 -0
  216. package/tableview/api/{editor/helpers/editor-descriptor-helpers.d.ts → class/editor/class-editor-descriptor-helpers.d.ts} +2 -5
  217. package/tableview/api/class/editor/class-editor-descriptor.factory.d.ts +11 -0
  218. package/tableview/api/class/index.d.ts +10 -0
  219. package/tableview/api/{tableview/helpers/class-attribute-converter.d.ts → class/tableview/class-tableview-attribute-converter.d.ts} +1 -1
  220. package/tableview/api/{tableview/models → class/tableview}/class-tableview-attribute.model.d.ts +2 -2
  221. package/tableview/api/class/tableview/class-tableview-data-provider.factory.d.ts +4 -0
  222. package/tableview/api/{tableview/helpers/tableview-descriptor-helpers.d.ts → class/tableview/class-tableview-descriptor-helpers.d.ts} +1 -2
  223. package/tableview/api/class/tableview/class-tableview-descriptor.factory.d.ts +12 -0
  224. package/tableview/api/editor/data-providers/editor-data-provider.factory.d.ts +17 -16
  225. package/tableview/api/editor/data-providers/editor.data-provider.d.ts +64 -29
  226. package/tableview/api/editor/descriptors/editor-descriptor.factory.d.ts +5 -38
  227. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +48 -112
  228. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +8 -1
  229. package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +2 -3
  230. package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +3 -11
  231. package/tableview/api/editor/descriptors/wrappers/editor-descriptor-nested-object-wrapper.d.ts +25 -0
  232. package/tableview/api/editor/models/editor-fields.model.d.ts +25 -21
  233. package/tableview/api/editor/models/form-editor.event.d.ts +0 -4
  234. package/tableview/api/index.d.ts +7 -6
  235. package/tableview/api/tableview/data-providers/tableview-data-provider.factory.d.ts +20 -25
  236. package/tableview/api/tableview/data-providers/tableview.data-provider.d.ts +22 -22
  237. package/tableview/api/tableview/descriptors/tableview-descriptor.factory.d.ts +20 -50
  238. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +69 -163
  239. package/tableview/api/tableview/helpers/tableview-create.d.ts +18 -5
  240. package/tableview/api/tableview/helpers/tableview-data-provider-descriptor-convert.d.ts +2 -2
  241. package/tableview/api/tableview/helpers/tableview-default-actions.d.ts +73 -20
  242. package/tableview/api/tableview/helpers/tableview-input-builder.d.ts +87 -9
  243. package/tableview/api/tableview/models/tableview-descriptor-fields-manage-helper.type.d.ts +9 -0
  244. package/tableview/api/tableview/models/tableview-descriptor-helper.type.d.ts +2 -0
  245. package/tableview/api/tableview/models/tableview-input.model.d.ts +1 -1
  246. package/tableview/api/tableview/models/tableview-route.model.d.ts +1 -1
  247. package/tableview/editor/helpers/field-create.d.ts +9 -0
  248. package/tableview/index.d.ts +2 -1
  249. package/tableview/tableview/components/route/tableview-route.component.d.ts +1 -1
  250. package/tableview/tableview/components/tableview/tableview.component.d.ts +6 -6
  251. package/version-info.json +6 -6
  252. package/core/components/pages/error/error.page.component.d.ts +0 -11
  253. package/core/components/pages/not-found/not-found.page.component.d.ts +0 -11
  254. package/core/data-providers/base-data-provider.factory.d.ts +0 -13
  255. package/esm2022/core/components/pages/error/error.page.component.mjs +0 -24
  256. package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +0 -24
  257. package/esm2022/core/data-providers/base-data-provider.factory.mjs +0 -28
  258. package/esm2022/model/helpers/model.mjs +0 -71
  259. package/esm2022/table/api/helpers/class-attribute-converter.mjs +0 -104
  260. package/esm2022/table/api/helpers/table-descriptor-helpers.mjs +0 -98
  261. package/esm2022/table/api/models/class-table-attribute.model.mjs +0 -2
  262. package/esm2022/tableview/api/editor/helpers/class-attribute-converter.mjs +0 -85
  263. package/esm2022/tableview/api/editor/helpers/editor-descriptor-helpers.mjs +0 -95
  264. package/esm2022/tableview/api/editor/models/class-tableview-attribute.model.mjs +0 -2
  265. package/esm2022/tableview/api/tableview/helpers/class-attribute-converter.mjs +0 -34
  266. package/esm2022/tableview/api/tableview/helpers/tableview-descriptor-helpers.mjs +0 -110
  267. package/esm2022/tableview/api/tableview/models/class-tableview-attribute.model.mjs +0 -2
@@ -0,0 +1,5 @@
1
+ import { TableviewDataProviderInst } from '@mediusinc/mng-commons/tableview/api';
2
+ export function tableviewDataProviderFromClass(type, serviceType) {
3
+ return new TableviewDataProviderInst(serviceType);
4
+ }
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdGFibGV2aWV3LWRhdGEtcHJvdmlkZXIuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9hcGkvY2xhc3Mvc3JjL3RhYmxldmlldy9jbGFzcy10YWJsZXZpZXctZGF0YS1wcm92aWRlci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHNDQUFzQyxDQUFDO0FBUy9FLE1BQU0sVUFBVSw4QkFBOEIsQ0FDMUMsSUFBc0IsRUFDdEIsV0FBMEI7SUFFMUIsT0FBTyxJQUFJLHlCQUF5QixDQUErQyxXQUEyQixDQUFDLENBQUM7QUFDcEgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xhc3NUeXBlLCBTZXJ2aWNlQ2xhc3NUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0fSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5leHBvcnQgZnVuY3Rpb24gdGFibGV2aWV3RGF0YVByb3ZpZGVyRnJvbUNsYXNzPE1vZGVsLCBTb3J0cyA9IGtleW9mIE1vZGVsLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgTW9kZWw+KFxuICAgIHR5cGU6IENsYXNzVHlwZTxNb2RlbD5cbik6IFRhYmxldmlld0RhdGFQcm92aWRlckluc3Q8TW9kZWwsIHVuZGVmaW5lZCwgU29ydHMsIEZpbHRlcnMsIHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gdGFibGV2aWV3RGF0YVByb3ZpZGVyRnJvbUNsYXNzPE1vZGVsLCBTZXJ2aWNlID0gYW55LCBTb3J0cyA9IGtleW9mIE1vZGVsLCBGaWx0ZXJzIGV4dGVuZHMga2V5b2YgYW55ID0ga2V5b2YgTW9kZWw+KFxuICAgIHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sXG4gICAgc2VydmljZVR5cGU6IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT5cbik6IFRhYmxldmlld0RhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIFNvcnRzLCBGaWx0ZXJzLCBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+PjtcbmV4cG9ydCBmdW5jdGlvbiB0YWJsZXZpZXdEYXRhUHJvdmlkZXJGcm9tQ2xhc3M8TW9kZWwsIFNlcnZpY2UgPSBhbnksIFNvcnRzID0ga2V5b2YgTW9kZWwsIEZpbHRlcnMgZXh0ZW5kcyBrZXlvZiBhbnkgPSBrZXlvZiBNb2RlbCwgU2VydmljZUNsYXNzID0gU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICBzZXJ2aWNlVHlwZT86IFNlcnZpY2VDbGFzc1xuKSB7XG4gICAgcmV0dXJuIG5ldyBUYWJsZXZpZXdEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBTb3J0cywgRmlsdGVycywgU2VydmljZUNsYXNzPihzZXJ2aWNlVHlwZSBhcyBTZXJ2aWNlQ2xhc3MpO1xufVxuIl19
@@ -0,0 +1,111 @@
1
+ import { CommonsInternalError, TypeRegistry } from '@mediusinc/mng-commons/core';
2
+ import { ModelClassDescriptor, findClassTitleAttribute } from '@mediusinc/mng-commons/model/class';
3
+ import { ColumnTypeEnum } from '@mediusinc/mng-commons/table/api';
4
+ import { modifyTableClassAttributeColumnTypeUnsafe, modifyTableColumnFilterLookupUnsafe, tableDescriptorModifyEnumColumnUnsafe } from '@mediusinc/mng-commons/table/api/class';
5
+ import { FieldInputTypeEnum } from '@mediusinc/mng-commons/tableview/api';
6
+ import { getFieldInputTypeFromColumnType } from '../editor/class-editor-attribute-converter';
7
+ import { modifyEditorClassAttributeFieldEnumUnsafe, modifyEditorClassAttributeFieldTypeUnsafe, modifyEditorFieldLookupUnsafe } from '../editor/class-editor-descriptor-helpers';
8
+ import { getTableviewClassAttributeDef } from './class-tableview-attribute-converter';
9
+ /**
10
+ * creates column and field with custom type, for example currency
11
+ * if field exists, it is replaced
12
+ * DO NOT USE WITH TYPES WHERE ARGS ARE REQUIRED - ERROR WILL BE THROWN
13
+ * for enum use withEnumType
14
+ * for custom class use withClassType
15
+ * @param descriptor Tableview descriptor
16
+ * @param property name of field
17
+ * @param columnType required column type
18
+ * @param fieldType optional, if not provided it is converted from column type
19
+ * @param columnDisplayType optional
20
+ */
21
+ export function modifyTableviewClassAttributeType(descriptor, property, columnType, fieldType, columnDisplayType) {
22
+ return modifyTableviewClassAttributeTypeUnsafe(descriptor, property, columnType, fieldType, columnDisplayType);
23
+ }
24
+ export function modifyTableviewClassAttributeTypeUnsafe(descriptor, property, columnType, fieldType, columnDisplayType) {
25
+ if (!(descriptor.model instanceof ModelClassDescriptor)) {
26
+ throw new CommonsInternalError(`withFieldModifiedType cannot be executed for property ${property}: Model descriptor is not of type 'ModelClassDescriptor' is not defined.`);
27
+ }
28
+ if (columnType === ColumnTypeEnum.Enum) {
29
+ throw new CommonsInternalError('Do not use with types where args are required', { name: 'TableviewDescriptorError' });
30
+ }
31
+ const attributeDef = getTableviewClassAttributeDef(descriptor.model.classType).find(attr => attr.name === property);
32
+ if (attributeDef != null) {
33
+ fieldType ??= getFieldInputTypeFromColumnType(columnType, columnDisplayType);
34
+ attributeDef.fieldType = fieldType;
35
+ modifyTableClassAttributeColumnTypeUnsafe(descriptor.table, property, columnType, columnDisplayType);
36
+ modifyEditorClassAttributeFieldTypeUnsafe(descriptor.editEditor, property, fieldType);
37
+ modifyEditorClassAttributeFieldTypeUnsafe(descriptor.addEditor, property, fieldType);
38
+ modifyEditorClassAttributeFieldTypeUnsafe(descriptor.detailsEditor, property, fieldType);
39
+ return true;
40
+ }
41
+ return false;
42
+ }
43
+ /**
44
+ * creates column with enum type
45
+ * if fields exists, it is replaced
46
+ * @param descriptor Tableview descriptor
47
+ * @param property property name
48
+ * @param enumDesc type of enum
49
+ * @param fieldType type of field, optional, default is Text
50
+ */
51
+ export function modifyTableviewClassAttributeEnum(descriptor, property, enumDesc, fieldType) {
52
+ return modifyTableviewClassAttributeEnumUnsafe(descriptor, property, enumDesc, fieldType);
53
+ }
54
+ export function modifyTableviewClassAttributeEnumUnsafe(descriptor, property, enumDesc, fieldType) {
55
+ if (!(descriptor.model instanceof ModelClassDescriptor)) {
56
+ throw new CommonsInternalError(`withFieldModifiedType cannot be executed for property ${property}: Model descriptor is not of type 'ModelClassDescriptor' is not defined.`);
57
+ }
58
+ const attributeDef = getTableviewClassAttributeDef(descriptor.model.classType).find(attr => attr.name === property);
59
+ if (attributeDef != null) {
60
+ attributeDef.fieldType = fieldType ?? FieldInputTypeEnum.Text;
61
+ tableDescriptorModifyEnumColumnUnsafe(descriptor.table, property, enumDesc);
62
+ modifyEditorClassAttributeFieldEnumUnsafe(descriptor.editEditor, property, enumDesc);
63
+ modifyEditorClassAttributeFieldEnumUnsafe(descriptor.addEditor, property, enumDesc);
64
+ modifyEditorClassAttributeFieldEnumUnsafe(descriptor.detailsEditor, property, enumDesc);
65
+ return true;
66
+ }
67
+ return false;
68
+ }
69
+ /**
70
+ * generates column with custom class type
71
+ * field is generated only if lookupProvider is provided
72
+ * @param descriptor Tableview descriptor
73
+ * @param property property name
74
+ * @param type class type of object
75
+ * @param titleProperty
76
+ * @param lookupProvider
77
+ * @param optionsLabelProperty
78
+ * @param filterProperty
79
+ */
80
+ export function modifyTableviewLookup(descriptor, property, type, lookupProvider, titleProperty, optionsLabelProperty, filterProperty) {
81
+ return modifyTableviewLookupUnsafe(descriptor, property, type, lookupProvider, titleProperty, optionsLabelProperty, filterProperty);
82
+ }
83
+ export function modifyTableviewLookupUnsafe(descriptor, property, type, lookupProvider, titleProperty, optionsLabelProperty, filterProperty) {
84
+ if (!(descriptor.model instanceof ModelClassDescriptor)) {
85
+ throw new CommonsInternalError(`withFieldModifiedType cannot be executed for property ${property}: Model descriptor is not of type 'ModelClassDescriptor' is not defined.`);
86
+ }
87
+ const attributeDef = getTableviewClassAttributeDef(descriptor.model.classType).find(attr => attr.name === property);
88
+ if (attributeDef != null) {
89
+ type ??= attributeDef.classType ?? TypeRegistry.get().findType(attributeDef.type);
90
+ titleProperty ??= type ? (findClassTitleAttribute(type) ?? undefined) : undefined;
91
+ optionsLabelProperty ??= titleProperty;
92
+ attributeDef.columnType = ColumnTypeEnum.String;
93
+ attributeDef.fieldType = FieldInputTypeEnum.Text;
94
+ if (lookupProvider != null) {
95
+ modifyTableColumnFilterLookupUnsafe(descriptor.table, property, lookupProvider, optionsLabelProperty, filterProperty);
96
+ modifyEditorFieldLookupUnsafe(descriptor.addEditor, property, lookupProvider, optionsLabelProperty);
97
+ modifyEditorFieldLookupUnsafe(descriptor.detailsEditor, property, lookupProvider, optionsLabelProperty);
98
+ modifyEditorFieldLookupUnsafe(descriptor.editEditor, property, lookupProvider, optionsLabelProperty);
99
+ return true;
100
+ }
101
+ else {
102
+ const column = descriptor.table.getColumnUnsafe(property) ?? descriptor.addColumnUnsafe(property);
103
+ if (titleProperty) {
104
+ column.withGetter(value => value?.[titleProperty]);
105
+ }
106
+ return true;
107
+ }
108
+ }
109
+ return false;
110
+ }
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdGFibGV2aWV3LWRlc2NyaXB0b3ItaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9hcGkvY2xhc3Mvc3JjL3RhYmxldmlldy9jbGFzcy10YWJsZXZpZXctZGVzY3JpcHRvci1oZWxwZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBWSxvQkFBb0IsRUFBdUIsWUFBWSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFFL0csT0FBTyxFQUFDLG9CQUFvQixFQUFFLHVCQUF1QixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDakcsT0FBTyxFQUF3QixjQUFjLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUN2RixPQUFPLEVBQUMseUNBQXlDLEVBQUUsbUNBQW1DLEVBQUUscUNBQXFDLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUM3SyxPQUFPLEVBQUMsa0JBQWtCLEVBQTBCLE1BQU0sc0NBQXNDLENBQUM7QUFFakcsT0FBTyxFQUFDLCtCQUErQixFQUFDLE1BQU0sNENBQTRDLENBQUM7QUFDM0YsT0FBTyxFQUFDLHlDQUF5QyxFQUFFLHlDQUF5QyxFQUFFLDZCQUE2QixFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFDOUssT0FBTyxFQUFDLDZCQUE2QixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFFcEY7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFNLFVBQVUsaUNBQWlDLENBQzdDLFVBQTZELEVBQzdELFFBQThCLEVBQzlCLFVBQTBCLEVBQzFCLFNBQThCLEVBQzlCLGlCQUF5QztJQUV6QyxPQUFPLHVDQUF1QyxDQUFDLFVBQVUsRUFBRSxRQUFrQixFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztBQUM3SCxDQUFDO0FBRUQsTUFBTSxVQUFVLHVDQUF1QyxDQUNuRCxVQUE2RCxFQUM3RCxRQUFnQixFQUNoQixVQUEwQixFQUMxQixTQUE4QixF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LENBQUMsU0FBUyxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQztRQUVqRCxJQUFJLGNBQWMsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUN6QixtQ0FBbUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsb0JBQW9CLEVBQUUsY0FBYyxDQUFDLENBQUM7WUFDdEgsNkJBQTZCLENBQUMsVUFBVSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFDcEcsNkJBQTZCLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFDeEcsNkJBQTZCLENBQUMsVUFBVSxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixDQUFDLENBQUM7WUFDckcsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQzthQUFNLENBQUM7WUFDSixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxVQUFVLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ2xHLElBQUksYUFBYSxFQUFFLENBQUM7Z0JBQ2hCLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxhQUE2QixDQUFDLENBQUMsQ0FBQztZQUN2RSxDQUFDO1lBQ0QsT0FBTyxJQUFJLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNqQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc1R5cGUsIENvbW1vbnNJbnRlcm5hbEVycm9yLCBJTG9va3VwRGF0YVByb3ZpZGVyLCBUeXBlUmVnaXN0cnl9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge0VudW1EZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcbmltcG9ydCB7TW9kZWxDbGFzc0Rlc2NyaXB0b3IsIGZpbmRDbGFzc1RpdGxlQXR0cmlidXRlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsL2NsYXNzJztcbmltcG9ydCB7Q29sdW1uRGlzcGxheVR5cGVFbnVtLCBDb2x1bW5UeXBlRW51bX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZS9hcGknO1xuaW1wb3J0IHttb2RpZnlUYWJsZUNsYXNzQXR0cmlidXRlQ29sdW1uVHlwZVVuc2FmZSwgbW9kaWZ5VGFibGVDb2x1bW5GaWx0ZXJMb29rdXBVbnNhZmUsIHRhYmxlRGVzY3JpcHRvck1vZGlmeUVudW1Db2x1bW5VbnNhZmV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvdGFibGUvYXBpL2NsYXNzJztcbmltcG9ydCB7RmllbGRJbnB1dFR5cGVFbnVtLCBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZXZpZXcvYXBpJztcblxuaW1wb3J0IHtnZXRGaWVsZElucHV0VHlwZUZyb21Db2x1bW5UeXBlfSBmcm9tICcuLi9lZGl0b3IvY2xhc3MtZWRpdG9yLWF0dHJpYnV0ZS1jb252ZXJ0ZXInO1xuaW1wb3J0IHttb2RpZnlFZGl0b3JDbGFzc0F0dHJpYnV0ZUZpZWxkRW51bVVuc2FmZSwgbW9kaWZ5RWRpdG9yQ2xhc3NBdHRyaWJ1dGVGaWVsZFR5cGVVbnNhZmUsIG1vZGlmeUVkaXRvckZpZWxkTG9va3VwVW5zYWZlfSBmcm9tICcuLi9lZGl0b3IvY2xhc3MtZWRpdG9yLWRlc2NyaXB0b3ItaGVscGVycyc7XG5pbXBvcnQge2dldFRhYmxldmlld0NsYXNzQXR0cmlidXRlRGVmfSBmcm9tICcuL2NsYXNzLXRhYmxldmlldy1hdHRyaWJ1dGUtY29udmVydGVyJztcblxuLyoqXG4gKiBjcmVhdGVzIGNvbHVtbiBhbmQgZmllbGQgd2l0aCBjdXN0b20gdHlwZSwgZm9yIGV4YW1wbGUgY3VycmVuY3lcbiAqIGlmIGZpZWxkIGV4aXN0cywgaXQgaXMgcmVwbGFjZWRcbiAqIERPIE5PVCBVU0UgV0lUSCBUWVBFUyBXSEVSRSBBUkdTIEFSRSBSRVFVSVJFRCAtIEVSUk9SIFdJTEwgQkUgVEhST1dOXG4gKiBmb3IgZW51bSB1c2Ugd2l0aEVudW1UeXBlXG4gKiBmb3IgY3VzdG9tIGNsYXNzIHVzZSB3aXRoQ2xhc3NUeXBlXG4gKiBAcGFyYW0gZGVzY3JpcHRvciBUYWJsZXZpZXcgZGVzY3JpcHRvclxuICogQHBhcmFtIHByb3BlcnR5IG5hbWUgb2YgZmllbGRcbiAqIEBwYXJhbSBjb2x1bW5UeXBlIHJlcXVpcmVkIGNvbHVtbiB0eXBlXG4gKiBAcGFyYW0gZmllbGRUeXBlIG9wdGlvbmFsLCBpZiBub3QgcHJvdmlkZWQgaXQgaXMgY29udmVydGVkIGZyb20gY29sdW1uIHR5cGVcbiAqIEBwYXJhbSBjb2x1bW5EaXNwbGF5VHlwZSBvcHRpb25hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZ5VGFibGV2aWV3Q2xhc3NBdHRyaWJ1dGVUeXBlPFRhYmxldmlld01vZGVsPihcbiAgICBkZXNjcmlwdG9yOiBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxUYWJsZXZpZXdNb2RlbCwgYW55LCBhbnk+LFxuICAgIHByb3BlcnR5OiBrZXlvZiBUYWJsZXZpZXdNb2RlbCxcbiAgICBjb2x1bW5UeXBlOiBDb2x1bW5UeXBlRW51bSxcbiAgICBmaWVsZFR5cGU/OiBGaWVsZElucHV0VHlwZUVudW0sXG4gICAgY29sdW1uRGlzcGxheVR5cGU/OiBDb2x1bW5EaXNwbGF5VHlwZUVudW1cbik6IGJvb2xlYW4ge1xuICAgIHJldHVybiBtb2RpZnlUYWJsZXZpZXdDbGFzc0F0dHJpYnV0ZVR5cGVVbnNhZmUoZGVzY3JpcHRvciwgcHJvcGVydHkgYXMgc3RyaW5nLCBjb2x1bW5UeXBlLCBmaWVsZFR5cGUsIGNvbHVtbkRpc3BsYXlUeXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGlmeVRhYmxldmlld0NsYXNzQXR0cmlidXRlVHlwZVVuc2FmZTxUYWJsZXZpZXdNb2RlbD4oXG4gICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8VGFibGV2aWV3TW9kZWwsIGFueSwgYW55PixcbiAgICBwcm9wZXJ0eTogc3RyaW5nLFxuICAgIGNvbHVtblR5cGU6IENvbHVtblR5cGVFbnVtLFxuICAgIGZpZWxkVHlwZT86IEZpZWxkSW5wdXRUeXBlRW51bSxcbiAgICBjb2x1bW5EaXNwbGF5VHlwZT86IENvbHVtbkRpc3BsYXlUeXBlRW51bVxuKTogYm9vbGVhbiB7XG4gICAgaWYgKCEoZGVzY3JpcHRvci5tb2RlbCBpbnN0YW5jZW9mIE1vZGVsQ2xhc3NEZXNjcmlwdG9yKSkge1xuICAgICAgICB0aHJvdyBuZXcgQ29tbW9uc0ludGVybmFsRXJyb3IoYHdpdGhGaWVsZE1vZGlmaWVkVHlwZSBjYW5ub3QgYmUgZXhlY3V0ZWQgZm9yIHByb3BlcnR5ICR7cHJvcGVydHl9OiBNb2RlbCBkZXNjcmlwdG9yIGlzIG5vdCBvZiB0eXBlICdNb2RlbENsYXNzRGVzY3JpcHRvcicgaXMgbm90IGRlZmluZWQuYCk7XG4gICAgfVxuICAgIGlmIChjb2x1bW5UeXBlID09PSBDb2x1bW5UeXBlRW51bS5FbnVtKSB7XG4gICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcignRG8gbm90IHVzZSB3aXRoIHR5cGVzIHdoZXJlIGFyZ3MgYXJlIHJlcXVpcmVkJywge25hbWU6ICdUYWJsZXZpZXdEZXNjcmlwdG9yRXJyb3InfSk7XG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlRGVmID0gZ2V0VGFibGV2aWV3Q2xhc3NBdHRyaWJ1dGVEZWYoZGVzY3JpcHRvci5tb2RlbC5jbGFzc1R5cGUpLmZpbmQoYXR0ciA9PiBhdHRyLm5hbWUgPT09IHByb3BlcnR5KTtcblxuICAgIGlmIChhdHRyaWJ1dGVEZWYgIT0gbnVsbCkge1xuICAgICAgICBmaWVsZFR5cGUgPz89IGdldEZpZWxkSW5wdXRUeXBlRnJvbUNvbHVtblR5cGUoY29sdW1uVHlwZSwgY29sdW1uRGlzcGxheVR5cGUpO1xuICAgICAgICBhdHRyaWJ1dGVEZWYuZmllbGRUeXBlID0gZmllbGRUeXBlO1xuICAgICAgICBtb2RpZnlUYWJsZUNsYXNzQXR0cmlidXRlQ29sdW1uVHlwZVVuc2FmZShkZXNjcmlwdG9yLnRhYmxlLCBwcm9wZXJ0eSwgY29sdW1uVHlwZSwgY29sdW1uRGlzcGxheVR5cGUpO1xuICAgICAgICBtb2RpZnlFZGl0b3JDbGFzc0F0dHJpYnV0ZUZpZWxkVHlwZVVuc2FmZShkZXNjcmlwdG9yLmVkaXRFZGl0b3IsIHByb3BlcnR5LCBmaWVsZFR5cGUpO1xuICAgICAgICBtb2RpZnlFZGl0b3JDbGFzc0F0dHJpYnV0ZUZpZWxkVHlwZVVuc2FmZShkZXNjcmlwdG9yLmFkZEVkaXRvciwgcHJvcGVydHksIGZpZWxkVHlwZSk7XG4gICAgICAgIG1vZGlmeUVkaXRvckNsYXNzQXR0cmlidXRlRmllbGRUeXBlVW5zYWZlKGRlc2NyaXB0b3IuZGV0YWlsc0VkaXRvciwgcHJvcGVydHksIGZpZWxkVHlwZSk7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHJldHVybiBmYWxzZTtcbn1cblxuLyoqXG4gKiBjcmVhdGVzIGNvbHVtbiB3aXRoIGVudW0gdHlwZVxuICogaWYgZmllbGRzIGV4aXN0cywgaXQgaXMgcmVwbGFjZWRcbiAqIEBwYXJhbSBkZXNjcmlwdG9yIFRhYmxldmlldyBkZXNjcmlwdG9yXG4gKiBAcGFyYW0gcHJvcGVydHkgcHJvcGVydHkgbmFtZVxuICogQHBhcmFtIGVudW1EZXNjIHR5cGUgb2YgZW51bVxuICogQHBhcmFtIGZpZWxkVHlwZSB0eXBlIG9mIGZpZWxkLCBvcHRpb25hbCwgZGVmYXVsdCBpcyBUZXh0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2RpZnlUYWJsZXZpZXdDbGFzc0F0dHJpYnV0ZUVudW08VGFibGV2aWV3TW9kZWwsIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgVGFibGV2aWV3TW9kZWwsIEVudW0gZXh0ZW5kcyBOb25OdWxsYWJsZTxUYWJsZXZpZXdNb2RlbFtQcm9wZXJ0eV0+PihcbiAgICBkZXNjcmlwdG9yOiBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxUYWJsZXZpZXdNb2RlbCwgYW55LCBhbnk+LFxuICAgIHByb3BlcnR5OiBQcm9wZXJ0eSxcbiAgICBlbnVtRGVzYz86IEVudW1EZXNjcmlwdG9yPEVudW0+LFxuICAgIGZpZWxkVHlwZT86IEZpZWxkSW5wdXRUeXBlRW51bVxuKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIG1vZGlmeVRhYmxldmlld0NsYXNzQXR0cmlidXRlRW51bVVuc2FmZTxUYWJsZXZpZXdNb2RlbCwgRW51bT4oZGVzY3JpcHRvciwgcHJvcGVydHkgYXMgc3RyaW5nLCBlbnVtRGVzYywgZmllbGRUeXBlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGlmeVRhYmxldmlld0NsYXNzQXR0cmlidXRlRW51bVVuc2FmZTxUYWJsZXZpZXdNb2RlbCwgRW51bSA9IGFueT4oXG4gICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8VGFibGV2aWV3TW9kZWwsIGFueSwgYW55PixcbiAgICBwcm9wZXJ0eTogc3RyaW5nLFxuICAgIGVudW1EZXNjPzogRW51bURlc2NyaXB0b3I8RW51bT4sXG4gICAgZmllbGRUeXBlPzogRmllbGRJbnB1dFR5cGVFbnVtXG4pOiBib29sZWFuIHtcbiAgICBpZiAoIShkZXNjcmlwdG9yLm1vZGVsIGluc3RhbmNlb2YgTW9kZWxDbGFzc0Rlc2NyaXB0b3IpKSB7XG4gICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgd2l0aEZpZWxkTW9kaWZpZWRUeXBlIGNhbm5vdCBiZSBleGVjdXRlZCBmb3IgcHJvcGVydHkgJHtwcm9wZXJ0eX06IE1vZGVsIGRlc2NyaXB0b3IgaXMgbm90IG9mIHR5cGUgJ01vZGVsQ2xhc3NEZXNjcmlwdG9yJyBpcyBub3QgZGVmaW5lZC5gKTtcbiAgICB9XG4gICAgY29uc3QgYXR0cmlidXRlRGVmID0gZ2V0VGFibGV2aWV3Q2xhc3NBdHRyaWJ1dGVEZWYoZGVzY3JpcHRvci5tb2RlbC5jbGFzc1R5cGUpLmZpbmQoYXR0ciA9PiBhdHRyLm5hbWUgPT09IHByb3BlcnR5KTtcblxuICAgIGlmIChhdHRyaWJ1dGVEZWYgIT0gbnVsbCkge1xuICAgICAgICBhdHRyaWJ1dGVEZWYuZmllbGRUeXBlID0gZmllbGRUeXBlID8/IEZpZWxkSW5wdXRUeXBlRW51bS5UZXh0O1xuICAgICAgICB0YWJsZURlc2NyaXB0b3JNb2RpZnlFbnVtQ29sdW1uVW5zYWZlKGRlc2NyaXB0b3IudGFibGUsIHByb3BlcnR5LCBlbnVtRGVzYyk7XG4gICAgICAgIG1vZGlmeUVkaXRvckNsYXNzQXR0cmlidXRlRmllbGRFbnVtVW5zYWZlKGRlc2NyaXB0b3IuZWRpdEVkaXRvciwgcHJvcGVydHksIGVudW1EZXNjKTtcbiAgICAgICAgbW9kaWZ5RWRpdG9yQ2xhc3NBdHRyaWJ1dGVGaWVsZEVudW1VbnNhZmUoZGVzY3JpcHRvci5hZGRFZGl0b3IsIHByb3BlcnR5LCBlbnVtRGVzYyk7XG4gICAgICAgIG1vZGlmeUVkaXRvckNsYXNzQXR0cmlidXRlRmllbGRFbnVtVW5zYWZlKGRlc2NyaXB0b3IuZGV0YWlsc0VkaXRvciwgcHJvcGVydHksIGVudW1EZXNjKTtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuXG4vKipcbiAqIGdlbmVyYXRlcyBjb2x1bW4gd2l0aCBjdXN0b20gY2xhc3MgdHlwZVxuICogZmllbGQgaXMgZ2VuZXJhdGVkIG9ubHkgaWYgbG9va3VwUHJvdmlkZXIgaXMgcHJvdmlkZWRcbiAqIEBwYXJhbSBkZXNjcmlwdG9yIFRhYmxldmlldyBkZXNjcmlwdG9yXG4gKiBAcGFyYW0gcHJvcGVydHkgcHJvcGVydHkgbmFtZVxuICogQHBhcmFtIHR5cGUgY2xhc3MgdHlwZSBvZiBvYmplY3RcbiAqIEBwYXJhbSB0aXRsZVByb3BlcnR5XG4gKiBAcGFyYW0gbG9va3VwUHJvdmlkZXJcbiAqIEBwYXJhbSBvcHRpb25zTGFiZWxQcm9wZXJ0eVxuICogQHBhcmFtIGZpbHRlclByb3BlcnR5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtb2RpZnlUYWJsZXZpZXdMb29rdXA8VGFibGV2aWV3TW9kZWwsIFByb3BlcnR5IGV4dGVuZHMga2V5b2YgVGFibGV2aWV3TW9kZWwsIExvb2t1cE1vZGVsID0gTm9uTnVsbGFibGU8VGFibGV2aWV3TW9kZWxbUHJvcGVydHldPj4oXG4gICAgZGVzY3JpcHRvcjogVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8VGFibGV2aWV3TW9kZWwsIGFueSwgYW55PixcbiAgICBwcm9wZXJ0eTogUHJvcGVydHksXG4gICAgdHlwZT86IENsYXNzVHlwZTxMb29rdXBNb2RlbD4sXG4gICAgbG9va3VwUHJvdmlkZXI/OiBJTG9va3VwRGF0YVByb3ZpZGVyPExvb2t1cE1vZGVsPixcbiAgICB0aXRsZVByb3BlcnR5Pzoga2V5b2YgTG9va3VwTW9kZWwsXG4gICAgb3B0aW9uc0xhYmVsUHJvcGVydHk/OiBrZXlvZiBMb29rdXBNb2RlbCxcbiAgICBmaWx0ZXJQcm9wZXJ0eT86IGtleW9mIExvb2t1cE1vZGVsXG4pOiBib29sZWFuIHtcbiAgICByZXR1cm4gbW9kaWZ5VGFibGV2aWV3TG9va3VwVW5zYWZlKGRlc2NyaXB0b3IsIHByb3BlcnR5IGFzIHN0cmluZywgdHlwZSwgbG9va3VwUHJvdmlkZXIsIHRpdGxlUHJvcGVydHkgYXMgc3RyaW5nLCBvcHRpb25zTGFiZWxQcm9wZXJ0eSBhcyBzdHJpbmcsIGZpbHRlclByb3BlcnR5IGFzIHN0cmluZyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtb2RpZnlUYWJsZXZpZXdMb29rdXBVbnNhZmU8VGFibGV2aWV3TW9kZWwsIExvb2t1cE1vZGVsPihcbiAgICBkZXNjcmlwdG9yOiBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxUYWJsZXZpZXdNb2RlbCwgYW55LCBhbnk+LFxuICAgIHByb3BlcnR5OiBzdHJpbmcsXG4gICAgdHlwZT86IENsYXNzVHlwZTxMb29rdXBNb2RlbD4sXG4gICAgbG9va3VwUHJvdmlkZXI/OiBJTG9va3VwRGF0YVByb3ZpZGVyPExvb2t1cE1vZGVsPixcbiAgICB0aXRsZVByb3BlcnR5Pzogc3RyaW5nLFxuICAgIG9wdGlvbnNMYWJlbFByb3BlcnR5Pzogc3RyaW5nLFxuICAgIGZpbHRlclByb3BlcnR5Pzogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgICBpZiAoIShkZXNjcmlwdG9yLm1vZGVsIGluc3RhbmNlb2YgTW9kZWxDbGFzc0Rlc2NyaXB0b3IpKSB7XG4gICAgICAgIHRocm93IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgd2l0aEZpZWxkTW9kaWZpZWRUeXBlIGNhbm5vdCBiZSBleGVjdXRlZCBmb3IgcHJvcGVydHkgJHtwcm9wZXJ0eX06IE1vZGVsIGRlc2NyaXB0b3IgaXMgbm90IG9mIHR5cGUgJ01vZGVsQ2xhc3NEZXNjcmlwdG9yJyBpcyBub3QgZGVmaW5lZC5gKTtcbiAgICB9XG5cbiAgICBjb25zdCBhdHRyaWJ1dGVEZWYgPSBnZXRUYWJsZXZpZXdDbGFzc0F0dHJpYnV0ZURlZihkZXNjcmlwdG9yLm1vZGVsLmNsYXNzVHlwZSkuZmluZChhdHRyID0+IGF0dHIubmFtZSA9PT0gcHJvcGVydHkpO1xuXG4gICAgaWYgKGF0dHJpYnV0ZURlZiAhPSBudWxsKSB7XG4gICAgICAgIHR5cGUgPz89IGF0dHJpYnV0ZURlZi5jbGFzc1R5cGUgPz8gVHlwZVJlZ2lzdHJ5LmdldCgpLmZpbmRUeXBlKGF0dHJpYnV0ZURlZi50eXBlKTtcbiAgICAgICAgdGl0bGVQcm9wZXJ0eSA/Pz0gdHlwZSA/IChmaW5kQ2xhc3NUaXRsZUF0dHJpYnV0ZSh0eXBlKSA/PyB1bmRlZmluZWQpIDogdW5kZWZpbmVkO1xuICAgICAgICBvcHRpb25zTGFiZWxQcm9wZXJ0eSA/Pz0gdGl0bGVQcm9wZXJ0eTtcbiAgICAgICAgYXR0cmlidXRlRGVmLmNvbHVtblR5cGUgPSBDb2x1bW5UeXBlRW51bS5TdHJpbmc7XG4gICAgICAgIGF0dHJpYnV0ZURlZi5maWVsZFR5cGUgPSBGaWVsZElucHV0VHlwZUVudW0uVGV4dDtcblxuICAgICAgICBpZiAobG9va3VwUHJvdmlkZXIgIT0gbnVsbCkge1xuICAgICAgICAgICAgbW9kaWZ5VGFibGVDb2x1bW5GaWx0ZXJMb29rdXBVbnNhZmUoZGVzY3JpcHRvci50YWJsZSwgcHJvcGVydHksIGxvb2t1cFByb3ZpZGVyLCBvcHRpb25zTGFiZWxQcm9wZXJ0eSwgZmlsdGVyUHJvcGVydHkpO1xuICAgICAgICAgICAgbW9kaWZ5RWRpdG9yRmllbGRMb29rdXBVbnNhZmUoZGVzY3JpcHRvci5hZGRFZGl0b3IsIHByb3BlcnR5LCBsb29rdXBQcm92aWRlciwgb3B0aW9uc0xhYmVsUHJvcGVydHkpO1xuICAgICAgICAgICAgbW9kaWZ5RWRpdG9yRmllbGRMb29rdXBVbnNhZmUoZGVzY3JpcHRvci5kZXRhaWxzRWRpdG9yLCBwcm9wZXJ0eSwgbG9va3VwUHJvdmlkZXIsIG9wdGlvbnNMYWJlbFByb3BlcnR5KTtcbiAgICAgICAgICAgIG1vZGlmeUVkaXRvckZpZWxkTG9va3VwVW5zYWZlKGRlc2NyaXB0b3IuZWRpdEVkaXRvciwgcHJvcGVydHksIGxvb2t1cFByb3ZpZGVyLCBvcHRpb25zTGFiZWxQcm9wZXJ0eSk7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGNvbHVtbiA9IGRlc2NyaXB0b3IudGFibGUuZ2V0Q29sdW1uVW5zYWZlKHByb3BlcnR5KSA/PyBkZXNjcmlwdG9yLmFkZENvbHVtblVuc2FmZShwcm9wZXJ0eSk7XG4gICAgICAgICAgICBpZiAodGl0bGVQcm9wZXJ0eSkge1xuICAgICAgICAgICAgICAgIGNvbHVtbi53aXRoR2V0dGVyKHZhbHVlID0+IHZhbHVlPy5bdGl0bGVQcm9wZXJ0eSBhcyBrZXlvZiBvYmplY3RdKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGZhbHNlO1xufVxuIl19
@@ -0,0 +1,26 @@
1
+ import { modelClass } from '@mediusinc/mng-commons/model/class';
2
+ import { tableDescriptorFromClassAttrsDef } from '@mediusinc/mng-commons/table/api/class';
3
+ import { TableviewDescriptorInst, TableviewEditorTypeEnum } from '@mediusinc/mng-commons/tableview/api';
4
+ import { editorDescriptorFromClassAttrsDef } from '../editor/class-editor-descriptor.factory';
5
+ export function tableviewDescriptorFromClass(type, opts) {
6
+ return new TableviewDescriptorInst(modelClass(type, opts));
7
+ }
8
+ /**
9
+ * generates descriptor based on type attribute definition
10
+ * @param type class type
11
+ * @param columnAttributes
12
+ * @param fieldAttributes
13
+ * @param opts
14
+ */
15
+ export function tableviewDescriptorFromClassAttrsDef(type, columnAttributes, fieldAttributes, opts) {
16
+ const model = modelClass(type, opts);
17
+ const descriptor = new TableviewDescriptorInst(model);
18
+ descriptor.withTableDescriptor(tableDescriptorFromClassAttrsDef(type, columnAttributes, opts));
19
+ if (fieldAttributes !== null) {
20
+ descriptor.withEditDescriptor(editorDescriptorFromClassAttrsDef(type, fieldAttributes ?? columnAttributes, { ...opts, tableviewEditorType: TableviewEditorTypeEnum.Edit }));
21
+ descriptor.withDetailsDescriptor(editorDescriptorFromClassAttrsDef(type, fieldAttributes ?? columnAttributes, { ...opts, tableviewEditorType: TableviewEditorTypeEnum.Details }).withDisabled());
22
+ descriptor.withAddDescriptor(editorDescriptorFromClassAttrsDef(type, fieldAttributes ?? columnAttributes, { ...opts, tableviewEditorType: TableviewEditorTypeEnum.Add }));
23
+ }
24
+ return descriptor;
25
+ }
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3MtdGFibGV2aWV3LWRlc2NyaXB0b3IuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9hcGkvY2xhc3Mvc3JjL3RhYmxldmlldy9jbGFzcy10YWJsZXZpZXctZGVzY3JpcHRvci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxvQ0FBb0MsQ0FBQztBQUM5RCxPQUFPLEVBQUMsZ0NBQWdDLEVBQUMsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RixPQUFPLEVBQWlFLHVCQUF1QixFQUFFLHVCQUF1QixFQUFDLE1BQU0sc0NBQXNDLENBQUM7QUFFdEssT0FBTyxFQUFDLGlDQUFpQyxFQUFDLE1BQU0sMkNBQTJDLENBQUM7QUFHNUYsTUFBTSxVQUFVLDRCQUE0QixDQUN4QyxJQUErQixFQUMvQixJQUFxRjtJQUVyRixPQUFPLElBQUksdUJBQXVCLENBQW9ELFVBQVUsQ0FBaUIsSUFBaUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQy9KLENBQUM7QUFFRDs7Ozs7O0dBTUc7QUFDSCxNQUFNLFVBQVUsb0NBQW9DLENBQ2hELElBQStCLEVBQy9CLGdCQUErQyxFQUMvQyxlQUFxRCxFQUNyRCxJQUFxRjtJQUVyRixNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ3JDLE1BQU0sVUFBVSxHQUFHLElBQUksdUJBQXVCLENBQWlDLEtBQUssQ0FBQyxDQUFDO0lBQ3RGLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQyxnQ0FBZ0MsQ0FBaUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFL0gsSUFBSSxlQUFlLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDM0IsVUFBVSxDQUFDLGtCQUFrQixDQUFDLGlDQUFpQyxDQUFDLElBQUksRUFBRSxlQUFlLElBQUksZ0JBQWdCLEVBQUUsRUFBQyxHQUFHLElBQUksRUFBRSxtQkFBbUIsRUFBRSx1QkFBdUIsQ0FBQyxJQUFJLEVBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUssVUFBVSxDQUFDLHFCQUFxQixDQUM1QixpQ0FBaUMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxJQUFJLGdCQUFnQixFQUFFLEVBQUMsR0FBRyxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUMsT0FBTyxFQUFDLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FDL0osQ0FBQztRQUNGLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxpQ0FBaUMsQ0FBQyxJQUFJLEVBQUUsZUFBZSxJQUFJLGdCQUFnQixFQUFFLEVBQUMsR0FBRyxJQUFJLEVBQUUsbUJBQW1CLEVBQUUsdUJBQXVCLENBQUMsR0FBRyxFQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVLLENBQUM7SUFFRCxPQUFPLFVBQVUsQ0FBQztBQUN0QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDbGFzc1R5cGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvY29yZSc7XG5pbXBvcnQge21vZGVsQ2xhc3N9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwvY2xhc3MnO1xuaW1wb3J0IHt0YWJsZURlc2NyaXB0b3JGcm9tQ2xhc3NBdHRyc0RlZn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy90YWJsZS9hcGkvY2xhc3MnO1xuaW1wb3J0IHtUYWJsZXZpZXdEZXNjcmlwdG9yQ3JlYXRlTXVsdGlNb2RlbFdpdGhNb2RlbERlc2NyaXB0b3JPcHRzVHlwZSwgVGFibGV2aWV3RGVzY3JpcHRvckluc3QsIFRhYmxldmlld0VkaXRvclR5cGVFbnVtfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL3RhYmxldmlldy9hcGknO1xuXG5pbXBvcnQge2VkaXRvckRlc2NyaXB0b3JGcm9tQ2xhc3NBdHRyc0RlZn0gZnJvbSAnLi4vZWRpdG9yL2NsYXNzLWVkaXRvci1kZXNjcmlwdG9yLmZhY3RvcnknO1xuaW1wb3J0IHtUYWJsZXZpZXdDbGFzc0F0dHJpYnV0ZURlZn0gZnJvbSAnLi9jbGFzcy10YWJsZXZpZXctYXR0cmlidXRlLm1vZGVsJztcblxuZXhwb3J0IGZ1bmN0aW9uIHRhYmxldmlld0Rlc2NyaXB0b3JGcm9tQ2xhc3M8VGFibGV2aWV3TW9kZWwsIFNvcnRzID0ga2V5b2YgVGFibGV2aWV3TW9kZWwsIEZpbHRlcnMgPSBrZXlvZiBUYWJsZXZpZXdNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWwgPSB1bmRlZmluZWQ+KFxuICAgIHR5cGU6IENsYXNzVHlwZTxUYWJsZXZpZXdNb2RlbD4sXG4gICAgb3B0cz86IFRhYmxldmlld0Rlc2NyaXB0b3JDcmVhdGVNdWx0aU1vZGVsV2l0aE1vZGVsRGVzY3JpcHRvck9wdHNUeXBlPFRhYmxldmlld01vZGVsPlxuKTogVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8VGFibGV2aWV3TW9kZWwsIFNvcnRzLCBGaWx0ZXJzLCBQYXJlbnRFZGl0b3JNb2RlbD4ge1xuICAgIHJldHVybiBuZXcgVGFibGV2aWV3RGVzY3JpcHRvckluc3Q8VGFibGV2aWV3TW9kZWwsIFNvcnRzLCBGaWx0ZXJzLCBQYXJlbnRFZGl0b3JNb2RlbD4obW9kZWxDbGFzczxUYWJsZXZpZXdNb2RlbD4odHlwZSBhcyBDbGFzc1R5cGU8VGFibGV2aWV3TW9kZWw+LCBvcHRzKSk7XG59XG5cbi8qKlxuICogZ2VuZXJhdGVzIGRlc2NyaXB0b3IgYmFzZWQgb24gdHlwZSBhdHRyaWJ1dGUgZGVmaW5pdGlvblxuICogQHBhcmFtIHR5cGUgY2xhc3MgdHlwZVxuICogQHBhcmFtIGNvbHVtbkF0dHJpYnV0ZXNcbiAqIEBwYXJhbSBmaWVsZEF0dHJpYnV0ZXNcbiAqIEBwYXJhbSBvcHRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB0YWJsZXZpZXdEZXNjcmlwdG9yRnJvbUNsYXNzQXR0cnNEZWY8VGFibGV2aWV3TW9kZWwsIFNvcnRzID0ga2V5b2YgVGFibGV2aWV3TW9kZWwsIEZpbHRlcnMgPSBrZXlvZiBUYWJsZXZpZXdNb2RlbD4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPFRhYmxldmlld01vZGVsPixcbiAgICBjb2x1bW5BdHRyaWJ1dGVzPzogVGFibGV2aWV3Q2xhc3NBdHRyaWJ1dGVEZWZbXSxcbiAgICBmaWVsZEF0dHJpYnV0ZXM/OiBUYWJsZXZpZXdDbGFzc0F0dHJpYnV0ZURlZltdIHwgbnVsbCxcbiAgICBvcHRzPzogVGFibGV2aWV3RGVzY3JpcHRvckNyZWF0ZU11bHRpTW9kZWxXaXRoTW9kZWxEZXNjcmlwdG9yT3B0c1R5cGU8VGFibGV2aWV3TW9kZWw+XG4pOiBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxUYWJsZXZpZXdNb2RlbCwgU29ydHMsIEZpbHRlcnM+IHtcbiAgICBjb25zdCBtb2RlbCA9IG1vZGVsQ2xhc3ModHlwZSwgb3B0cyk7XG4gICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBUYWJsZXZpZXdEZXNjcmlwdG9ySW5zdDxUYWJsZXZpZXdNb2RlbCwgU29ydHMsIEZpbHRlcnM+KG1vZGVsKTtcbiAgICBkZXNjcmlwdG9yLndpdGhUYWJsZURlc2NyaXB0b3IodGFibGVEZXNjcmlwdG9yRnJvbUNsYXNzQXR0cnNEZWY8VGFibGV2aWV3TW9kZWwsIFNvcnRzLCBGaWx0ZXJzPih0eXBlLCBjb2x1bW5BdHRyaWJ1dGVzLCBvcHRzKSk7XG5cbiAgICBpZiAoZmllbGRBdHRyaWJ1dGVzICE9PSBudWxsKSB7XG4gICAgICAgIGRlc2NyaXB0b3Iud2l0aEVkaXREZXNjcmlwdG9yKGVkaXRvckRlc2NyaXB0b3JGcm9tQ2xhc3NBdHRyc0RlZih0eXBlLCBmaWVsZEF0dHJpYnV0ZXMgPz8gY29sdW1uQXR0cmlidXRlcywgey4uLm9wdHMsIHRhYmxldmlld0VkaXRvclR5cGU6IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLkVkaXR9KSk7XG4gICAgICAgIGRlc2NyaXB0b3Iud2l0aERldGFpbHNEZXNjcmlwdG9yKFxuICAgICAgICAgICAgZWRpdG9yRGVzY3JpcHRvckZyb21DbGFzc0F0dHJzRGVmKHR5cGUsIGZpZWxkQXR0cmlidXRlcyA/PyBjb2x1bW5BdHRyaWJ1dGVzLCB7Li4ub3B0cywgdGFibGV2aWV3RWRpdG9yVHlwZTogVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uRGV0YWlsc30pLndpdGhEaXNhYmxlZCgpXG4gICAgICAgICk7XG4gICAgICAgIGRlc2NyaXB0b3Iud2l0aEFkZERlc2NyaXB0b3IoZWRpdG9yRGVzY3JpcHRvckZyb21DbGFzc0F0dHJzRGVmKHR5cGUsIGZpZWxkQXR0cmlidXRlcyA/PyBjb2x1bW5BdHRyaWJ1dGVzLCB7Li4ub3B0cywgdGFibGV2aWV3RWRpdG9yVHlwZTogVGFibGV2aWV3RWRpdG9yVHlwZUVudW0uQWRkfSkpO1xuICAgIH1cblxuICAgIHJldHVybiBkZXNjcmlwdG9yO1xufVxuIl19
@@ -1,33 +1,15 @@
1
1
  import { EditorDataProviderInst } from './editor.data-provider';
2
- export class EditorDataProvider extends EditorDataProviderInst {
3
- constructor() {
4
- super(undefined, undefined);
5
- }
6
- static create() {
7
- return editorDataProvider();
8
- }
9
- static fromClass(type) {
10
- return editorDataProviderFromClass(type);
11
- }
12
- static fromClassWithService(type, serviceType) {
13
- return editorDataProviderFromClass(type, serviceType);
14
- }
15
- static fromService(serviceType) {
16
- return editorDataProviderWithService(serviceType);
17
- }
18
- }
19
- export function editorDataProvider(type, serviceType) {
20
- return new EditorDataProviderInst(undefined, serviceType);
21
- }
22
- export function editorDataProviderWithService(serviceType) {
23
- return new EditorDataProviderInst(undefined, serviceType);
24
- }
25
- export function editorDataProviderFromClass(type, serviceType) {
26
- return new EditorDataProviderInst(type, serviceType);
27
- }
28
- export function editorDataProviderFromModel(model, serviceType) {
29
- return typeof serviceType !== 'undefined'
30
- ? new EditorDataProviderInst(model.type, serviceType)
31
- : new EditorDataProviderInst(model.type, undefined);
32
- }
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWRhdGEtcHJvdmlkZXIuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9hcGkvc3JjL2VkaXRvci9kYXRhLXByb3ZpZGVycy9lZGl0b3ItZGF0YS1wcm92aWRlci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTlELE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxzQkFBMkI7SUFDL0Q7UUFDSSxLQUFLLENBQUMsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTTtRQUNoQixPQUFPLGtCQUFrQixFQUFFLENBQUM7SUFDaEMsQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTLENBQVEsSUFBc0I7UUFDakQsT0FBTywyQkFBMkIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRU0sTUFBTSxDQUFDLG9CQUFvQixDQUM5QixJQUFzQixFQUN0QixXQUFzQztRQUV0QyxPQUFPLDJCQUEyQixDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sTUFBTSxDQUFDLFdBQVcsQ0FBaUIsV0FBc0M7UUFDNUUsT0FBTyw2QkFBNkIsQ0FBaUIsV0FBVyxDQUFDLENBQUM7SUFDdEUsQ0FBQztDQUNKO0FBUUQsTUFBTSxVQUFVLGtCQUFrQixDQUFpRSxJQUE0QixFQUFFLFdBQTBCO0lBQ3ZKLE9BQU8sSUFBSSxzQkFBc0IsQ0FBMEMsU0FBUyxFQUFFLFdBQTJCLENBQUMsQ0FBQztBQUN2SCxDQUFDO0FBRUQsTUFBTSxVQUFVLDZCQUE2QixDQUN6QyxXQUFzQztJQUV0QyxPQUFPLElBQUksc0JBQXNCLENBQXVELFNBQVMsRUFBRSxXQUFXLENBQUMsQ0FBQztBQUNwSCxDQUFDO0FBT0QsTUFBTSxVQUFVLDJCQUEyQixDQUFpRSxJQUFzQixFQUFFLFdBQTBCO0lBQzFKLE9BQU8sSUFBSSxzQkFBc0IsQ0FBaUQsSUFBSSxFQUFFLFdBQTJCLENBQUMsQ0FBQztBQUN6SCxDQUFDO0FBU0QsTUFBTSxVQUFVLDJCQUEyQixDQUN2QyxLQUF5QyxFQUN6QyxXQUEwQjtJQUUxQixPQUFPLE9BQU8sV0FBVyxLQUFLLFdBQVc7UUFDckMsQ0FBQyxDQUFDLElBQUksc0JBQXNCLENBQThELEtBQUssQ0FBQyxJQUF3QixFQUFFLFdBQXdDLENBQUM7UUFDbkssQ0FBQyxDQUFDLElBQUksc0JBQXNCLENBQWdELEtBQUssQ0FBQyxJQUF3QixFQUFFLFNBQVMsQ0FBQyxDQUFDO0FBQy9ILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NsYXNzVHlwZSwgU2VydmljZUNsYXNzVHlwZX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7TW9kZWxEZXNjcmlwdG9yLCBUeXBlRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5cbmltcG9ydCB7RWRpdG9yRGF0YVByb3ZpZGVySW5zdH0gZnJvbSAnLi9lZGl0b3IuZGF0YS1wcm92aWRlcic7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JEYXRhUHJvdmlkZXIgZXh0ZW5kcyBFZGl0b3JEYXRhUHJvdmlkZXJJbnN0PGFueT4ge1xuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIodW5kZWZpbmVkLCB1bmRlZmluZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPE1vZGVsPigpOiBFZGl0b3JEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBlZGl0b3JEYXRhUHJvdmlkZXIoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21DbGFzczxNb2RlbD4odHlwZTogQ2xhc3NUeXBlPE1vZGVsPik6IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIHVuZGVmaW5lZCwgQ2xhc3NUeXBlPE1vZGVsPiwgdW5kZWZpbmVkPiB7XG4gICAgICAgIHJldHVybiBlZGl0b3JEYXRhUHJvdmlkZXJGcm9tQ2xhc3ModHlwZSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tQ2xhc3NXaXRoU2VydmljZTxNb2RlbCwgU2VydmljZT4oXG4gICAgICAgIHR5cGU6IENsYXNzVHlwZTxNb2RlbD4sXG4gICAgICAgIHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+XG4gICAgKTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgQ2xhc3NUeXBlPE1vZGVsPiwgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj4ge1xuICAgICAgICByZXR1cm4gZWRpdG9yRGF0YVByb3ZpZGVyRnJvbUNsYXNzKHR5cGUsIHNlcnZpY2VUeXBlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21TZXJ2aWNlPFNlcnZpY2UsIE1vZGVsPihzZXJ2aWNlVHlwZTogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPik6IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIHVuZGVmaW5lZCwgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj4ge1xuICAgICAgICByZXR1cm4gZWRpdG9yRGF0YVByb3ZpZGVyV2l0aFNlcnZpY2U8U2VydmljZSwgTW9kZWw+KHNlcnZpY2VUeXBlKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlZGl0b3JEYXRhUHJvdmlkZXI8TW9kZWw+KCk6IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGVkaXRvckRhdGFQcm92aWRlcjxNb2RlbD4odHlwZTogVHlwZURlc2NyaXB0b3I8TW9kZWw+KTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZD47XG5leHBvcnQgZnVuY3Rpb24gZWRpdG9yRGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlID0gYW55PihcbiAgICB0eXBlOiBUeXBlRGVzY3JpcHRvcjxNb2RlbD4sXG4gICAgc2VydmljZVR5cGU6IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT5cbik6IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIHVuZGVmaW5lZCwgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj47XG5leHBvcnQgZnVuY3Rpb24gZWRpdG9yRGF0YVByb3ZpZGVyPE1vZGVsLCBTZXJ2aWNlID0gYW55LCBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+Pih0eXBlPzogVHlwZURlc2NyaXB0b3I8TW9kZWw+LCBzZXJ2aWNlVHlwZT86IFNlcnZpY2VDbGFzcykge1xuICAgIHJldHVybiBuZXcgRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgdW5kZWZpbmVkLCBTZXJ2aWNlQ2xhc3M+KHVuZGVmaW5lZCwgc2VydmljZVR5cGUgYXMgU2VydmljZUNsYXNzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVkaXRvckRhdGFQcm92aWRlcldpdGhTZXJ2aWNlPFNlcnZpY2UsIE1vZGVsPihcbiAgICBzZXJ2aWNlVHlwZTogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPlxuKTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgdW5kZWZpbmVkLCBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+PiB7XG4gICAgcmV0dXJuIG5ldyBFZGl0b3JEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCB1bmRlZmluZWQsIFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4+KHVuZGVmaW5lZCwgc2VydmljZVR5cGUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZWRpdG9yRGF0YVByb3ZpZGVyRnJvbUNsYXNzPE1vZGVsPih0eXBlOiBDbGFzc1R5cGU8TW9kZWw+KTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgdW5kZWZpbmVkLCBDbGFzc1R5cGU8TW9kZWw+LCB1bmRlZmluZWQ+O1xuZXhwb3J0IGZ1bmN0aW9uIGVkaXRvckRhdGFQcm92aWRlckZyb21DbGFzczxNb2RlbCwgU2VydmljZSA9IGFueT4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPE1vZGVsPixcbiAgICBzZXJ2aWNlVHlwZTogU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPlxuKTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgQ2xhc3NUeXBlPE1vZGVsPiwgU2VydmljZUNsYXNzVHlwZTxTZXJ2aWNlPj47XG5leHBvcnQgZnVuY3Rpb24gZWRpdG9yRGF0YVByb3ZpZGVyRnJvbUNsYXNzPE1vZGVsLCBTZXJ2aWNlID0gYW55LCBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+Pih0eXBlOiBDbGFzc1R5cGU8TW9kZWw+LCBzZXJ2aWNlVHlwZT86IFNlcnZpY2VDbGFzcykge1xuICAgIHJldHVybiBuZXcgRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgQ2xhc3NUeXBlPE1vZGVsPiwgU2VydmljZUNsYXNzPih0eXBlLCBzZXJ2aWNlVHlwZSBhcyBTZXJ2aWNlQ2xhc3MpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZWRpdG9yRGF0YVByb3ZpZGVyRnJvbU1vZGVsPE1vZGVsLCBNb2RlbENsYXNzID0gQ2xhc3NUeXBlPE1vZGVsPj4oXG4gICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxNb2RlbCwgTW9kZWxDbGFzcz5cbik6IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIHVuZGVmaW5lZCwgTW9kZWxDbGFzcywgdW5kZWZpbmVkPjtcbmV4cG9ydCBmdW5jdGlvbiBlZGl0b3JEYXRhUHJvdmlkZXJGcm9tTW9kZWw8TW9kZWwsIFNlcnZpY2UgPSBhbnksIE1vZGVsQ2xhc3MgPSBDbGFzc1R5cGU8TW9kZWw+PihcbiAgICBtb2RlbDogTW9kZWxEZXNjcmlwdG9yPE1vZGVsLCBNb2RlbENsYXNzPixcbiAgICBTZXJ2aWNlQ2xhc3M6IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT5cbik6IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIE1vZGVsQ2xhc3MsIFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4+O1xuZXhwb3J0IGZ1bmN0aW9uIGVkaXRvckRhdGFQcm92aWRlckZyb21Nb2RlbDxNb2RlbCwgU2VydmljZSA9IGFueSwgTW9kZWxDbGFzcyA9IENsYXNzVHlwZTxNb2RlbD4sIFNlcnZpY2VDbGFzcyA9IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4+KFxuICAgIG1vZGVsOiBNb2RlbERlc2NyaXB0b3I8TW9kZWwsIE1vZGVsQ2xhc3M+LFxuICAgIHNlcnZpY2VUeXBlPzogU2VydmljZUNsYXNzXG4pIHtcbiAgICByZXR1cm4gdHlwZW9mIHNlcnZpY2VUeXBlICE9PSAndW5kZWZpbmVkJ1xuICAgICAgICA/IG5ldyBFZGl0b3JEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlLCBDbGFzc1R5cGU8TW9kZWw+LCBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+Pihtb2RlbC50eXBlIGFzIENsYXNzVHlwZTxNb2RlbD4sIHNlcnZpY2VUeXBlIGFzIFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT4pXG4gICAgICAgIDogbmV3IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIHVuZGVmaW5lZCwgQ2xhc3NUeXBlPE1vZGVsPiwgdW5kZWZpbmVkPihtb2RlbC50eXBlIGFzIENsYXNzVHlwZTxNb2RlbD4sIHVuZGVmaW5lZCk7XG59XG4iXX0=
2
+ /**
3
+ * Creates and returns an instance of `EditorDataProviderInst` with the specified options for managing editor data.
4
+ *
5
+ * @param {Object} [opts] - The options object to configure the data provider.
6
+ * @param {TypeDescriptor<Model> | ModelDescriptor<Model>} [opts.type] - The descriptor defining the type of model.
7
+ * @param {ServiceClassType<Service>} [opts.service] - The service class type associated with the data provider.
8
+ * @param {TypeDescriptor<CreateModel> | ModelDescriptor<CreateModel>} [opts.createType] - The descriptor defining the create type.
9
+ * @param {TypeDescriptor<UpdateModel> | ModelDescriptor<UpdateModel>} [opts.updateType] - The descriptor defining the update type.
10
+ * @return {EditorDataProviderInst<Model, Service, ServiceClass, CreateModel, UpdateModel>} An instance of `EditorDataProviderInst` configured according to the provided options.
11
+ */
12
+ export function editorDataProvider(opts) {
13
+ return new EditorDataProviderInst(opts?.service);
14
+ }
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWRhdGEtcHJvdmlkZXIuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9hcGkvc3JjL2VkaXRvci9kYXRhLXByb3ZpZGVycy9lZGl0b3ItZGF0YS1wcm92aWRlci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBRTlEOzs7Ozs7Ozs7R0FTRztBQUNILE1BQU0sVUFBVSxrQkFBa0IsQ0FNaEMsSUFLRDtJQUNHLE9BQU8sSUFBSSxzQkFBc0IsQ0FBeUQsSUFBSSxFQUFFLE9BQXVCLENBQUMsQ0FBQztBQUM3SCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtTZXJ2aWNlQ2xhc3NUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtNb2RlbERlc2NyaXB0b3IsIFR5cGVEZXNjcmlwdG9yfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL21vZGVsJztcblxuaW1wb3J0IHtFZGl0b3JEYXRhUHJvdmlkZXJJbnN0fSBmcm9tICcuL2VkaXRvci5kYXRhLXByb3ZpZGVyJztcblxuLyoqXG4gKiBDcmVhdGVzIGFuZCByZXR1cm5zIGFuIGluc3RhbmNlIG9mIGBFZGl0b3JEYXRhUHJvdmlkZXJJbnN0YCB3aXRoIHRoZSBzcGVjaWZpZWQgb3B0aW9ucyBmb3IgbWFuYWdpbmcgZWRpdG9yIGRhdGEuXG4gKlxuICogQHBhcmFtIHtPYmplY3R9IFtvcHRzXSAtIFRoZSBvcHRpb25zIG9iamVjdCB0byBjb25maWd1cmUgdGhlIGRhdGEgcHJvdmlkZXIuXG4gKiBAcGFyYW0ge1R5cGVEZXNjcmlwdG9yPE1vZGVsPiB8IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD59IFtvcHRzLnR5cGVdIC0gVGhlIGRlc2NyaXB0b3IgZGVmaW5pbmcgdGhlIHR5cGUgb2YgbW9kZWwuXG4gKiBAcGFyYW0ge1NlcnZpY2VDbGFzc1R5cGU8U2VydmljZT59IFtvcHRzLnNlcnZpY2VdIC0gVGhlIHNlcnZpY2UgY2xhc3MgdHlwZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGEgcHJvdmlkZXIuXG4gKiBAcGFyYW0ge1R5cGVEZXNjcmlwdG9yPENyZWF0ZU1vZGVsPiB8IE1vZGVsRGVzY3JpcHRvcjxDcmVhdGVNb2RlbD59IFtvcHRzLmNyZWF0ZVR5cGVdIC0gVGhlIGRlc2NyaXB0b3IgZGVmaW5pbmcgdGhlIGNyZWF0ZSB0eXBlLlxuICogQHBhcmFtIHtUeXBlRGVzY3JpcHRvcjxVcGRhdGVNb2RlbD4gfCBNb2RlbERlc2NyaXB0b3I8VXBkYXRlTW9kZWw+fSBbb3B0cy51cGRhdGVUeXBlXSAtIFRoZSBkZXNjcmlwdG9yIGRlZmluaW5nIHRoZSB1cGRhdGUgdHlwZS5cbiAqIEByZXR1cm4ge0VkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIFNlcnZpY2VDbGFzcywgQ3JlYXRlTW9kZWwsIFVwZGF0ZU1vZGVsPn0gQW4gaW5zdGFuY2Ugb2YgYEVkaXRvckRhdGFQcm92aWRlckluc3RgIGNvbmZpZ3VyZWQgYWNjb3JkaW5nIHRvIHRoZSBwcm92aWRlZCBvcHRpb25zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZWRpdG9yRGF0YVByb3ZpZGVyPFxuICAgIE1vZGVsLFxuICAgIFNlcnZpY2UgPSB1bmRlZmluZWQsXG4gICAgQ3JlYXRlTW9kZWwgPSBNb2RlbCxcbiAgICBVcGRhdGVNb2RlbCA9IE1vZGVsLFxuICAgIFNlcnZpY2VDbGFzcyA9IFNlcnZpY2UgZXh0ZW5kcyB1bmRlZmluZWQgPyB1bmRlZmluZWQgOiBTZXJ2aWNlQ2xhc3NUeXBlPFNlcnZpY2U+XG4+KG9wdHM/OiB7XG4gICAgdHlwZT86IFR5cGVEZXNjcmlwdG9yPE1vZGVsPiB8IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD47XG4gICAgc2VydmljZT86IFNlcnZpY2VDbGFzc1R5cGU8U2VydmljZT47XG4gICAgY3JlYXRlVHlwZT86IFR5cGVEZXNjcmlwdG9yPENyZWF0ZU1vZGVsPiB8IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD47XG4gICAgdXBkYXRlVHlwZT86IFR5cGVEZXNjcmlwdG9yPFVwZGF0ZU1vZGVsPiB8IE1vZGVsRGVzY3JpcHRvcjxNb2RlbD47XG59KTogRWRpdG9yRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU2VydmljZUNsYXNzLCBDcmVhdGVNb2RlbCwgVXBkYXRlTW9kZWw+IHtcbiAgICByZXR1cm4gbmV3IEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UsIFNlcnZpY2VDbGFzcywgQ3JlYXRlTW9kZWwsIFVwZGF0ZU1vZGVsPihvcHRzPy5zZXJ2aWNlIGFzIFNlcnZpY2VDbGFzcyk7XG59XG4iXX0=
@@ -1,10 +1,9 @@
1
- import { Subject, throwError } from 'rxjs';
2
- import { CommonsInternalError, DataProviderInst } from '@mediusinc/mng-commons/core';
1
+ import { Subject } from 'rxjs';
2
+ import { DataProviderInst } from '@mediusinc/mng-commons/core';
3
3
  export class EditorDataProviderInst extends DataProviderInst {
4
- constructor(type, serviceType) {
5
- super(type, serviceType);
4
+ constructor(serviceType) {
5
+ super(serviceType);
6
6
  this._editorResetSubject = new Subject();
7
- this._fetch = id => throwError(() => new CommonsInternalError(`No fetch function provided for id ${id}.`));
8
7
  }
9
8
  get fetch() {
10
9
  return this._fetch;
@@ -18,6 +17,12 @@ export class EditorDataProviderInst extends DataProviderInst {
18
17
  get delete() {
19
18
  return this._delete;
20
19
  }
20
+ get mapFetchItemToCreateItem() {
21
+ return this._mapFetchItemToCreateItem;
22
+ }
23
+ get mapFetchItemToUpdateItem() {
24
+ return this._mapFetchItemToUpdateItem;
25
+ }
21
26
  get editorReset$() {
22
27
  return this._editorResetSubject.asObservable();
23
28
  }
@@ -37,7 +42,7 @@ export class EditorDataProviderInst extends DataProviderInst {
37
42
  /**
38
43
  * Sets the create function for the EditorDataProvider.
39
44
  *
40
- * @param {EditorDataProviderCreateFnType<Model, Service>} fn - The function used for creating new items.
45
+ * @param {EditorDataProviderCreateFnType<CreateModel, Model, Service>} fn - The function used for creating new items.
41
46
  * @returns {this} - Returns the instance of the class.
42
47
  *
43
48
  * @typeparam Model The type of data this DataProvider will handle.
@@ -74,8 +79,36 @@ export class EditorDataProviderInst extends DataProviderInst {
74
79
  this._delete = fn;
75
80
  return this;
76
81
  }
82
+ /**
83
+ * Sets the function to map data from fetch function to create model.
84
+ *
85
+ * @param {EditorDataProviderFetchMapToFnType<Model, CreateModel>} fn - The map function to be set.
86
+ *
87
+ * @returns {this} - Returns the instance of the current class.
88
+ *
89
+ * @typeparam Model The type of data from fetch function to map from.
90
+ * @typeparam CreateModel The type of data to map to.
91
+ */
92
+ withMapFetchItemToCreateItem(fn) {
93
+ this._mapFetchItemToCreateItem = fn;
94
+ return this;
95
+ }
96
+ /**
97
+ * Sets the function to map data from fetch function to update model.
98
+ *
99
+ * @param {EditorDataProviderFetchMapToFnType<Model, UpdateModel>} fn - The map function to be set.
100
+ *
101
+ * @returns {this} - Returns the instance of the current class.
102
+ *
103
+ * @typeparam Model The type of data from fetch function to map from.
104
+ * @typeparam UpdateModel The type of data to map to.
105
+ */
106
+ withMapFetchItemToUpdateItem(fn) {
107
+ this._mapFetchItemToUpdateItem = fn;
108
+ return this;
109
+ }
77
110
  resetEditor(event) {
78
111
  this._editorResetSubject.next(event ?? {});
79
112
  }
80
113
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmRhdGEtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9lZGl0b3IvZGF0YS1wcm92aWRlcnMvZWRpdG9yLmRhdGEtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLE9BQU8sRUFBRSxVQUFVLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFckQsT0FBTyxFQUFlLG9CQUFvQixFQUFFLGdCQUFnQixFQUErRCxNQUFNLDZCQUE2QixDQUFDO0FBaUUvSixNQUFNLE9BQU8sc0JBQ1QsU0FBUSxnQkFBMEQ7SUFVbEUsWUFBbUIsSUFBZ0IsRUFBRSxXQUF5QjtRQUMxRCxLQUFLLENBQUMsSUFBSSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBUlYsd0JBQW1CLEdBQUcsSUFBSSxPQUFPLEVBQTJCLENBQUM7UUFFdEUsV0FBTSxHQUFrRCxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLG9CQUFvQixDQUFDLHFDQUFxQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFPL0osQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ1osT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsU0FBUyxDQUFDLEVBQWlEO1FBQ3ZELElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILFVBQVUsQ0FBQyxFQUFtRDtRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxVQUFVLENBQUMsRUFBbUQ7UUFDMUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNILFVBQVUsQ0FBQyxFQUFtRDtRQUMxRCxJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztRQUNsQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQStCO1FBQ3ZDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9DLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdCwgdGhyb3dFcnJvcn0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7Q2xhc3NPcHRUeXBlLCBDb21tb25zSW50ZXJuYWxFcnJvciwgRGF0YVByb3ZpZGVySW5zdCwgSURhdGFQcm92aWRlciwgSWRUeXBlLCBJdGVtT3JPYnNlcnZhYmxlLCBTZXJ2aWNlQ2xhc3NPcHRUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuXG5pbXBvcnQge0VkaXRvclJlc2V0RXZlbnR9IGZyb20gJy4uL21vZGVscy9mb3JtLWVkaXRvci5ldmVudCc7XG5cbmV4cG9ydCB0eXBlIEVkaXRvckRhdGFQcm92aWRlckZldGNoRm5UeXBlPE1vZGVsID0gYW55LCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBJZCA9IElkVHlwZSwgUmV0dXJuID0gSXRlbU9yT2JzZXJ2YWJsZTxNb2RlbD4+ID0gKFxuICAgIGlkOiBJZCxcbiAgICBzZXJ2aWNlOiBTZXJ2aWNlLFxuICAgIGxvY2FsZTogc3RyaW5nIHwgdW5kZWZpbmVkXG4pID0+IFJldHVybjtcbmV4cG9ydCB0eXBlIEVkaXRvckRhdGFQcm92aWRlckNyZWF0ZUZuVHlwZTxNb2RlbCA9IGFueSwgU2VydmljZSA9IHVuZGVmaW5lZCwgSXRlbSA9IE1vZGVsIHwgdW5kZWZpbmVkLCBSZXR1cm4gPSBJdGVtT3JPYnNlcnZhYmxlPE1vZGVsPj4gPSAoaXRlbTogSXRlbSwgc2VydmljZTogU2VydmljZSkgPT4gUmV0dXJuO1xuZXhwb3J0IHR5cGUgRWRpdG9yRGF0YVByb3ZpZGVyVXBkYXRlRm5UeXBlPE1vZGVsID0gYW55LCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBJZCA9IElkVHlwZSwgSXRlbSA9IE1vZGVsIHwgdW5kZWZpbmVkLCBSZXR1cm4gPSBJdGVtT3JPYnNlcnZhYmxlPE1vZGVsPj4gPSAoXG4gICAgaWQ6IElkLFxuICAgIGl0ZW06IEl0ZW0sXG4gICAgc2VydmljZTogU2VydmljZVxuKSA9PiBSZXR1cm47XG5leHBvcnQgdHlwZSBFZGl0b3JEYXRhUHJvdmlkZXJEZWxldGVGblR5cGU8TW9kZWwgPSBhbnksIFNlcnZpY2UgPSB1bmRlZmluZWQsIElkID0gSWRUeXBlLCBJdGVtID0gTW9kZWwgfCB1bmRlZmluZWQsIFJldHVybiA9IEl0ZW1Pck9ic2VydmFibGU8TW9kZWwgfCBudWxsPj4gPSAoXG4gICAgaWQ6IElkLFxuICAgIGl0ZW06IEl0ZW0sXG4gICAgc2VydmljZTogU2VydmljZVxuKSA9PiBSZXR1cm47XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckRhdGFQcm92aWRlckZldGNoPE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgZmV0Y2g6IEVkaXRvckRhdGFQcm92aWRlckZldGNoRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPjtcblxuICAgIHdpdGhGZXRjaChmbjogRWRpdG9yRGF0YVByb3ZpZGVyRmV0Y2hGblR5cGU8TW9kZWwsIFNlcnZpY2U+KTogdGhpcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRWRpdG9yRGF0YVByb3ZpZGVyQ3JlYXRlPE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgY3JlYXRlPzogRWRpdG9yRGF0YVByb3ZpZGVyQ3JlYXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPjtcblxuICAgIHdpdGhDcmVhdGUoZm4/OiBFZGl0b3JEYXRhUHJvdmlkZXJDcmVhdGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+KTogdGhpcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRWRpdG9yRGF0YVByb3ZpZGVyVXBkYXRlPE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgdXBkYXRlPzogRWRpdG9yRGF0YVByb3ZpZGVyVXBkYXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPjtcblxuICAgIHdpdGhVcGRhdGUoZm4/OiBFZGl0b3JEYXRhUHJvdmlkZXJVcGRhdGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+KTogdGhpcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlPE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgZGVsZXRlPzogRWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPjtcblxuICAgIHdpdGhEZWxldGUoZm4/OiBFZGl0b3JEYXRhUHJvdmlkZXJEZWxldGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+KTogdGhpcztcbn1cblxuZXhwb3J0IHR5cGUgSUVkaXRvckRhdGFQcm92aWRlckZuc1R5cGU8TW9kZWwsIFNlcnZpY2U+ID0gSUVkaXRvckRhdGFQcm92aWRlckZldGNoPE1vZGVsLCBTZXJ2aWNlPiAmXG4gICAgSUVkaXRvckRhdGFQcm92aWRlckNyZWF0ZTxNb2RlbCwgU2VydmljZT4gJlxuICAgIElFZGl0b3JEYXRhUHJvdmlkZXJVcGRhdGU8TW9kZWwsIFNlcnZpY2U+ICZcbiAgICBJRWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlPE1vZGVsLCBTZXJ2aWNlPjtcblxuZXhwb3J0IGludGVyZmFjZSBJRWRpdG9yRGF0YVByb3ZpZGVyU3VwcG9ydDxNb2RlbD4ge1xuICAgIGdldCBlZGl0b3JSZXNldCQoKTogT2JzZXJ2YWJsZTxFZGl0b3JSZXNldEV2ZW50PE1vZGVsPj47XG5cbiAgICByZXNldEVkaXRvcihldmVudD86IEVkaXRvclJlc2V0RXZlbnQ8TW9kZWw+KTogdm9pZDtcbn1cblxuZXhwb3J0IHR5cGUgSUVkaXRvckRhdGFQcm92aWRlcjxNb2RlbCA9IGFueSwgU2VydmljZSA9IGFueSwgTW9kZWxDbGFzcyA9IENsYXNzT3B0VHlwZTxNb2RlbD4sIFNlcnZpY2VDbGFzcyA9IFNlcnZpY2VDbGFzc09wdFR5cGU8U2VydmljZT4+ID0gSURhdGFQcm92aWRlcjxcbiAgICBNb2RlbCxcbiAgICBTZXJ2aWNlLFxuICAgIE1vZGVsQ2xhc3MsXG4gICAgU2VydmljZUNsYXNzXG4+ICZcbiAgICBJRWRpdG9yRGF0YVByb3ZpZGVyRm5zVHlwZTxNb2RlbCwgU2VydmljZT4gJlxuICAgIElFZGl0b3JEYXRhUHJvdmlkZXJTdXBwb3J0PE1vZGVsPjtcblxuZXhwb3J0IGNsYXNzIEVkaXRvckRhdGFQcm92aWRlckluc3Q8TW9kZWwsIFNlcnZpY2UgPSBhbnksIE1vZGVsQ2xhc3MgPSBDbGFzc09wdFR5cGU8TW9kZWw+LCBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlQ2xhc3NPcHRUeXBlPFNlcnZpY2U+PlxuICAgIGV4dGVuZHMgRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgTW9kZWxDbGFzcywgU2VydmljZUNsYXNzPlxuICAgIGltcGxlbWVudHMgSUVkaXRvckRhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZSwgTW9kZWxDbGFzcywgU2VydmljZUNsYXNzPlxue1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfZWRpdG9yUmVzZXRTdWJqZWN0ID0gbmV3IFN1YmplY3Q8RWRpdG9yUmVzZXRFdmVudDxNb2RlbD4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgX2ZldGNoOiBFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCwgU2VydmljZT4gPSBpZCA9PiB0aHJvd0Vycm9yKCgpID0+IG5ldyBDb21tb25zSW50ZXJuYWxFcnJvcihgTm8gZmV0Y2ggZnVuY3Rpb24gcHJvdmlkZWQgZm9yIGlkICR7aWR9LmApKTtcbiAgICBwcm90ZWN0ZWQgX2NyZWF0ZT86IEVkaXRvckRhdGFQcm92aWRlckNyZWF0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT47XG4gICAgcHJvdGVjdGVkIF91cGRhdGU/OiBFZGl0b3JEYXRhUHJvdmlkZXJVcGRhdGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+O1xuICAgIHByb3RlY3RlZCBfZGVsZXRlPzogRWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPjtcblxuICAgIHB1YmxpYyBjb25zdHJ1Y3Rvcih0eXBlOiBNb2RlbENsYXNzLCBzZXJ2aWNlVHlwZTogU2VydmljZUNsYXNzKSB7XG4gICAgICAgIHN1cGVyKHR5cGUsIHNlcnZpY2VUeXBlKTtcbiAgICB9XG5cbiAgICBnZXQgZmV0Y2goKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mZXRjaDtcbiAgICB9XG5cbiAgICBnZXQgY3JlYXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3JlYXRlO1xuICAgIH1cblxuICAgIGdldCB1cGRhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl91cGRhdGU7XG4gICAgfVxuXG4gICAgZ2V0IGRlbGV0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RlbGV0ZTtcbiAgICB9XG5cbiAgICBnZXQgZWRpdG9yUmVzZXQkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yUmVzZXRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGZldGNoIGZ1bmN0aW9uIGZvciB0aGUgRWRpdG9yRGF0YVByb3ZpZGVyIGluc3RhbmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCwgU2VydmljZT59IGZuIC0gVGhlIGZldGNoIGZ1bmN0aW9uIHRvIGJlIHNldC5cbiAgICAgKiBAcmV0dXJucyB7dGhpc30gLSBUaGUgaW5zdGFuY2Ugb2YgdGhlIEVkaXRvckRhdGFQcm92aWRlciB3aXRoIHRoZSBmZXRjaCBmdW5jdGlvbiBzZXQuXG4gICAgICpcbiAgICAgKiBAdHlwZXBhcmFtIE1vZGVsIFRoZSB0eXBlIG9mIGRhdGEgdGhpcyBEYXRhUHJvdmlkZXIgd2lsbCBoYW5kbGUuXG4gICAgICogQHR5cGVwYXJhbSBTZXJ2aWNlIFRoZSB0eXBlIG9mIHNlcnZpY2UgdXNlZCBieSB0aGlzIERhdGFQcm92aWRlci5cbiAgICAgKi9cbiAgICB3aXRoRmV0Y2goZm46IEVkaXRvckRhdGFQcm92aWRlckZldGNoRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9mZXRjaCA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjcmVhdGUgZnVuY3Rpb24gZm9yIHRoZSBFZGl0b3JEYXRhUHJvdmlkZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0VkaXRvckRhdGFQcm92aWRlckNyZWF0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT59IGZuIC0gVGhlIGZ1bmN0aW9uIHVzZWQgZm9yIGNyZWF0aW5nIG5ldyBpdGVtcy5cbiAgICAgKiBAcmV0dXJucyB7dGhpc30gLSBSZXR1cm5zIHRoZSBpbnN0YW5jZSBvZiB0aGUgY2xhc3MuXG4gICAgICpcbiAgICAgKiBAdHlwZXBhcmFtIE1vZGVsIFRoZSB0eXBlIG9mIGRhdGEgdGhpcyBEYXRhUHJvdmlkZXIgd2lsbCBoYW5kbGUuXG4gICAgICogQHR5cGVwYXJhbSBTZXJ2aWNlIFRoZSB0eXBlIG9mIHNlcnZpY2UgdXNlZCBieSB0aGlzIERhdGFQcm92aWRlci5cbiAgICAgKi9cbiAgICB3aXRoQ3JlYXRlKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyQ3JlYXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9jcmVhdGUgPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgdXBkYXRlIGZ1bmN0aW9uIGZvciB0aGUgRWRpdG9yRGF0YVByb3ZpZGVyLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtFZGl0b3JEYXRhUHJvdmlkZXJVcGRhdGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+fSBmbiAtIFRoZSB1cGRhdGUgZnVuY3Rpb24gdG8gYmUgc2V0LlxuICAgICAqIEByZXR1cm5zIHt0aGlzfSAtIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBvYmplY3QgY2FsbGluZyB0aGlzIG1ldGhvZC5cbiAgICAgKlxuICAgICAqIEB0eXBlcGFyYW0gTW9kZWwgVGhlIHR5cGUgb2YgZGF0YSB0aGlzIERhdGFQcm92aWRlciB3aWxsIGhhbmRsZS5cbiAgICAgKiBAdHlwZXBhcmFtIFNlcnZpY2UgVGhlIHR5cGUgb2Ygc2VydmljZSB1c2VkIGJ5IHRoaXMgRGF0YVByb3ZpZGVyLlxuICAgICAqL1xuICAgIHdpdGhVcGRhdGUoZm4/OiBFZGl0b3JEYXRhUHJvdmlkZXJVcGRhdGVGblR5cGU8TW9kZWwsIFNlcnZpY2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZSA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBkZWxldGUgZnVuY3Rpb24gZm9yIHRoZSBlZGl0b3IgZGF0YSBwcm92aWRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPn0gZm4gLSBUaGUgZGVsZXRlIGZ1bmN0aW9uIHRvIGJlIHNldC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHt0aGlzfSAtIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBjdXJyZW50IGNsYXNzLlxuICAgICAqXG4gICAgICogQHR5cGVwYXJhbSBNb2RlbCBUaGUgdHlwZSBvZiBkYXRhIHRoaXMgRGF0YVByb3ZpZGVyIHdpbGwgaGFuZGxlLlxuICAgICAqIEB0eXBlcGFyYW0gU2VydmljZSBUaGUgdHlwZSBvZiBzZXJ2aWNlIHVzZWQgYnkgdGhpcyBEYXRhUHJvdmlkZXIuXG4gICAgICovXG4gICAgd2l0aERlbGV0ZShmbj86IEVkaXRvckRhdGFQcm92aWRlckRlbGV0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGVsZXRlID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHJlc2V0RWRpdG9yKGV2ZW50PzogRWRpdG9yUmVzZXRFdmVudDxNb2RlbD4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZWRpdG9yUmVzZXRTdWJqZWN0Lm5leHQoZXZlbnQgPz8ge30pO1xuICAgIH1cbn1cbiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmRhdGEtcHJvdmlkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi90YWJsZXZpZXcvYXBpL3NyYy9lZGl0b3IvZGF0YS1wcm92aWRlcnMvZWRpdG9yLmRhdGEtcHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFhLE9BQU8sRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUV6QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQTBFLE1BQU0sNkJBQTZCLENBQUM7QUFxRnRJLE1BQU0sT0FBTyxzQkFDVCxTQUFRLGdCQUE4QztJQVl0RCxZQUFtQixXQUF5QjtRQUN4QyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFWSix3QkFBbUIsR0FBRyxJQUFJLE9BQU8sRUFBMkIsQ0FBQztJQVdoRixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ0wsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE1BQU07UUFDTixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDeEIsQ0FBQztJQUVELElBQUksTUFBTTtRQUNOLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ04sT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUFJLHdCQUF3QjtRQUN4QixPQUFPLElBQUksQ0FBQyx5QkFBeUIsQ0FBQztJQUMxQyxDQUFDO0lBRUQsSUFBSSx3QkFBd0I7UUFDeEIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILFNBQVMsQ0FBQyxFQUFpRDtRQUN2RCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztRQUNqQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxVQUFVLENBQUMsRUFBZ0U7UUFDdkUsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7UUFDbEIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7Ozs7OztPQVFHO0lBQ0gsVUFBVSxDQUFDLEVBQWdFO1FBQ3ZFLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCxVQUFVLENBQW1CLEVBQXlEO1FBQ2xGLElBQUksQ0FBQyxPQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCw0QkFBNEIsQ0FBQyxFQUEyRDtRQUNwRixJQUFJLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSCw0QkFBNEIsQ0FBQyxFQUEyRDtRQUNwRixJQUFJLENBQUMseUJBQXlCLEdBQUcsRUFBRSxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBK0I7UUFDdkMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUM7SUFDL0MsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtEYXRhUHJvdmlkZXJJbnN0LCBJRGF0YVByb3ZpZGVyLCBJZFR5cGUsIEl0ZW1Pck9ic2VydmFibGUsIFNlcnZpY2VDbGFzc09wdFR5cGUsIFVuZGVmaW5lZH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcblxuaW1wb3J0IHtFZGl0b3JSZXNldEV2ZW50fSBmcm9tICcuLi9tb2RlbHMvZm9ybS1lZGl0b3IuZXZlbnQnO1xuXG5leHBvcnQgdHlwZSBFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCA9IGFueSwgU2VydmljZSA9IHVuZGVmaW5lZCwgSWQgPSBJZFR5cGUsIFJldHVybiA9IEl0ZW1Pck9ic2VydmFibGU8TW9kZWw+PiA9IChcbiAgICBpZDogSWQsXG4gICAgc2VydmljZTogU2VydmljZSxcbiAgICBsb2NhbGU6IHN0cmluZyB8IHVuZGVmaW5lZFxuKSA9PiBSZXR1cm47XG5leHBvcnQgdHlwZSBFZGl0b3JEYXRhUHJvdmlkZXJDcmVhdGVGblR5cGU8Q3JlYXRlTW9kZWwgPSBhbnksIE1vZGVsID0gYW55LCBTZXJ2aWNlID0gdW5kZWZpbmVkLCBJdGVtID0gVW5kZWZpbmVkPENyZWF0ZU1vZGVsPiwgUmV0dXJuID0gSXRlbU9yT2JzZXJ2YWJsZTxVbmRlZmluZWQ8TW9kZWw+Pj4gPSAoXG4gICAgaXRlbTogSXRlbSxcbiAgICBzZXJ2aWNlOiBTZXJ2aWNlXG4pID0+IFJldHVybjtcbmV4cG9ydCB0eXBlIEVkaXRvckRhdGFQcm92aWRlclVwZGF0ZUZuVHlwZTxcbiAgICBVcGRhdGVNb2RlbCA9IGFueSxcbiAgICBNb2RlbCA9IGFueSxcbiAgICBTZXJ2aWNlID0gdW5kZWZpbmVkLFxuICAgIElkID0gSWRUeXBlLFxuICAgIEl0ZW0gPSBVbmRlZmluZWQ8VXBkYXRlTW9kZWw+LFxuICAgIFJldHVybiA9IEl0ZW1Pck9ic2VydmFibGU8VW5kZWZpbmVkPE1vZGVsPj5cbj4gPSAoaWQ6IElkLCBpdGVtOiBJdGVtLCBzZXJ2aWNlOiBTZXJ2aWNlKSA9PiBSZXR1cm47XG5leHBvcnQgdHlwZSBFZGl0b3JEYXRhUHJvdmlkZXJEZWxldGVGblR5cGU8TW9kZWwgPSBhbnksIFNlcnZpY2UgPSB1bmRlZmluZWQsIEl0ZW0gPSB1bmRlZmluZWQsIElkID0gSWRUeXBlLCBSZXR1cm4gPSBJdGVtT3JPYnNlcnZhYmxlPFVuZGVmaW5lZDxNb2RlbD4+PiA9IChcbiAgICBpZDogSWQsXG4gICAgc2VydmljZTogU2VydmljZSxcbiAgICBpdGVtOiBJdGVtXG4pID0+IFJldHVybjtcbmV4cG9ydCB0eXBlIEVkaXRvckRhdGFQcm92aWRlckZldGNoTWFwVG9GblR5cGU8RnJvbU1vZGVsLCBUb01vZGVsPiA9IChpdGVtOiBGcm9tTW9kZWwpID0+IFRvTW9kZWw7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckRhdGFQcm92aWRlckZldGNoPE1vZGVsLCBTZXJ2aWNlPiB7XG4gICAgZmV0Y2g/OiBFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCwgU2VydmljZT47XG5cbiAgICB3aXRoRmV0Y2goZm46IEVkaXRvckRhdGFQcm92aWRlckZldGNoRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckRhdGFQcm92aWRlckNyZWF0ZTxDcmVhdGVNb2RlbCwgTW9kZWwsIFNlcnZpY2U+IHtcbiAgICBjcmVhdGU/OiBFZGl0b3JEYXRhUHJvdmlkZXJDcmVhdGVGblR5cGU8Q3JlYXRlTW9kZWwsIE1vZGVsLCBTZXJ2aWNlPjtcblxuICAgIHdpdGhDcmVhdGUoZm4/OiBFZGl0b3JEYXRhUHJvdmlkZXJDcmVhdGVGblR5cGU8Q3JlYXRlTW9kZWwsIE1vZGVsLCBTZXJ2aWNlPik6IHRoaXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckRhdGFQcm92aWRlclVwZGF0ZTxVcGRhdGVNb2RlbCwgTW9kZWwsIFNlcnZpY2U+IHtcbiAgICB1cGRhdGU/OiBFZGl0b3JEYXRhUHJvdmlkZXJVcGRhdGVGblR5cGU8VXBkYXRlTW9kZWwsIE1vZGVsLCBTZXJ2aWNlPjtcblxuICAgIHdpdGhVcGRhdGUoZm4/OiBFZGl0b3JEYXRhUHJvdmlkZXJVcGRhdGVGblR5cGU8VXBkYXRlTW9kZWwsIE1vZGVsLCBTZXJ2aWNlPik6IHRoaXM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVkaXRvckRhdGFQcm92aWRlckRlbGV0ZTxNb2RlbCwgU2VydmljZT4ge1xuICAgIGRlbGV0ZT86IEVkaXRvckRhdGFQcm92aWRlckRlbGV0ZUZuVHlwZTxNb2RlbCwgU2VydmljZSwgYW55PjtcblxuICAgIHdpdGhEZWxldGU8SXRlbSA9IHVuZGVmaW5lZD4oZm4/OiBFZGl0b3JEYXRhUHJvdmlkZXJEZWxldGVGblR5cGU8TW9kZWwsIFNlcnZpY2UsIEl0ZW0+KTogdGhpcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRWRpdG9yRGF0YVByb3ZpZGVyRmV0Y2hNYXBUb0NyZWF0ZTxNb2RlbCwgQ3JlYXRlTW9kZWw+IHtcbiAgICBtYXBGZXRjaEl0ZW1Ub0NyZWF0ZUl0ZW0/OiBFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaE1hcFRvRm5UeXBlPE1vZGVsLCBDcmVhdGVNb2RlbD47XG5cbiAgICB3aXRoTWFwRmV0Y2hJdGVtVG9DcmVhdGVJdGVtKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyRmV0Y2hNYXBUb0ZuVHlwZTxNb2RlbCwgQ3JlYXRlTW9kZWw+KTogdGhpcztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJRWRpdG9yRGF0YVByb3ZpZGVyRmV0Y2hNYXBUb1VwZGF0ZTxNb2RlbCwgVXBkYXRlTW9kZWw+IHtcbiAgICBtYXBGZXRjaEl0ZW1Ub1VwZGF0ZUl0ZW0/OiBFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaE1hcFRvRm5UeXBlPE1vZGVsLCBVcGRhdGVNb2RlbD47XG5cbiAgICB3aXRoTWFwRmV0Y2hJdGVtVG9VcGRhdGVJdGVtKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyRmV0Y2hNYXBUb0ZuVHlwZTxNb2RlbCwgVXBkYXRlTW9kZWw+KTogdGhpcztcbn1cblxuZXhwb3J0IHR5cGUgSUVkaXRvckRhdGFQcm92aWRlckZuc1R5cGU8TW9kZWwsIFNlcnZpY2UsIENyZWF0ZU1vZGVsID0gTW9kZWwsIFVwZGF0ZU1vZGVsID0gTW9kZWwsIERlbGV0ZU1vZGVsID0gTW9kZWw+ID0gSUVkaXRvckRhdGFQcm92aWRlckZldGNoPE1vZGVsLCBTZXJ2aWNlPiAmXG4gICAgSUVkaXRvckRhdGFQcm92aWRlckNyZWF0ZTxDcmVhdGVNb2RlbCwgTW9kZWwsIFNlcnZpY2U+ICZcbiAgICBJRWRpdG9yRGF0YVByb3ZpZGVyVXBkYXRlPFVwZGF0ZU1vZGVsLCBNb2RlbCwgU2VydmljZT4gJlxuICAgIElFZGl0b3JEYXRhUHJvdmlkZXJEZWxldGU8RGVsZXRlTW9kZWwsIFNlcnZpY2U+ICZcbiAgICBJRWRpdG9yRGF0YVByb3ZpZGVyRmV0Y2hNYXBUb0NyZWF0ZTxNb2RlbCwgQ3JlYXRlTW9kZWw+ICZcbiAgICBJRWRpdG9yRGF0YVByb3ZpZGVyRmV0Y2hNYXBUb1VwZGF0ZTxNb2RlbCwgVXBkYXRlTW9kZWw+O1xuXG5leHBvcnQgaW50ZXJmYWNlIElFZGl0b3JEYXRhUHJvdmlkZXJTdXBwb3J0PE1vZGVsPiB7XG4gICAgZ2V0IGVkaXRvclJlc2V0JCgpOiBPYnNlcnZhYmxlPEVkaXRvclJlc2V0RXZlbnQ8TW9kZWw+PjtcblxuICAgIHJlc2V0RWRpdG9yKGV2ZW50PzogRWRpdG9yUmVzZXRFdmVudDxNb2RlbD4pOiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBJRWRpdG9yRGF0YVByb3ZpZGVyPE1vZGVsID0gYW55LCBTZXJ2aWNlID0gYW55LCBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlQ2xhc3NPcHRUeXBlPFNlcnZpY2U+LCBDcmVhdGVNb2RlbCA9IE1vZGVsLCBVcGRhdGVNb2RlbCA9IE1vZGVsPiA9IElEYXRhUHJvdmlkZXI8XG4gICAgTW9kZWwsXG4gICAgU2VydmljZSxcbiAgICBTZXJ2aWNlQ2xhc3Ncbj4gJlxuICAgIElFZGl0b3JEYXRhUHJvdmlkZXJGbnNUeXBlPE1vZGVsLCBTZXJ2aWNlLCBDcmVhdGVNb2RlbCwgVXBkYXRlTW9kZWw+ICZcbiAgICBJRWRpdG9yRGF0YVByb3ZpZGVyU3VwcG9ydDxNb2RlbD47XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JEYXRhUHJvdmlkZXJJbnN0PE1vZGVsLCBTZXJ2aWNlID0gYW55LCBTZXJ2aWNlQ2xhc3MgPSBTZXJ2aWNlQ2xhc3NPcHRUeXBlPFNlcnZpY2U+LCBDcmVhdGVNb2RlbCA9IE1vZGVsLCBVcGRhdGVNb2RlbCA9IE1vZGVsPlxuICAgIGV4dGVuZHMgRGF0YVByb3ZpZGVySW5zdDxNb2RlbCwgU2VydmljZSwgU2VydmljZUNsYXNzPlxuICAgIGltcGxlbWVudHMgSUVkaXRvckRhdGFQcm92aWRlcjxNb2RlbCwgU2VydmljZSwgU2VydmljZUNsYXNzLCBDcmVhdGVNb2RlbCwgVXBkYXRlTW9kZWw+XG57XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9lZGl0b3JSZXNldFN1YmplY3QgPSBuZXcgU3ViamVjdDxFZGl0b3JSZXNldEV2ZW50PE1vZGVsPj4oKTtcblxuICAgIHByb3RlY3RlZCBfZmV0Y2g/OiBFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCwgU2VydmljZT47XG4gICAgcHJvdGVjdGVkIF9jcmVhdGU/OiBFZGl0b3JEYXRhUHJvdmlkZXJDcmVhdGVGblR5cGU8Q3JlYXRlTW9kZWwsIE1vZGVsLCBTZXJ2aWNlPjtcbiAgICBwcm90ZWN0ZWQgX3VwZGF0ZT86IEVkaXRvckRhdGFQcm92aWRlclVwZGF0ZUZuVHlwZTxVcGRhdGVNb2RlbCwgTW9kZWwsIFNlcnZpY2U+O1xuICAgIHByb3RlY3RlZCBfZGVsZXRlPzogRWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlLCBhbnk+O1xuICAgIHByb3RlY3RlZCBfbWFwRmV0Y2hJdGVtVG9DcmVhdGVJdGVtPzogRWRpdG9yRGF0YVByb3ZpZGVyRmV0Y2hNYXBUb0ZuVHlwZTxNb2RlbCwgQ3JlYXRlTW9kZWw+O1xuICAgIHByb3RlY3RlZCBfbWFwRmV0Y2hJdGVtVG9VcGRhdGVJdGVtPzogRWRpdG9yRGF0YVByb3ZpZGVyRmV0Y2hNYXBUb0ZuVHlwZTxNb2RlbCwgVXBkYXRlTW9kZWw+O1xuXG4gICAgcHVibGljIGNvbnN0cnVjdG9yKHNlcnZpY2VUeXBlOiBTZXJ2aWNlQ2xhc3MpIHtcbiAgICAgICAgc3VwZXIoc2VydmljZVR5cGUpO1xuICAgIH1cblxuICAgIGdldCBmZXRjaCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZldGNoO1xuICAgIH1cblxuICAgIGdldCBjcmVhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jcmVhdGU7XG4gICAgfVxuXG4gICAgZ2V0IHVwZGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZTtcbiAgICB9XG5cbiAgICBnZXQgZGVsZXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGVsZXRlO1xuICAgIH1cblxuICAgIGdldCBtYXBGZXRjaEl0ZW1Ub0NyZWF0ZUl0ZW0oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXBGZXRjaEl0ZW1Ub0NyZWF0ZUl0ZW07XG4gICAgfVxuXG4gICAgZ2V0IG1hcEZldGNoSXRlbVRvVXBkYXRlSXRlbSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21hcEZldGNoSXRlbVRvVXBkYXRlSXRlbTtcbiAgICB9XG5cbiAgICBnZXQgZWRpdG9yUmVzZXQkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZWRpdG9yUmVzZXRTdWJqZWN0LmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGZldGNoIGZ1bmN0aW9uIGZvciB0aGUgRWRpdG9yRGF0YVByb3ZpZGVyIGluc3RhbmNlLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaEZuVHlwZTxNb2RlbCwgU2VydmljZT59IGZuIC0gVGhlIGZldGNoIGZ1bmN0aW9uIHRvIGJlIHNldC5cbiAgICAgKiBAcmV0dXJucyB7dGhpc30gLSBUaGUgaW5zdGFuY2Ugb2YgdGhlIEVkaXRvckRhdGFQcm92aWRlciB3aXRoIHRoZSBmZXRjaCBmdW5jdGlvbiBzZXQuXG4gICAgICpcbiAgICAgKiBAdHlwZXBhcmFtIE1vZGVsIFRoZSB0eXBlIG9mIGRhdGEgdGhpcyBEYXRhUHJvdmlkZXIgd2lsbCBoYW5kbGUuXG4gICAgICogQHR5cGVwYXJhbSBTZXJ2aWNlIFRoZSB0eXBlIG9mIHNlcnZpY2UgdXNlZCBieSB0aGlzIERhdGFQcm92aWRlci5cbiAgICAgKi9cbiAgICB3aXRoRmV0Y2goZm46IEVkaXRvckRhdGFQcm92aWRlckZldGNoRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9mZXRjaCA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBjcmVhdGUgZnVuY3Rpb24gZm9yIHRoZSBFZGl0b3JEYXRhUHJvdmlkZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0VkaXRvckRhdGFQcm92aWRlckNyZWF0ZUZuVHlwZTxDcmVhdGVNb2RlbCwgTW9kZWwsIFNlcnZpY2U+fSBmbiAtIFRoZSBmdW5jdGlvbiB1c2VkIGZvciBjcmVhdGluZyBuZXcgaXRlbXMuXG4gICAgICogQHJldHVybnMge3RoaXN9IC0gUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIGNsYXNzLlxuICAgICAqXG4gICAgICogQHR5cGVwYXJhbSBNb2RlbCBUaGUgdHlwZSBvZiBkYXRhIHRoaXMgRGF0YVByb3ZpZGVyIHdpbGwgaGFuZGxlLlxuICAgICAqIEB0eXBlcGFyYW0gU2VydmljZSBUaGUgdHlwZSBvZiBzZXJ2aWNlIHVzZWQgYnkgdGhpcyBEYXRhUHJvdmlkZXIuXG4gICAgICovXG4gICAgd2l0aENyZWF0ZShmbj86IEVkaXRvckRhdGFQcm92aWRlckNyZWF0ZUZuVHlwZTxDcmVhdGVNb2RlbCwgTW9kZWwsIFNlcnZpY2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NyZWF0ZSA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSB1cGRhdGUgZnVuY3Rpb24gZm9yIHRoZSBFZGl0b3JEYXRhUHJvdmlkZXIuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0VkaXRvckRhdGFQcm92aWRlclVwZGF0ZUZuVHlwZTxNb2RlbCwgU2VydmljZT59IGZuIC0gVGhlIHVwZGF0ZSBmdW5jdGlvbiB0byBiZSBzZXQuXG4gICAgICogQHJldHVybnMge3RoaXN9IC0gUmV0dXJucyB0aGUgaW5zdGFuY2Ugb2YgdGhlIG9iamVjdCBjYWxsaW5nIHRoaXMgbWV0aG9kLlxuICAgICAqXG4gICAgICogQHR5cGVwYXJhbSBNb2RlbCBUaGUgdHlwZSBvZiBkYXRhIHRoaXMgRGF0YVByb3ZpZGVyIHdpbGwgaGFuZGxlLlxuICAgICAqIEB0eXBlcGFyYW0gU2VydmljZSBUaGUgdHlwZSBvZiBzZXJ2aWNlIHVzZWQgYnkgdGhpcyBEYXRhUHJvdmlkZXIuXG4gICAgICovXG4gICAgd2l0aFVwZGF0ZShmbj86IEVkaXRvckRhdGFQcm92aWRlclVwZGF0ZUZuVHlwZTxVcGRhdGVNb2RlbCwgTW9kZWwsIFNlcnZpY2U+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3VwZGF0ZSA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBkZWxldGUgZnVuY3Rpb24gZm9yIHRoZSBlZGl0b3IgZGF0YSBwcm92aWRlci5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7RWRpdG9yRGF0YVByb3ZpZGVyRGVsZXRlRm5UeXBlPE1vZGVsLCBTZXJ2aWNlPn0gZm4gLSBUaGUgZGVsZXRlIGZ1bmN0aW9uIHRvIGJlIHNldC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHt0aGlzfSAtIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBjdXJyZW50IGNsYXNzLlxuICAgICAqXG4gICAgICogQHR5cGVwYXJhbSBNb2RlbCBUaGUgdHlwZSBvZiBkYXRhIHRoaXMgRGF0YVByb3ZpZGVyIHdpbGwgaGFuZGxlLlxuICAgICAqIEB0eXBlcGFyYW0gU2VydmljZSBUaGUgdHlwZSBvZiBzZXJ2aWNlIHVzZWQgYnkgdGhpcyBEYXRhUHJvdmlkZXIuXG4gICAgICovXG4gICAgd2l0aERlbGV0ZTxJdGVtID0gdW5kZWZpbmVkPihmbj86IEVkaXRvckRhdGFQcm92aWRlckRlbGV0ZUZuVHlwZTxNb2RlbCwgU2VydmljZSwgSXRlbT4pOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGVsZXRlID0gZm47XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGZ1bmN0aW9uIHRvIG1hcCBkYXRhIGZyb20gZmV0Y2ggZnVuY3Rpb24gdG8gY3JlYXRlIG1vZGVsLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtFZGl0b3JEYXRhUHJvdmlkZXJGZXRjaE1hcFRvRm5UeXBlPE1vZGVsLCBDcmVhdGVNb2RlbD59IGZuIC0gVGhlIG1hcCBmdW5jdGlvbiB0byBiZSBzZXQuXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7dGhpc30gLSBSZXR1cm5zIHRoZSBpbnN0YW5jZSBvZiB0aGUgY3VycmVudCBjbGFzcy5cbiAgICAgKlxuICAgICAqIEB0eXBlcGFyYW0gTW9kZWwgVGhlIHR5cGUgb2YgZGF0YSBmcm9tIGZldGNoIGZ1bmN0aW9uIHRvIG1hcCBmcm9tLlxuICAgICAqIEB0eXBlcGFyYW0gQ3JlYXRlTW9kZWwgVGhlIHR5cGUgb2YgZGF0YSB0byBtYXAgdG8uXG4gICAgICovXG4gICAgd2l0aE1hcEZldGNoSXRlbVRvQ3JlYXRlSXRlbShmbj86IEVkaXRvckRhdGFQcm92aWRlckZldGNoTWFwVG9GblR5cGU8TW9kZWwsIENyZWF0ZU1vZGVsPik6IHRoaXMge1xuICAgICAgICB0aGlzLl9tYXBGZXRjaEl0ZW1Ub0NyZWF0ZUl0ZW0gPSBmbjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgZnVuY3Rpb24gdG8gbWFwIGRhdGEgZnJvbSBmZXRjaCBmdW5jdGlvbiB0byB1cGRhdGUgbW9kZWwuXG4gICAgICpcbiAgICAgKiBAcGFyYW0ge0VkaXRvckRhdGFQcm92aWRlckZldGNoTWFwVG9GblR5cGU8TW9kZWwsIFVwZGF0ZU1vZGVsPn0gZm4gLSBUaGUgbWFwIGZ1bmN0aW9uIHRvIGJlIHNldC5cbiAgICAgKlxuICAgICAqIEByZXR1cm5zIHt0aGlzfSAtIFJldHVybnMgdGhlIGluc3RhbmNlIG9mIHRoZSBjdXJyZW50IGNsYXNzLlxuICAgICAqXG4gICAgICogQHR5cGVwYXJhbSBNb2RlbCBUaGUgdHlwZSBvZiBkYXRhIGZyb20gZmV0Y2ggZnVuY3Rpb24gdG8gbWFwIGZyb20uXG4gICAgICogQHR5cGVwYXJhbSBVcGRhdGVNb2RlbCBUaGUgdHlwZSBvZiBkYXRhIHRvIG1hcCB0by5cbiAgICAgKi9cbiAgICB3aXRoTWFwRmV0Y2hJdGVtVG9VcGRhdGVJdGVtKGZuPzogRWRpdG9yRGF0YVByb3ZpZGVyRmV0Y2hNYXBUb0ZuVHlwZTxNb2RlbCwgVXBkYXRlTW9kZWw+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX21hcEZldGNoSXRlbVRvVXBkYXRlSXRlbSA9IGZuO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICByZXNldEVkaXRvcihldmVudD86IEVkaXRvclJlc2V0RXZlbnQ8TW9kZWw+KTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2VkaXRvclJlc2V0U3ViamVjdC5uZXh0KGV2ZW50ID8/IHt9KTtcbiAgICB9XG59XG4iXX0=
@@ -1,81 +1,15 @@
1
- import { ModelDescriptor, TypeDescriptor, model } from '@mediusinc/mng-commons/model';
2
- import { getEditorClassAttributeDef } from '../helpers/class-attribute-converter';
3
- import { upsertEditorFieldFromAttributeDef } from '../helpers/editor-descriptor-helpers';
4
- import { TableviewEditorTypeEnum } from '../models/editor.model';
1
+ import { ModelDescriptor, model } from '@mediusinc/mng-commons/model';
5
2
  import { EditorDescriptorInst } from './editor.descriptor';
6
- export class EditorDescriptor extends EditorDescriptorInst {
7
- constructor() {
8
- super(ModelDescriptor.create());
9
- }
10
- static create(idProperty, titleProperty, i18nBaseKey, tableviewEditorType = TableviewEditorTypeEnum.None) {
11
- return editorDescriptor({ id: idProperty, title: titleProperty, i18nBase: i18nBaseKey, tableviewEditorType: tableviewEditorType });
12
- }
13
- static fromClass(type, idProperty, titleProperty, i18nBaseKey, tableviewEditorType = TableviewEditorTypeEnum.None) {
14
- return editorDescriptorFromClass(type, {
15
- id: idProperty,
16
- title: titleProperty,
17
- i18nBase: i18nBaseKey,
18
- tableviewEditorType: tableviewEditorType
19
- });
20
- }
21
- static fromModel(model, tableviewEditorType = TableviewEditorTypeEnum.None) {
22
- return editorDescriptor(model, { tableviewEditorType: tableviewEditorType });
23
- }
24
- /**
25
- * Creates editor descriptor automatically based on openapi model's attributes definition which is automatically extracted. All fields will be included.
26
- * @param type Model's class.
27
- * @param idProperty Id property representing model (optional).
28
- * @param titleProperty Title property representing model (optional). If not provided, it will be automatically chosen.
29
- * @param tableEditorType Type of editor in tableview (add, edit, view or none).
30
- */
31
- static fromClassWithAutoAttrsDef(type, idProperty, titleProperty, tableEditorType = TableviewEditorTypeEnum.None) {
32
- return EditorDescriptor.fromClassWithCustomAttrsDef(type, getEditorClassAttributeDef(type), idProperty, titleProperty, tableEditorType);
33
- }
34
- /**
35
- * Creates editor descriptor automatically based on openapi model's attributes definition provided in parameters. Only fields for provided attributes will be included.
36
- * @param type Model's class.
37
- * @param attributes List of attribute definitions from which fields should be created.
38
- * @param idProperty Id property representing model (optional).
39
- * @param titleProperty Title property representing model (optional). If not provided, it will be automatically chosen.
40
- * @param tableviewEditorType Type of editor in tableview (add, edit, view or none).
41
- */
42
- static fromClassWithCustomAttrsDef(type, attributes, idProperty, titleProperty, tableviewEditorType = TableviewEditorTypeEnum.None) {
43
- return editorDescriptorFromClassAttrsDef(type, attributes, {
44
- id: idProperty,
45
- title: titleProperty,
46
- tableviewEditorType: tableviewEditorType
47
- });
48
- }
49
- }
50
- export function editorDescriptor(typeOrModelOrClassOrOpts, opts) {
51
- if (typeOrModelOrClassOrOpts == null) {
3
+ export function editorDescriptor(modelOrOpts, opts) {
4
+ if (modelOrOpts == null) {
52
5
  return new EditorDescriptorInst(model(), opts?.tableviewEditorType);
53
6
  }
54
- else if (typeOrModelOrClassOrOpts instanceof TypeDescriptor) {
55
- return new EditorDescriptorInst(model(opts ?? {}), opts?.tableviewEditorType);
56
- }
57
- else if (typeOrModelOrClassOrOpts instanceof ModelDescriptor) {
58
- return new EditorDescriptorInst(typeOrModelOrClassOrOpts, opts?.tableviewEditorType);
7
+ else if (modelOrOpts instanceof ModelDescriptor) {
8
+ return new EditorDescriptorInst(modelOrOpts, opts?.tableviewEditorType);
59
9
  }
60
10
  else {
61
11
  // this could have autoGenerated if model descriptor is class
62
- return new EditorDescriptorInst(model(typeOrModelOrClassOrOpts), typeOrModelOrClassOrOpts?.tableviewEditorType);
12
+ return new EditorDescriptorInst(model(modelOrOpts), modelOrOpts?.tableviewEditorType);
63
13
  }
64
14
  }
65
- export function editorDescriptorFromClass(type, opts) {
66
- return new EditorDescriptorInst(model(type, opts), opts?.tableviewEditorType);
67
- }
68
- /**
69
- * Generates descriptor based on type attribute definition
70
- * @param type class type
71
- * @param attributes
72
- * @param opts
73
- */
74
- export function editorDescriptorFromClassAttrsDef(type, attributes, opts) {
75
- const descriptor = new EditorDescriptorInst(model(type, opts), opts?.tableviewEditorType);
76
- (attributes ?? getEditorClassAttributeDef(type))
77
- .filter(attr => !attr.type.includes('Set') && !attr.type.includes('Array'))
78
- .forEach(attr => upsertEditorFieldFromAttributeDef(descriptor, attr));
79
- return descriptor;
80
- }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWRlc2NyaXB0b3IuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9hcGkvc3JjL2VkaXRvci9kZXNjcmlwdG9ycy9lZGl0b3ItZGVzY3JpcHRvci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBQyxlQUFlLEVBQTZCLGNBQWMsRUFBRSxLQUFLLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUUvRyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUNoRixPQUFPLEVBQUMsaUNBQWlDLEVBQUMsTUFBTSxzQ0FBc0MsQ0FBQztBQUV2RixPQUFPLEVBQUMsdUJBQXVCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUV6RCxNQUFNLE9BQU8sZ0JBQWlCLFNBQVEsb0JBQXlCO0lBQzNEO1FBQ0ksS0FBSyxDQUFDLGVBQWUsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUNoQixVQUE4QixFQUM5QixhQUFpQyxFQUNqQyxXQUF5QyxFQUN6QyxtQkFBbUIsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJO1FBRWxELE9BQU8sZ0JBQWdCLENBQWlDLEVBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsbUJBQW1CLEVBQUMsQ0FBQyxDQUFDO0lBQ3JLLENBQUM7SUFFTSxNQUFNLENBQUMsU0FBUyxDQUNuQixJQUE0QixFQUM1QixVQUE4QixFQUM5QixhQUFpQyxFQUNqQyxXQUF5QyxFQUN6QyxtQkFBbUIsR0FBRyx1QkFBdUIsQ0FBQyxJQUFJO1FBRWxELE9BQU8seUJBQXlCLENBQWlDLElBQUksRUFBRTtZQUNuRSxFQUFF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U0FDMUUsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsaUNBQWlDLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDMUUsT0FBTyxVQUFVLENBQUM7QUFDdEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2xhc3NUeXBlfSBmcm9tICdAbWVkaXVzaW5jL21uZy1jb21tb25zL2NvcmUnO1xuaW1wb3J0IHtNb2RlbERlc2NyaXB0b3IsIE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHMsIFR5cGVEZXNjcmlwdG9yLCBtb2RlbH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5cbmltcG9ydCB7Z2V0RWRpdG9yQ2xhc3NBdHRyaWJ1dGVEZWZ9IGZyb20gJy4uL2hlbHBlcnMvY2xhc3MtYXR0cmlidXRlLWNvbnZlcnRlcic7XG5pbXBvcnQge3Vwc2VydEVkaXRvckZpZWxkRnJvbUF0dHJpYnV0ZURlZn0gZnJvbSAnLi4vaGVscGVycy9lZGl0b3ItZGVzY3JpcHRvci1oZWxwZXJzJztcbmltcG9ydCB7RWRpdG9yQ2xhc3NBdHRyaWJ1dGVEZWZ9IGZyb20gJy4uL21vZGVscy9jbGFzcy10YWJsZXZpZXctYXR0cmlidXRlLm1vZGVsJztcbmltcG9ydCB7VGFibGV2aWV3RWRpdG9yVHlwZUVudW19IGZyb20gJy4uL21vZGVscy9lZGl0b3IubW9kZWwnO1xuaW1wb3J0IHtFZGl0b3JEZXNjcmlwdG9ySW5zdH0gZnJvbSAnLi9lZGl0b3IuZGVzY3JpcHRvcic7XG5cbmV4cG9ydCBjbGFzcyBFZGl0b3JEZXNjcmlwdG9yIGV4dGVuZHMgRWRpdG9yRGVzY3JpcHRvckluc3Q8YW55PiB7XG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcihNb2RlbERlc2NyaXB0b3IuY3JlYXRlKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgY3JlYXRlPEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbCA9IHVuZGVmaW5lZD4oXG4gICAgICAgIGlkUHJvcGVydHk/OiBrZXlvZiBFZGl0b3JNb2RlbCxcbiAgICAgICAgdGl0bGVQcm9wZXJ0eT86IGtleW9mIEVkaXRvck1vZGVsLFxuICAgICAgICBpMThuQmFzZUtleT86IHN0cmluZyB8IENsYXNzVHlwZTx1bmtub3duPixcbiAgICAgICAgdGFibGV2aWV3RWRpdG9yVHlwZSA9IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLk5vbmVcbiAgICApOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxFZGl0b3JNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIGVkaXRvckRlc2NyaXB0b3I8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPih7aWQ6IGlkUHJvcGVydHksIHRpdGxlOiB0aXRsZVByb3BlcnR5LCBpMThuQmFzZTogaTE4bkJhc2VLZXksIHRhYmxldmlld0VkaXRvclR5cGU6IHRhYmxldmlld0VkaXRvclR5cGV9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGZyb21DbGFzczxFZGl0b3JNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWwgPSB1bmRlZmluZWQ+KFxuICAgICAgICB0eXBlOiBDbGFzc1R5cGU8RWRpdG9yTW9kZWw+LFxuICAgICAgICBpZFByb3BlcnR5Pzoga2V5b2YgRWRpdG9yTW9kZWwsXG4gICAgICAgIHRpdGxlUHJvcGVydHk/OiBrZXlvZiBFZGl0b3JNb2RlbCxcbiAgICAgICAgaTE4bkJhc2VLZXk/OiBDbGFzc1R5cGU8dW5rbm93bj4gfCBzdHJpbmcsXG4gICAgICAgIHRhYmxldmlld0VkaXRvclR5cGUgPSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5Ob25lXG4gICAgKTogRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPiB7XG4gICAgICAgIHJldHVybiBlZGl0b3JEZXNjcmlwdG9yRnJvbUNsYXNzPEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbD4odHlwZSwge1xuICAgICAgICAgICAgaWQ6IGlkUHJvcGVydHksXG4gICAgICAgICAgICB0aXRsZTogdGl0bGVQcm9wZXJ0eSxcbiAgICAgICAgICAgIGkxOG5CYXNlOiBpMThuQmFzZUtleSxcbiAgICAgICAgICAgIHRhYmxldmlld0VkaXRvclR5cGU6IHRhYmxldmlld0VkaXRvclR5cGVcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBmcm9tTW9kZWw8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsID0gdW5kZWZpbmVkPihcbiAgICAgICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxFZGl0b3JNb2RlbD4sXG4gICAgICAgIHRhYmxldmlld0VkaXRvclR5cGUgPSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5Ob25lXG4gICAgKTogRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPiB7XG4gICAgICAgIHJldHVybiBlZGl0b3JEZXNjcmlwdG9yPEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbD4obW9kZWwsIHt0YWJsZXZpZXdFZGl0b3JUeXBlOiB0YWJsZXZpZXdFZGl0b3JUeXBlfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBlZGl0b3IgZGVzY3JpcHRvciBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIG9wZW5hcGkgbW9kZWwncyBhdHRyaWJ1dGVzIGRlZmluaXRpb24gd2hpY2ggaXMgYXV0b21hdGljYWxseSBleHRyYWN0ZWQuIEFsbCBmaWVsZHMgd2lsbCBiZSBpbmNsdWRlZC5cbiAgICAgKiBAcGFyYW0gdHlwZSBNb2RlbCdzIGNsYXNzLlxuICAgICAqIEBwYXJhbSBpZFByb3BlcnR5IElkIHByb3BlcnR5IHJlcHJlc2VudGluZyBtb2RlbCAob3B0aW9uYWwpLlxuICAgICAqIEBwYXJhbSB0aXRsZVByb3BlcnR5IFRpdGxlIHByb3BlcnR5IHJlcHJlc2VudGluZyBtb2RlbCAob3B0aW9uYWwpLiBJZiBub3QgcHJvdmlkZWQsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBjaG9zZW4uXG4gICAgICogQHBhcmFtIHRhYmxlRWRpdG9yVHlwZSBUeXBlIG9mIGVkaXRvciBpbiB0YWJsZXZpZXcgKGFkZCwgZWRpdCwgdmlldyBvciBub25lKS5cbiAgICAgKi9cbiAgICBwdWJsaWMgc3RhdGljIGZyb21DbGFzc1dpdGhBdXRvQXR0cnNEZWY8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsID0gdW5kZWZpbmVkPihcbiAgICAgICAgdHlwZTogQ2xhc3NUeXBlPEVkaXRvck1vZGVsPixcbiAgICAgICAgaWRQcm9wZXJ0eT86IGtleW9mIEVkaXRvck1vZGVsLFxuICAgICAgICB0aXRsZVByb3BlcnR5Pzoga2V5b2YgRWRpdG9yTW9kZWwsXG4gICAgICAgIHRhYmxlRWRpdG9yVHlwZSA9IFRhYmxldmlld0VkaXRvclR5cGVFbnVtLk5vbmVcbiAgICApOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxFZGl0b3JNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWw+IHtcbiAgICAgICAgcmV0dXJuIEVkaXRvckRlc2NyaXB0b3IuZnJvbUNsYXNzV2l0aEN1c3RvbUF0dHJzRGVmPEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbD4odHlwZSwgZ2V0RWRpdG9yQ2xhc3NBdHRyaWJ1dGVEZWYodHlwZSksIGlkUHJvcGVydHksIHRpdGxlUHJvcGVydHksIHRhYmxlRWRpdG9yVHlwZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBlZGl0b3IgZGVzY3JpcHRvciBhdXRvbWF0aWNhbGx5IGJhc2VkIG9uIG9wZW5hcGkgbW9kZWwncyBhdHRyaWJ1dGVzIGRlZmluaXRpb24gcHJvdmlkZWQgaW4gcGFyYW1ldGVycy4gT25seSBmaWVsZHMgZm9yIHByb3ZpZGVkIGF0dHJpYnV0ZXMgd2lsbCBiZSBpbmNsdWRlZC5cbiAgICAgKiBAcGFyYW0gdHlwZSBNb2RlbCdzIGNsYXNzLlxuICAgICAqIEBwYXJhbSBhdHRyaWJ1dGVzIExpc3Qgb2YgYXR0cmlidXRlIGRlZmluaXRpb25zIGZyb20gd2hpY2ggZmllbGRzIHNob3VsZCBiZSBjcmVhdGVkLlxuICAgICAqIEBwYXJhbSBpZFByb3BlcnR5IElkIHByb3BlcnR5IHJlcHJlc2VudGluZyBtb2RlbCAob3B0aW9uYWwpLlxuICAgICAqIEBwYXJhbSB0aXRsZVByb3BlcnR5IFRpdGxlIHByb3BlcnR5IHJlcHJlc2VudGluZyBtb2RlbCAob3B0aW9uYWwpLiBJZiBub3QgcHJvdmlkZWQsIGl0IHdpbGwgYmUgYXV0b21hdGljYWxseSBjaG9zZW4uXG4gICAgICogQHBhcmFtIHRhYmxldmlld0VkaXRvclR5cGUgVHlwZSBvZiBlZGl0b3IgaW4gdGFibGV2aWV3IChhZGQsIGVkaXQsIHZpZXcgb3Igbm9uZSkuXG4gICAgICovXG4gICAgcHVibGljIHN0YXRpYyBmcm9tQ2xhc3NXaXRoQ3VzdG9tQXR0cnNEZWY8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsID0gdW5kZWZpbmVkPihcbiAgICAgICAgdHlwZTogQ2xhc3NUeXBlPEVkaXRvck1vZGVsPixcbiAgICAgICAgYXR0cmlidXRlczogRWRpdG9yQ2xhc3NBdHRyaWJ1dGVEZWZbXSxcbiAgICAgICAgaWRQcm9wZXJ0eT86IGtleW9mIEVkaXRvck1vZGVsLFxuICAgICAgICB0aXRsZVByb3BlcnR5Pzoga2V5b2YgRWRpdG9yTW9kZWwsXG4gICAgICAgIHRhYmxldmlld0VkaXRvclR5cGUgPSBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bS5Ob25lXG4gICAgKTogRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPiB7XG4gICAgICAgIHJldHVybiBlZGl0b3JEZXNjcmlwdG9yRnJvbUNsYXNzQXR0cnNEZWY8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPih0eXBlLCBhdHRyaWJ1dGVzLCB7XG4gICAgICAgICAgICBpZDogaWRQcm9wZXJ0eSxcbiAgICAgICAgICAgIHRpdGxlOiB0aXRsZVByb3BlcnR5LFxuICAgICAgICAgICAgdGFibGV2aWV3RWRpdG9yVHlwZTogdGFibGV2aWV3RWRpdG9yVHlwZVxuICAgICAgICB9KTtcbiAgICB9XG59XG5cbmV4cG9ydCB0eXBlIEVkaXRvckRlc2NyaXB0b3JDcmVhdGVCYXNlT3B0c1R5cGUgPSB7XG4gICAgdGFibGV2aWV3RWRpdG9yVHlwZT86IFRhYmxldmlld0VkaXRvclR5cGVFbnVtO1xufTtcbmV4cG9ydCB0eXBlIEVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzVHlwZTxFZGl0b3JNb2RlbD4gPSBNb2RlbERlc2NyaXB0b3JDcmVhdGVPcHRzPEVkaXRvck1vZGVsPiAmIEVkaXRvckRlc2NyaXB0b3JDcmVhdGVCYXNlT3B0c1R5cGU7XG5cbmV4cG9ydCBmdW5jdGlvbiBlZGl0b3JEZXNjcmlwdG9yPEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbCA9IHVuZGVmaW5lZD4oKTogRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPjtcbmV4cG9ydCBmdW5jdGlvbiBlZGl0b3JEZXNjcmlwdG9yPEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbCA9IHVuZGVmaW5lZD4oXG4gICAgb3B0czogRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPEVkaXRvck1vZGVsPlxuKTogRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPjtcbmV4cG9ydCBmdW5jdGlvbiBlZGl0b3JEZXNjcmlwdG9yPEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbCA9IHVuZGVmaW5lZD4oXG4gICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxFZGl0b3JNb2RlbD4sXG4gICAgb3B0cz86IEVkaXRvckRlc2NyaXB0b3JDcmVhdGVCYXNlT3B0c1R5cGVcbik6IEVkaXRvckRlc2NyaXB0b3JJbnN0PEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbD47XG5leHBvcnQgZnVuY3Rpb24gZWRpdG9yRGVzY3JpcHRvcjxFZGl0b3JNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWwgPSB1bmRlZmluZWQ+KFxuICAgIHR5cGU6IFR5cGVEZXNjcmlwdG9yPEVkaXRvck1vZGVsPixcbiAgICBvcHRzPzogRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPEVkaXRvck1vZGVsPlxuKTogRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPjtcbmV4cG9ydCBmdW5jdGlvbiBlZGl0b3JEZXNjcmlwdG9yPEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbCA9IHVuZGVmaW5lZD4oXG4gICAgdHlwZU9yTW9kZWxPckNsYXNzT3JPcHRzPzogVHlwZURlc2NyaXB0b3I8RWRpdG9yTW9kZWw+IHwgTW9kZWxEZXNjcmlwdG9yPEVkaXRvck1vZGVsPiB8IEVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzVHlwZTxFZGl0b3JNb2RlbD4sXG4gICAgb3B0cz86IEVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzVHlwZTxFZGl0b3JNb2RlbD5cbikge1xuICAgIGlmICh0eXBlT3JNb2RlbE9yQ2xhc3NPck9wdHMgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gbmV3IEVkaXRvckRlc2NyaXB0b3JJbnN0PEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbD4obW9kZWw8RWRpdG9yTW9kZWw+KCksIG9wdHM/LnRhYmxldmlld0VkaXRvclR5cGUpO1xuICAgIH0gZWxzZSBpZiAodHlwZU9yTW9kZWxPckNsYXNzT3JPcHRzIGluc3RhbmNlb2YgVHlwZURlc2NyaXB0b3IpIHtcbiAgICAgICAgcmV0dXJuIG5ldyBFZGl0b3JEZXNjcmlwdG9ySW5zdDxFZGl0b3JNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWw+KFxuICAgICAgICAgICAgbW9kZWw8RWRpdG9yTW9kZWw+KChvcHRzIGFzIEVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzVHlwZTxFZGl0b3JNb2RlbD4gfCB1bmRlZmluZWQpID8/IHt9KSxcbiAgICAgICAgICAgIG9wdHM/LnRhYmxldmlld0VkaXRvclR5cGVcbiAgICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVPck1vZGVsT3JDbGFzc09yT3B0cyBpbnN0YW5jZW9mIE1vZGVsRGVzY3JpcHRvcikge1xuICAgICAgICByZXR1cm4gbmV3IEVkaXRvckRlc2NyaXB0b3JJbnN0PEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbD4odHlwZU9yTW9kZWxPckNsYXNzT3JPcHRzLCBvcHRzPy50YWJsZXZpZXdFZGl0b3JUeXBlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICAvLyB0aGlzIGNvdWxkIGhhdmUgYXV0b0dlbmVyYXRlZCBpZiBtb2RlbCBkZXNjcmlwdG9yIGlzIGNsYXNzXG4gICAgICAgIHJldHVybiBuZXcgRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPihtb2RlbDxFZGl0b3JNb2RlbD4odHlwZU9yTW9kZWxPckNsYXNzT3JPcHRzKSwgdHlwZU9yTW9kZWxPckNsYXNzT3JPcHRzPy50YWJsZXZpZXdFZGl0b3JUeXBlKTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlZGl0b3JEZXNjcmlwdG9yRnJvbUNsYXNzPEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbCA9IHVuZGVmaW5lZD4oXG4gICAgdHlwZTogQ2xhc3NUeXBlPEVkaXRvck1vZGVsPixcbiAgICBvcHRzPzogRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPEVkaXRvck1vZGVsPlxuKTogRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPiB7XG4gICAgcmV0dXJuIG5ldyBFZGl0b3JEZXNjcmlwdG9ySW5zdDxFZGl0b3JNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWw+KG1vZGVsPEVkaXRvck1vZGVsPih0eXBlIGFzIENsYXNzVHlwZTxFZGl0b3JNb2RlbD4sIG9wdHMpLCBvcHRzPy50YWJsZXZpZXdFZGl0b3JUeXBlKTtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgZGVzY3JpcHRvciBiYXNlZCBvbiB0eXBlIGF0dHJpYnV0ZSBkZWZpbml0aW9uXG4gKiBAcGFyYW0gdHlwZSBjbGFzcyB0eXBlXG4gKiBAcGFyYW0gYXR0cmlidXRlc1xuICogQHBhcmFtIG9wdHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVkaXRvckRlc2NyaXB0b3JGcm9tQ2xhc3NBdHRyc0RlZjxFZGl0b3JNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWwgPSB1bmRlZmluZWQ+KFxuICAgIHR5cGU6IENsYXNzVHlwZTxFZGl0b3JNb2RlbD4sXG4gICAgYXR0cmlidXRlcz86IEVkaXRvckNsYXNzQXR0cmlidXRlRGVmW10sXG4gICAgb3B0cz86IEVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzVHlwZTxFZGl0b3JNb2RlbD5cbik6IEVkaXRvckRlc2NyaXB0b3JJbnN0PEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbD4ge1xuICAgIGNvbnN0IGRlc2NyaXB0b3IgPSBuZXcgRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPihtb2RlbCh0eXBlLCBvcHRzKSwgb3B0cz8udGFibGV2aWV3RWRpdG9yVHlwZSk7XG4gICAgKGF0dHJpYnV0ZXMgPz8gZ2V0RWRpdG9yQ2xhc3NBdHRyaWJ1dGVEZWYodHlwZSkpXG4gICAgICAgIC5maWx0ZXIoYXR0ciA9PiAhYXR0ci50eXBlLmluY2x1ZGVzKCdTZXQnKSAmJiAhYXR0ci50eXBlLmluY2x1ZGVzKCdBcnJheScpKVxuICAgICAgICAuZm9yRWFjaChhdHRyID0+IHVwc2VydEVkaXRvckZpZWxkRnJvbUF0dHJpYnV0ZURlZihkZXNjcmlwdG9yLCBhdHRyKSk7XG4gICAgcmV0dXJuIGRlc2NyaXB0b3I7XG59XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLWRlc2NyaXB0b3IuZmFjdG9yeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3RhYmxldmlldy9hcGkvc3JjL2VkaXRvci9kZXNjcmlwdG9ycy9lZGl0b3ItZGVzY3JpcHRvci5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxlQUFlLEVBQTZDLEtBQUssRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRy9HLE9BQU8sRUFBQyxvQkFBb0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBZ0J6RCxNQUFNLFVBQVUsZ0JBQWdCLENBQzVCLFdBQTJHLEVBQzNHLElBQXFFO0lBRXJFLElBQUksV0FBVyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3RCLE9BQU8sSUFBSSxvQkFBb0IsQ0FBaUMsS0FBSyxFQUFlLEVBQUUsSUFBSSxFQUFFLG1CQUFtQixDQUFDLENBQUM7SUFDckgsQ0FBQztTQUFNLElBQUksV0FBVyxZQUFZLGVBQWUsRUFBRSxDQUFDO1FBQ2hELE9BQU8sSUFBSSxvQkFBb0IsQ0FBaUMsV0FBVyxFQUFFLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQzVHLENBQUM7U0FBTSxDQUFDO1FBQ0osNkRBQTZEO1FBQzdELE9BQU8sSUFBSSxvQkFBb0IsQ0FBaUMsS0FBSyxDQUFjLFdBQVcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3ZJLENBQUM7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtNb2RlbERlc2NyaXB0b3IsIE1vZGVsRGVzY3JpcHRvckNyZWF0ZU9wdHMsIFR5cGVEZXNjcmlwdG9yLCBtb2RlbH0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9tb2RlbCc7XG5cbmltcG9ydCB7VGFibGV2aWV3RWRpdG9yVHlwZUVudW19IGZyb20gJy4uL21vZGVscy9lZGl0b3IubW9kZWwnO1xuaW1wb3J0IHtFZGl0b3JEZXNjcmlwdG9ySW5zdH0gZnJvbSAnLi9lZGl0b3IuZGVzY3JpcHRvcic7XG5cbmV4cG9ydCB0eXBlIEVkaXRvckRlc2NyaXB0b3JDcmVhdGVCYXNlT3B0c1R5cGU8UGFyZW50RWRpdG9yTW9kZWw+ID0ge1xuICAgIHRhYmxldmlld0VkaXRvclR5cGU/OiBUYWJsZXZpZXdFZGl0b3JUeXBlRW51bTtcbiAgICBwYXJlbnRFZGl0b3JUeXBlPzogVHlwZURlc2NyaXB0b3I8UGFyZW50RWRpdG9yTW9kZWw+IHwgTW9kZWxEZXNjcmlwdG9yPFBhcmVudEVkaXRvck1vZGVsPiB8IEVkaXRvckRlc2NyaXB0b3JJbnN0PFBhcmVudEVkaXRvck1vZGVsLCBhbnk+O1xufTtcbmV4cG9ydCB0eXBlIEVkaXRvckRlc2NyaXB0b3JDcmVhdGVPcHRzVHlwZTxFZGl0b3JNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWw+ID0gTW9kZWxEZXNjcmlwdG9yQ3JlYXRlT3B0czxFZGl0b3JNb2RlbD4gJiBFZGl0b3JEZXNjcmlwdG9yQ3JlYXRlQmFzZU9wdHNUeXBlPFBhcmVudEVkaXRvck1vZGVsPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGVkaXRvckRlc2NyaXB0b3I8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsID0gdW5kZWZpbmVkPigpOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxFZGl0b3JNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWw+O1xuZXhwb3J0IGZ1bmN0aW9uIGVkaXRvckRlc2NyaXB0b3I8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsID0gdW5kZWZpbmVkPihcbiAgICBvcHRzOiBFZGl0b3JEZXNjcmlwdG9yQ3JlYXRlT3B0c1R5cGU8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPlxuKTogRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPjtcbmV4cG9ydCBmdW5jdGlvbiBlZGl0b3JEZXNjcmlwdG9yPEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbCA9IHVuZGVmaW5lZD4oXG4gICAgbW9kZWw6IE1vZGVsRGVzY3JpcHRvcjxFZGl0b3JNb2RlbD4sXG4gICAgb3B0cz86IEVkaXRvckRlc2NyaXB0b3JDcmVhdGVCYXNlT3B0c1R5cGU8UGFyZW50RWRpdG9yTW9kZWw+XG4pOiBFZGl0b3JEZXNjcmlwdG9ySW5zdDxFZGl0b3JNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWw+O1xuZXhwb3J0IGZ1bmN0aW9uIGVkaXRvckRlc2NyaXB0b3I8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsID0gdW5kZWZpbmVkPihcbiAgICBtb2RlbE9yT3B0cz86IE1vZGVsRGVzY3JpcHRvcjxFZGl0b3JNb2RlbD4gfCBFZGl0b3JEZXNjcmlwdG9yQ3JlYXRlT3B0c1R5cGU8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPixcbiAgICBvcHRzPzogRWRpdG9yRGVzY3JpcHRvckNyZWF0ZU9wdHNUeXBlPEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbD5cbikge1xuICAgIGlmIChtb2RlbE9yT3B0cyA9PSBudWxsKSB7XG4gICAgICAgIHJldHVybiBuZXcgRWRpdG9yRGVzY3JpcHRvckluc3Q8RWRpdG9yTW9kZWwsIFBhcmVudEVkaXRvck1vZGVsPihtb2RlbDxFZGl0b3JNb2RlbD4oKSwgb3B0cz8udGFibGV2aWV3RWRpdG9yVHlwZSk7XG4gICAgfSBlbHNlIGlmIChtb2RlbE9yT3B0cyBpbnN0YW5jZW9mIE1vZGVsRGVzY3JpcHRvcikge1xuICAgICAgICByZXR1cm4gbmV3IEVkaXRvckRlc2NyaXB0b3JJbnN0PEVkaXRvck1vZGVsLCBQYXJlbnRFZGl0b3JNb2RlbD4obW9kZWxPck9wdHMsIG9wdHM/LnRhYmxldmlld0VkaXRvclR5cGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIHRoaXMgY291bGQgaGF2ZSBhdXRvR2VuZXJhdGVkIGlmIG1vZGVsIGRlc2NyaXB0b3IgaXMgY2xhc3NcbiAgICAgICAgcmV0dXJuIG5ldyBFZGl0b3JEZXNjcmlwdG9ySW5zdDxFZGl0b3JNb2RlbCwgUGFyZW50RWRpdG9yTW9kZWw+KG1vZGVsPEVkaXRvck1vZGVsPihtb2RlbE9yT3B0cyksIG1vZGVsT3JPcHRzPy50YWJsZXZpZXdFZGl0b3JUeXBlKTtcbiAgICB9XG59XG4iXX0=