@mediusinc/mng-commons 5.0.0-rc.2 → 5.0.0-rc.4

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 (204) hide show
  1. package/core/data-providers/base-data-provider.factory.d.ts +13 -0
  2. package/core/data-providers/base.data-provider.d.ts +2 -14
  3. package/core/descriptors/editor.descriptor.d.ts +1 -1
  4. package/core/descriptors/tableview.descriptor.d.ts +5 -5
  5. package/core/directives/component.directive.d.ts +2 -2
  6. package/core/index.d.ts +1 -0
  7. package/core/security/permission.service.d.ts +1 -0
  8. package/core/services/commons-router.service.d.ts +3 -3
  9. package/core/services/commons.service.d.ts +31 -42
  10. package/core/services/tokens/module-config.token.d.ts +2 -2
  11. package/esm2022/core/components/notification/notification-wrapper.component.mjs +3 -3
  12. package/esm2022/core/components/pages/error/error.page.component.mjs +3 -3
  13. package/esm2022/core/components/pages/not-found/not-found.page.component.mjs +3 -3
  14. package/esm2022/core/data-providers/base-data-provider.factory.mjs +28 -0
  15. package/esm2022/core/data-providers/base.data-provider.mjs +1 -31
  16. package/esm2022/core/descriptors/editor.descriptor.mjs +1 -1
  17. package/esm2022/core/descriptors/tableview.descriptor.mjs +1 -1
  18. package/esm2022/core/directives/component.directive.mjs +10 -7
  19. package/esm2022/core/index.mjs +2 -1
  20. package/esm2022/core/security/permission.service.mjs +4 -2
  21. package/esm2022/core/services/commons-init.service.mjs +2 -2
  22. package/esm2022/core/services/commons-router.service.mjs +16 -15
  23. package/esm2022/core/services/commons.service.mjs +109 -166
  24. package/esm2022/core/services/tokens/module-config.token.mjs +1 -1
  25. package/esm2022/filter/descriptors/filter-lookup.descriptor.mjs +4 -4
  26. package/esm2022/form/api/data-providers/lookup-data-provider.factory.mjs +31 -0
  27. package/esm2022/form/api/data-providers/lookup.data-provider.mjs +1 -31
  28. package/esm2022/form/api/index.mjs +2 -1
  29. package/esm2022/form/components/autocomplete/autocomplete.component.mjs +92 -83
  30. package/esm2022/form/components/dropdown/dropdown.component.mjs +145 -87
  31. package/esm2022/model/data-providers/base-from-type-data-provider.factory.mjs +8 -0
  32. package/esm2022/model/descriptors/enum.descriptor.mjs +3 -6
  33. package/esm2022/model/descriptors/model.descriptor.mjs +22 -9
  34. package/esm2022/model/descriptors/type.descriptor.mjs +3 -9
  35. package/esm2022/model/index.mjs +3 -1
  36. package/esm2022/table/api/data-providers/table-data-provider.factory.mjs +33 -0
  37. package/esm2022/table/api/data-providers/table.data-provider.mjs +1 -31
  38. package/esm2022/table/api/descriptors/sort.descriptor.mjs +2 -2
  39. package/esm2022/table/api/descriptors/table-descriptor.factory.mjs +89 -0
  40. package/esm2022/table/api/descriptors/table.descriptor.mjs +4 -139
  41. package/esm2022/table/api/helpers/table-descriptor-helpers.mjs +97 -0
  42. package/esm2022/table/api/index.mjs +4 -1
  43. package/esm2022/table/components/column-filter-full/column-filter-full.component.mjs +6 -7
  44. package/esm2022/table/components/column-value/column-value.component.mjs +2 -2
  45. package/esm2022/table/components/table/table.component.mjs +5 -5
  46. package/esm2022/table/pipes/locale-default-row-class.pipe.mjs +2 -2
  47. package/esm2022/table/services/data-list.service.mjs +1 -1
  48. package/esm2022/tableview/action/components/action/action.component.mjs +140 -188
  49. package/esm2022/tableview/action/components/editor/action-editor.component.mjs +56 -66
  50. package/esm2022/tableview/action/components/editor/injector-context/action-editor-injector-context.component.mjs +119 -141
  51. package/esm2022/tableview/action/components/localization/data-language-dropdown.component.mjs +21 -39
  52. package/esm2022/tableview/action/components/route/action-route.component.mjs +17 -23
  53. package/esm2022/tableview/action/components/table/action-table.component.mjs +1 -1
  54. package/esm2022/tableview/action/services/action-executor.service.mjs +9 -9
  55. package/esm2022/tableview/action/services/navigation.service.mjs +3 -2
  56. package/esm2022/tableview/action/services/view-container.service.mjs +5 -21
  57. package/esm2022/tableview/api/action/descriptors/action-descriptor.factory.mjs +119 -0
  58. package/esm2022/tableview/api/action/descriptors/action-editor-descriptor.factory.mjs +77 -0
  59. package/esm2022/tableview/api/action/descriptors/action-editor.descriptor.mjs +20 -80
  60. package/esm2022/tableview/api/action/descriptors/action-link-descriptor.factory.mjs +45 -0
  61. package/esm2022/tableview/api/action/descriptors/action-link.descriptor.mjs +1 -32
  62. package/esm2022/tableview/api/action/descriptors/action.descriptor.mjs +3 -69
  63. package/esm2022/tableview/api/action/models/action-component.model.mjs +1 -1
  64. package/esm2022/tableview/api/action/models/execution/view-container.model.mjs +1 -1
  65. package/esm2022/tableview/api/editor/data-providers/editor-data-provider.factory.mjs +33 -0
  66. package/esm2022/tableview/api/editor/data-providers/editor.data-provider.mjs +1 -31
  67. package/esm2022/tableview/api/editor/descriptors/editor-descriptor.factory.mjs +81 -0
  68. package/esm2022/tableview/api/editor/descriptors/editor.descriptor.mjs +7 -133
  69. package/esm2022/tableview/api/editor/descriptors/field-action.descriptor.mjs +1 -1
  70. package/esm2022/tableview/api/editor/descriptors/field-base.descriptor.mjs +13 -5
  71. package/esm2022/tableview/api/editor/descriptors/field-group.descriptor.mjs +1 -1
  72. package/esm2022/tableview/api/editor/descriptors/field-lookup.descriptor.mjs +4 -4
  73. package/esm2022/tableview/api/editor/descriptors/field-many.descriptor.mjs +3 -3
  74. package/esm2022/tableview/api/editor/descriptors/field-validation.descriptor.mjs +1 -1
  75. package/esm2022/tableview/api/editor/descriptors/field.descriptor.mjs +1 -1
  76. package/esm2022/tableview/api/editor/helpers/editor-descriptor-helpers.mjs +95 -0
  77. package/esm2022/tableview/api/editor/helpers/field-validators.mjs +7 -7
  78. package/esm2022/tableview/api/editor/models/editor-fields.model.mjs +1 -1
  79. package/esm2022/tableview/api/editor/models/field-action-context.model.mjs +1 -1
  80. package/esm2022/tableview/api/editor/models/field-validation.model.mjs +2 -0
  81. package/esm2022/tableview/api/editor/models/field.model.mjs +1 -1
  82. package/esm2022/tableview/api/editor/models/form-editor.event.mjs +1 -1
  83. package/esm2022/tableview/api/editor/models/form-editor.interface.mjs +1 -1
  84. package/esm2022/tableview/api/editor/models/formly-field.model.mjs +1 -1
  85. package/esm2022/tableview/api/index.mjs +11 -1
  86. package/esm2022/tableview/api/tableview/data-providers/tableview-data-provider.factory.mjs +47 -0
  87. package/esm2022/tableview/api/tableview/data-providers/tableview.data-provider.mjs +5 -46
  88. package/esm2022/tableview/api/tableview/descriptors/tableview-descriptor.factory.mjs +111 -0
  89. package/esm2022/tableview/api/tableview/descriptors/tableview.descriptor.mjs +15 -168
  90. package/esm2022/tableview/api/tableview/helpers/files-export.mjs +2 -2
  91. package/esm2022/tableview/api/tableview/helpers/tableview-create.mjs +5 -5
  92. package/esm2022/tableview/api/tableview/helpers/tableview-default-actions.mjs +53 -18
  93. package/esm2022/tableview/api/tableview/helpers/tableview-descriptor-helpers.mjs +110 -0
  94. package/esm2022/tableview/api/tableview/helpers/tableview-input-builder.mjs +2 -2
  95. package/esm2022/tableview/editor/components/editor/form-editor.component.mjs +16 -11
  96. package/esm2022/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.mjs +6 -2
  97. package/esm2022/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.mjs +10 -11
  98. package/esm2022/tableview/editor/components/formly/fields/formly-field-custom/formly-field-custom.component.mjs +1 -1
  99. package/esm2022/tableview/editor/components/formly/fields/formly-field-datepicker/formly-field-datepicker.component.mjs +4 -4
  100. package/esm2022/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.mjs +9 -11
  101. package/esm2022/tableview/editor/components/formly/fields/formly-field-input/formly-field-input.component.mjs +4 -4
  102. package/esm2022/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.mjs +16 -18
  103. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.mjs +20 -22
  104. package/esm2022/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.mjs +18 -20
  105. package/esm2022/tableview/editor/helpers/editor-formly.mjs +27 -6
  106. package/esm2022/tableview/editor/services/form-editor.service.mjs +96 -0
  107. package/esm2022/tableview/index.mjs +2 -1
  108. package/esm2022/tableview/tableview/components/tableview/tableview.component.mjs +3 -3
  109. package/fesm2022/mediusinc-mng-commons-core.mjs +155 -210
  110. package/fesm2022/mediusinc-mng-commons-core.mjs.map +1 -1
  111. package/fesm2022/mediusinc-mng-commons-filter.mjs +3 -3
  112. package/fesm2022/mediusinc-mng-commons-filter.mjs.map +1 -1
  113. package/fesm2022/mediusinc-mng-commons-form-api.mjs +18 -18
  114. package/fesm2022/mediusinc-mng-commons-form-api.mjs.map +1 -1
  115. package/fesm2022/mediusinc-mng-commons-form.mjs +236 -169
  116. package/fesm2022/mediusinc-mng-commons-form.mjs.map +1 -1
  117. package/fesm2022/mediusinc-mng-commons-model.mjs +43 -33
  118. package/fesm2022/mediusinc-mng-commons-model.mjs.map +1 -1
  119. package/fesm2022/mediusinc-mng-commons-table-api.mjs +192 -146
  120. package/fesm2022/mediusinc-mng-commons-table-api.mjs.map +1 -1
  121. package/fesm2022/mediusinc-mng-commons-table.mjs +11 -12
  122. package/fesm2022/mediusinc-mng-commons-table.mjs.map +1 -1
  123. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs +822 -590
  124. package/fesm2022/mediusinc-mng-commons-tableview-api.mjs.map +1 -1
  125. package/fesm2022/mediusinc-mng-commons-tableview.mjs +564 -571
  126. package/fesm2022/mediusinc-mng-commons-tableview.mjs.map +1 -1
  127. package/form/api/data-providers/lookup-data-provider.factory.d.ts +18 -0
  128. package/form/api/data-providers/lookup.data-provider.d.ts +2 -14
  129. package/form/api/index.d.ts +1 -0
  130. package/form/components/autocomplete/autocomplete.component.d.ts +31 -23
  131. package/form/components/dropdown/dropdown.component.d.ts +38 -25
  132. package/model/data-providers/base-from-type-data-provider.factory.d.ts +8 -0
  133. package/model/descriptors/enum.descriptor.d.ts +1 -2
  134. package/model/descriptors/model.descriptor.d.ts +11 -4
  135. package/model/descriptors/type.descriptor.d.ts +2 -4
  136. package/model/index.d.ts +1 -0
  137. package/package.json +7 -7
  138. package/table/api/data-providers/table-data-provider.factory.d.ts +18 -0
  139. package/table/api/data-providers/table.data-provider.d.ts +2 -14
  140. package/table/api/descriptors/table-descriptor.factory.d.ts +44 -0
  141. package/table/api/descriptors/table.descriptor.d.ts +4 -65
  142. package/table/api/helpers/table-descriptor-helpers.d.ts +44 -0
  143. package/table/api/index.d.ts +3 -0
  144. package/table/components/column-filter-full/column-filter-full.component.d.ts +5 -4
  145. package/table/components/table/table.component.d.ts +11 -11
  146. package/table/services/data-list.service.d.ts +9 -10
  147. package/tableview/action/components/action/action.component.d.ts +37 -44
  148. package/tableview/action/components/editor/action-editor.component.d.ts +20 -18
  149. package/tableview/action/components/editor/injector-context/action-editor-injector-context.component.d.ts +23 -23
  150. package/tableview/action/components/localization/data-language-dropdown.component.d.ts +11 -14
  151. package/tableview/action/components/route/action-route.component.d.ts +6 -11
  152. package/tableview/action/components/table/action-table.component.d.ts +3 -3
  153. package/tableview/action/services/view-container.service.d.ts +3 -9
  154. package/tableview/api/action/descriptors/action-descriptor.factory.d.ts +36 -0
  155. package/tableview/api/action/descriptors/action-editor-descriptor.factory.d.ts +31 -0
  156. package/tableview/api/action/descriptors/action-editor.descriptor.d.ts +17 -37
  157. package/tableview/api/action/descriptors/action-link-descriptor.factory.d.ts +15 -0
  158. package/tableview/api/action/descriptors/action-link.descriptor.d.ts +1 -9
  159. package/tableview/api/action/descriptors/action.descriptor.d.ts +4 -27
  160. package/tableview/api/action/models/action-component.model.d.ts +8 -8
  161. package/tableview/api/action/models/execution/view-container.model.d.ts +4 -3
  162. package/tableview/api/editor/data-providers/editor-data-provider.factory.d.ts +18 -0
  163. package/tableview/api/editor/data-providers/editor.data-provider.d.ts +2 -14
  164. package/tableview/api/editor/descriptors/editor-descriptor.factory.d.ts +44 -0
  165. package/tableview/api/editor/descriptors/editor.descriptor.d.ts +34 -90
  166. package/tableview/api/editor/descriptors/field-action.descriptor.d.ts +3 -3
  167. package/tableview/api/editor/descriptors/field-base.descriptor.d.ts +15 -13
  168. package/tableview/api/editor/descriptors/field-group.descriptor.d.ts +7 -6
  169. package/tableview/api/editor/descriptors/field-lookup.descriptor.d.ts +2 -2
  170. package/tableview/api/editor/descriptors/field-many.descriptor.d.ts +8 -8
  171. package/tableview/api/editor/descriptors/field-validation.descriptor.d.ts +6 -6
  172. package/tableview/api/editor/descriptors/field.descriptor.d.ts +1 -1
  173. package/tableview/api/editor/helpers/editor-descriptor-helpers.d.ts +43 -0
  174. package/tableview/api/editor/helpers/field-validators.d.ts +1 -1
  175. package/tableview/api/editor/models/editor-fields.model.d.ts +24 -22
  176. package/tableview/api/editor/models/field-action-context.model.d.ts +10 -8
  177. package/tableview/api/editor/models/field-validation.model.d.ts +26 -0
  178. package/tableview/api/editor/models/field.model.d.ts +0 -19
  179. package/tableview/api/editor/models/form-editor.event.d.ts +24 -16
  180. package/tableview/api/editor/models/form-editor.interface.d.ts +2 -1
  181. package/tableview/api/editor/models/formly-custom-field.model.d.ts +1 -1
  182. package/tableview/api/editor/models/formly-field.model.d.ts +4 -4
  183. package/tableview/api/index.d.ts +10 -0
  184. package/tableview/api/tableview/data-providers/tableview-data-provider.factory.d.ts +25 -0
  185. package/tableview/api/tableview/data-providers/tableview.data-provider.d.ts +3 -20
  186. package/tableview/api/tableview/descriptors/tableview-descriptor.factory.d.ts +49 -0
  187. package/tableview/api/tableview/descriptors/tableview.descriptor.d.ts +40 -100
  188. package/tableview/api/tableview/helpers/tableview-create.d.ts +2 -2
  189. package/tableview/api/tableview/helpers/tableview-default-actions.d.ts +4 -2
  190. package/tableview/api/tableview/helpers/tableview-descriptor-helpers.d.ts +42 -0
  191. package/tableview/api/tableview/helpers/tableview-input-builder.d.ts +1 -1
  192. package/tableview/editor/components/editor/form-editor.component.d.ts +6 -4
  193. package/tableview/editor/components/formly/fields/formly-field-action/formly-field-action.component.d.ts +5 -3
  194. package/tableview/editor/components/formly/fields/formly-field-autocomplete/formly-field-autocomplete.component.d.ts +1 -0
  195. package/tableview/editor/components/formly/fields/formly-field-dropdown/formly-field-dropdown.component.d.ts +1 -1
  196. package/tableview/editor/components/formly/fields/formly-field-lookup-dialog/formly-field-lookup-dialog.component.d.ts +1 -1
  197. package/tableview/editor/components/formly/fields/formly-field-table-dialog-form/formly-field-table-dialog-form.component.d.ts +3 -4
  198. package/tableview/editor/components/formly/fields/formly-field-table-dialog-multiselect/formly-field-table-dialog-multiselect.component.d.ts +3 -4
  199. package/tableview/editor/helpers/editor-formly.d.ts +1 -1
  200. package/tableview/editor/services/form-editor.service.d.ts +39 -0
  201. package/tableview/index.d.ts +1 -0
  202. package/tableview/tableview/components/route/tableview-route.component.d.ts +1 -1
  203. package/tableview/tableview/components/tableview/tableview.component.d.ts +1 -1
  204. package/version-info.json +7 -7
@@ -0,0 +1,97 @@
1
+ import { CommonsInternalError, TypeRegistry } from '@mediusinc/mng-commons/core';
2
+ import { enumModelGeneric, findClassTitleAttribute } from '@mediusinc/mng-commons/model';
3
+ import { ColumnTypeEnum } from '../models/column.model';
4
+ import { getTableClassAttributeDef } from './class-attribute-converter';
5
+ /**
6
+ * generates column based on attributes
7
+ * @param desc Table descriptor
8
+ * @param attribute attribute map
9
+ * @param column if provided, replaced by new, otherwise new is created
10
+ * @param args additional parameters
11
+ */
12
+ export function upsertTableColumnFromAttributeDef(desc, attribute, column, ...args) {
13
+ if (column == null) {
14
+ column = desc.addColumnUnsafe(attribute.name);
15
+ }
16
+ if (attribute.columnType === ColumnTypeEnum.Enum && args.length === 0 && attribute.enumType) {
17
+ args = [enumModelGeneric(attribute.enumType)];
18
+ }
19
+ column = column.asType(attribute.columnType, attribute.columnDisplayType, ...args);
20
+ if (attribute.classType) {
21
+ const titleProperty = findClassTitleAttribute(attribute.classType) ?? undefined;
22
+ if (titleProperty) {
23
+ column.withGetter(value => value?.[titleProperty]);
24
+ }
25
+ }
26
+ else {
27
+ column.withSortUnsafe().withFilterUnsafe();
28
+ }
29
+ return column;
30
+ }
31
+ /**
32
+ * defines modified type of column
33
+ * DO NOT USE with enum (use withCustomEnumType)
34
+ * @param descriptor table descriptor
35
+ * @param property column name
36
+ * @param columnType modified type
37
+ * @param args additional attributes
38
+ * @param columnDisplayType
39
+ */
40
+ export function modifyTableClassAttributeColumnType(descriptor, property, columnType, columnDisplayType, ...args) {
41
+ return modifyTableClassAttributeColumnTypeUnsafe(descriptor, property, columnType, columnDisplayType, ...args);
42
+ }
43
+ export function modifyTableClassAttributeColumnTypeUnsafe(descriptor, property, columnType, columnDisplayType, ...args) {
44
+ if (!descriptor.model.type) {
45
+ throw new CommonsInternalError(`withColumnModifiedType cannot be executed for property ${property}: Model type is not defined.`);
46
+ }
47
+ const attributeDef = getTableClassAttributeDef(descriptor.model.type).find(attr => attr.name === property);
48
+ if (attributeDef != null) {
49
+ attributeDef.columnType = columnType ?? attributeDef.columnType;
50
+ attributeDef.columnDisplayType = columnDisplayType ?? attributeDef.columnDisplayType;
51
+ return upsertTableColumnFromAttributeDef(descriptor, attributeDef, descriptor.columns.find(col => col.property === attributeDef.name), ...args);
52
+ }
53
+ return null;
54
+ }
55
+ /**
56
+ * defines custom enum type for column
57
+ * @param descriptor table descriptor
58
+ * @param property column name
59
+ * @param enumDesc Enum descriptor.
60
+ */
61
+ export function modifyTableClassAttributeColumnEnum(descriptor, property, enumDesc) {
62
+ return tableDescriptorModifyEnumColumnUnsafe(descriptor, property, enumDesc);
63
+ }
64
+ export function tableDescriptorModifyEnumColumnUnsafe(descriptor, property, enumDesc) {
65
+ if (!descriptor.model.type) {
66
+ throw new CommonsInternalError(`withColumnModifiedEnum cannot be executed for property ${property}: Model type is not defined.`);
67
+ }
68
+ const attributeDef = getTableClassAttributeDef(descriptor.model.type).find(attr => attr.name === property);
69
+ if (attributeDef != null) {
70
+ attributeDef.columnType = ColumnTypeEnum.Enum;
71
+ upsertTableColumnFromAttributeDef(descriptor, attributeDef, descriptor.columns.find(col => col.property === property), enumDesc ?? enumModelGeneric(TypeRegistry.get().findEnum(attributeDef.type)));
72
+ }
73
+ return null;
74
+ }
75
+ /**
76
+ * modifies column with class and lookup provider
77
+ * @param descriptor table descriptor
78
+ * @param property column name
79
+ * @param lookupProvider lookupProvider for class
80
+ * @param optionsLabelProperty
81
+ * @param filterProperty
82
+ */
83
+ export function modifyTableColumnFilterLookup(descriptor, property, lookupProvider, optionsLabelProperty, filterProperty) {
84
+ return modifyTableColumnFilterLookupUnsafe(descriptor, property, lookupProvider, optionsLabelProperty, filterProperty);
85
+ }
86
+ export function modifyTableColumnFilterLookupUnsafe(descriptor, property, lookupProvider, optionsLabelProperty, filterProperty) {
87
+ const column = descriptor.columns.find(col => col.property === property);
88
+ if (column) {
89
+ const filter = descriptor.addFilterLookupUnsafe(column.property, lookupProvider, filterProperty);
90
+ if (optionsLabelProperty) {
91
+ filter.withOptionsLabelPropertyUnsafe(optionsLabelProperty);
92
+ }
93
+ return filter;
94
+ }
95
+ return null;
96
+ }
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZGVzY3JpcHRvci1oZWxwZXJzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vdGFibGUvYXBpL3NyYy9oZWxwZXJzL3RhYmxlLWRlc2NyaXB0b3ItaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsb0JBQW9CLEVBQWlDLFlBQVksRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRTlHLE9BQU8sRUFBaUIsZ0JBQWdCLEVBQUUsdUJBQXVCLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUt2RyxPQUFPLEVBQXdCLGNBQWMsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzdFLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBRXRFOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxpQ0FBaUMsQ0FDN0MsSUFBK0MsRUFDL0MsU0FBaUMsRUFDakMsTUFBa0QsRUFDbEQsR0FBRyxJQUFXO0lBRWQsSUFBSSxNQUFNLElBQUksSUFBSSxFQUFFLENBQUM7UUFDakIsTUFBTSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLFNBQVMsQ0FBQyxVQUFVLEtBQUssY0FBYyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDMUYsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsU0FBUyxDQUFDLGlCQUFpQixFQUFFLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDbkYsSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDdEIsTUFBTSxhQUFhLEdBQUcs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QUFRLEtBQUssUUFBUSxDQUFDLEVBQ3pELFFBQVEsSUFBSSxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQWEsQ0FBQyxDQUMzRixDQUFDO0lBQ04sQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRDs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLDZCQUE2QixDQUN6QyxVQUFxRCxFQUNyRCxRQUFrQixFQUNsQixjQUFzRCxFQUN0RCxvQkFBd0MsRUFDeEMsY0FBa0M7SUFFbEMsT0FBTyxtQ0FBbUMsQ0FDdEMsVUFBVSxFQUNWLFFBQWtCLEVBQ2xCLGNBQWMsRUFDZCxvQkFBOEIsRUFDOUIsY0FBd0IsQ0FDM0IsQ0FBQztBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsbUNBQW1DLENBQy9DLFVBQXFELEVBQ3JELFFBQWdCLEVBQ2hCLGNBQTBELEVBQzFELG9CQUE2QixFQUM3QixjQUF1QjtJQUV2QixNQUFNLE1BQU0sR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEtBQUssUUFBUSxDQUFDLENBQUM7SUFDekUsSUFBSSxNQUFNLEVBQUUsQ0FBQztRQUNULE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxjQUFjLENBQUMsQ0FBQztRQUNqRyxJQUFJLG9CQUFvQixFQUFFLENBQUM7WUFDdkIsTUFBTSxDQUFDLDhCQUE4QixDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDaEUsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21tb25zSW50ZXJuYWxFcnJvciwgRW51bVR5cGUsIElMb29rdXBEYXRhUHJvdmlkZXIsIFR5cGVSZWdpc3RyeX0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9jb3JlJztcbmltcG9ydCB7RmlsdGVyTG9va3VwRGVzY3JpcHRvcn0gZnJvbSAnQG1lZGl1c2luYy9tbmctY29tbW9ucy9maWx0ZXInO1xuaW1wb3J0IHtFbnVtRGVzY3JpcHRvciwgZW51bU1vZGVsR2VuZXJpYywgZmluZENsYXNzVGl0bGVBdHRyaWJ1dGV9IGZyb20gJ0BtZWRpdXNpbmMvbW5nLWNvbW1vbnMvbW9kZWwnO1xuXG5pbXBvcnQge0NvbHVtbkRlc2NyaXB0b3J9IGZyb20gJy4uL2Rlc2NyaXB0b3JzL2NvbHVtbi5kZXNjcmlwdG9yJztcbmltcG9ydCB7VGFibGVEZXNjcmlwdG9ySW5zdH0gZnJvbSAnLi4vZGVzY3JpcHRvcnMvdGFibGUuZGVzY3JpcHRvcic7XG5pbXBvcnQge1RhYmxlQ2xhc3NBdHRyaWJ1dGVEZWZ9IGZyb20gJy4uL21vZGVscy9jbGFzcy10YWJsZS1hdHRyaWJ1dGUubW9kZWwnO1xuaW1wb3J0IHtDb2x1bW5EaXNwbGF5VHlwZUVudW0sIENvbHVtblR5cGVFbnVtfSBmcm9tICcuLi9tb2RlbHMvY29sdW1uLm1vZGVsJztcbmltcG9ydCB7Z2V0VGFibGVDbGFzc0F0dHJpYnV0ZURlZn0gZnJvbSAnLi9jbGFzcy1hdHRyaWJ1dGUtY29udmVydGVyJztcblxuLyoqXG4gKiBnZW5lcmF0ZXMgY29sdW1uIGJhc2VkIG9uIGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSBkZXNjIFRhYmxlIGRlc2NyaXB0b3JcbiAqIEBwYXJhbSBhdHRyaWJ1dGUgYXR0cmlidXRlIG1hcFxuICogQHBhcmFtIGNvbHVtbiBpZiBwcm92aWRlZCwgcmVwbGFjZWQgYnkgbmV3LCBvdGhlcndpc2UgbmV3IGlzIGNyZWF0ZWRcbiAqIEBwYXJhbSBhcmdzIGFkZGl0aW9uYWwgcGFyYW1ldGVyc1xuICovXG5leHBvcnQgZnVuY3Rpb24gdXBzZXJ0VGFibGVDb2x1bW5Gcm9tQXR0cmlidXRlRGVmPENvbHVtbk1vZGVsLCBUYWJsZU1vZGVsPihcbiAgICBkZXNjOiBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIGFueSwgYW55PixcbiAgICBhdHRyaWJ1dGU6IFRhYmxlQ2xhc3NBdHRyaWJ1dGVEZWYsXG4gICAgY29sdW1uPzogQ29sdW1uRGVzY3JpcHRvcjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbD4sXG4gICAgLi4uYXJnczogYW55W11cbik6IENvbHVtbkRlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWw+IHtcbiAgICBpZiAoY29sdW1uID09IG51bGwpIHtcbiAgICAgICAgY29sdW1uID0gZGVzYy5hZGRDb2x1bW5VbnNhZmUoYXR0cmlidXRlLm5hbWUpO1xuICAgIH1cblxuICAgIGlmIChhdHRyaWJ1dGUuY29sdW1uVHlwZSA9PT0gQ29sdW1uVHlwZUVudW0uRW51bSAmJiBhcmdzLmxlbmd0aCA9PT0gMCAmJiBhdHRyaWJ1dGUuZW51bVR5cGUpIHtcbiAgICAgICAgYXJncyA9IFtlbnVtTW9kZWxHZW5lcmljKGF0dHJpYnV0ZS5lbnVtVHlwZSldO1xuICAgIH1cblxuICAgIGNvbHVtbiA9IGNvbHVtbi5hc1R5cGUoYXR0cmlidXRlLmNvbHVtblR5cGUsIGF0dHJpYnV0ZS5jb2x1bW5EaXNwbGF5VHlwZSwgLi4uYXJncyk7XG4gICAgaWYgKGF0dHJpYnV0ZS5jbGFzc1R5cGUpIHtcbiAgICAgICAgY29uc3QgdGl0bGVQcm9wZXJ0eSA9IGZpbmRDbGFzc1RpdGxlQXR0cmlidXRlKGF0dHJpYnV0ZS5jbGFzc1R5cGUpID8/IHVuZGVmaW5lZDtcbiAgICAgICAgaWYgKHRpdGxlUHJvcGVydHkpIHtcbiAgICAgICAgICAgIGNvbHVtbi53aXRoR2V0dGVyKHZhbHVlID0+IHZhbHVlPy5bdGl0bGVQcm9wZXJ0eSBhcyBrZXlvZiBvYmplY3RdKTtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbHVtbi53aXRoU29ydFVuc2FmZSgpLndpdGhGaWx0ZXJVbnNhZmUoKTtcbiAgICB9XG5cbiAgICByZXR1cm4gY29sdW1uO1xufVxuXG4vKipcbiAqIGRlZmluZXMgbW9kaWZpZWQgdHlwZSBvZiBjb2x1bW5cbiAqIERPIE5PVCBVU0Ugd2l0aCBlbnVtICh1c2Ugd2l0aEN1c3RvbUVudW1UeXBlKVxuICogQHBhcmFtIGRlc2NyaXB0b3IgdGFibGUgZGVzY3JpcHRvclxuICogQHBhcmFtIHByb3BlcnR5IGNvbHVtbiBuYW1lXG4gKiBAcGFyYW0gY29sdW1uVHlwZSBtb2RpZmllZCB0eXBlXG4gKiBAcGFyYW0gYXJncyBhZGRpdGlvbmFsIGF0dHJpYnV0ZXNcbiAqIEBwYXJhbSBjb2x1bW5EaXNwbGF5VHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZ5VGFibGVDbGFzc0F0dHJpYnV0ZUNvbHVtblR5cGU8XG4gICAgVGFibGVNb2RlbCxcbiAgICBQcm9wZXJ0eSBleHRlbmRzIGtleW9mIFRhYmxlTW9kZWwsXG4gICAgQ29sdW1uTW9kZWwgPSBOb25OdWxsYWJsZTxUYWJsZU1vZGVsW1Byb3BlcnR5XT4sXG4gICAgQ29sdW1uVmFsdWUgPSBUYWJsZU1vZGVsW1Byb3BlcnR5XVxuPihcbiAgICBkZXNjcmlwdG9yOiBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIGFueSwgYW55PixcbiAgICBwcm9wZXJ0eTogUHJvcGVydHksXG4gICAgY29sdW1uVHlwZT86IENvbHVtblR5cGVFbnVtLFxuICAgIGNvbHVtbkRpc3BsYXlUeXBlPzogQ29sdW1uRGlzcGxheVR5cGVFbnVtLFxuICAgIC4uLmFyZ3M6IGFueVtdXG4pOiBDb2x1bW5EZXNjcmlwdG9yPENvbHVtbk1vZGVsLCBUYWJsZU1vZGVsLCBDb2x1bW5WYWx1ZT4gfCBudWxsIHtcbiAgICByZXR1cm4gbW9kaWZ5VGFibGVDbGFzc0F0dHJpYnV0ZUNvbHVtblR5cGVVbnNhZmU8VGFibGVNb2RlbCwgQ29sdW1uTW9kZWwsIENvbHVtblZhbHVlPihkZXNjcmlwdG9yLCBwcm9wZXJ0eSBhcyBzdHJpbmcsIGNvbHVtblR5cGUsIGNvbHVtbkRpc3BsYXlUeXBlLCAuLi5hcmdzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1vZGlmeVRhYmxlQ2xhc3NBdHRyaWJ1dGVDb2x1bW5UeXBlVW5zYWZlPFRhYmxlTW9kZWwsIENvbHVtbk1vZGVsID0gYW55LCBDb2x1bW5WYWx1ZSA9IENvbHVtbk1vZGVsPihcbiAgICBkZXNjcmlwdG9yOiBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIGFueSwgYW55PixcbiAgICBwcm9wZXJ0eTogc3RyaW5nLFxuICAgIGNvbHVtblR5cGU/OiBDb2x1bW5UeXBlRW51bSxcbiAgICBjb2x1bW5EaXNwbGF5VHlwZT86IENvbHVtbkRpc3BsYXlUeXBlRW51bSxcbiAgICAuLi5hcmdzOiBhbnlbXVxuKTogQ29sdW1uRGVzY3JpcHRvcjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbCwgQ29sdW1uVmFsdWU+IHwgbnVsbCB7XG4gICAgaWYgKCFkZXNjcmlwdG9yLm1vZGVsLnR5cGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGB3aXRoQ29sdW1uTW9kaWZpZWRUeXBlIGNhbm5vdCBiZSBleGVjdXRlZCBmb3IgcHJvcGVydHkgJHtwcm9wZXJ0eX06IE1vZGVsIHR5cGUgaXMgbm90IGRlZmluZWQuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlRGVmID0gZ2V0VGFibGVDbGFzc0F0dHJpYnV0ZURlZihkZXNjcmlwdG9yLm1vZGVsLnR5cGUpLmZpbmQoYXR0ciA9PiBhdHRyLm5hbWUgPT09IHByb3BlcnR5KTtcblxuICAgIGlmIChhdHRyaWJ1dGVEZWYgIT0gbnVsbCkge1xuICAgICAgICBhdHRyaWJ1dGVEZWYuY29sdW1uVHlwZSA9IGNvbHVtblR5cGUgPz8gYXR0cmlidXRlRGVmLmNvbHVtblR5cGU7XG4gICAgICAgIGF0dHJpYnV0ZURlZi5jb2x1bW5EaXNwbGF5VHlwZSA9IGNvbHVtbkRpc3BsYXlUeXBlID8/IGF0dHJpYnV0ZURlZi5jb2x1bW5EaXNwbGF5VHlwZTtcbiAgICAgICAgcmV0dXJuIHVwc2VydFRhYmxlQ29sdW1uRnJvbUF0dHJpYnV0ZURlZihcbiAgICAgICAgICAgIGRlc2NyaXB0b3IsXG4gICAgICAgICAgICBhdHRyaWJ1dGVEZWYsXG4gICAgICAgICAgICBkZXNjcmlwdG9yLmNvbHVtbnMuZmluZChjb2wgPT4gY29sLnByb3BlcnR5ID09PSBhdHRyaWJ1dGVEZWYubmFtZSksXG4gICAgICAgICAgICAuLi5hcmdzXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogZGVmaW5lcyBjdXN0b20gZW51bSB0eXBlIGZvciBjb2x1bW5cbiAqIEBwYXJhbSBkZXNjcmlwdG9yIHRhYmxlIGRlc2NyaXB0b3JcbiAqIEBwYXJhbSBwcm9wZXJ0eSBjb2x1bW4gbmFtZVxuICogQHBhcmFtIGVudW1EZXNjIEVudW0gZGVzY3JpcHRvci5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1vZGlmeVRhYmxlQ2xhc3NBdHRyaWJ1dGVDb2x1bW5FbnVtPFxuICAgIFRhYmxlTW9kZWwsXG4gICAgUHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBUYWJsZU1vZGVsLFxuICAgIEVudW0gZXh0ZW5kcyBOb25OdWxsYWJsZTxUYWJsZU1vZGVsW1Byb3BlcnR5XT4sXG4gICAgQ29sdW1uTW9kZWwgPSBOb25OdWxsYWJsZTxUYWJsZU1vZGVsW1Byb3BlcnR5XT4sXG4gICAgQ29sdW1uVmFsdWUgPSBUYWJsZU1vZGVsW1Byb3BlcnR5XVxuPihkZXNjcmlwdG9yOiBUYWJsZURlc2NyaXB0b3JJbnN0PFRhYmxlTW9kZWwsIGFueSwgYW55PiwgcHJvcGVydHk6IFByb3BlcnR5LCBlbnVtRGVzYz86IEVudW1EZXNjcmlwdG9yPEVudW0+KTogQ29sdW1uRGVzY3JpcHRvcjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbCwgQ29sdW1uVmFsdWU+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRhYmxlRGVzY3JpcHRvck1vZGlmeUVudW1Db2x1bW5VbnNhZmU8VGFibGVNb2RlbCwgRW51bSwgQ29sdW1uTW9kZWwsIENvbHVtblZhbHVlPihkZXNjcmlwdG9yLCBwcm9wZXJ0eSBhcyBzdHJpbmcsIGVudW1EZXNjKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHRhYmxlRGVzY3JpcHRvck1vZGlmeUVudW1Db2x1bW5VbnNhZmU8VGFibGVNb2RlbCwgRW51bSA9IGFueSwgQ29sdW1uTW9kZWwgPSBhbnksIENvbHVtblZhbHVlID0gQ29sdW1uTW9kZWw+KFxuICAgIGRlc2NyaXB0b3I6IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgYW55LCBhbnk+LFxuICAgIHByb3BlcnR5OiBzdHJpbmcsXG4gICAgZW51bURlc2M/OiBFbnVtRGVzY3JpcHRvcjxFbnVtPlxuKTogQ29sdW1uRGVzY3JpcHRvcjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbCwgQ29sdW1uVmFsdWU+IHwgbnVsbCB7XG4gICAgaWYgKCFkZXNjcmlwdG9yLm1vZGVsLnR5cGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IENvbW1vbnNJbnRlcm5hbEVycm9yKGB3aXRoQ29sdW1uTW9kaWZpZWRFbnVtIGNhbm5vdCBiZSBleGVjdXRlZCBmb3IgcHJvcGVydHkgJHtwcm9wZXJ0eX06IE1vZGVsIHR5cGUgaXMgbm90IGRlZmluZWQuYCk7XG4gICAgfVxuXG4gICAgY29uc3QgYXR0cmlidXRlRGVmID0gZ2V0VGFibGVDbGFzc0F0dHJpYnV0ZURlZihkZXNjcmlwdG9yLm1vZGVsLnR5cGUpLmZpbmQoYXR0ciA9PiBhdHRyLm5hbWUgPT09IHByb3BlcnR5KTtcblxuICAgIGlmIChhdHRyaWJ1dGVEZWYgIT0gbnVsbCkge1xuICAgICAgICBhdHRyaWJ1dGVEZWYuY29sdW1uVHlwZSA9IENvbHVtblR5cGVFbnVtLkVudW07XG4gICAgICAgIHVwc2VydFRhYmxlQ29sdW1uRnJvbUF0dHJpYnV0ZURlZihcbiAgICAgICAgICAgIGRlc2NyaXB0b3IsXG4gICAgICAgICAgICBhdHRyaWJ1dGVEZWYsXG4gICAgICAgICAgICBkZXNjcmlwdG9yLmNvbHVtbnMuZmluZChjb2wgPT4gY29sLnByb3BlcnR5ID09PSBwcm9wZXJ0eSksXG4gICAgICAgICAgICBlbnVtRGVzYyA/PyBlbnVtTW9kZWxHZW5lcmljKFR5cGVSZWdpc3RyeS5nZXQoKS5maW5kRW51bShhdHRyaWJ1dGVEZWYudHlwZSkgYXMgRW51bVR5cGUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG59XG5cbi8qKlxuICogbW9kaWZpZXMgY29sdW1uIHdpdGggY2xhc3MgYW5kIGxvb2t1cCBwcm92aWRlclxuICogQHBhcmFtIGRlc2NyaXB0b3IgdGFibGUgZGVzY3JpcHRvclxuICogQHBhcmFtIHByb3BlcnR5IGNvbHVtbiBuYW1lXG4gKiBAcGFyYW0gbG9va3VwUHJvdmlkZXIgbG9va3VwUHJvdmlkZXIgZm9yIGNsYXNzXG4gKiBAcGFyYW0gb3B0aW9uc0xhYmVsUHJvcGVydHlcbiAqIEBwYXJhbSBmaWx0ZXJQcm9wZXJ0eVxuICovXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZ5VGFibGVDb2x1bW5GaWx0ZXJMb29rdXA8VGFibGVNb2RlbCwgUHJvcGVydHkgZXh0ZW5kcyBrZXlvZiBUYWJsZU1vZGVsLCBTZXJ2aWNlLCBDb2x1bW5Nb2RlbCA9IE5vbk51bGxhYmxlPFRhYmxlTW9kZWxbUHJvcGVydHldPj4oXG4gICAgZGVzY3JpcHRvcjogVGFibGVEZXNjcmlwdG9ySW5zdDxUYWJsZU1vZGVsLCBhbnksIGFueT4sXG4gICAgcHJvcGVydHk6IFByb3BlcnR5LFxuICAgIGxvb2t1cFByb3ZpZGVyPzogSUxvb2t1cERhdGFQcm92aWRlcjxDb2x1bW5Nb2RlbCwgYW55PixcbiAgICBvcHRpb25zTGFiZWxQcm9wZXJ0eT86IGtleW9mIENvbHVtbk1vZGVsLFxuICAgIGZpbHRlclByb3BlcnR5Pzoga2V5b2YgQ29sdW1uTW9kZWxcbik6IEZpbHRlckxvb2t1cERlc2NyaXB0b3I8Q29sdW1uTW9kZWwsIFRhYmxlTW9kZWwsIFNlcnZpY2U+IHwgbnVsbCB7XG4gICAgcmV0dXJuIG1vZGlmeVRhYmxlQ29sdW1uRmlsdGVyTG9va3VwVW5zYWZlPFRhYmxlTW9kZWwsIFNlcnZpY2UsIENvbHVtbk1vZGVsPihcbiAgICAgICAgZGVzY3JpcHRvcixcbiAgICAgICAgcHJvcGVydHkgYXMgc3RyaW5nLFxuICAgICAgICBsb29rdXBQcm92aWRlcixcbiAgICAgICAgb3B0aW9uc0xhYmVsUHJvcGVydHkgYXMgc3RyaW5nLFxuICAgICAgICBmaWx0ZXJQcm9wZXJ0eSBhcyBzdHJpbmdcbiAgICApO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbW9kaWZ5VGFibGVDb2x1bW5GaWx0ZXJMb29rdXBVbnNhZmU8VGFibGVNb2RlbCwgU2VydmljZSwgQ29sdW1uTW9kZWw+KFxuICAgIGRlc2NyaXB0b3I6IFRhYmxlRGVzY3JpcHRvckluc3Q8VGFibGVNb2RlbCwgYW55LCBhbnk+LFxuICAgIHByb3BlcnR5OiBzdHJpbmcsXG4gICAgbG9va3VwUHJvdmlkZXI/OiBJTG9va3VwRGF0YVByb3ZpZGVyPENvbHVtbk1vZGVsLCBTZXJ2aWNlPixcbiAgICBvcHRpb25zTGFiZWxQcm9wZXJ0eT86IHN0cmluZyxcbiAgICBmaWx0ZXJQcm9wZXJ0eT86IHN0cmluZ1xuKTogRmlsdGVyTG9va3VwRGVzY3JpcHRvcjxDb2x1bW5Nb2RlbCwgVGFibGVNb2RlbCwgU2VydmljZT4gfCBudWxsIHtcbiAgICBjb25zdCBjb2x1bW4gPSBkZXNjcmlwdG9yLmNvbHVtbnMuZmluZChjb2wgPT4gY29sLnByb3BlcnR5ID09PSBwcm9wZXJ0eSk7XG4gICAgaWYgKGNvbHVtbikge1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSBkZXNjcmlwdG9yLmFkZEZpbHRlckxvb2t1cFVuc2FmZShjb2x1bW4ucHJvcGVydHksIGxvb2t1cFByb3ZpZGVyLCBmaWx0ZXJQcm9wZXJ0eSk7XG4gICAgICAgIGlmIChvcHRpb25zTGFiZWxQcm9wZXJ0eSkge1xuICAgICAgICAgICAgZmlsdGVyLndpdGhPcHRpb25zTGFiZWxQcm9wZXJ0eVVuc2FmZShvcHRpb25zTGFiZWxQcm9wZXJ0eSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG59XG4iXX0=
@@ -1,11 +1,14 @@
1
1
  // data providers
2
2
  export * from './data-providers/table.data-provider';
3
+ export * from './data-providers/table-data-provider.factory';
3
4
  // descriptors
4
5
  export * from './descriptors/column.descriptor';
5
6
  export * from './descriptors/sort.descriptor';
6
7
  export * from './descriptors/table.descriptor';
8
+ export * from './descriptors/table-descriptor.factory';
7
9
  // helpers
8
10
  export * from './helpers/class-attribute-converter';
11
+ export * from './helpers/table-descriptor-helpers';
9
12
  // models
10
13
  export * from './models/class-table-attribute.model';
11
14
  export * from './models/column.model';
@@ -13,4 +16,4 @@ export * from './models/column-value.model';
13
16
  export * from './models/table.model';
14
17
  export * from './models/table-columns.model';
15
18
  export * from './models/table-event.model';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90YWJsZS9hcGkvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQixjQUFjLHNDQUFzQyxDQUFDO0FBRXJELGNBQWM7QUFDZCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxnQ0FBZ0MsQ0FBQztBQUUvQyxVQUFVO0FBQ1YsY0FBYyxxQ0FBcUMsQ0FBQztBQUVwRCxTQUFTO0FBQ1QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBkYXRhIHByb3ZpZGVyc1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXByb3ZpZGVycy90YWJsZS5kYXRhLXByb3ZpZGVyJztcblxuLy8gZGVzY3JpcHRvcnNcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvY29sdW1uLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy9zb3J0LmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy90YWJsZS5kZXNjcmlwdG9yJztcblxuLy8gaGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL2NsYXNzLWF0dHJpYnV0ZS1jb252ZXJ0ZXInO1xuXG4vLyBtb2RlbHNcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2NsYXNzLXRhYmxlLWF0dHJpYnV0ZS5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jb2x1bW4ubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvY29sdW1uLXZhbHVlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3RhYmxlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL3RhYmxlLWNvbHVtbnMubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdGFibGUtZXZlbnQubW9kZWwnO1xuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi90YWJsZS9hcGkvc3JjL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGlCQUFpQjtBQUNqQixjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsOENBQThDLENBQUM7QUFFN0QsY0FBYztBQUNkLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsd0NBQXdDLENBQUM7QUFFdkQsVUFBVTtBQUNWLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUVuRCxTQUFTO0FBQ1QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBkYXRhIHByb3ZpZGVyc1xuZXhwb3J0ICogZnJvbSAnLi9kYXRhLXByb3ZpZGVycy90YWJsZS5kYXRhLXByb3ZpZGVyJztcbmV4cG9ydCAqIGZyb20gJy4vZGF0YS1wcm92aWRlcnMvdGFibGUtZGF0YS1wcm92aWRlci5mYWN0b3J5JztcblxuLy8gZGVzY3JpcHRvcnNcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvY29sdW1uLmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy9zb3J0LmRlc2NyaXB0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9kZXNjcmlwdG9ycy90YWJsZS5kZXNjcmlwdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vZGVzY3JpcHRvcnMvdGFibGUtZGVzY3JpcHRvci5mYWN0b3J5JztcblxuLy8gaGVscGVyc1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL2NsYXNzLWF0dHJpYnV0ZS1jb252ZXJ0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzL3RhYmxlLWRlc2NyaXB0b3ItaGVscGVycyc7XG5cbi8vIG1vZGVsc1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvY2xhc3MtdGFibGUtYXR0cmlidXRlLm1vZGVsJztcbmV4cG9ydCAqIGZyb20gJy4vbW9kZWxzL2NvbHVtbi5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy9jb2x1bW4tdmFsdWUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdGFibGUubW9kZWwnO1xuZXhwb3J0ICogZnJvbSAnLi9tb2RlbHMvdGFibGUtY29sdW1ucy5tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVscy90YWJsZS1ldmVudC5tb2RlbCc7XG4iXX0=