@acorex/modules 18.0.15 → 18.1.0

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 (114) hide show
  1. package/application-management/index.d.ts +9 -7
  2. package/application-management/lib/actions/index.d.ts +1 -0
  3. package/application-management/lib/actions/show-detail.action.d.ts +8 -0
  4. package/application-management/lib/application-management-mock-data.d.ts +3 -18
  5. package/application-management/lib/application-management.module.d.ts +12 -2
  6. package/application-management/lib/application-management.service.d.ts +2 -0
  7. package/application-management/lib/entities/property.entity.d.ts +3 -0
  8. package/application-management/lib/layouts/index.d.ts +1 -0
  9. package/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.d.ts +15 -0
  10. package/application-management/lib/module-designer/module-designer.component.d.ts +32 -0
  11. package/application-management/lib/module-designer/module-designer.service.d.ts +34 -0
  12. package/application-management/lib/module-designer/module-designer.type.d.ts +1 -0
  13. package/application-management/lib/services/context-menu.service.d.ts +26 -0
  14. package/application-management/lib/workflows/create-module-entity.workflow.d.ts +2 -0
  15. package/application-management/lib/workflows/index.d.ts +2 -0
  16. package/application-management/lib/workflows/show-module-entity-details.workflow.d.ts +2 -0
  17. package/auth/lib/error-handler.d.ts +1 -1
  18. package/backend/lib/data/api/comment.service.d.ts +15 -0
  19. package/backend/lib/data/api/module-designer.service.d.ts +43 -0
  20. package/backend/lib/data/index.d.ts +2 -1
  21. package/backend/lib/data/local/local-data-provider.d.ts +1 -2
  22. package/esm2022/application-management/index.mjs +10 -8
  23. package/esm2022/application-management/lib/actions/index.mjs +2 -0
  24. package/esm2022/application-management/lib/actions/show-detail.action.mjs +25 -0
  25. package/esm2022/application-management/lib/application-management-mock-data.mjs +4 -4
  26. package/esm2022/application-management/lib/application-management.module.mjs +94 -7
  27. package/esm2022/application-management/lib/application-management.service.mjs +8 -2
  28. package/esm2022/application-management/lib/entities/application-module.entity.mjs +273 -0
  29. package/esm2022/application-management/lib/entities/applications.entity.mjs +311 -0
  30. package/esm2022/application-management/lib/entities/edition.entity.mjs +284 -0
  31. package/esm2022/application-management/lib/entities/entity.entity.mjs +284 -0
  32. package/esm2022/application-management/lib/entities/feature.entity.mjs +284 -0
  33. package/esm2022/application-management/lib/entities/modules.entity.mjs +324 -0
  34. package/esm2022/application-management/lib/entities/permission.entity.mjs +284 -0
  35. package/esm2022/application-management/lib/entities/property.entity.mjs +449 -0
  36. package/esm2022/application-management/lib/layouts/index.mjs +2 -0
  37. package/esm2022/application-management/lib/layouts/module-entity-detail-view/module-entity-detail-view.component.mjs +77 -0
  38. package/esm2022/application-management/lib/module-designer/module-designer.component.mjs +142 -0
  39. package/esm2022/application-management/lib/module-designer/module-designer.service.mjs +3 -0
  40. package/esm2022/application-management/lib/module-designer/module-designer.type.mjs +2 -0
  41. package/esm2022/application-management/lib/services/context-menu.service.mjs +168 -0
  42. package/esm2022/application-management/lib/workflows/create-module-entity.workflow.mjs +42 -0
  43. package/esm2022/application-management/lib/workflows/index.mjs +3 -0
  44. package/esm2022/application-management/lib/workflows/show-module-entity-details.workflow.mjs +9 -0
  45. package/esm2022/auth/lib/error-handler.mjs +6 -6
  46. package/esm2022/backend/lib/backend.module.mjs +23 -5
  47. package/esm2022/backend/lib/data/api/comment.service.mjs +48 -0
  48. package/esm2022/backend/lib/data/api/data-provider.mjs +2 -2
  49. package/esm2022/backend/lib/data/api/module-designer.service.mjs +95 -0
  50. package/esm2022/backend/lib/data/index.mjs +3 -2
  51. package/esm2022/backend/lib/data/local/local-data-provider.mjs +2 -2
  52. package/esm2022/form-management/acorex-modules-form-management.mjs +5 -0
  53. package/esm2022/form-management/index.mjs +2 -0
  54. package/esm2022/form-management/lib/designer/designer.page.mjs +24 -0
  55. package/esm2022/form-management/lib/form-management.module.mjs +29 -0
  56. package/fesm2022/acorex-modules-application-management-module-designer.component-CDZZ-5pF.mjs +323 -0
  57. package/fesm2022/acorex-modules-application-management-module-designer.component-CDZZ-5pF.mjs.map +1 -0
  58. package/fesm2022/acorex-modules-application-management.mjs +722 -21
  59. package/fesm2022/acorex-modules-application-management.mjs.map +1 -1
  60. package/fesm2022/{acorex-modules-auth-acorex-modules-auth-BD7I4S8c.mjs → acorex-modules-auth-acorex-modules-auth-D09VaQPe.mjs} +12 -12
  61. package/fesm2022/acorex-modules-auth-acorex-modules-auth-D09VaQPe.mjs.map +1 -0
  62. package/fesm2022/{acorex-modules-auth-app-chooser.component-Cfl1D1Cw.mjs → acorex-modules-auth-app-chooser.component-DN1ZJiZs.mjs} +2 -2
  63. package/fesm2022/{acorex-modules-auth-app-chooser.component-Cfl1D1Cw.mjs.map → acorex-modules-auth-app-chooser.component-DN1ZJiZs.mjs.map} +1 -1
  64. package/fesm2022/{acorex-modules-auth-login.module-BQG4ObmU.mjs → acorex-modules-auth-login.module-CGA5aTg2.mjs} +5 -5
  65. package/fesm2022/{acorex-modules-auth-login.module-BQG4ObmU.mjs.map → acorex-modules-auth-login.module-CGA5aTg2.mjs.map} +1 -1
  66. package/fesm2022/{acorex-modules-auth-master.layout-DoPCP7C0.mjs → acorex-modules-auth-master.layout-ZJWzjLrb.mjs} +2 -2
  67. package/fesm2022/{acorex-modules-auth-master.layout-DoPCP7C0.mjs.map → acorex-modules-auth-master.layout-ZJWzjLrb.mjs.map} +1 -1
  68. package/fesm2022/{acorex-modules-auth-password.component-fyMD7oKR.mjs → acorex-modules-auth-password.component-C4yqf342.mjs} +3 -3
  69. package/fesm2022/{acorex-modules-auth-password.component-fyMD7oKR.mjs.map → acorex-modules-auth-password.component-C4yqf342.mjs.map} +1 -1
  70. package/fesm2022/{acorex-modules-auth-password.component-CfhiS2hO.mjs → acorex-modules-auth-password.component-MJhNk3UI.mjs} +2 -2
  71. package/fesm2022/{acorex-modules-auth-password.component-CfhiS2hO.mjs.map → acorex-modules-auth-password.component-MJhNk3UI.mjs.map} +1 -1
  72. package/fesm2022/{acorex-modules-auth-routes-95DQOnjS.mjs → acorex-modules-auth-routes-DhORV1Js.mjs} +2 -2
  73. package/fesm2022/{acorex-modules-auth-routes-95DQOnjS.mjs.map → acorex-modules-auth-routes-DhORV1Js.mjs.map} +1 -1
  74. package/fesm2022/{acorex-modules-auth-two-factor.module-BkErlA-n.mjs → acorex-modules-auth-two-factor.module-BWKP0_jO.mjs} +3 -3
  75. package/fesm2022/{acorex-modules-auth-two-factor.module-BkErlA-n.mjs.map → acorex-modules-auth-two-factor.module-BWKP0_jO.mjs.map} +1 -1
  76. package/fesm2022/acorex-modules-auth.mjs +4 -4
  77. package/fesm2022/acorex-modules-backend.mjs +154 -137
  78. package/fesm2022/acorex-modules-backend.mjs.map +1 -1
  79. package/fesm2022/acorex-modules-form-management-designer.page-SoPH2V7i.mjs +27 -0
  80. package/fesm2022/acorex-modules-form-management-designer.page-SoPH2V7i.mjs.map +1 -0
  81. package/fesm2022/acorex-modules-form-management.mjs +36 -0
  82. package/fesm2022/acorex-modules-form-management.mjs.map +1 -0
  83. package/form-management/README.md +4 -0
  84. package/form-management/index.d.ts +1 -0
  85. package/form-management/lib/designer/designer.page.d.ts +5 -0
  86. package/form-management/lib/form-management.module.d.ts +7 -0
  87. package/package.json +6 -6
  88. package/backend/lib/data/local/data-Conditioner.d.ts +0 -6
  89. package/esm2022/application-management/lib/application-module.entity.mjs +0 -273
  90. package/esm2022/application-management/lib/applications.entity.mjs +0 -311
  91. package/esm2022/application-management/lib/edition.entity.mjs +0 -284
  92. package/esm2022/application-management/lib/entity.entity.mjs +0 -284
  93. package/esm2022/application-management/lib/feature.entity.mjs +0 -284
  94. package/esm2022/application-management/lib/modules.entity.mjs +0 -324
  95. package/esm2022/application-management/lib/permission.entity.mjs +0 -284
  96. package/esm2022/backend/lib/data/local/data-Conditioner.mjs +0 -138
  97. package/esm2022/log-management/acorex-modules-log-management.mjs +0 -5
  98. package/esm2022/log-management/index.mjs +0 -3
  99. package/esm2022/log-management/lib/audit-logs.entity.mjs +0 -391
  100. package/esm2022/log-management/lib/log-management.module.mjs +0 -16
  101. package/fesm2022/acorex-modules-auth-acorex-modules-auth-BD7I4S8c.mjs.map +0 -1
  102. package/fesm2022/acorex-modules-log-management.mjs +0 -414
  103. package/fesm2022/acorex-modules-log-management.mjs.map +0 -1
  104. package/log-management/README.md +0 -4
  105. package/log-management/index.d.ts +0 -2
  106. package/log-management/lib/audit-logs.entity.d.ts +0 -3
  107. package/log-management/lib/log-management.module.d.ts +0 -6
  108. /package/application-management/lib/{application-module.entity.d.ts → entities/application-module.entity.d.ts} +0 -0
  109. /package/application-management/lib/{applications.entity.d.ts → entities/applications.entity.d.ts} +0 -0
  110. /package/application-management/lib/{edition.entity.d.ts → entities/edition.entity.d.ts} +0 -0
  111. /package/application-management/lib/{entity.entity.d.ts → entities/entity.entity.d.ts} +0 -0
  112. /package/application-management/lib/{feature.entity.d.ts → entities/feature.entity.d.ts} +0 -0
  113. /package/application-management/lib/{modules.entity.d.ts → entities/modules.entity.d.ts} +0 -0
  114. /package/application-management/lib/{permission.entity.d.ts → entities/permission.entity.d.ts} +0 -0
@@ -1,284 +0,0 @@
1
- import { applyFilterArray, applySortArray } from '@acorex/modules/backend';
2
- import { AXPDataGenerator, AXPEntityCommandScope, AXPEntityQueryType } from '@acorex/platform/common';
3
- import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
4
- import { AXPApplicationManagementService } from './application-management.service';
5
- export async function editionEntityFactory(injector) {
6
- const dataService = injector.get(AXPApplicationManagementService);
7
- const applicationEntityDef = {
8
- module: 'application-management',
9
- name: 'edition',
10
- source: 'application-management.edition',
11
- title: 'Editions',
12
- formats: {
13
- individual: 'Editions',
14
- plural: 'Editions',
15
- },
16
- relatedEntities: [],
17
- groups: [
18
- {
19
- id: 'edition',
20
- title: 'Edition',
21
- },
22
- ],
23
- properties: [
24
- {
25
- name: 'name',
26
- title: 'Name',
27
- groupId: 'edition',
28
- schema: {
29
- dataType: 'string',
30
- interface: {
31
- type: AXPWidgetsCatalog.text,
32
- },
33
- },
34
- },
35
- {
36
- name: 'title',
37
- title: 'Title',
38
- groupId: 'edition',
39
- schema: {
40
- dataType: 'string',
41
- interface: {
42
- type: AXPWidgetsCatalog.text,
43
- },
44
- },
45
- },
46
- {
47
- name: 'isArchived',
48
- title: 'Archived',
49
- groupId: 'application',
50
- schema: {
51
- dataType: 'boolean',
52
- interface: {
53
- type: AXPWidgetsCatalog.toggle,
54
- },
55
- },
56
- },
57
- ],
58
- columns: [{ name: 'name' }, { name: 'title' }, { name: 'isArchived' }],
59
- commands: {
60
- create: {
61
- execute: async (data) => {
62
- const entity = Object.assign(data, { id: AXPDataGenerator.uuid() });
63
- dataService.editionDataProvider.insertOne(entity);
64
- return Promise.resolve(entity);
65
- },
66
- },
67
- delete: {
68
- execute: async (id) => {
69
- await await dataService.editionDataProvider.deleteOne(id);
70
- return Promise.resolve();
71
- },
72
- },
73
- update: {
74
- execute: async (data) => {
75
- return new Promise((resolve) => {
76
- setTimeout(async () => {
77
- await dataService.editionDataProvider.updateOne(data.id, data);
78
- resolve(data);
79
- }, 1000);
80
- });
81
- },
82
- },
83
- },
84
- queries: {
85
- byKey: {
86
- execute: async (id) => {
87
- return new Promise((resolve) => {
88
- setTimeout(async () => {
89
- const entity = await dataService.editionDataProvider.getOne(id);
90
- resolve(entity);
91
- }, 500);
92
- });
93
- },
94
- type: AXPEntityQueryType.Single,
95
- },
96
- list: {
97
- execute: async (e) => {
98
- const list = await dataService.editionDataProvider.getAll();
99
- const sortedItems = applySortArray(list, e.sort);
100
- const filteredItems = applyFilterArray(sortedItems, e.filter ? [e.filter] : []);
101
- return Promise.resolve({
102
- total: filteredItems.length,
103
- items: filteredItems.slice(e.skip, (e.skip ?? 0) + (e.take ?? 0)),
104
- });
105
- },
106
- type: AXPEntityQueryType.List,
107
- },
108
- },
109
- interfaces: {
110
- master: {
111
- create: {
112
- sections: [
113
- {
114
- id: 'application',
115
- },
116
- ],
117
- properties: [
118
- {
119
- name: 'name',
120
- layout: {
121
- positions: {
122
- lg: {
123
- colSpan: 6,
124
- },
125
- },
126
- },
127
- },
128
- {
129
- name: 'title',
130
- layout: {
131
- positions: {
132
- lg: {
133
- colSpan: 6,
134
- },
135
- },
136
- },
137
- },
138
- {
139
- name: 'isArchived',
140
- layout: {
141
- positions: {
142
- lg: {
143
- colSpan: 12,
144
- },
145
- },
146
- },
147
- },
148
- ],
149
- },
150
- update: {
151
- sections: [
152
- {
153
- id: 'application',
154
- },
155
- ],
156
- properties: [
157
- {
158
- name: 'name',
159
- layout: {
160
- positions: {
161
- lg: {
162
- colSpan: 6,
163
- },
164
- },
165
- },
166
- },
167
- {
168
- name: 'title',
169
- layout: {
170
- positions: {
171
- lg: {
172
- colSpan: 6,
173
- },
174
- },
175
- },
176
- },
177
- {
178
- name: 'isArchived',
179
- layout: {
180
- positions: {
181
- lg: {
182
- colSpan: 12,
183
- },
184
- },
185
- },
186
- },
187
- ],
188
- },
189
- single: {
190
- title: '{{title}}',
191
- sections: [
192
- {
193
- id: 'application',
194
- layout: {
195
- positions: {
196
- lg: {
197
- colSpan: 12,
198
- },
199
- },
200
- },
201
- },
202
- ],
203
- properties: [
204
- {
205
- name: 'name',
206
- layout: {
207
- positions: {
208
- lg: {
209
- colSpan: 6,
210
- },
211
- },
212
- },
213
- },
214
- {
215
- name: 'title',
216
- layout: {
217
- positions: {
218
- lg: {
219
- colSpan: 6,
220
- },
221
- },
222
- },
223
- },
224
- {
225
- name: 'isArchived',
226
- layout: {
227
- positions: {
228
- lg: {
229
- colSpan: 12,
230
- },
231
- },
232
- },
233
- },
234
- ],
235
- actions: [],
236
- },
237
- list: {
238
- actions: [
239
- {
240
- title: 'Create New',
241
- command: 'create-entity',
242
- priority: 'primary',
243
- type: 'create',
244
- scope: AXPEntityCommandScope.TypeLevel,
245
- },
246
- {
247
- title: 'Delete Items',
248
- command: 'delete-entity',
249
- priority: 'primary',
250
- type: 'delete',
251
- scope: AXPEntityCommandScope.Selected,
252
- },
253
- {
254
- title: 'Details',
255
- command: 'open-entity',
256
- priority: 'primary',
257
- type: 'view',
258
- scope: AXPEntityCommandScope.Individual,
259
- },
260
- {
261
- title: 'Delete',
262
- command: 'delete-entity',
263
- priority: 'primary',
264
- type: 'delete',
265
- scope: AXPEntityCommandScope.Individual,
266
- },
267
- ],
268
- views: [
269
- {
270
- name: 'all',
271
- title: 'All Items',
272
- fixed: true,
273
- columns: [],
274
- conditions: [],
275
- sorts: [],
276
- },
277
- ],
278
- },
279
- },
280
- },
281
- };
282
- return applicationEntityDef;
283
- }
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdGlvbi5lbnRpdHkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL21vZHVsZXMvYXBwbGljYXRpb24tbWFuYWdlbWVudC9zcmMvbGliL2VkaXRpb24uZW50aXR5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQWEscUJBQXFCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVwRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVuRixNQUFNLENBQUMsS0FBSyxVQUFVLG9CQUFvQixDQUFDLFFBQWtCO0lBQzNELE1BQU0sV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsK0JBQStCLENBQUMsQ0FBQztJQUVsRSxNQUFNLG9CQUFvQixHQUFjO1FBQ3RDLE1BQU0sRUFBRSx3QkFBd0I7UUFDaEMsSUFBSSxFQUFFLFNBQVM7UUFDZixNQUFNLEVBQUUsZ0NBQWdDO1FBQ3hDLEtBQUssRUFBRSxVQUFVO1FBQ2pCLE9BQU8sRUFBRTtZQUNQLFVBQVUsRUFBRSxVQUFVO1lBQ3RCLE1BQU0sRUFBRSxVQUFVO1NBQ25CO1FBQ0QsZUFBZSxFQUFFLEVBQUU7UUFDbkIsTUFBTSxFQUFFO1lBQ047Z0JBQ0UsRUFBRSxFQUFFLFNBQVM7Z0JBQ2IsS0FBSyxFQUFFLFNBQVM7YUFDakI7U0FDRjtRQUNELFVBQVUsRUFBRTtZQUNWO2dCQUNFLElBQUksRUFBRSxNQUFNO2dCQUNaLEtBQUssRUFBRSxNQUFNO2dCQUNiLE9BQU8sRUFBRSxTQUFTO2dCQUNsQixNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVE7b0JBQ2xCLFNBQVMsRUFBRTt3QkFDVCxJ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LEVBQUU7eUJBQ1Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGO0tBQ0YsQ0FBQztJQUVGLE9BQU8sb0JBQW9CLENBQUM7QUFDOUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGx5RmlsdGVyQXJyYXksIGFwcGx5U29ydEFycmF5IH0gZnJvbSAnQGFjb3JleC9tb2R1bGVzL2JhY2tlbmQnO1xuaW1wb3J0IHsgQVhQRGF0YUdlbmVyYXRvciwgQVhQRW50aXR5LCBBWFBFbnRpdHlDb21tYW5kU2NvcGUsIEFYUEVudGl0eVF1ZXJ5VHlwZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQXBwbGljYXRpb25NYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVkaXRpb25FbnRpdHlGYWN0b3J5KGluamVjdG9yOiBJbmplY3Rvcik6IFByb21pc2U8QVhQRW50aXR5IHwgbnVsbD4ge1xuICBjb25zdCBkYXRhU2VydmljZSA9IGluamVjdG9yLmdldChBWFBBcHBsaWNhdGlvbk1hbmFnZW1lbnRTZXJ2aWNlKTtcblxuICBjb25zdCBhcHBsaWNhdGlvbkVudGl0eURlZjogQVhQRW50aXR5ID0ge1xuICAgIG1vZHVsZTogJ2FwcGxpY2F0aW9uLW1hbmFnZW1lbnQnLFxuICAgIG5hbWU6ICdlZGl0aW9uJyxcbiAgICBzb3VyY2U6ICdhcHBsaWNhdGlvbi1tYW5hZ2VtZW50LmVkaXRpb24nLFxuICAgIHRpdGxlOiAnRWRpdGlvbnMnLFxuICAgIGZvcm1hdHM6IHtcbiAgICAgIGluZGl2aWR1YWw6ICdFZGl0aW9ucycsXG4gICAgICBwbHVyYWw6ICdFZGl0aW9ucycsXG4gICAgfSxcbiAgICByZWxhdGVkRW50aXRpZXM6IFtdLFxuICAgIGdyb3VwczogW1xuICAgICAge1xuICAgICAgICBpZDogJ2VkaXRpb24nLFxuICAgICAgICB0aXRsZTogJ0VkaXRpb24nLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHByb3BlcnRpZXM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICB0aXRsZTogJ05hbWUnLFxuICAgICAgICBncm91cElkOiAnZWRpdGlvbicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgIHRpdGxlOiAnVGl0bGUnLFxuICAgICAgICBncm91cElkOiAnZWRpdGlvbicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnc3RyaW5nJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRleHQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdpc0FyY2hpdmVkJyxcbiAgICAgICAgdGl0bGU6ICdBcmNoaXZlZCcsXG4gICAgICAgIGdyb3VwSWQ6ICdhcHBsaWNhdGlvbicsXG4gICAgICAgIHNjaGVtYToge1xuICAgICAgICAgIGRhdGFUeXBlOiAnYm9vbGVhbicsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50b2dnbGUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBjb2x1bW5zOiBbeyBuYW1lOiAnbmFtZScgfSwgeyBuYW1lOiAndGl0bGUnIH0sIHsgbmFtZTogJ2lzQXJjaGl2ZWQnIH1dLFxuICAgIGNvbW1hbmRzOiB7XG4gICAgICBjcmVhdGU6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGRhdGE6IGFueSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGVudGl0eSA9IE9iamVjdC5hc3NpZ24oZGF0YSwgeyBpZDogQVhQRGF0YUdlbmVyYXRvci51dWlkKCkgfSk7XG5cbiAgICAgICAgICBkYXRhU2VydmljZS5lZGl0aW9uRGF0YVByb3ZpZGVyLmluc2VydE9uZShlbnRpdHkpO1xuICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoZW50aXR5KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBkZWxldGU6IHtcbiAgICAgICAgZXhlY3V0ZTogYXN5bmMgKGlkOiBhbnkpID0+IHtcbiAgICAgICAgICBhd2FpdCBhd2FpdCBkYXRhU2VydmljZS5lZGl0aW9uRGF0YVByb3ZpZGVyLmRlbGV0ZU9uZShpZCk7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVwZGF0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgYXdhaXQgZGF0YVNlcnZpY2UuZWRpdGlvbkRhdGFQcm92aWRlci51cGRhdGVPbmUoZGF0YS5pZCwgZGF0YSk7XG4gICAgICAgICAgICAgIHJlc29sdmUoZGF0YSk7XG4gICAgICAgICAgICB9LCAxMDAwKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBxdWVyaWVzOiB7XG4gICAgICBieUtleToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoaWQ6IHN0cmluZykgPT4ge1xuICAgICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4ge1xuICAgICAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGVudGl0eSA9IGF3YWl0IGRhdGFTZXJ2aWNlLmVkaXRpb25EYXRhUHJvdmlkZXIuZ2V0T25lKGlkKTtcbiAgICAgICAgICAgICAgcmVzb2x2ZShlbnRpdHkpO1xuICAgICAgICAgICAgfSwgNTAwKTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSxcbiAgICAgICAgdHlwZTogQVhQRW50aXR5UXVlcnlUeXBlLlNpbmdsZSxcbiAgICAgIH0sXG4gICAgICBsaXN0OiB7XG4gICAgICAgIGV4ZWN1dGU6IGFzeW5jIChlOiBhbnkpID0+IHtcbiAgICAgICAgICBjb25zdCBsaXN0ID0gYXdhaXQgZGF0YVNlcnZpY2UuZWRpdGlvbkRhdGFQcm92aWRlci5nZXRBbGwoKTtcbiAgICAgICAgICBjb25zdCBzb3J0ZWRJdGVtcyA9IGFwcGx5U29ydEFycmF5KGxpc3QsIGUuc29ydCk7XG4gICAgICAgICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9IGFwcGx5RmlsdGVyQXJyYXkoc29ydGVkSXRlbXMsIGUuZmlsdGVyID8gW2UuZmlsdGVyXSA6IFtdKTtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHRvdGFsOiBmaWx0ZXJlZEl0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgIGl0ZW1zOiBmaWx0ZXJlZEl0ZW1zLnNsaWNlKGUuc2tpcCwgKGUuc2tpcCA/PyAwKSArIChlLnRha2UgPz8gMCkpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBBWFBFbnRpdHlRdWVyeVR5cGUuTGlzdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBpbnRlcmZhY2VzOiB7XG4gICAgICBtYXN0ZXI6IHtcbiAgICAgICAgY3JlYXRlOiB7XG4gICAgICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdhcHBsaWNhdGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcHJvcGVydGllczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdpc0FyY2hpdmVkJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiAxMixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlOiB7XG4gICAgICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdhcHBsaWNhdGlvbicsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgcHJvcGVydGllczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnbmFtZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICd0aXRsZScsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogNixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICdpc0FyY2hpdmVkJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiAxMixcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgfSxcbiAgICAgICAgc2luZ2xlOiB7XG4gICAgICAgICAgdGl0bGU6ICd7e3RpdGxlfX0nLFxuICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAnYXBwbGljYXRpb24nLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnaXNBcmNoaXZlZCcsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWN0aW9uczogW10sXG4gICAgICAgIH0sXG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnQ3JlYXRlIE5ldycsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6ICdjcmVhdGUtZW50aXR5JyxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ2NyZWF0ZScsXG4gICAgICAgICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdEZWxldGUgSXRlbXMnLFxuICAgICAgICAgICAgICBjb21tYW5kOiAnZGVsZXRlLWVudGl0eScsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICdkZWxldGUnLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdEZXRhaWxzJyxcbiAgICAgICAgICAgICAgY29tbWFuZDogJ29wZW4tZW50aXR5JyxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ0RlbGV0ZScsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6ICdkZWxldGUtZW50aXR5JyxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICB2aWV3czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnYWxsJyxcbiAgICAgICAgICAgICAgdGl0bGU6ICdBbGwgSXRlbXMnLFxuICAgICAgICAgICAgICBmaXhlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY29sdW1uczogW10sXG4gICAgICAgICAgICAgIGNvbmRpdGlvbnM6IFtdLFxuICAgICAgICAgICAgICBzb3J0czogW10sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGFwcGxpY2F0aW9uRW50aXR5RGVmO1xufVxuIl19
@@ -1,284 +0,0 @@
1
- import { applyFilterArray, applySortArray } from '@acorex/modules/backend';
2
- import { AXPDataGenerator, AXPEntityCommandScope, AXPEntityQueryType } from '@acorex/platform/common';
3
- import { AXPWidgetsCatalog } from '@acorex/platform/layout/builder';
4
- import { AXPApplicationManagementService } from './application-management.service';
5
- export async function entityEntityFactory(injector) {
6
- const dataService = injector.get(AXPApplicationManagementService);
7
- const entityDef = {
8
- module: 'application-management',
9
- name: 'entity',
10
- source: 'application-management.entity',
11
- title: 'Entities',
12
- formats: {
13
- individual: 'Entity',
14
- plural: 'Entities',
15
- },
16
- relatedEntities: [],
17
- groups: [
18
- {
19
- id: 'entity',
20
- title: 'Entity',
21
- },
22
- ],
23
- properties: [
24
- {
25
- name: 'name',
26
- title: 'Name',
27
- groupId: 'entity',
28
- schema: {
29
- dataType: 'string',
30
- interface: {
31
- type: AXPWidgetsCatalog.text,
32
- },
33
- },
34
- },
35
- {
36
- name: 'title',
37
- title: 'Title',
38
- groupId: 'entity',
39
- schema: {
40
- dataType: 'string',
41
- interface: {
42
- type: AXPWidgetsCatalog.text,
43
- },
44
- },
45
- },
46
- {
47
- name: 'isArchived',
48
- title: 'Archived',
49
- groupId: 'entity',
50
- schema: {
51
- dataType: 'boolean',
52
- interface: {
53
- type: AXPWidgetsCatalog.toggle,
54
- },
55
- },
56
- },
57
- ],
58
- columns: [{ name: 'name' }, { name: 'title' }, { name: 'isArchived' }],
59
- commands: {
60
- create: {
61
- execute: async (data) => {
62
- const entity = Object.assign(data, { id: AXPDataGenerator.uuid() });
63
- dataService.entityDataProvider.insertOne(entity);
64
- return Promise.resolve(entity);
65
- },
66
- },
67
- delete: {
68
- execute: async (id) => {
69
- await await dataService.entityDataProvider.deleteOne(id);
70
- return Promise.resolve();
71
- },
72
- },
73
- update: {
74
- execute: async (data) => {
75
- return new Promise((resolve) => {
76
- setTimeout(async () => {
77
- await dataService.entityDataProvider.updateOne(data.id, data);
78
- resolve(data);
79
- }, 1000);
80
- });
81
- },
82
- },
83
- },
84
- queries: {
85
- byKey: {
86
- execute: async (id) => {
87
- return new Promise((resolve) => {
88
- setTimeout(async () => {
89
- const entity = await dataService.entityDataProvider.getOne(id);
90
- resolve(entity);
91
- }, 500);
92
- });
93
- },
94
- type: AXPEntityQueryType.Single,
95
- },
96
- list: {
97
- execute: async (e) => {
98
- const list = await dataService.entityDataProvider.getAll();
99
- const sortedItems = applySortArray(list, e.sort);
100
- const filteredItems = applyFilterArray(sortedItems, e.filter ? [e.filter] : []);
101
- return Promise.resolve({
102
- total: filteredItems.length,
103
- items: filteredItems.slice(e.skip, (e.skip ?? 0) + (e.take ?? 0)),
104
- });
105
- },
106
- type: AXPEntityQueryType.List,
107
- },
108
- },
109
- interfaces: {
110
- master: {
111
- create: {
112
- sections: [
113
- {
114
- id: 'entity',
115
- },
116
- ],
117
- properties: [
118
- {
119
- name: 'name',
120
- layout: {
121
- positions: {
122
- lg: {
123
- colSpan: 6,
124
- },
125
- },
126
- },
127
- },
128
- {
129
- name: 'title',
130
- layout: {
131
- positions: {
132
- lg: {
133
- colSpan: 6,
134
- },
135
- },
136
- },
137
- },
138
- {
139
- name: 'isArchived',
140
- layout: {
141
- positions: {
142
- lg: {
143
- colSpan: 12,
144
- },
145
- },
146
- },
147
- },
148
- ],
149
- },
150
- update: {
151
- sections: [
152
- {
153
- id: 'entity',
154
- },
155
- ],
156
- properties: [
157
- {
158
- name: 'name',
159
- layout: {
160
- positions: {
161
- lg: {
162
- colSpan: 6,
163
- },
164
- },
165
- },
166
- },
167
- {
168
- name: 'title',
169
- layout: {
170
- positions: {
171
- lg: {
172
- colSpan: 6,
173
- },
174
- },
175
- },
176
- },
177
- {
178
- name: 'isArchived',
179
- layout: {
180
- positions: {
181
- lg: {
182
- colSpan: 12,
183
- },
184
- },
185
- },
186
- },
187
- ],
188
- },
189
- single: {
190
- title: '{{title}}',
191
- sections: [
192
- {
193
- id: 'entity',
194
- layout: {
195
- positions: {
196
- lg: {
197
- colSpan: 12,
198
- },
199
- },
200
- },
201
- },
202
- ],
203
- properties: [
204
- {
205
- name: 'name',
206
- layout: {
207
- positions: {
208
- lg: {
209
- colSpan: 6,
210
- },
211
- },
212
- },
213
- },
214
- {
215
- name: 'title',
216
- layout: {
217
- positions: {
218
- lg: {
219
- colSpan: 6,
220
- },
221
- },
222
- },
223
- },
224
- {
225
- name: 'isArchived',
226
- layout: {
227
- positions: {
228
- lg: {
229
- colSpan: 12,
230
- },
231
- },
232
- },
233
- },
234
- ],
235
- actions: [],
236
- },
237
- list: {
238
- actions: [
239
- {
240
- title: 'Create New',
241
- command: 'create-entity',
242
- priority: 'primary',
243
- type: 'create',
244
- scope: AXPEntityCommandScope.TypeLevel,
245
- },
246
- {
247
- title: 'Delete Items',
248
- command: 'delete-entity',
249
- priority: 'primary',
250
- type: 'delete',
251
- scope: AXPEntityCommandScope.Selected,
252
- },
253
- {
254
- title: 'Details',
255
- command: 'open-entity',
256
- priority: 'primary',
257
- type: 'view',
258
- scope: AXPEntityCommandScope.Individual,
259
- },
260
- {
261
- title: 'Delete',
262
- command: 'delete-entity',
263
- priority: 'primary',
264
- type: 'delete',
265
- scope: AXPEntityCommandScope.Individual,
266
- },
267
- ],
268
- views: [
269
- {
270
- name: 'all',
271
- title: 'All Items',
272
- fixed: true,
273
- columns: [],
274
- conditions: [],
275
- sorts: [],
276
- },
277
- ],
278
- },
279
- },
280
- },
281
- };
282
- return entityDef;
283
- }
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5LmVudGl0eS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbW9kdWxlcy9hcHBsaWNhdGlvbi1tYW5hZ2VtZW50L3NyYy9saWIvZW50aXR5LmVudGl0eS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDM0UsT0FBTyxFQUFFLGdCQUFnQixFQUFhLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDakgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFFcEUsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFbkYsTUFBTSxDQUFDLEtBQUssVUFBVSxtQkFBbUIsQ0FBQyxRQUFrQjtJQUMxRCxNQUFNLFdBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7SUFFbEUsTUFBTSxTQUFTLEdBQWM7UUFDM0IsTUFBTSxFQUFFLHdCQUF3QjtRQUNoQyxJQUFJLEVBQUUsUUFBUTtRQUNkLE1BQU0sRUFBRSwrQkFBK0I7UUFDdkMsS0FBSyxFQUFFLFVBQVU7UUFDakIsT0FBTyxFQUFFO1lBQ1AsVUFBVSxFQUFFLFFBQVE7WUFDcEIsTUFBTSxFQUFFLFVBQVU7U0FDbkI7UUFDRCxlQUFlLEVBQUUsRUFBRTtRQUNuQixNQUFNLEVBQUU7WUFDTjtnQkFDRSxFQUFFLEVBQUUsUUFBUTtnQkFDWixLQUFLLEVBQUUsUUFBUTthQUNoQjtTQUNGO1FBQ0QsVUFBVSxFQUFFO1lBQ1Y7Z0JBQ0UsSUFBSSxFQUFFLE1BQU07Z0JBQ1osS0FBSyxFQUFFLE1BQU07Z0JBQ2IsT0FBTyxFQUFFLFFBQVE7Z0JBQ2pCLE1BQU0sRUFBRTtvQkFDTixRQUFRLEVBQUUsUUFBUTtvQkFDbEIsU0FBUyxFQUFFO3dCQUNULElBQUks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QkFDVjtxQkFDRjtpQkFDRjthQUNGO1NBQ0Y7S0FDRixDQUFDO0lBRUYsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFwcGx5RmlsdGVyQXJyYXksIGFwcGx5U29ydEFycmF5IH0gZnJvbSAnQGFjb3JleC9tb2R1bGVzL2JhY2tlbmQnO1xuaW1wb3J0IHsgQVhQRGF0YUdlbmVyYXRvciwgQVhQRW50aXR5LCBBWFBFbnRpdHlDb21tYW5kU2NvcGUsIEFYUEVudGl0eVF1ZXJ5VHlwZSB9IGZyb20gJ0BhY29yZXgvcGxhdGZvcm0vY29tbW9uJztcbmltcG9ydCB7IEFYUFdpZGdldHNDYXRhbG9nIH0gZnJvbSAnQGFjb3JleC9wbGF0Zm9ybS9sYXlvdXQvYnVpbGRlcic7XG5pbXBvcnQgeyBJbmplY3RvciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhQQXBwbGljYXRpb25NYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4vYXBwbGljYXRpb24tbWFuYWdlbWVudC5zZXJ2aWNlJztcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGVudGl0eUVudGl0eUZhY3RvcnkoaW5qZWN0b3I6IEluamVjdG9yKTogUHJvbWlzZTxBWFBFbnRpdHkgfCBudWxsPiB7XG4gIGNvbnN0IGRhdGFTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEFYUEFwcGxpY2F0aW9uTWFuYWdlbWVudFNlcnZpY2UpO1xuXG4gIGNvbnN0IGVudGl0eURlZjogQVhQRW50aXR5ID0ge1xuICAgIG1vZHVsZTogJ2FwcGxpY2F0aW9uLW1hbmFnZW1lbnQnLFxuICAgIG5hbWU6ICdlbnRpdHknLFxuICAgIHNvdXJjZTogJ2FwcGxpY2F0aW9uLW1hbmFnZW1lbnQuZW50aXR5JyxcbiAgICB0aXRsZTogJ0VudGl0aWVzJyxcbiAgICBmb3JtYXRzOiB7XG4gICAgICBpbmRpdmlkdWFsOiAnRW50aXR5JyxcbiAgICAgIHBsdXJhbDogJ0VudGl0aWVzJyxcbiAgICB9LFxuICAgIHJlbGF0ZWRFbnRpdGllczogW10sXG4gICAgZ3JvdXBzOiBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnZW50aXR5JyxcbiAgICAgICAgdGl0bGU6ICdFbnRpdHknLFxuICAgICAgfSxcbiAgICBdLFxuICAgIHByb3BlcnRpZXM6IFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICB0aXRsZTogJ05hbWUnLFxuICAgICAgICBncm91cElkOiAnZW50aXR5JyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdzdHJpbmcnLFxuICAgICAgICAgIGludGVyZmFjZToge1xuICAgICAgICAgICAgdHlwZTogQVhQV2lkZ2V0c0NhdGFsb2cudGV4dCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgICAgdGl0bGU6ICdUaXRsZScsXG4gICAgICAgIGdyb3VwSWQ6ICdlbnRpdHknLFxuICAgICAgICBzY2hlbWE6IHtcbiAgICAgICAgICBkYXRhVHlwZTogJ3N0cmluZycsXG4gICAgICAgICAgaW50ZXJmYWNlOiB7XG4gICAgICAgICAgICB0eXBlOiBBWFBXaWRnZXRzQ2F0YWxvZy50ZXh0LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBuYW1lOiAnaXNBcmNoaXZlZCcsXG4gICAgICAgIHRpdGxlOiAnQXJjaGl2ZWQnLFxuICAgICAgICBncm91cElkOiAnZW50aXR5JyxcbiAgICAgICAgc2NoZW1hOiB7XG4gICAgICAgICAgZGF0YVR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgICBpbnRlcmZhY2U6IHtcbiAgICAgICAgICAgIHR5cGU6IEFYUFdpZGdldHNDYXRhbG9nLnRvZ2dsZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdLFxuICAgIGNvbHVtbnM6IFt7IG5hbWU6ICduYW1lJyB9LCB7IG5hbWU6ICd0aXRsZScgfSwgeyBuYW1lOiAnaXNBcmNoaXZlZCcgfV0sXG4gICAgY29tbWFuZHM6IHtcbiAgICAgIGNyZWF0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgZW50aXR5ID0gT2JqZWN0LmFzc2lnbihkYXRhLCB7IGlkOiBBWFBEYXRhR2VuZXJhdG9yLnV1aWQoKSB9KTtcblxuICAgICAgICAgIGRhdGFTZXJ2aWNlLmVudGl0eURhdGFQcm92aWRlci5pbnNlcnRPbmUoZW50aXR5KTtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGVudGl0eSk7XG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgZGVsZXRlOiB7XG4gICAgICAgIGV4ZWN1dGU6IGFzeW5jIChpZDogYW55KSA9PiB7XG4gICAgICAgICAgYXdhaXQgYXdhaXQgZGF0YVNlcnZpY2UuZW50aXR5RGF0YVByb3ZpZGVyLmRlbGV0ZU9uZShpZCk7XG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHVwZGF0ZToge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoZGF0YTogYW55KSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgYXdhaXQgZGF0YVNlcnZpY2UuZW50aXR5RGF0YVByb3ZpZGVyLnVwZGF0ZU9uZShkYXRhLmlkLCBkYXRhKTtcbiAgICAgICAgICAgICAgcmVzb2x2ZShkYXRhKTtcbiAgICAgICAgICAgIH0sIDEwMDApO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9LFxuICAgIHF1ZXJpZXM6IHtcbiAgICAgIGJ5S2V5OiB7XG4gICAgICAgIGV4ZWN1dGU6IGFzeW5jIChpZDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZW50aXR5ID0gYXdhaXQgZGF0YVNlcnZpY2UuZW50aXR5RGF0YVByb3ZpZGVyLmdldE9uZShpZCk7XG4gICAgICAgICAgICAgIHJlc29sdmUoZW50aXR5KTtcbiAgICAgICAgICAgIH0sIDUwMCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IEFYUEVudGl0eVF1ZXJ5VHlwZS5TaW5nbGUsXG4gICAgICB9LFxuICAgICAgbGlzdDoge1xuICAgICAgICBleGVjdXRlOiBhc3luYyAoZTogYW55KSA9PiB7XG4gICAgICAgICAgY29uc3QgbGlzdCA9IGF3YWl0IGRhdGFTZXJ2aWNlLmVudGl0eURhdGFQcm92aWRlci5nZXRBbGwoKTtcbiAgICAgICAgICBjb25zdCBzb3J0ZWRJdGVtcyA9IGFwcGx5U29ydEFycmF5KGxpc3QsIGUuc29ydCk7XG4gICAgICAgICAgY29uc3QgZmlsdGVyZWRJdGVtcyA9IGFwcGx5RmlsdGVyQXJyYXkoc29ydGVkSXRlbXMsIGUuZmlsdGVyID8gW2UuZmlsdGVyXSA6IFtdKTtcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHtcbiAgICAgICAgICAgIHRvdGFsOiBmaWx0ZXJlZEl0ZW1zLmxlbmd0aCxcbiAgICAgICAgICAgIGl0ZW1zOiBmaWx0ZXJlZEl0ZW1zLnNsaWNlKGUuc2tpcCwgKGUuc2tpcCA/PyAwKSArIChlLnRha2UgPz8gMCkpLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBBWFBFbnRpdHlRdWVyeVR5cGUuTGlzdCxcbiAgICAgIH0sXG4gICAgfSxcbiAgICBpbnRlcmZhY2VzOiB7XG4gICAgICBtYXN0ZXI6IHtcbiAgICAgICAgY3JlYXRlOiB7XG4gICAgICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdlbnRpdHknLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnaXNBcmNoaXZlZCcsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIHVwZGF0ZToge1xuICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGlkOiAnZW50aXR5JyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICBwcm9wZXJ0aWVzOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG5hbWU6ICduYW1lJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiA2LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ3RpdGxlJyxcbiAgICAgICAgICAgICAgbGF5b3V0OiB7XG4gICAgICAgICAgICAgICAgcG9zaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgICBsZzoge1xuICAgICAgICAgICAgICAgICAgICBjb2xTcGFuOiA2LFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ2lzQXJjaGl2ZWQnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBzaW5nbGU6IHtcbiAgICAgICAgICB0aXRsZTogJ3t7dGl0bGV9fScsXG4gICAgICAgICAgc2VjdGlvbnM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWQ6ICdlbnRpdHknLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDEyLFxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHByb3BlcnRpZXM6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgbmFtZTogJ25hbWUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAndGl0bGUnLFxuICAgICAgICAgICAgICBsYXlvdXQ6IHtcbiAgICAgICAgICAgICAgICBwb3NpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICAgIGxnOiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbFNwYW46IDYsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnaXNBcmNoaXZlZCcsXG4gICAgICAgICAgICAgIGxheW91dDoge1xuICAgICAgICAgICAgICAgIHBvc2l0aW9uczoge1xuICAgICAgICAgICAgICAgICAgbGc6IHtcbiAgICAgICAgICAgICAgICAgICAgY29sU3BhbjogMTIsXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgICAgYWN0aW9uczogW10sXG4gICAgICAgIH0sXG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRpdGxlOiAnQ3JlYXRlIE5ldycsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6ICdjcmVhdGUtZW50aXR5JyxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ2NyZWF0ZScsXG4gICAgICAgICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuVHlwZUxldmVsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdEZWxldGUgSXRlbXMnLFxuICAgICAgICAgICAgICBjb21tYW5kOiAnZGVsZXRlLWVudGl0eScsXG4gICAgICAgICAgICAgIHByaW9yaXR5OiAncHJpbWFyeScsXG4gICAgICAgICAgICAgIHR5cGU6ICdkZWxldGUnLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLlNlbGVjdGVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGl0bGU6ICdEZXRhaWxzJyxcbiAgICAgICAgICAgICAgY29tbWFuZDogJ29wZW4tZW50aXR5JyxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ3ZpZXcnLFxuICAgICAgICAgICAgICBzY29wZTogQVhQRW50aXR5Q29tbWFuZFNjb3BlLkluZGl2aWR1YWwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0aXRsZTogJ0RlbGV0ZScsXG4gICAgICAgICAgICAgIGNvbW1hbmQ6ICdkZWxldGUtZW50aXR5JyxcbiAgICAgICAgICAgICAgcHJpb3JpdHk6ICdwcmltYXJ5JyxcbiAgICAgICAgICAgICAgdHlwZTogJ2RlbGV0ZScsXG4gICAgICAgICAgICAgIHNjb3BlOiBBWFBFbnRpdHlDb21tYW5kU2NvcGUuSW5kaXZpZHVhbCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXSxcbiAgICAgICAgICB2aWV3czogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBuYW1lOiAnYWxsJyxcbiAgICAgICAgICAgICAgdGl0bGU6ICdBbGwgSXRlbXMnLFxuICAgICAgICAgICAgICBmaXhlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgY29sdW1uczogW10sXG4gICAgICAgICAgICAgIGNvbmRpdGlvbnM6IFtdLFxuICAgICAgICAgICAgICBzb3J0czogW10sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0sXG4gIH07XG5cbiAgcmV0dXJuIGVudGl0eURlZjtcbn1cbiJdfQ==