@mediusinc/mng-commons 0.9.0 → 0.9.1-rc.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (304) hide show
  1. package/dev-scripts/version-info.js +98 -0
  2. package/esm2020/lib/api/models/builders/query-param.builder.mjs +58 -58
  3. package/esm2020/lib/api/models/filter-match-type.model.mjs +24 -24
  4. package/esm2020/lib/api/models/filter-param.model.mjs +32 -32
  5. package/esm2020/lib/api/models/index.mjs +8 -8
  6. package/esm2020/lib/api/models/mappers.mjs +12 -12
  7. package/esm2020/lib/api/models/query-mode.model.mjs +17 -17
  8. package/esm2020/lib/api/models/query-param.model.mjs +67 -67
  9. package/esm2020/lib/api/models/query-result.model.mjs +17 -17
  10. package/esm2020/lib/api/models/serialization.model.mjs +1 -1
  11. package/esm2020/lib/api/services/api.abstract.service.mjs +55 -55
  12. package/esm2020/lib/api/services/crud-api.abstract.service.mjs +66 -66
  13. package/esm2020/lib/api/services/get-all-api.abstract.service.mjs +22 -22
  14. package/esm2020/lib/api/services/index.mjs +3 -3
  15. package/esm2020/lib/api/utils/index.mjs +2 -2
  16. package/esm2020/lib/api/utils/medius-rest.util.mjs +151 -151
  17. package/esm2020/lib/api/utils/object-serializer.util.mjs +243 -243
  18. package/esm2020/lib/components/action/action.component.mjs +177 -177
  19. package/esm2020/lib/components/action/editor/action-editor.component.mjs +247 -247
  20. package/esm2020/lib/components/action/index.mjs +3 -3
  21. package/esm2020/lib/components/action/models/action-confirmation-service.model.mjs +1 -1
  22. package/esm2020/lib/components/action/models/action-execution.model.mjs +234 -234
  23. package/esm2020/lib/components/action/models/index.mjs +2 -2
  24. package/esm2020/lib/components/action/route/action-route.component.mjs +124 -124
  25. package/esm2020/lib/components/form/autocomplete/autocomplete.component.mjs +268 -268
  26. package/esm2020/lib/components/form/dropdown/dropdown.component.mjs +160 -160
  27. package/esm2020/lib/components/form/editor/form-editor.component.mjs +189 -189
  28. package/esm2020/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +18 -18
  29. package/esm2020/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +42 -42
  30. package/esm2020/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.mjs +24 -24
  31. package/esm2020/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.mjs +95 -95
  32. package/esm2020/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.mjs +16 -16
  33. package/esm2020/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +178 -178
  34. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +154 -154
  35. package/esm2020/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +126 -126
  36. package/esm2020/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.mjs +16 -16
  37. package/esm2020/lib/components/form/formly/fields/index.mjs +9 -9
  38. package/esm2020/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.mjs +14 -14
  39. package/esm2020/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.mjs +14 -14
  40. package/esm2020/lib/components/form/formly/wrappers/index.mjs +2 -2
  41. package/esm2020/lib/components/form/index.mjs +3 -3
  42. package/esm2020/lib/components/form/models/form-editor.event.mjs +33 -33
  43. package/esm2020/lib/components/form/models/index.mjs +1 -1
  44. package/esm2020/lib/components/layout/breadcrumb.component.mjs +16 -16
  45. package/esm2020/lib/components/layout/footer.component.mjs +17 -17
  46. package/esm2020/lib/components/layout/index.mjs +8 -7
  47. package/esm2020/lib/components/layout/main-layout.component.mjs +51 -51
  48. package/esm2020/lib/components/layout/menu-item.component.mjs +216 -216
  49. package/esm2020/lib/components/layout/menu.component.mjs +21 -20
  50. package/esm2020/lib/components/layout/services/index.mjs +1 -1
  51. package/esm2020/lib/components/layout/services/main-layout.component.service.mjs +192 -192
  52. package/esm2020/lib/components/layout/topbar.component.mjs +57 -57
  53. package/esm2020/lib/components/layout/version.component.mjs +58 -0
  54. package/esm2020/lib/components/tableview/index.mjs +6 -6
  55. package/esm2020/lib/components/tableview/models/index.mjs +1 -1
  56. package/esm2020/lib/components/tableview/models/table.event.mjs +15 -15
  57. package/esm2020/lib/components/tableview/route/tableview-route.abstract.component.mjs +57 -57
  58. package/esm2020/lib/components/tableview/route/tableview-route.component.mjs +53 -53
  59. package/esm2020/lib/components/tableview/table/column-filter/column-filter.component.mjs +101 -101
  60. package/esm2020/lib/components/tableview/table/column-value/column-value.component.mjs +70 -70
  61. package/esm2020/lib/components/tableview/table/table.component.mjs +427 -427
  62. package/esm2020/lib/components/tableview/tableview.component.mjs +91 -91
  63. package/esm2020/lib/config/formly.config.mjs +180 -180
  64. package/esm2020/lib/config/index.mjs +1 -1
  65. package/esm2020/lib/config/models/index.mjs +1 -1
  66. package/esm2020/lib/config/models/mng-config.model.mjs +2 -2
  67. package/esm2020/lib/data-providers/base.data-provider.mjs +16 -16
  68. package/esm2020/lib/data-providers/editor.data-provider.mjs +36 -36
  69. package/esm2020/lib/data-providers/index.mjs +5 -5
  70. package/esm2020/lib/data-providers/lookup.data-provider.mjs +15 -15
  71. package/esm2020/lib/data-providers/table.data-provider.mjs +16 -16
  72. package/esm2020/lib/data-providers/tableview.data-provider.mjs +16 -16
  73. package/esm2020/lib/descriptors/action.descriptor.mjs +565 -565
  74. package/esm2020/lib/descriptors/column.descriptor.mjs +260 -260
  75. package/esm2020/lib/descriptors/editor.descriptor.mjs +146 -146
  76. package/esm2020/lib/descriptors/field-validation.descriptor.mjs +20 -20
  77. package/esm2020/lib/descriptors/field.descriptor.mjs +799 -799
  78. package/esm2020/lib/descriptors/filter.descriptor.mjs +261 -261
  79. package/esm2020/lib/descriptors/index.mjs +9 -9
  80. package/esm2020/lib/descriptors/interfaces/field-config.interface.mjs +1 -1
  81. package/esm2020/lib/descriptors/interfaces/index.mjs +2 -2
  82. package/esm2020/lib/descriptors/interfaces/lookup-descriptor.interface.mjs +1 -1
  83. package/esm2020/lib/descriptors/model.descriptor.mjs +33 -33
  84. package/esm2020/lib/descriptors/table.descriptor.mjs +196 -196
  85. package/esm2020/lib/descriptors/tableview.descriptor.mjs +134 -134
  86. package/esm2020/lib/descriptors/types/action.type.mjs +52 -52
  87. package/esm2020/lib/descriptors/types/column.type.mjs +10 -10
  88. package/esm2020/lib/descriptors/types/editor.type.mjs +7 -7
  89. package/esm2020/lib/descriptors/types/field.type.mjs +52 -52
  90. package/esm2020/lib/descriptors/types/filter.type.mjs +30 -30
  91. package/esm2020/lib/descriptors/types/index.mjs +6 -6
  92. package/esm2020/lib/descriptors/types/table.type.mjs +16 -16
  93. package/esm2020/lib/directives/component.directive.mjs +43 -43
  94. package/esm2020/lib/directives/index.mjs +2 -2
  95. package/esm2020/lib/directives/template.directive.mjs +27 -27
  96. package/esm2020/lib/mng-commons.module.mjs +438 -427
  97. package/esm2020/lib/models/column-value.model.mjs +1 -1
  98. package/esm2020/lib/models/enum.model.mjs +1 -1
  99. package/esm2020/lib/models/error.model.mjs +1 -1
  100. package/esm2020/lib/models/index.mjs +8 -7
  101. package/esm2020/lib/models/menu.model.mjs +1 -1
  102. package/esm2020/lib/models/user.model.mjs +1 -1
  103. package/esm2020/lib/models/version.model.mjs +2 -0
  104. package/esm2020/lib/models/view-container.model.mjs +1 -1
  105. package/esm2020/lib/pipes/boolean.pipe.mjs +26 -26
  106. package/esm2020/lib/pipes/enum.pipe.mjs +24 -24
  107. package/esm2020/lib/pipes/i18n-property.pipe.mjs +17 -17
  108. package/esm2020/lib/pipes/index.mjs +5 -5
  109. package/esm2020/lib/pipes/json-path.pipe.mjs +79 -79
  110. package/esm2020/lib/pipes/link-formatter.pipe.mjs +38 -38
  111. package/esm2020/lib/router/index.mjs +1 -1
  112. package/esm2020/lib/router/models/index.mjs +1 -1
  113. package/esm2020/lib/router/models/router.model.mjs +1 -1
  114. package/esm2020/lib/router/route-builder.mjs +431 -431
  115. package/esm2020/lib/services/action-executor.service.mjs +535 -535
  116. package/esm2020/lib/services/commons.service.mjs +331 -328
  117. package/esm2020/lib/services/configuration.service.mjs +110 -110
  118. package/esm2020/lib/services/error-mapper.service.mjs +13 -13
  119. package/esm2020/lib/services/index.mjs +6 -6
  120. package/esm2020/lib/services/internal/commons-init.provider.mjs +3 -3
  121. package/esm2020/lib/services/internal/commons-init.service.mjs +43 -43
  122. package/esm2020/lib/services/internal/index.mjs +2 -2
  123. package/esm2020/lib/services/navigation.service.mjs +47 -47
  124. package/esm2020/lib/services/providers/config-service.provider.mjs +29 -29
  125. package/esm2020/lib/services/providers/formly-config.provider.mjs +30 -30
  126. package/esm2020/lib/services/providers/index.mjs +2 -2
  127. package/esm2020/lib/services/tokens/browser-storage.token.mjs +5 -5
  128. package/esm2020/lib/services/tokens/commons-init.token.mjs +2 -2
  129. package/esm2020/lib/services/tokens/default-setting.token.mjs +2 -2
  130. package/esm2020/lib/services/tokens/index.mjs +4 -4
  131. package/esm2020/lib/services/tokens/module-config.token.mjs +2 -2
  132. package/esm2020/lib/services/version.service.mjs +38 -0
  133. package/esm2020/lib/services/view-container.component.service.mjs +34 -34
  134. package/esm2020/lib/types/index.mjs +2 -2
  135. package/esm2020/lib/types/type.decorator.mjs +12 -12
  136. package/esm2020/lib/types/type.model.mjs +1 -1
  137. package/esm2020/lib/utils/action-data-provider.util.mjs +144 -144
  138. package/esm2020/lib/utils/editor-formly.util.mjs +210 -210
  139. package/esm2020/lib/utils/enum.util.mjs +81 -81
  140. package/esm2020/lib/utils/i18n.util.mjs +232 -232
  141. package/esm2020/lib/utils/index.mjs +7 -7
  142. package/esm2020/lib/utils/model.util.mjs +59 -59
  143. package/esm2020/lib/utils/notification.util.mjs +45 -45
  144. package/esm2020/lib/utils/route.util.mjs +23 -23
  145. package/esm2020/lib/utils/styles.util.mjs +40 -40
  146. package/esm2020/lib/utils/type.util.mjs +76 -76
  147. package/esm2020/mediusinc-mng-commons.mjs +4 -4
  148. package/esm2020/public-api.mjs +41 -41
  149. package/fesm2015/mediusinc-mng-commons.mjs +9967 -9865
  150. package/fesm2015/mediusinc-mng-commons.mjs.map +1 -1
  151. package/fesm2020/mediusinc-mng-commons.mjs +9829 -9730
  152. package/fesm2020/mediusinc-mng-commons.mjs.map +1 -1
  153. package/lib/api/models/builders/query-param.builder.d.ts +13 -13
  154. package/lib/api/models/filter-match-type.model.d.ts +23 -23
  155. package/lib/api/models/filter-param.model.d.ts +23 -23
  156. package/lib/api/models/index.d.ts +8 -8
  157. package/lib/api/models/mappers.d.ts +6 -6
  158. package/lib/api/models/query-mode.model.d.ts +16 -16
  159. package/lib/api/models/query-param.model.d.ts +31 -31
  160. package/lib/api/models/query-result.model.d.ts +23 -23
  161. package/lib/api/models/serialization.model.d.ts +8 -8
  162. package/lib/api/services/api.abstract.service.d.ts +24 -24
  163. package/lib/api/services/crud-api.abstract.service.d.ts +22 -22
  164. package/lib/api/services/get-all-api.abstract.service.d.ts +14 -14
  165. package/lib/api/services/index.d.ts +3 -3
  166. package/lib/api/utils/index.d.ts +2 -2
  167. package/lib/api/utils/medius-rest.util.d.ts +15 -15
  168. package/lib/api/utils/object-serializer.util.d.ts +33 -33
  169. package/lib/components/action/action.component.d.ts +69 -69
  170. package/lib/components/action/editor/action-editor.component.d.ts +64 -64
  171. package/lib/components/action/index.d.ts +3 -3
  172. package/lib/components/action/models/action-confirmation-service.model.d.ts +6 -6
  173. package/lib/components/action/models/action-execution.model.d.ts +129 -129
  174. package/lib/components/action/models/index.d.ts +2 -2
  175. package/lib/components/action/route/action-route.component.d.ts +31 -31
  176. package/lib/components/form/autocomplete/autocomplete.component.d.ts +53 -53
  177. package/lib/components/form/dropdown/dropdown.component.d.ts +44 -44
  178. package/lib/components/form/editor/form-editor.component.d.ts +45 -45
  179. package/lib/components/form/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +12 -12
  180. package/lib/components/form/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +14 -14
  181. package/lib/components/form/formly/fields/formly-field-fieldset/formly-field-fieldset.component.d.ts +13 -13
  182. package/lib/components/form/formly/fields/formly-field-input/formly-field-input.component.d.ts +21 -21
  183. package/lib/components/form/formly/fields/formly-field-label/formly-field-label.component.d.ts +6 -6
  184. package/lib/components/form/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +45 -45
  185. package/lib/components/form/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +22 -22
  186. package/lib/components/form/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +37 -37
  187. package/lib/components/form/formly/fields/formly-field-tabs/formly-field-tabs.component.d.ts +6 -6
  188. package/lib/components/form/formly/fields/index.d.ts +9 -9
  189. package/lib/components/form/formly/wrappers/formly-field-wrapper/formly-field-wrapper.component.d.ts +6 -6
  190. package/lib/components/form/formly/wrappers/formly-table-wrapper/formly-table-wrapper.component.d.ts +6 -6
  191. package/lib/components/form/formly/wrappers/index.d.ts +2 -2
  192. package/lib/components/form/index.d.ts +3 -3
  193. package/lib/components/form/models/form-editor.event.d.ts +37 -37
  194. package/lib/components/form/models/index.d.ts +1 -1
  195. package/lib/components/layout/breadcrumb.component.d.ts +8 -8
  196. package/lib/components/layout/footer.component.d.ts +9 -9
  197. package/lib/components/layout/index.d.ts +7 -6
  198. package/lib/components/layout/main-layout.component.d.ts +20 -20
  199. package/lib/components/layout/menu-item.component.d.ts +37 -37
  200. package/lib/components/layout/menu.component.d.ts +10 -10
  201. package/lib/components/layout/services/index.d.ts +1 -1
  202. package/lib/components/layout/services/main-layout.component.service.d.ts +65 -65
  203. package/lib/components/layout/topbar.component.d.ts +24 -24
  204. package/lib/components/layout/version.component.d.ts +19 -0
  205. package/lib/components/tableview/index.d.ts +6 -6
  206. package/lib/components/tableview/models/index.d.ts +1 -1
  207. package/lib/components/tableview/models/table.event.d.ts +17 -17
  208. package/lib/components/tableview/route/tableview-route.abstract.component.d.ts +20 -20
  209. package/lib/components/tableview/route/tableview-route.component.d.ts +18 -18
  210. package/lib/components/tableview/table/column-filter/column-filter.component.d.ts +32 -32
  211. package/lib/components/tableview/table/column-value/column-value.component.d.ts +29 -29
  212. package/lib/components/tableview/table/table.component.d.ts +105 -105
  213. package/lib/components/tableview/tableview.component.d.ts +41 -41
  214. package/lib/config/formly.config.d.ts +15 -15
  215. package/lib/config/index.d.ts +1 -1
  216. package/lib/config/models/index.d.ts +1 -1
  217. package/lib/config/models/mng-config.model.d.ts +36 -34
  218. package/lib/data-providers/base.data-provider.d.ts +14 -14
  219. package/lib/data-providers/editor.data-provider.d.ts +25 -25
  220. package/lib/data-providers/index.d.ts +5 -5
  221. package/lib/data-providers/lookup.data-provider.d.ts +14 -14
  222. package/lib/data-providers/table.data-provider.d.ts +14 -14
  223. package/lib/data-providers/tableview.data-provider.d.ts +15 -15
  224. package/lib/descriptors/action.descriptor.d.ts +227 -227
  225. package/lib/descriptors/column.descriptor.d.ts +81 -81
  226. package/lib/descriptors/editor.descriptor.d.ts +37 -37
  227. package/lib/descriptors/field-validation.descriptor.d.ts +18 -18
  228. package/lib/descriptors/field.descriptor.d.ts +287 -287
  229. package/lib/descriptors/filter.descriptor.d.ts +97 -97
  230. package/lib/descriptors/index.d.ts +9 -9
  231. package/lib/descriptors/interfaces/field-config.interface.d.ts +9 -9
  232. package/lib/descriptors/interfaces/index.d.ts +2 -2
  233. package/lib/descriptors/interfaces/lookup-descriptor.interface.d.ts +17 -17
  234. package/lib/descriptors/model.descriptor.d.ts +15 -15
  235. package/lib/descriptors/table.descriptor.d.ts +66 -66
  236. package/lib/descriptors/tableview.descriptor.d.ts +42 -42
  237. package/lib/descriptors/types/action.type.d.ts +45 -45
  238. package/lib/descriptors/types/column.type.d.ts +9 -9
  239. package/lib/descriptors/types/editor.type.d.ts +6 -6
  240. package/lib/descriptors/types/field.type.d.ts +44 -44
  241. package/lib/descriptors/types/filter.type.d.ts +27 -27
  242. package/lib/descriptors/types/index.d.ts +6 -6
  243. package/lib/descriptors/types/table.type.d.ts +13 -13
  244. package/lib/directives/component.directive.d.ts +16 -16
  245. package/lib/directives/index.d.ts +2 -2
  246. package/lib/directives/template.directive.d.ts +13 -13
  247. package/lib/mng-commons.module.d.ts +87 -86
  248. package/lib/models/column-value.model.d.ts +4 -4
  249. package/lib/models/enum.model.d.ts +6 -6
  250. package/lib/models/error.model.d.ts +14 -14
  251. package/lib/models/index.d.ts +7 -6
  252. package/lib/models/menu.model.d.ts +25 -25
  253. package/lib/models/user.model.d.ts +8 -8
  254. package/lib/models/version.model.d.ts +18 -0
  255. package/lib/models/view-container.model.d.ts +6 -6
  256. package/lib/pipes/boolean.pipe.d.ts +7 -7
  257. package/lib/pipes/enum.pipe.d.ts +8 -8
  258. package/lib/pipes/i18n-property.pipe.d.ts +8 -8
  259. package/lib/pipes/index.d.ts +5 -5
  260. package/lib/pipes/json-path.pipe.d.ts +13 -13
  261. package/lib/pipes/link-formatter.pipe.d.ts +11 -11
  262. package/lib/router/index.d.ts +1 -1
  263. package/lib/router/models/index.d.ts +1 -1
  264. package/lib/router/models/router.model.d.ts +22 -22
  265. package/lib/router/route-builder.d.ts +86 -86
  266. package/lib/services/action-executor.service.d.ts +149 -149
  267. package/lib/services/commons.service.d.ts +73 -72
  268. package/lib/services/configuration.service.d.ts +36 -36
  269. package/lib/services/error-mapper.service.d.ts +7 -7
  270. package/lib/services/index.d.ts +6 -6
  271. package/lib/services/internal/commons-init.provider.d.ts +3 -3
  272. package/lib/services/internal/commons-init.service.d.ts +16 -16
  273. package/lib/services/internal/index.d.ts +2 -2
  274. package/lib/services/navigation.service.d.ts +14 -14
  275. package/lib/services/providers/config-service.provider.d.ts +6 -6
  276. package/lib/services/providers/formly-config.provider.d.ts +4 -4
  277. package/lib/services/providers/index.d.ts +2 -2
  278. package/lib/services/tokens/browser-storage.token.d.ts +2 -2
  279. package/lib/services/tokens/commons-init.token.d.ts +3 -3
  280. package/lib/services/tokens/default-setting.token.d.ts +2 -2
  281. package/lib/services/tokens/index.d.ts +4 -4
  282. package/lib/services/tokens/module-config.token.d.ts +3 -3
  283. package/lib/services/version.service.d.ts +13 -0
  284. package/lib/services/view-container.component.service.d.ts +22 -22
  285. package/lib/types/index.d.ts +2 -2
  286. package/lib/types/type.decorator.d.ts +4 -4
  287. package/lib/types/type.model.d.ts +20 -20
  288. package/lib/utils/action-data-provider.util.d.ts +20 -20
  289. package/lib/utils/editor-formly.util.d.ts +10 -10
  290. package/lib/utils/enum.util.d.ts +50 -50
  291. package/lib/utils/i18n.util.d.ts +56 -56
  292. package/lib/utils/index.d.ts +7 -7
  293. package/lib/utils/model.util.d.ts +8 -8
  294. package/lib/utils/notification.util.d.ts +11 -11
  295. package/lib/utils/route.util.d.ts +4 -4
  296. package/lib/utils/styles.util.d.ts +14 -14
  297. package/lib/utils/type.util.d.ts +36 -36
  298. package/mediusinc-mng-commons-0.9.1-rc.1.tgz +0 -0
  299. package/mediusinc-mng-commons.d.ts +5 -5
  300. package/package.json +6 -7
  301. package/public-api.d.ts +30 -30
  302. package/scss/mng-overrides/_layout_menu.scss +6 -0
  303. package/scss/mng-overrides/_layout_styles.scss +1 -0
  304. package/version-info.json +10 -0
@@ -1,262 +1,262 @@
1
- import { of } from 'rxjs';
2
- import { LookupDataProvider } from '../data-providers';
3
- import { EnumUtil, ModelUtil, TypeUtil } from '../utils';
4
- import { FilterLookupTypeEnum, FilterTypeEnum } from './types';
5
- export class FilterDescriptor {
6
- constructor(property) {
7
- this._filterType = FilterTypeEnum.String;
8
- this._matchModes = null;
9
- this._numberUseGrouping = true;
10
- this._datePickerShowTime = false;
11
- this._className = '';
12
- this._columnClassName = '';
13
- this._columnWidth = null;
14
- this._columnMinWidth = null;
15
- this._property = property;
16
- }
17
- get filterType() {
18
- return this._filterType;
19
- }
20
- get filterProperty() {
21
- return this._filterProperty;
22
- }
23
- get matchModes() {
24
- return this._matchModes;
25
- }
26
- get numberMinFractionDigits() {
27
- return this._numberMinFractionDigits;
28
- }
29
- get numberMaxFractionDigits() {
30
- return this._numberMaxFractionDigits;
31
- }
32
- get numberUseGrouping() {
33
- return this._numberUseGrouping;
34
- }
35
- get datePickerFormat() {
36
- return this._datePickerFormat;
37
- }
38
- get datePickerShowTime() {
39
- return this._datePickerShowTime;
40
- }
41
- get placeholder() {
42
- return this._placeholder;
43
- }
44
- get className() {
45
- return this._className;
46
- }
47
- get columnClassName() {
48
- return this._columnClassName;
49
- }
50
- get columnWidth() {
51
- return this._columnWidth;
52
- }
53
- get columnMinWidth() {
54
- return this._columnMinWidth;
55
- }
56
- get property() {
57
- return this._property;
58
- }
59
- asFilterType(filterType) {
60
- this._filterType = filterType;
61
- return this;
62
- }
63
- /**
64
- * Sets different filter property name instead of default property. Use this if API requires different property provided to perform correct filter.
65
- * @param filterProperty
66
- */
67
- withFilterProperty(filterProperty) {
68
- this._filterProperty = filterProperty;
69
- return this;
70
- }
71
- withNumberFractions(min, max) {
72
- this._numberMinFractionDigits = min;
73
- this._numberMaxFractionDigits = max;
74
- return this;
75
- }
76
- withNumberGrouping(useGrouping = true) {
77
- this._numberUseGrouping = useGrouping;
78
- return this;
79
- }
80
- withDateFormat(format, showTime = false) {
81
- this._datePickerFormat = format;
82
- this._datePickerShowTime = showTime;
83
- return this;
84
- }
85
- withPlaceholder(placeholder) {
86
- this._placeholder = placeholder;
87
- return this;
88
- }
89
- withClassName(className) {
90
- this._className = className;
91
- return this;
92
- }
93
- withColumnClassName(className) {
94
- this._columnClassName = className;
95
- return this;
96
- }
97
- withColumnWidth(width, minWidth) {
98
- this._columnWidth = width ?? null;
99
- this._columnMinWidth = minWidth ?? null;
100
- return this;
101
- }
102
- withMatchModes(matchModes) {
103
- this._matchModes = matchModes;
104
- return this;
105
- }
106
- copy() {
107
- const descriptor = new FilterDescriptor(this._property);
108
- this.copyFieldsTo(descriptor);
109
- return descriptor;
110
- }
111
- copyFieldsTo(descriptor) {
112
- descriptor._filterType = this._filterType;
113
- descriptor._filterProperty = this._filterProperty;
114
- descriptor._numberMinFractionDigits = this._numberMinFractionDigits;
115
- descriptor._numberMaxFractionDigits = this._numberMaxFractionDigits;
116
- descriptor._numberUseGrouping = this._numberUseGrouping;
117
- descriptor._datePickerFormat = this._datePickerFormat;
118
- descriptor._datePickerShowTime = this._datePickerShowTime;
119
- descriptor._placeholder = this._placeholder;
120
- descriptor._className = this._className;
121
- descriptor._columnWidth = this._columnWidth;
122
- descriptor._columnMinWidth = this._columnMinWidth;
123
- descriptor._columnClassName = this._columnClassName;
124
- }
125
- }
126
- export class FilterLookupDescriptor extends FilterDescriptor {
127
- constructor(property, modelType) {
128
- super(property);
129
- this._modelType = null;
130
- this._lookupType = FilterLookupTypeEnum.Dropdown;
131
- this._itemsLabelTranslate = false;
132
- this._multiselect = false;
133
- this._dropdownClassName = 'mng-filter-lookup-dropdown';
134
- this._autocompleteOpenOnFocus = false;
135
- this._autocompleteInlineSearch = false;
136
- this._modelType = modelType;
137
- this._filterType = FilterTypeEnum.Lookup;
138
- ModelUtil.trySetLookupItemsProperties(this);
139
- }
140
- get lookupType() {
141
- return this._lookupType;
142
- }
143
- get dataProvider() {
144
- return this._dataProvider;
145
- }
146
- get itemsLabelProperty() {
147
- return this._itemsLabelProperty;
148
- }
149
- get itemsLabelTranslate() {
150
- return this._itemsLabelTranslate;
151
- }
152
- get itemsValueProperty() {
153
- return this._itemsValueProperty;
154
- }
155
- get dataKeyProperty() {
156
- return this._dataKeyProperty;
157
- }
158
- get multiselect() {
159
- return this._multiselect;
160
- }
161
- get autocompleteOpenOnFocus() {
162
- return this._autocompleteOpenOnFocus;
163
- }
164
- get autocompleteInlineSearch() {
165
- return this._autocompleteInlineSearch;
166
- }
167
- get dropdownClassName() {
168
- return this._dropdownClassName;
169
- }
170
- get modelType() {
171
- return this._modelType;
172
- }
173
- withItemsLabelProperty(itemsLabelProperty, translate = false) {
174
- this._itemsLabelProperty = itemsLabelProperty;
175
- this._itemsLabelTranslate = translate;
176
- return this;
177
- }
178
- withItemsValueProperty(itemsValueProperty) {
179
- this._itemsValueProperty = itemsValueProperty;
180
- this._dataKeyProperty = itemsValueProperty;
181
- return this;
182
- }
183
- withDataKeyProperty(dataKeyProperty) {
184
- this._dataKeyProperty = dataKeyProperty;
185
- this._itemsValueProperty = dataKeyProperty;
186
- return this;
187
- }
188
- withLookup(lookup, serviceType) {
189
- const dataProvider = new LookupDataProvider(this._modelType);
190
- if (serviceType) {
191
- dataProvider.withServiceType(serviceType);
192
- }
193
- dataProvider.withLookup(lookup);
194
- this._dataProvider = dataProvider;
195
- return this;
196
- }
197
- withLookupDataProvider(dataProvider) {
198
- this._dataProvider = dataProvider;
199
- return this;
200
- }
201
- withMultiselect(multiselect = true) {
202
- this._multiselect = multiselect;
203
- return this;
204
- }
205
- withDropdownClassName(dropdownClassName) {
206
- this._dropdownClassName = dropdownClassName;
207
- return this;
208
- }
209
- asAutocomplete(openOnFocus = false, inlineSearch = false) {
210
- this._lookupType = FilterLookupTypeEnum.Autocomplete;
211
- this._autocompleteOpenOnFocus = openOnFocus;
212
- this._autocompleteInlineSearch = inlineSearch;
213
- return this;
214
- }
215
- copy() {
216
- const descriptor = new FilterLookupDescriptor(this._property, this._modelType);
217
- this.copyFieldsTo(descriptor);
218
- return descriptor;
219
- }
220
- copyFieldsTo(filter) {
221
- super.copyFieldsTo(filter);
222
- filter._dataProvider = this._dataProvider;
223
- filter._lookupType = this._lookupType;
224
- filter._itemsLabelProperty = this._itemsLabelProperty;
225
- filter._itemsLabelTranslate = this._itemsLabelTranslate;
226
- filter._itemsValueProperty = this._itemsValueProperty;
227
- filter._dataKeyProperty = this._dataKeyProperty;
228
- filter._multiselect = this._multiselect;
229
- filter._dropdownClassName = this._dropdownClassName;
230
- filter._autocompleteOpenOnFocus = this._autocompleteOpenOnFocus;
231
- filter._autocompleteInlineSearch = this._autocompleteInlineSearch;
232
- }
233
- }
234
- export class FilterLookupEnumDescriptor extends FilterLookupDescriptor {
235
- constructor(property, enumType, options, nameAsValue = false, optionsTitlePath) {
236
- super(property, null);
237
- this._enumType = enumType;
238
- if (typeof optionsTitlePath === 'undefined') {
239
- optionsTitlePath = TypeUtil.findEnumName(enumType);
240
- }
241
- const optionEnumValues = Array.isArray(options)
242
- ? EnumUtil.fromValuesAsEnumValueArray(enumType, options, nameAsValue, optionsTitlePath ?? undefined)
243
- : EnumUtil.fromConstantsAsEnumValueArray(enumType, nameAsValue, optionsTitlePath ?? undefined);
244
- const dataProvider = new LookupDataProvider(null).withLookup(() => of(optionEnumValues));
245
- this.withLookupDataProvider(dataProvider);
246
- this.withItemsLabelProperty('title', optionsTitlePath !== null);
247
- this.withItemsValueProperty('value');
248
- }
249
- get enumType() {
250
- return this._enumType;
251
- }
252
- asAutocomplete(openOnFocus = true) {
253
- super.asAutocomplete(openOnFocus, true);
254
- return this;
255
- }
256
- copy() {
257
- const field = new FilterLookupEnumDescriptor(this._property, this._enumType, []);
258
- this.copyFieldsTo(field);
259
- return field;
260
- }
261
- }
1
+ import { of } from 'rxjs';
2
+ import { LookupDataProvider } from '../data-providers';
3
+ import { EnumUtil, ModelUtil, TypeUtil } from '../utils';
4
+ import { FilterLookupTypeEnum, FilterTypeEnum } from './types';
5
+ export class FilterDescriptor {
6
+ constructor(property) {
7
+ this._filterType = FilterTypeEnum.String;
8
+ this._matchModes = null;
9
+ this._numberUseGrouping = true;
10
+ this._datePickerShowTime = false;
11
+ this._className = '';
12
+ this._columnClassName = '';
13
+ this._columnWidth = null;
14
+ this._columnMinWidth = null;
15
+ this._property = property;
16
+ }
17
+ get filterType() {
18
+ return this._filterType;
19
+ }
20
+ get filterProperty() {
21
+ return this._filterProperty;
22
+ }
23
+ get matchModes() {
24
+ return this._matchModes;
25
+ }
26
+ get numberMinFractionDigits() {
27
+ return this._numberMinFractionDigits;
28
+ }
29
+ get numberMaxFractionDigits() {
30
+ return this._numberMaxFractionDigits;
31
+ }
32
+ get numberUseGrouping() {
33
+ return this._numberUseGrouping;
34
+ }
35
+ get datePickerFormat() {
36
+ return this._datePickerFormat;
37
+ }
38
+ get datePickerShowTime() {
39
+ return this._datePickerShowTime;
40
+ }
41
+ get placeholder() {
42
+ return this._placeholder;
43
+ }
44
+ get className() {
45
+ return this._className;
46
+ }
47
+ get columnClassName() {
48
+ return this._columnClassName;
49
+ }
50
+ get columnWidth() {
51
+ return this._columnWidth;
52
+ }
53
+ get columnMinWidth() {
54
+ return this._columnMinWidth;
55
+ }
56
+ get property() {
57
+ return this._property;
58
+ }
59
+ asFilterType(filterType) {
60
+ this._filterType = filterType;
61
+ return this;
62
+ }
63
+ /**
64
+ * Sets different filter property name instead of default property. Use this if API requires different property provided to perform correct filter.
65
+ * @param filterProperty
66
+ */
67
+ withFilterProperty(filterProperty) {
68
+ this._filterProperty = filterProperty;
69
+ return this;
70
+ }
71
+ withNumberFractions(min, max) {
72
+ this._numberMinFractionDigits = min;
73
+ this._numberMaxFractionDigits = max;
74
+ return this;
75
+ }
76
+ withNumberGrouping(useGrouping = true) {
77
+ this._numberUseGrouping = useGrouping;
78
+ return this;
79
+ }
80
+ withDateFormat(format, showTime = false) {
81
+ this._datePickerFormat = format;
82
+ this._datePickerShowTime = showTime;
83
+ return this;
84
+ }
85
+ withPlaceholder(placeholder) {
86
+ this._placeholder = placeholder;
87
+ return this;
88
+ }
89
+ withClassName(className) {
90
+ this._className = className;
91
+ return this;
92
+ }
93
+ withColumnClassName(className) {
94
+ this._columnClassName = className;
95
+ return this;
96
+ }
97
+ withColumnWidth(width, minWidth) {
98
+ this._columnWidth = width ?? null;
99
+ this._columnMinWidth = minWidth ?? null;
100
+ return this;
101
+ }
102
+ withMatchModes(matchModes) {
103
+ this._matchModes = matchModes;
104
+ return this;
105
+ }
106
+ copy() {
107
+ const descriptor = new FilterDescriptor(this._property);
108
+ this.copyFieldsTo(descriptor);
109
+ return descriptor;
110
+ }
111
+ copyFieldsTo(descriptor) {
112
+ descriptor._filterType = this._filterType;
113
+ descriptor._filterProperty = this._filterProperty;
114
+ descriptor._numberMinFractionDigits = this._numberMinFractionDigits;
115
+ descriptor._numberMaxFractionDigits = this._numberMaxFractionDigits;
116
+ descriptor._numberUseGrouping = this._numberUseGrouping;
117
+ descriptor._datePickerFormat = this._datePickerFormat;
118
+ descriptor._datePickerShowTime = this._datePickerShowTime;
119
+ descriptor._placeholder = this._placeholder;
120
+ descriptor._className = this._className;
121
+ descriptor._columnWidth = this._columnWidth;
122
+ descriptor._columnMinWidth = this._columnMinWidth;
123
+ descriptor._columnClassName = this._columnClassName;
124
+ }
125
+ }
126
+ export class FilterLookupDescriptor extends FilterDescriptor {
127
+ constructor(property, modelType) {
128
+ super(property);
129
+ this._modelType = null;
130
+ this._lookupType = FilterLookupTypeEnum.Dropdown;
131
+ this._itemsLabelTranslate = false;
132
+ this._multiselect = false;
133
+ this._dropdownClassName = 'mng-filter-lookup-dropdown';
134
+ this._autocompleteOpenOnFocus = false;
135
+ this._autocompleteInlineSearch = false;
136
+ this._modelType = modelType;
137
+ this._filterType = FilterTypeEnum.Lookup;
138
+ ModelUtil.trySetLookupItemsProperties(this);
139
+ }
140
+ get lookupType() {
141
+ return this._lookupType;
142
+ }
143
+ get dataProvider() {
144
+ return this._dataProvider;
145
+ }
146
+ get itemsLabelProperty() {
147
+ return this._itemsLabelProperty;
148
+ }
149
+ get itemsLabelTranslate() {
150
+ return this._itemsLabelTranslate;
151
+ }
152
+ get itemsValueProperty() {
153
+ return this._itemsValueProperty;
154
+ }
155
+ get dataKeyProperty() {
156
+ return this._dataKeyProperty;
157
+ }
158
+ get multiselect() {
159
+ return this._multiselect;
160
+ }
161
+ get autocompleteOpenOnFocus() {
162
+ return this._autocompleteOpenOnFocus;
163
+ }
164
+ get autocompleteInlineSearch() {
165
+ return this._autocompleteInlineSearch;
166
+ }
167
+ get dropdownClassName() {
168
+ return this._dropdownClassName;
169
+ }
170
+ get modelType() {
171
+ return this._modelType;
172
+ }
173
+ withItemsLabelProperty(itemsLabelProperty, translate = false) {
174
+ this._itemsLabelProperty = itemsLabelProperty;
175
+ this._itemsLabelTranslate = translate;
176
+ return this;
177
+ }
178
+ withItemsValueProperty(itemsValueProperty) {
179
+ this._itemsValueProperty = itemsValueProperty;
180
+ this._dataKeyProperty = itemsValueProperty;
181
+ return this;
182
+ }
183
+ withDataKeyProperty(dataKeyProperty) {
184
+ this._dataKeyProperty = dataKeyProperty;
185
+ this._itemsValueProperty = dataKeyProperty;
186
+ return this;
187
+ }
188
+ withLookup(lookup, serviceType) {
189
+ const dataProvider = new LookupDataProvider(this._modelType);
190
+ if (serviceType) {
191
+ dataProvider.withServiceType(serviceType);
192
+ }
193
+ dataProvider.withLookup(lookup);
194
+ this._dataProvider = dataProvider;
195
+ return this;
196
+ }
197
+ withLookupDataProvider(dataProvider) {
198
+ this._dataProvider = dataProvider;
199
+ return this;
200
+ }
201
+ withMultiselect(multiselect = true) {
202
+ this._multiselect = multiselect;
203
+ return this;
204
+ }
205
+ withDropdownClassName(dropdownClassName) {
206
+ this._dropdownClassName = dropdownClassName;
207
+ return this;
208
+ }
209
+ asAutocomplete(openOnFocus = false, inlineSearch = false) {
210
+ this._lookupType = FilterLookupTypeEnum.Autocomplete;
211
+ this._autocompleteOpenOnFocus = openOnFocus;
212
+ this._autocompleteInlineSearch = inlineSearch;
213
+ return this;
214
+ }
215
+ copy() {
216
+ const descriptor = new FilterLookupDescriptor(this._property, this._modelType);
217
+ this.copyFieldsTo(descriptor);
218
+ return descriptor;
219
+ }
220
+ copyFieldsTo(filter) {
221
+ super.copyFieldsTo(filter);
222
+ filter._dataProvider = this._dataProvider;
223
+ filter._lookupType = this._lookupType;
224
+ filter._itemsLabelProperty = this._itemsLabelProperty;
225
+ filter._itemsLabelTranslate = this._itemsLabelTranslate;
226
+ filter._itemsValueProperty = this._itemsValueProperty;
227
+ filter._dataKeyProperty = this._dataKeyProperty;
228
+ filter._multiselect = this._multiselect;
229
+ filter._dropdownClassName = this._dropdownClassName;
230
+ filter._autocompleteOpenOnFocus = this._autocompleteOpenOnFocus;
231
+ filter._autocompleteInlineSearch = this._autocompleteInlineSearch;
232
+ }
233
+ }
234
+ export class FilterLookupEnumDescriptor extends FilterLookupDescriptor {
235
+ constructor(property, enumType, options, nameAsValue = false, optionsTitlePath) {
236
+ super(property, null);
237
+ this._enumType = enumType;
238
+ if (typeof optionsTitlePath === 'undefined') {
239
+ optionsTitlePath = TypeUtil.findEnumName(enumType);
240
+ }
241
+ const optionEnumValues = Array.isArray(options)
242
+ ? EnumUtil.fromValuesAsEnumValueArray(enumType, options, nameAsValue, optionsTitlePath ?? undefined)
243
+ : EnumUtil.fromConstantsAsEnumValueArray(enumType, nameAsValue, optionsTitlePath ?? undefined);
244
+ const dataProvider = new LookupDataProvider(null).withLookup(() => of(optionEnumValues));
245
+ this.withLookupDataProvider(dataProvider);
246
+ this.withItemsLabelProperty('title', optionsTitlePath !== null);
247
+ this.withItemsValueProperty('value');
248
+ }
249
+ get enumType() {
250
+ return this._enumType;
251
+ }
252
+ asAutocomplete(openOnFocus = true) {
253
+ super.asAutocomplete(openOnFocus, true);
254
+ return this;
255
+ }
256
+ copy() {
257
+ const field = new FilterLookupEnumDescriptor(this._property, this._enumType, []);
258
+ this.copyFieldsTo(field);
259
+ return field;
260
+ }
261
+ }
262
262
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmRlc2NyaXB0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2Rlc2NyaXB0b3JzL2ZpbHRlci5kZXNjcmlwdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBYSxFQUFFLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFHcEMsT0FBTyxFQUFzQixrQkFBa0IsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRzFFLE9BQU8sRUFBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBQyxNQUFNLFVBQVUsQ0FBQztBQUV2RCxPQUFPLEVBQUMsb0JBQW9CLEVBQXVCLGNBQWMsRUFBQyxNQUFNLFNBQVMsQ0FBQztBQUVsRixNQUFNLE9BQU8sZ0JBQWdCO0lBc0J6QixZQUFZLFFBQWdCO1FBcEJsQixnQkFBVyxHQUFHLGNBQWMsQ0FBQyxNQUFNLENBQUM7UUFHcEMsZ0JBQVcsR0FBb0IsSUFBSSxDQUFDO1FBS3BDLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUkxQix3QkFBbUIsR0FBRyxLQUFLLENBQUM7UUFHNUIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixxQkFBZ0IsR0FBRyxFQUFFLENBQUM7UUFDdEIsaUJBQVksR0FBa0IsSUFBSSxDQUFDO1FBQ25DLG9CQUFlLEdBQWtCLElBQUksQ0FBQztRQUc1QyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyxjQUFjO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsSUFBVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBVyx1QkFBdUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsdUJBQXVCO1FBQzlCLE9BQU8sSUFBSSxDQUFDLHdCQUF3QixDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLFdBQVc7UUFDbEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzdCLENBQUM7SUFFRCxJQUFXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUFXLGVBQWU7UUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7SUFDakMsQ0FBQztJQUVELElBQVcsV0FBVztRQUNsQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQVcsY0FBYztRQUNyQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDaEMsQ0FBQztJQUVELElBQVcsUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBRU0sWUFBWSxDQUFDLFVBQTBCO1FBQzFDLElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFRDs7O09BR0c7SUFDSSxrQkFBa0IsQ0FBQyxjQUFzQjtRQUM1QyxJQUFJLENBQUMsZUFBZSxHQUFHLGNBQWMsQ0FBQztRQUN0QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sbUJBQW1CLENBQUMsR0FBWSxFQUFFLEdBQVk7UUFDakQsSUFBSSxDQUFDLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztRQUNwQyxJQUFJLENBQUMsd0JBQXdCLEdBQUcsR0FBRyxDQUFDO1FBQ3BDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxXQUFXLEdBQUcsSUFBSTtRQUN4QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxjQUFjLENBQUMsTUFBZSxFQUFFLFFBQVEsR0FBRyxLQUFLO1FBQ25ELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxNQUFNLENBQUM7UUFDaEMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFFBQVEsQ0FBQztRQUNwQyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sZUFBZSxDQUFDLFdBQW1CO1FBQ3RDLElBQUksQ0FBQyxZQUFZLEdBQUcsV0FBVyxDQUFDO1FBQ2hDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxhQUFhLENBQUMsU0FBaUI7UUFDbEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLG1CQUFtQixDQUFDLFNBQWlCO1FBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxTQUFTLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGVBQWUsQ0FBQyxLQUFjLEVBQUUsUUFBaUI7UUFDcEQsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLElBQUksSUFBSSxDQUFDO1FBQ2xDLElBQUksQ0FBQyxlQUFlLEdBQUcsUUFBUSxJQUFJLElBQUksQ0FBQztRQUN4QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRU0sY0FBYyxDQUFDLFVBQXNDO1FBQ3hELElBQUksQ0FBQyxXQUFXLEdBQUcsVUFBVSxDQUFDO1FBQzlCLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxJQUFJO1FBQ1AsTUFBTSxVQUFVLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBSSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM5QixPQUFPLFVBQVUsQ0FBQztJQUN0QixDQUFDO0lBRVMsWUFBWSxDQUFDLFVBQStCO1FBQ2xELFVBQVUsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQztRQUMxQyxVQUFVLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUM7UUFDbEQsVUFBVSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztRQUNwRSxVQUFVLENBQUMsd0JBQXdCLEdBQUcsSUFBSSxDQUFDLHdCQUF3QixDQUFDO1FBQ3BFLFVBQVUsQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDeEQsVUFBVSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUN0RCxVQUFVLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQzFELFVBQVUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztRQUM1QyxVQUFVLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDeEMsVUFBVSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQzVDLFVBQVUsQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQztRQUNsRCxVQUFVLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3hELENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTyxzQkFBMEIsU0FBUSxnQkFBbUI7SUFnQjlELFlBQVksUUFBZ0IsRUFBRSxTQUE4QjtRQUN4RCxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFoQkQsZUFBVSxHQUF3QixJQUFJLENBQUM7UUFDaEQsZ0JBQVcsR0FBMEIsb0JBQW9CLENBQUMsUUFBUSxDQUFDO1FBSW5FLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUc3QixpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUVyQix1QkFBa0IsR0FBRyw0QkFBNEIsQ0FBQztRQUVsRCw2QkFBd0IsR0FBRyxLQUFLLENBQUM7UUFDakMsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBSXhDLElBQUksQ0FBQyxVQUFVLEdBQUcsU0FBUyxDQUFDO1FBQzVCLElBQUksQ0FBQyxXQUFXLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUN6QyxTQUFTLENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVELElBQVcsVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQVcsWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7SUFDOUIsQ0FBQztJQUVELElBQVcsa0JBQWtCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFXLG1CQUFtQjtRQUMxQixPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBVyxrQkFBa0I7UUFDekIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQVcsZUFBZTtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBVyx1QkFBdUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsd0JBQXdCLENBQUM7SUFDekMsQ0FBQztJQUVELElBQVcsd0JBQXdCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDO0lBQzFDLENBQUM7SUFFRCxJQUFXLGlCQUFpQjtRQUN4QixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQztJQUMzQixDQUFDO0lBRU0sc0JBQXNCLENBQUMsa0JBQTBCLEVBQUUsU0FBUyxHQUFHLEtBQUs7UUFDdkUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLGtCQUFrQixDQUFDO1FBQzlDLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxTQUFTLENBQUM7UUFDdEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLHNCQUFzQixDQUFDLGtCQUEwQjtRQUNwRCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsa0JBQWtCLENBQUM7UUFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGtCQUFrQixDQUFDO1FBQzNDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxtQkFBbUIsQ0FBQyxlQUF1QjtRQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxlQUFlLENBQUM7UUFDM0MsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLFVBQVUsQ0FBSSxNQUE2RixFQUFFLFdBQXFCO1FBQ3JJLE1BQU0sWUFBWSxHQUFHLElBQUksa0JBQWtCLENBQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ25FLElBQUksV0FBVyxFQUFFO1lBQ2IsWUFBWSxDQUFDLGVBQWUsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUM3QztRQUNELFlBQVksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLHNCQUFzQixDQUFDLFlBQXlDO1FBQ25FLElBQUksQ0FBQyxhQUFhLEdBQUcsWUFBWSxDQUFDO1FBQ2xDLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxlQUFlLENBQUMsV0FBVyxHQUFHLElBQUk7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7UUFDaEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLHFCQUFxQixDQUFDLGlCQUF5QjtRQUNsRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsaUJBQWlCLENBQUM7UUFDNUMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVNLGNBQWMsQ0FBQyxXQUFXLEdBQUcsS0FBSyxFQUFFLFlBQVksR0FBRyxLQUFLO1FBQzNELElBQUksQ0FBQyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsWUFBWSxDQUFDO1FBQ3JELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxXQUFXLENBQUM7UUFDNUMsSUFBSSxDQUFDLHlCQUF5QixHQUFHLFlBQVksQ0FBQztRQUM5QyxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRWUsSUFBSTtRQUNoQixNQUFNLFVBQVUsR0FBRyxJQUFJLHNCQUFzQixDQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUIsT0FBTyxVQUFVLENBQUM7SUFDdEIsQ0FBQztJQUVrQixZQUFZLENBQUMsTUFBaUM7UUFDN0QsS0FBSyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMzQixNQUFNLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDMUMsTUFBTSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDO1FBQ3RDLE1BQU0sQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUM7UUFDdEQsTUFBTSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUN4RCxNQUFNLENBQUMsbUJBQW1CLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDO1FBQ3RELE1BQU0sQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFDaEQsTUFBTSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDO1FBQ3hDLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUM7UUFDcEQsTUFBTSxDQUFDLHdCQUF3QixHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQztRQUNoRSxNQUFNLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDO0lBQ3RFLENBQUM7Q0FDSjtBQUVELE1BQU0sT0FBTywwQkFBMkIsU0FBUSxzQkFBa0Q7SUFHOUYsWUFBWSxRQUFnQixFQUFFLFFBQWtCLEVBQUUsT0FBaUMsRUFBRSxXQUFXLEdBQUcsS0FBSyxFQUFFLGdCQUFnQztRQUN0SSxLQUFLLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsUUFBUSxDQUFDO1FBQzFCLElBQUksT0FBTyxnQkFBZ0IsS0FBSyxXQUFXLEVBQUU7WUFDekMsZ0JBQWdCLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUN0RDtRQUNELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUM7WUFDM0MsQ0FBQyxDQUFDLFFBQVEsQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsSUFBSSxTQUFTLENBQUM7WUFDcEcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxRQUFRLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQ25HLE1BQU0sWUFBWSxHQUFHLElBQUksa0JBQWtCLENBQWtDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDO1FBQzFILElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsT0FBTyxFQUFFLGdCQUFnQixLQUFLLElBQUksQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQzFCLENBQUM7SUFFZSxjQUFjLENBQUMsV0FBVyxHQUFHLElBQUk7UUFDN0MsS0FBSyxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEMsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVlLElBQUk7UUFDaEIsTUFBTSxLQUFLLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge09ic2VydmFibGUsIG9mfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtfSBmcm9tICcuLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7SUxvb2t1cERhdGFQcm92aWRlciwgTG9va3VwRGF0YVByb3ZpZGVyfSBmcm9tICcuLi9kYXRhLXByb3ZpZGVycyc7XG5pbXBvcnQge0VudW1WYWx1ZX0gZnJvbSAnLi4vbW9kZWxzJztcbmltcG9ydCB7Q2xhc3NUeXBlLCBFbnVtQ29uc3RhbnRUeXBlLCBFbnVtVHlwZX0gZnJvbSAnLi4vdHlwZXMnO1xuaW1wb3J0IHtFbnVtVXRpbCwgTW9kZWxVdGlsLCBUeXBlVXRpbH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHtJTG9va3VwRGVzY3JpcHRvcn0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7RmlsdGVyTG9va3VwVHlwZUVudW0sIEZpbHRlck1hdGNoTW9kZUVudW0sIEZpbHRlclR5cGVFbnVtfSBmcm9tICcuL3R5cGVzJztcblxuZXhwb3J0IGNsYXNzIEZpbHRlckRlc2NyaXB0b3I8VD4ge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBfcHJvcGVydHk6IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2ZpbHRlclR5cGUgPSBGaWx0ZXJUeXBlRW51bS5TdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9maWx0ZXJQcm9wZXJ0eT86IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBfbWF0Y2hNb2Rlczogc3RyaW5nW10gfCBudWxsID0gbnVsbDtcblxuICAgIC8vIG51bWJlciBmaWx0ZXIgc3BlY2lmaWMgcHJvcGVydGllc1xuICAgIHByb3RlY3RlZCBfbnVtYmVyTWluRnJhY3Rpb25EaWdpdHM/OiBudW1iZXI7XG4gICAgcHJvdGVjdGVkIF9udW1iZXJNYXhGcmFjdGlvbkRpZ2l0cz86IG51bWJlcjtcbiAgICBwcm90ZWN0ZWQgX251bWJlclVzZUdyb3VwaW5nID0gdHJ1ZTtcblxuICAgIC8vIGRhdGUgZmlsdGVyIHNwZWNpZmljIHByb3BlcnRpZXNcbiAgICBwcm90ZWN0ZWQgX2RhdGVQaWNrZXJGb3JtYXQ/OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9kYXRlUGlja2VyU2hvd1RpbWUgPSBmYWxzZTtcblxuICAgIHByb3RlY3RlZCBfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9jbGFzc05hbWUgPSAnJztcbiAgICBwcm90ZWN0ZWQgX2NvbHVtbkNsYXNzTmFtZSA9ICcnO1xuICAgIHByb3RlY3RlZCBfY29sdW1uV2lkdGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICAgIHByb3RlY3RlZCBfY29sdW1uTWluV2lkdGg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgY29uc3RydWN0b3IocHJvcGVydHk6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9wcm9wZXJ0eSA9IHByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmlsdGVyVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlclR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBmaWx0ZXJQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2ZpbHRlclByb3BlcnR5O1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbWF0Y2hNb2RlcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21hdGNoTW9kZXM7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBudW1iZXJNaW5GcmFjdGlvbkRpZ2l0cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX251bWJlck1pbkZyYWN0aW9uRGlnaXRzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbnVtYmVyTWF4RnJhY3Rpb25EaWdpdHMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9udW1iZXJNYXhGcmFjdGlvbkRpZ2l0cztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG51bWJlclVzZUdyb3VwaW5nKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbnVtYmVyVXNlR3JvdXBpbmc7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkYXRlUGlja2VyRm9ybWF0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGF0ZVBpY2tlckZvcm1hdDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGVQaWNrZXJTaG93VGltZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGVQaWNrZXJTaG93VGltZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHBsYWNlaG9sZGVyKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcGxhY2Vob2xkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2x1bW5DbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5DbGFzc05hbWU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBjb2x1bW5XaWR0aCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbHVtbldpZHRoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgY29sdW1uTWluV2lkdGgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb2x1bW5NaW5XaWR0aDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHByb3BlcnR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fcHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGFzRmlsdGVyVHlwZShmaWx0ZXJUeXBlOiBGaWx0ZXJUeXBlRW51bSkge1xuICAgICAgICB0aGlzLl9maWx0ZXJUeXBlID0gZmlsdGVyVHlwZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyBkaWZmZXJlbnQgZmlsdGVyIHByb3BlcnR5IG5hbWUgaW5zdGVhZCBvZiBkZWZhdWx0IHByb3BlcnR5LiBVc2UgdGhpcyBpZiBBUEkgcmVxdWlyZXMgZGlmZmVyZW50IHByb3BlcnR5IHByb3ZpZGVkIHRvIHBlcmZvcm0gY29ycmVjdCBmaWx0ZXIuXG4gICAgICogQHBhcmFtIGZpbHRlclByb3BlcnR5XG4gICAgICovXG4gICAgcHVibGljIHdpdGhGaWx0ZXJQcm9wZXJ0eShmaWx0ZXJQcm9wZXJ0eTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2ZpbHRlclByb3BlcnR5ID0gZmlsdGVyUHJvcGVydHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoTnVtYmVyRnJhY3Rpb25zKG1pbj86IG51bWJlciwgbWF4PzogbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX251bWJlck1pbkZyYWN0aW9uRGlnaXRzID0gbWluO1xuICAgICAgICB0aGlzLl9udW1iZXJNYXhGcmFjdGlvbkRpZ2l0cyA9IG1heDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhOdW1iZXJHcm91cGluZyh1c2VHcm91cGluZyA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fbnVtYmVyVXNlR3JvdXBpbmcgPSB1c2VHcm91cGluZztcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEYXRlRm9ybWF0KGZvcm1hdD86IHN0cmluZywgc2hvd1RpbWUgPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9kYXRlUGlja2VyRm9ybWF0ID0gZm9ybWF0O1xuICAgICAgICB0aGlzLl9kYXRlUGlja2VyU2hvd1RpbWUgPSBzaG93VGltZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhQbGFjZWhvbGRlcihwbGFjZWhvbGRlcjogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX3BsYWNlaG9sZGVyID0gcGxhY2Vob2xkZXI7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoQ2xhc3NOYW1lKGNsYXNzTmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2NsYXNzTmFtZSA9IGNsYXNzTmFtZTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhDb2x1bW5DbGFzc05hbWUoY2xhc3NOYW1lOiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fY29sdW1uQ2xhc3NOYW1lID0gY2xhc3NOYW1lO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aENvbHVtbldpZHRoKHdpZHRoPzogbnVtYmVyLCBtaW5XaWR0aD86IG51bWJlcik6IHRoaXMge1xuICAgICAgICB0aGlzLl9jb2x1bW5XaWR0aCA9IHdpZHRoID8/IG51bGw7XG4gICAgICAgIHRoaXMuX2NvbHVtbk1pbldpZHRoID0gbWluV2lkdGggPz8gbnVsbDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhNYXRjaE1vZGVzKG1hdGNoTW9kZXM6IEFycmF5PEZpbHRlck1hdGNoTW9kZUVudW0+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX21hdGNoTW9kZXMgPSBtYXRjaE1vZGVzO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgY29weSgpOiBGaWx0ZXJEZXNjcmlwdG9yPFQ+IHtcbiAgICAgICAgY29uc3QgZGVzY3JpcHRvciA9IG5ldyBGaWx0ZXJEZXNjcmlwdG9yPFQ+KHRoaXMuX3Byb3BlcnR5KTtcbiAgICAgICAgdGhpcy5jb3B5RmllbGRzVG8oZGVzY3JpcHRvcik7XG4gICAgICAgIHJldHVybiBkZXNjcmlwdG9yO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBjb3B5RmllbGRzVG8oZGVzY3JpcHRvcjogRmlsdGVyRGVzY3JpcHRvcjxUPikge1xuICAgICAgICBkZXNjcmlwdG9yLl9maWx0ZXJUeXBlID0gdGhpcy5fZmlsdGVyVHlwZTtcbiAgICAgICAgZGVzY3JpcHRvci5fZmlsdGVyUHJvcGVydHkgPSB0aGlzLl9maWx0ZXJQcm9wZXJ0eTtcbiAgICAgICAgZGVzY3JpcHRvci5fbnVtYmVyTWluRnJhY3Rpb25EaWdpdHMgPSB0aGlzLl9udW1iZXJNaW5GcmFjdGlvbkRpZ2l0cztcbiAgICAgICAgZGVzY3JpcHRvci5fbnVtYmVyTWF4RnJhY3Rpb25EaWdpdHMgPSB0aGlzLl9udW1iZXJNYXhGcmFjdGlvbkRpZ2l0cztcbiAgICAgICAgZGVzY3JpcHRvci5fbnVtYmVyVXNlR3JvdXBpbmcgPSB0aGlzLl9udW1iZXJVc2VHcm91cGluZztcbiAgICAgICAgZGVzY3JpcHRvci5fZGF0ZVBpY2tlckZvcm1hdCA9IHRoaXMuX2RhdGVQaWNrZXJGb3JtYXQ7XG4gICAgICAgIGRlc2NyaXB0b3IuX2RhdGVQaWNrZXJTaG93VGltZSA9IHRoaXMuX2RhdGVQaWNrZXJTaG93VGltZTtcbiAgICAgICAgZGVzY3JpcHRvci5fcGxhY2Vob2xkZXIgPSB0aGlzLl9wbGFjZWhvbGRlcjtcbiAgICAgICAgZGVzY3JpcHRvci5fY2xhc3NOYW1lID0gdGhpcy5fY2xhc3NOYW1lO1xuICAgICAgICBkZXNjcmlwdG9yLl9jb2x1bW5XaWR0aCA9IHRoaXMuX2NvbHVtbldpZHRoO1xuICAgICAgICBkZXNjcmlwdG9yLl9jb2x1bW5NaW5XaWR0aCA9IHRoaXMuX2NvbHVtbk1pbldpZHRoO1xuICAgICAgICBkZXNjcmlwdG9yLl9jb2x1bW5DbGFzc05hbWUgPSB0aGlzLl9jb2x1bW5DbGFzc05hbWU7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRmlsdGVyTG9va3VwRGVzY3JpcHRvcjxUPiBleHRlbmRzIEZpbHRlckRlc2NyaXB0b3I8VD4gaW1wbGVtZW50cyBJTG9va3VwRGVzY3JpcHRvcjxUPiB7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF9tb2RlbFR5cGU6IENsYXNzVHlwZTxUPiB8IG51bGwgPSBudWxsO1xuICAgIHByb3RlY3RlZCBfbG9va3VwVHlwZT86IEZpbHRlckxvb2t1cFR5cGVFbnVtID0gRmlsdGVyTG9va3VwVHlwZUVudW0uRHJvcGRvd247XG5cbiAgICBwcm90ZWN0ZWQgX2RhdGFQcm92aWRlcj86IElMb29rdXBEYXRhUHJvdmlkZXI8VCwgYW55PjtcbiAgICBwcm90ZWN0ZWQgX2l0ZW1zTGFiZWxQcm9wZXJ0eT86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2l0ZW1zTGFiZWxUcmFuc2xhdGUgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgX2l0ZW1zVmFsdWVQcm9wZXJ0eT86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2RhdGFLZXlQcm9wZXJ0eT86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX211bHRpc2VsZWN0ID0gZmFsc2U7XG5cbiAgICBwcm90ZWN0ZWQgX2Ryb3Bkb3duQ2xhc3NOYW1lID0gJ21uZy1maWx0ZXItbG9va3VwLWRyb3Bkb3duJztcblxuICAgIHByb3RlY3RlZCBfYXV0b2NvbXBsZXRlT3Blbk9uRm9jdXMgPSBmYWxzZTtcbiAgICBwcm90ZWN0ZWQgX2F1dG9jb21wbGV0ZUlubGluZVNlYXJjaCA9IGZhbHNlO1xuXG4gICAgY29uc3RydWN0b3IocHJvcGVydHk6IHN0cmluZywgbW9kZWxUeXBlOiBDbGFzc1R5cGU8VD4gfCBudWxsKSB7XG4gICAgICAgIHN1cGVyKHByb3BlcnR5KTtcbiAgICAgICAgdGhpcy5fbW9kZWxUeXBlID0gbW9kZWxUeXBlO1xuICAgICAgICB0aGlzLl9maWx0ZXJUeXBlID0gRmlsdGVyVHlwZUVudW0uTG9va3VwO1xuICAgICAgICBNb2RlbFV0aWwudHJ5U2V0TG9va3VwSXRlbXNQcm9wZXJ0aWVzKHRoaXMpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbG9va3VwVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvb2t1cFR5cGU7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBkYXRhUHJvdmlkZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kYXRhUHJvdmlkZXI7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpdGVtc0xhYmVsUHJvcGVydHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pdGVtc0xhYmVsUHJvcGVydHk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpdGVtc0xhYmVsVHJhbnNsYXRlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faXRlbXNMYWJlbFRyYW5zbGF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGl0ZW1zVmFsdWVQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2l0ZW1zVmFsdWVQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGRhdGFLZXlQcm9wZXJ0eSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2RhdGFLZXlQcm9wZXJ0eTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG11bHRpc2VsZWN0KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fbXVsdGlzZWxlY3Q7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBhdXRvY29tcGxldGVPcGVuT25Gb2N1cygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2F1dG9jb21wbGV0ZU9wZW5PbkZvY3VzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYXV0b2NvbXBsZXRlSW5saW5lU2VhcmNoKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fYXV0b2NvbXBsZXRlSW5saW5lU2VhcmNoO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZHJvcGRvd25DbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kcm9wZG93bkNsYXNzTmFtZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG1vZGVsVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21vZGVsVHlwZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEl0ZW1zTGFiZWxQcm9wZXJ0eShpdGVtc0xhYmVsUHJvcGVydHk6IHN0cmluZywgdHJhbnNsYXRlID0gZmFsc2UpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5faXRlbXNMYWJlbFByb3BlcnR5ID0gaXRlbXNMYWJlbFByb3BlcnR5O1xuICAgICAgICB0aGlzLl9pdGVtc0xhYmVsVHJhbnNsYXRlID0gdHJhbnNsYXRlO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgd2l0aEl0ZW1zVmFsdWVQcm9wZXJ0eShpdGVtc1ZhbHVlUHJvcGVydHk6IHN0cmluZyk6IHRoaXMge1xuICAgICAgICB0aGlzLl9pdGVtc1ZhbHVlUHJvcGVydHkgPSBpdGVtc1ZhbHVlUHJvcGVydHk7XG4gICAgICAgIHRoaXMuX2RhdGFLZXlQcm9wZXJ0eSA9IGl0ZW1zVmFsdWVQcm9wZXJ0eTtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEYXRhS2V5UHJvcGVydHkoZGF0YUtleVByb3BlcnR5OiBzdHJpbmcpOiB0aGlzIHtcbiAgICAgICAgdGhpcy5fZGF0YUtleVByb3BlcnR5ID0gZGF0YUtleVByb3BlcnR5O1xuICAgICAgICB0aGlzLl9pdGVtc1ZhbHVlUHJvcGVydHkgPSBkYXRhS2V5UHJvcGVydHk7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoTG9va3VwPFM+KGxvb2t1cDogKHF1ZXJ5UGFyYW0/OiBNZWRpdXNRdWVyeVBhcmFtLCBzZXJ2aWNlPzogUywgc2VhcmNoPzogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPEFycmF5PFQ+Piwgc2VydmljZVR5cGU/OiBUeXBlPFM+KTogdGhpcyB7XG4gICAgICAgIGNvbnN0IGRhdGFQcm92aWRlciA9IG5ldyBMb29rdXBEYXRhUHJvdmlkZXI8VCwgUz4odGhpcy5fbW9kZWxUeXBlKTtcbiAgICAgICAgaWYgKHNlcnZpY2VUeXBlKSB7XG4gICAgICAgICAgICBkYXRhUHJvdmlkZXIud2l0aFNlcnZpY2VUeXBlKHNlcnZpY2VUeXBlKTtcbiAgICAgICAgfVxuICAgICAgICBkYXRhUHJvdmlkZXIud2l0aExvb2t1cChsb29rdXApO1xuICAgICAgICB0aGlzLl9kYXRhUHJvdmlkZXIgPSBkYXRhUHJvdmlkZXI7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyB3aXRoTG9va3VwRGF0YVByb3ZpZGVyKGRhdGFQcm92aWRlcjogSUxvb2t1cERhdGFQcm92aWRlcjxULCBhbnk+KTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2RhdGFQcm92aWRlciA9IGRhdGFQcm92aWRlcjtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhNdWx0aXNlbGVjdChtdWx0aXNlbGVjdCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5fbXVsdGlzZWxlY3QgPSBtdWx0aXNlbGVjdDtcbiAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgfVxuXG4gICAgcHVibGljIHdpdGhEcm9wZG93bkNsYXNzTmFtZShkcm9wZG93bkNsYXNzTmFtZTogc3RyaW5nKTogdGhpcyB7XG4gICAgICAgIHRoaXMuX2Ryb3Bkb3duQ2xhc3NOYW1lID0gZHJvcGRvd25DbGFzc05hbWU7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBhc0F1dG9jb21wbGV0ZShvcGVuT25Gb2N1cyA9IGZhbHNlLCBpbmxpbmVTZWFyY2ggPSBmYWxzZSk6IHRoaXMge1xuICAgICAgICB0aGlzLl9sb29rdXBUeXBlID0gRmlsdGVyTG9va3VwVHlwZUVudW0uQXV0b2NvbXBsZXRlO1xuICAgICAgICB0aGlzLl9hdXRvY29tcGxldGVPcGVuT25Gb2N1cyA9IG9wZW5PbkZvY3VzO1xuICAgICAgICB0aGlzLl9hdXRvY29tcGxldGVJbmxpbmVTZWFyY2ggPSBpbmxpbmVTZWFyY2g7XG4gICAgICAgIHJldHVybiB0aGlzO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBjb3B5KCk6IEZpbHRlckxvb2t1cERlc2NyaXB0b3I8VD4ge1xuICAgICAgICBjb25zdCBkZXNjcmlwdG9yID0gbmV3IEZpbHRlckxvb2t1cERlc2NyaXB0b3I8VD4odGhpcy5fcHJvcGVydHksIHRoaXMuX21vZGVsVHlwZSk7XG4gICAgICAgIHRoaXMuY29weUZpZWxkc1RvKGRlc2NyaXB0b3IpO1xuICAgICAgICByZXR1cm4gZGVzY3JpcHRvcjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb3ZlcnJpZGUgY29weUZpZWxkc1RvKGZpbHRlcjogRmlsdGVyTG9va3VwRGVzY3JpcHRvcjxUPikge1xuICAgICAgICBzdXBlci5jb3B5RmllbGRzVG8oZmlsdGVyKTtcbiAgICAgICAgZmlsdGVyLl9kYXRhUHJvdmlkZXIgPSB0aGlzLl9kYXRhUHJvdmlkZXI7XG4gICAgICAgIGZpbHRlci5fbG9va3VwVHlwZSA9IHRoaXMuX2xvb2t1cFR5cGU7XG4gICAgICAgIGZpbHRlci5faXRlbXNMYWJlbFByb3BlcnR5ID0gdGhpcy5faXRlbXNMYWJlbFByb3BlcnR5O1xuICAgICAgICBmaWx0ZXIuX2l0ZW1zTGFiZWxUcmFuc2xhdGUgPSB0aGlzLl9pdGVtc0xhYmVsVHJhbnNsYXRlO1xuICAgICAgICBmaWx0ZXIuX2l0ZW1zVmFsdWVQcm9wZXJ0eSA9IHRoaXMuX2l0ZW1zVmFsdWVQcm9wZXJ0eTtcbiAgICAgICAgZmlsdGVyLl9kYXRhS2V5UHJvcGVydHkgPSB0aGlzLl9kYXRhS2V5UHJvcGVydHk7XG4gICAgICAgIGZpbHRlci5fbXVsdGlzZWxlY3QgPSB0aGlzLl9tdWx0aXNlbGVjdDtcbiAgICAgICAgZmlsdGVyLl9kcm9wZG93bkNsYXNzTmFtZSA9IHRoaXMuX2Ryb3Bkb3duQ2xhc3NOYW1lO1xuICAgICAgICBmaWx0ZXIuX2F1dG9jb21wbGV0ZU9wZW5PbkZvY3VzID0gdGhpcy5fYXV0b2NvbXBsZXRlT3Blbk9uRm9jdXM7XG4gICAgICAgIGZpbHRlci5fYXV0b2NvbXBsZXRlSW5saW5lU2VhcmNoID0gdGhpcy5fYXV0b2NvbXBsZXRlSW5saW5lU2VhcmNoO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIEZpbHRlckxvb2t1cEVudW1EZXNjcmlwdG9yIGV4dGVuZHMgRmlsdGVyTG9va3VwRGVzY3JpcHRvcjxFbnVtVmFsdWU8c3RyaW5nIHwgbnVtYmVyPj4ge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VudW1UeXBlOiBFbnVtVHlwZTtcblxuICAgIGNvbnN0cnVjdG9yKHByb3BlcnR5OiBzdHJpbmcsIGVudW1UeXBlOiBFbnVtVHlwZSwgb3B0aW9ucz86IEFycmF5PEVudW1Db25zdGFudFR5cGU+LCBuYW1lQXNWYWx1ZSA9IGZhbHNlLCBvcHRpb25zVGl0bGVQYXRoPzogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICBzdXBlcihwcm9wZXJ0eSwgbnVsbCk7XG4gICAgICAgIHRoaXMuX2VudW1UeXBlID0gZW51bVR5cGU7XG4gICAgICAgIGlmICh0eXBlb2Ygb3B0aW9uc1RpdGxlUGF0aCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIG9wdGlvbnNUaXRsZVBhdGggPSBUeXBlVXRpbC5maW5kRW51bU5hbWUoZW51bVR5cGUpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG9wdGlvbkVudW1WYWx1ZXMgPSBBcnJheS5pc0FycmF5KG9wdGlvbnMpXG4gICAgICAgICAgICA/IEVudW1VdGlsLmZyb21WYWx1ZXNBc0VudW1WYWx1ZUFycmF5KGVudW1UeXBlLCBvcHRpb25zLCBuYW1lQXNWYWx1ZSwgb3B0aW9uc1RpdGxlUGF0aCA/PyB1bmRlZmluZWQpXG4gICAgICAgICAgICA6IEVudW1VdGlsLmZyb21Db25zdGFudHNBc0VudW1WYWx1ZUFycmF5KGVudW1UeXBlLCBuYW1lQXNWYWx1ZSwgb3B0aW9uc1RpdGxlUGF0aCA/PyB1bmRlZmluZWQpO1xuICAgICAgICBjb25zdCBkYXRhUHJvdmlkZXIgPSBuZXcgTG9va3VwRGF0YVByb3ZpZGVyPEVudW1WYWx1ZTxzdHJpbmcgfCBudW1iZXI+LCBhbnk+KG51bGwpLndpdGhMb29rdXAoKCkgPT4gb2Yob3B0aW9uRW51bVZhbHVlcykpO1xuICAgICAgICB0aGlzLndpdGhMb29rdXBEYXRhUHJvdmlkZXIoZGF0YVByb3ZpZGVyKTtcbiAgICAgICAgdGhpcy53aXRoSXRlbXNMYWJlbFByb3BlcnR5KCd0aXRsZScsIG9wdGlvbnNUaXRsZVBhdGggIT09IG51bGwpO1xuICAgICAgICB0aGlzLndpdGhJdGVtc1ZhbHVlUHJvcGVydHkoJ3ZhbHVlJyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBlbnVtVHlwZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2VudW1UeXBlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBhc0F1dG9jb21wbGV0ZShvcGVuT25Gb2N1cyA9IHRydWUpOiB0aGlzIHtcbiAgICAgICAgc3VwZXIuYXNBdXRvY29tcGxldGUob3Blbk9uRm9jdXMsIHRydWUpO1xuICAgICAgICByZXR1cm4gdGhpcztcbiAgICB9XG5cbiAgICBwdWJsaWMgb3ZlcnJpZGUgY29weSgpOiBGaWx0ZXJMb29rdXBFbnVtRGVzY3JpcHRvciB7XG4gICAgICAgIGNvbnN0IGZpZWxkID0gbmV3IEZpbHRlckxvb2t1cEVudW1EZXNjcmlwdG9yKHRoaXMuX3Byb3BlcnR5LCB0aGlzLl9lbnVtVHlwZSwgW10pO1xuICAgICAgICB0aGlzLmNvcHlGaWVsZHNUbyhmaWVsZCk7XG4gICAgICAgIHJldHVybiBmaWVsZDtcbiAgICB9XG59XG4iXX0=
@@ -1,10 +1,10 @@
1
- export * from './action.descriptor';
2
- export * from './column.descriptor';
3
- export * from './editor.descriptor';
4
- export * from './field.descriptor';
5
- export * from './field-validation.descriptor';
6
- export * from './filter.descriptor';
7
- export * from './model.descriptor';
8
- export * from './table.descriptor';
9
- export * from './tableview.descriptor';
1
+ export * from './action.descriptor';
2
+ export * from './column.descriptor';
3
+ export * from './editor.descriptor';
4
+ export * from './field.descriptor';
5
+ export * from './field-validation.descriptor';
6
+ export * from './filter.descriptor';
7
+ export * from './model.descriptor';
8
+ export * from './table.descriptor';
9
+ export * from './tableview.descriptor';
10
10
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2Rlc2NyaXB0b3JzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHFCQUFxQixDQUFDO0FBQ3BDLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9hY3Rpb24uZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbi5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZWRpdG9yLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9maWVsZC5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGQtdmFsaWRhdGlvbi5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbC5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vdGFibGUuZGVzY3JpcHRvcic7XG5leHBvcnQgKiBmcm9tICcuL3RhYmxldmlldy5kZXNjcmlwdG9yJztcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGQtY29uZmlnLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvZGVzY3JpcHRvcnMvaW50ZXJmYWNlcy9maWVsZC1jb25maWcuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1R5cGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWVtcHR5LWludGVyZmFjZVxuZXhwb3J0IGludGVyZmFjZSBGaWVsZENvbmZpZyB7fVxuXG5leHBvcnQgaW50ZXJmYWNlIEZpZWxkTG9va3VwQ29uZmlnIGV4dGVuZHMgRmllbGRDb25maWcge1xuICAgIHRhYmxlPzoge1xuICAgICAgICBjYXB0aW9uQ29tcG9uZW50PzogVHlwZTxhbnk+O1xuICAgICAgICBjb2x1bW5BY3Rpb25Db21wb25lbnQ/OiBUeXBlPGFueT47XG4gICAgfTtcbn1cbiJdfQ==
@@ -1,3 +1,3 @@
1
- export * from './field-config.interface';
2
- export * from './lookup-descriptor.interface';
1
+ export * from './field-config.interface';
2
+ export * from './lookup-descriptor.interface';
3
3
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL2Rlc2NyaXB0b3JzL2ludGVyZmFjZXMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLCtCQUErQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9maWVsZC1jb25maWcuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbG9va3VwLWRlc2NyaXB0b3IuaW50ZXJmYWNlJztcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9va3VwLWRlc2NyaXB0b3IuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9kZXNjcmlwdG9ycy9pbnRlcmZhY2VzL2xvb2t1cC1kZXNjcmlwdG9yLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtUeXBlfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtNZWRpdXNRdWVyeVBhcmFtfSBmcm9tICcuLi8uLi9hcGkvbW9kZWxzJztcbmltcG9ydCB7SUxvb2t1cERhdGFQcm92aWRlcn0gZnJvbSAnLi4vLi4vZGF0YS1wcm92aWRlcnMnO1xuaW1wb3J0IHtDbGFzc1R5cGV9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBJTG9va3VwRGVzY3JpcHRvcjxUPiB7XG4gICAgbW9kZWxUeXBlOiBDbGFzc1R5cGU8VD4gfCBudWxsO1xuICAgIGl0ZW1zTGFiZWxQcm9wZXJ0eT86IHN0cmluZztcbiAgICBpdGVtc1ZhbHVlUHJvcGVydHk/OiBzdHJpbmc7XG4gICAgZGF0YUtleVByb3BlcnR5Pzogc3RyaW5nO1xuICAgIGRhdGFQcm92aWRlcj86IElMb29rdXBEYXRhUHJvdmlkZXI8VCwgYW55PjtcbiAgICB3aXRoSXRlbXNMYWJlbFByb3BlcnR5KGl0ZW1zTGFiZWxQcm9wZXJ0eTogc3RyaW5nKTogdGhpcztcbiAgICB3aXRoSXRlbXNWYWx1ZVByb3BlcnR5KGl0ZW1zTGFiZWxQcm9wZXJ0eTogc3RyaW5nKTogdGhpcztcbiAgICB3aXRoRGF0YUtleVByb3BlcnR5KGRhdGFLZXlQcm9wZXJ0eTogc3RyaW5nKTogdGhpcztcbiAgICB3aXRoTG9va3VwPFM+KGxvb2t1cDogKHF1ZXJ5UGFyYW0/OiBNZWRpdXNRdWVyeVBhcmFtLCBzZXJ2aWNlPzogUywgc2VhcmNoPzogc3RyaW5nKSA9PiBPYnNlcnZhYmxlPEFycmF5PFQ+Piwgc2VydmljZVR5cGU/OiBUeXBlPFM+KTogdGhpcztcbiAgICB3aXRoTG9va3VwRGF0YVByb3ZpZGVyKGRhdGFQcm92aWRlcjogSUxvb2t1cERhdGFQcm92aWRlcjxULCBhbnk+KTogdGhpcztcbn1cbiJdfQ==