@smartsoft001/crud-shell-angular 1.1.732 → 1.1.736

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 (210) hide show
  1. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  2. package/{esm2015/lib/+state/crud.actions.js → esm2020/lib/+state/crud.actions.mjs} +0 -0
  3. package/esm2020/lib/+state/crud.effects.mjs +182 -0
  4. package/esm2020/lib/+state/crud.facade.mjs +88 -0
  5. package/esm2020/lib/+state/crud.reducer.mjs +212 -0
  6. package/{esm2015/lib/+state/crud.selectors.js → esm2020/lib/+state/crud.selectors.mjs} +0 -0
  7. package/esm2020/lib/components/components.module.mjs +109 -0
  8. package/esm2020/lib/components/export/export.component.mjs +47 -0
  9. package/esm2020/lib/components/filter/base/base.component.mjs +140 -0
  10. package/esm2020/lib/components/filter/check/check.component.mjs +36 -0
  11. package/esm2020/lib/components/filter/date/date.component.mjs +41 -0
  12. package/esm2020/lib/components/filter/date-with-edit/date-with-edit.component.mjs +45 -0
  13. package/esm2020/lib/components/filter/filter.component.mjs +29 -0
  14. package/esm2020/lib/components/filter/flag/flag.component.mjs +16 -0
  15. package/{esm2015/lib/components/filter/index.js → esm2020/lib/components/filter/index.mjs} +0 -0
  16. package/esm2020/lib/components/filter/int/int.component.mjs +33 -0
  17. package/esm2020/lib/components/filter/radio/radio.component.mjs +16 -0
  18. package/esm2020/lib/components/filter/text/text.component.mjs +16 -0
  19. package/esm2020/lib/components/filters/filters.component.mjs +111 -0
  20. package/esm2020/lib/components/filters-config/filters-config.component.mjs +37 -0
  21. package/esm2020/lib/components/group/group.component.mjs +54 -0
  22. package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
  23. package/esm2020/lib/components/multiselect/multiselect.component.mjs +68 -0
  24. package/esm2020/lib/crud-full.module.mjs +105 -0
  25. package/esm2020/lib/crud.config.mjs +17 -0
  26. package/esm2020/lib/crud.module.mjs +107 -0
  27. package/esm2020/lib/factories/list-pagination/list-pagination.factory.mjs +69 -0
  28. package/{esm2015/lib/models/index.js → esm2020/lib/models/index.mjs} +0 -0
  29. package/{esm2015/lib/models/interfaces.js → esm2020/lib/models/interfaces.mjs} +0 -0
  30. package/esm2020/lib/pages/index.mjs +7 -0
  31. package/esm2020/lib/pages/item/base/base.component.mjs +44 -0
  32. package/esm2020/lib/pages/item/item.component.mjs +393 -0
  33. package/esm2020/lib/pages/item/standard/standard.component.mjs +15 -0
  34. package/esm2020/lib/pages/list/base/base.component.mjs +23 -0
  35. package/esm2020/lib/pages/list/list.component.mjs +343 -0
  36. package/esm2020/lib/pages/list/standard/standard.component.mjs +34 -0
  37. package/esm2020/lib/pipes/form-options/form-options.pipe.mjs +55 -0
  38. package/{esm2015/lib/pipes/index.js → esm2020/lib/pipes/index.mjs} +0 -0
  39. package/esm2020/lib/pipes/pipes.module.mjs +20 -0
  40. package/{esm2015/lib/providers/model-possibilities/model-possibilities.provider.js → esm2020/lib/providers/model-possibilities/model-possibilities.provider.mjs} +0 -0
  41. package/esm2020/lib/services/crud/crud.service.mjs +138 -0
  42. package/esm2020/lib/services/list-group/list-group.service.mjs +60 -0
  43. package/esm2020/lib/services/page/page.service.mjs +41 -0
  44. package/{esm2015/lib/services/search/search.service.js → esm2020/lib/services/search/search.service.mjs} +9 -8
  45. package/esm2020/lib/services/socket/socket.service.mjs +17 -0
  46. package/esm2020/smartsoft001-crud-shell-angular.mjs +5 -0
  47. package/fesm2015/smartsoft001-crud-shell-angular.mjs +2569 -0
  48. package/fesm2015/smartsoft001-crud-shell-angular.mjs.map +1 -0
  49. package/fesm2020/smartsoft001-crud-shell-angular.mjs +2729 -0
  50. package/fesm2020/smartsoft001-crud-shell-angular.mjs.map +1 -0
  51. package/lib/+state/crud.effects.d.ts +3 -0
  52. package/lib/+state/crud.effects.d.ts.map +1 -1
  53. package/lib/+state/crud.facade.d.ts +3 -0
  54. package/lib/+state/crud.facade.d.ts.map +1 -1
  55. package/lib/components/components.module.d.ts +22 -0
  56. package/lib/components/components.module.d.ts.map +1 -1
  57. package/lib/components/export/export.component.d.ts +3 -0
  58. package/lib/components/export/export.component.d.ts.map +1 -1
  59. package/lib/components/filter/base/base.component.d.ts +3 -0
  60. package/lib/components/filter/base/base.component.d.ts.map +1 -1
  61. package/lib/components/filter/check/check.component.d.ts +3 -0
  62. package/lib/components/filter/check/check.component.d.ts.map +1 -1
  63. package/lib/components/filter/date/date.component.d.ts +3 -0
  64. package/lib/components/filter/date/date.component.d.ts.map +1 -1
  65. package/lib/components/filter/date-with-edit/date-with-edit.component.d.ts +3 -0
  66. package/lib/components/filter/date-with-edit/date-with-edit.component.d.ts.map +1 -1
  67. package/lib/components/filter/filter.component.d.ts +3 -0
  68. package/lib/components/filter/filter.component.d.ts.map +1 -1
  69. package/lib/components/filter/flag/flag.component.d.ts +3 -0
  70. package/lib/components/filter/flag/flag.component.d.ts.map +1 -1
  71. package/lib/components/filter/int/int.component.d.ts +3 -0
  72. package/lib/components/filter/int/int.component.d.ts.map +1 -1
  73. package/lib/components/filter/radio/radio.component.d.ts +3 -0
  74. package/lib/components/filter/radio/radio.component.d.ts.map +1 -1
  75. package/lib/components/filter/text/text.component.d.ts +3 -0
  76. package/lib/components/filter/text/text.component.d.ts.map +1 -1
  77. package/lib/components/filters/filters.component.d.ts +3 -0
  78. package/lib/components/filters/filters.component.d.ts.map +1 -1
  79. package/lib/components/filters-config/filters-config.component.d.ts +3 -0
  80. package/lib/components/filters-config/filters-config.component.d.ts.map +1 -1
  81. package/lib/components/group/group.component.d.ts +3 -0
  82. package/lib/components/group/group.component.d.ts.map +1 -1
  83. package/lib/components/multiselect/multiselect.component.d.ts +3 -0
  84. package/lib/components/multiselect/multiselect.component.d.ts.map +1 -1
  85. package/lib/crud-full.module.d.ts +20 -0
  86. package/lib/crud-full.module.d.ts.map +1 -1
  87. package/lib/crud.config.d.ts +18 -2
  88. package/lib/crud.config.d.ts.map +1 -1
  89. package/lib/crud.module.d.ts +13 -0
  90. package/lib/crud.module.d.ts.map +1 -1
  91. package/lib/factories/list-pagination/list-pagination.factory.d.ts +3 -0
  92. package/lib/factories/list-pagination/list-pagination.factory.d.ts.map +1 -1
  93. package/lib/pages/index.d.ts +5 -1
  94. package/lib/pages/index.d.ts.map +1 -1
  95. package/lib/pages/item/base/base.component.d.ts +3 -0
  96. package/lib/pages/item/base/base.component.d.ts.map +1 -1
  97. package/lib/pages/item/item.component.d.ts +7 -1
  98. package/lib/pages/item/item.component.d.ts.map +1 -1
  99. package/lib/pages/item/standard/standard.component.d.ts +3 -0
  100. package/lib/pages/item/standard/standard.component.d.ts.map +1 -1
  101. package/lib/pages/list/base/base.component.d.ts +3 -0
  102. package/lib/pages/list/base/base.component.d.ts.map +1 -1
  103. package/lib/pages/list/list.component.d.ts +3 -0
  104. package/lib/pages/list/list.component.d.ts.map +1 -1
  105. package/lib/pages/list/standard/standard.component.d.ts +3 -0
  106. package/lib/pages/list/standard/standard.component.d.ts.map +1 -1
  107. package/lib/pipes/form-options/form-options.pipe.d.ts +3 -0
  108. package/lib/pipes/form-options/form-options.pipe.d.ts.map +1 -1
  109. package/lib/pipes/pipes.module.d.ts +5 -0
  110. package/lib/pipes/pipes.module.d.ts.map +1 -1
  111. package/lib/services/crud/crud.service.d.ts +3 -0
  112. package/lib/services/crud/crud.service.d.ts.map +1 -1
  113. package/lib/services/list-group/list-group.service.d.ts +3 -0
  114. package/lib/services/list-group/list-group.service.d.ts.map +1 -1
  115. package/lib/services/page/page.service.d.ts +3 -0
  116. package/lib/services/page/page.service.d.ts.map +1 -1
  117. package/lib/services/search/search.service.d.ts +3 -0
  118. package/lib/services/search/search.service.d.ts.map +1 -1
  119. package/lib/services/socket/socket.service.d.ts +5 -0
  120. package/lib/services/socket/socket.service.d.ts.map +1 -1
  121. package/package.json +38 -25
  122. package/smartsoft001-crud-shell-angular.d.ts +1 -17
  123. package/smartsoft001-crud-shell-angular.d.ts.map +1 -1
  124. package/bundles/smartsoft001-crud-shell-angular.umd.js +0 -3283
  125. package/bundles/smartsoft001-crud-shell-angular.umd.js.map +0 -1
  126. package/esm2015/lib/+state/crud.effects.js +0 -178
  127. package/esm2015/lib/+state/crud.facade.js +0 -92
  128. package/esm2015/lib/+state/crud.reducer.js +0 -92
  129. package/esm2015/lib/components/components.module.js +0 -65
  130. package/esm2015/lib/components/export/export.component.js +0 -55
  131. package/esm2015/lib/components/filter/base/base.component.js +0 -144
  132. package/esm2015/lib/components/filter/check/check.component.js +0 -34
  133. package/esm2015/lib/components/filter/date/date.component.js +0 -42
  134. package/esm2015/lib/components/filter/date-with-edit/date-with-edit.component.js +0 -43
  135. package/esm2015/lib/components/filter/filter.component.js +0 -30
  136. package/esm2015/lib/components/filter/flag/flag.component.js +0 -13
  137. package/esm2015/lib/components/filter/int/int.component.js +0 -31
  138. package/esm2015/lib/components/filter/radio/radio.component.js +0 -13
  139. package/esm2015/lib/components/filter/text/text.component.js +0 -13
  140. package/esm2015/lib/components/filters/filters.component.js +0 -124
  141. package/esm2015/lib/components/filters-config/filters-config.component.js +0 -46
  142. package/esm2015/lib/components/group/group.component.js +0 -65
  143. package/esm2015/lib/components/multiselect/multiselect.component.js +0 -74
  144. package/esm2015/lib/crud-full.module.js +0 -83
  145. package/esm2015/lib/crud.config.js +0 -14
  146. package/esm2015/lib/crud.module.js +0 -84
  147. package/esm2015/lib/factories/list-pagination/list-pagination.factory.js +0 -73
  148. package/esm2015/lib/pages/index.js +0 -3
  149. package/esm2015/lib/pages/item/base/base.component.js +0 -44
  150. package/esm2015/lib/pages/item/item.component.js +0 -345
  151. package/esm2015/lib/pages/item/standard/standard.component.js +0 -13
  152. package/esm2015/lib/pages/list/base/base.component.js +0 -30
  153. package/esm2015/lib/pages/list/list.component.js +0 -319
  154. package/esm2015/lib/pages/list/standard/standard.component.js +0 -39
  155. package/esm2015/lib/pipes/form-options/form-options.pipe.js +0 -56
  156. package/esm2015/lib/pipes/pipes.module.js +0 -16
  157. package/esm2015/lib/services/crud/crud.service.js +0 -143
  158. package/esm2015/lib/services/list-group/list-group.service.js +0 -61
  159. package/esm2015/lib/services/page/page.service.js +0 -48
  160. package/esm2015/lib/services/socket/socket.service.js +0 -14
  161. package/esm2015/smartsoft001-crud-shell-angular.js +0 -22
  162. package/fesm2015/smartsoft001-crud-shell-angular.js +0 -2638
  163. package/fesm2015/smartsoft001-crud-shell-angular.js.map +0 -1
  164. package/lib/+state/crud.effects.ngfactory.d.ts.map +0 -1
  165. package/lib/+state/crud.facade.ngfactory.d.ts.map +0 -1
  166. package/lib/components/components.module.ngfactory.d.ts.map +0 -1
  167. package/lib/components/export/export.component.ngfactory.d.ts.map +0 -1
  168. package/lib/components/export/export.component.scss.shim.ngstyle.d.ts.map +0 -1
  169. package/lib/components/filter/check/check.component.ngfactory.d.ts.map +0 -1
  170. package/lib/components/filter/check/check.component.scss.shim.ngstyle.d.ts.map +0 -1
  171. package/lib/components/filter/date/date.component.ngfactory.d.ts.map +0 -1
  172. package/lib/components/filter/date/date.component.scss.shim.ngstyle.d.ts.map +0 -1
  173. package/lib/components/filter/date-with-edit/date-with-edit.component.ngfactory.d.ts.map +0 -1
  174. package/lib/components/filter/date-with-edit/date-with-edit.component.scss.shim.ngstyle.d.ts.map +0 -1
  175. package/lib/components/filter/filter.component.ngfactory.d.ts.map +0 -1
  176. package/lib/components/filter/filter.component.scss.shim.ngstyle.d.ts.map +0 -1
  177. package/lib/components/filter/flag/flag.component.ngfactory.d.ts.map +0 -1
  178. package/lib/components/filter/flag/flag.component.scss.shim.ngstyle.d.ts.map +0 -1
  179. package/lib/components/filter/int/int.component.ngfactory.d.ts.map +0 -1
  180. package/lib/components/filter/int/int.component.scss.shim.ngstyle.d.ts.map +0 -1
  181. package/lib/components/filter/radio/radio.component.ngfactory.d.ts.map +0 -1
  182. package/lib/components/filter/radio/radio.component.scss.shim.ngstyle.d.ts.map +0 -1
  183. package/lib/components/filter/text/text.component.ngfactory.d.ts.map +0 -1
  184. package/lib/components/filter/text/text.component.scss.shim.ngstyle.d.ts.map +0 -1
  185. package/lib/components/filters/filters.component.ngfactory.d.ts.map +0 -1
  186. package/lib/components/filters/filters.component.scss.shim.ngstyle.d.ts.map +0 -1
  187. package/lib/components/filters-config/filters-config.component.ngfactory.d.ts.map +0 -1
  188. package/lib/components/filters-config/filters-config.component.scss.shim.ngstyle.d.ts.map +0 -1
  189. package/lib/components/group/group.component.ngfactory.d.ts.map +0 -1
  190. package/lib/components/group/group.component.scss.shim.ngstyle.d.ts.map +0 -1
  191. package/lib/components/multiselect/multiselect.component.ngfactory.d.ts.map +0 -1
  192. package/lib/components/multiselect/multiselect.component.scss.shim.ngstyle.d.ts.map +0 -1
  193. package/lib/crud-full.module.ngfactory.d.ts.map +0 -1
  194. package/lib/crud.config.ngfactory.d.ts.map +0 -1
  195. package/lib/crud.module.ngfactory.d.ts.map +0 -1
  196. package/lib/factories/list-pagination/list-pagination.factory.ngfactory.d.ts.map +0 -1
  197. package/lib/pages/item/item.component.ngfactory.d.ts.map +0 -1
  198. package/lib/pages/item/standard/standard.component.ngfactory.d.ts.map +0 -1
  199. package/lib/pages/item/standard/standard.component.scss.shim.ngstyle.d.ts.map +0 -1
  200. package/lib/pages/list/list.component.ngfactory.d.ts.map +0 -1
  201. package/lib/pages/list/standard/standard.component.ngfactory.d.ts.map +0 -1
  202. package/lib/pages/list/standard/standard.component.scss.shim.ngstyle.d.ts.map +0 -1
  203. package/lib/pipes/form-options/form-options.pipe.ngfactory.d.ts.map +0 -1
  204. package/lib/pipes/pipes.module.ngfactory.d.ts.map +0 -1
  205. package/lib/services/crud/crud.service.ngfactory.d.ts.map +0 -1
  206. package/lib/services/list-group/list-group.service.ngfactory.d.ts.map +0 -1
  207. package/lib/services/page/page.service.ngfactory.d.ts.map +0 -1
  208. package/lib/services/search/search.service.ngfactory.d.ts.map +0 -1
  209. package/lib/services/socket/socket.service.ngfactory.d.ts.map +0 -1
  210. package/smartsoft001-crud-shell-angular.metadata.json +0 -1
@@ -1,319 +0,0 @@
1
- import { __awaiter } from "tslib";
2
- import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, Injector, NgModuleRef, QueryList, TemplateRef, ViewChild, ViewChildren, ViewContainerRef, } from "@angular/core";
3
- import { map, tap } from "rxjs/operators";
4
- import { Router } from "@angular/router";
5
- import { CreateDynamicComponent, DynamicComponentLoader, DynamicContentDirective, HardwareService, ListMode, MenuService, StyleService, } from "@smartsoft001/angular";
6
- import { getModelFieldsWithOptions, getModelOptions, } from "@smartsoft001/models";
7
- import { CrudFacade } from "../../+state/crud.facade";
8
- import { CrudFullConfig } from "../../crud.config";
9
- import { ExportComponent } from "../../components/export/export.component";
10
- import { FiltersComponent } from "../../components/filters/filters.component";
11
- import { MultiselectComponent } from "../../components/multiselect/multiselect.component";
12
- import { CrudListPaginationFactory } from "../../factories/list-pagination/list-pagination.factory";
13
- import { PageService } from "../../services/page/page.service";
14
- import { CrudSearchService } from "../../services/search/search.service";
15
- export class ListComponent extends CreateDynamicComponent('crud-list-page') {
16
- constructor(facade, router, dynamicComponentLoader, injector, cd, menuService, hardwareService, paginationFacade, styleService, elementRef, pageService, config, searchService, moduleRef, componentFactoryResolver) {
17
- super(cd, moduleRef, componentFactoryResolver);
18
- this.facade = facade;
19
- this.router = router;
20
- this.dynamicComponentLoader = dynamicComponentLoader;
21
- this.injector = injector;
22
- this.cd = cd;
23
- this.menuService = menuService;
24
- this.hardwareService = hardwareService;
25
- this.paginationFacade = paginationFacade;
26
- this.styleService = styleService;
27
- this.elementRef = elementRef;
28
- this.pageService = pageService;
29
- this.config = config;
30
- this.searchService = searchService;
31
- this.moduleRef = moduleRef;
32
- this.componentFactoryResolver = componentFactoryResolver;
33
- this.filter$ = this.facade.filter$.pipe(tap((filter) => {
34
- this.filter = filter;
35
- }));
36
- this.dynamicContents = new QueryList();
37
- this.facade.links$.pipe(this.takeUntilDestroy).subscribe((links) => {
38
- this.links = links;
39
- });
40
- }
41
- refreshProperties() {
42
- this.baseInstance.listOptions = this.listOptions;
43
- }
44
- ngOnInit() {
45
- var _a, _b, _c, _d, _e, _f, _g;
46
- return __awaiter(this, void 0, void 0, function* () {
47
- yield this.pageService.checkPermissions();
48
- let newFilter = null;
49
- if (((_a = this.config.list) === null || _a === void 0 ? void 0 : _a.resetQuery) === 'beforeInit') {
50
- newFilter = Object.assign({ query: this.config.baseQuery ? [...this.config.baseQuery] : [], paginationMode: this.config.list.paginationMode, limit: this.config.pagination ? this.config.pagination.limit : null, offset: this.config.pagination ? 0 : null, sortBy: this.config.sort ? this.config.sort["default"] : null, sortDesc: this.config.sort ? this.config.sort["defaultDesc"] : null }, this.searchService.filter);
51
- }
52
- else if (this.filter) {
53
- newFilter = this.filter;
54
- }
55
- else {
56
- newFilter = Object.assign({ paginationMode: this.config.list.paginationMode, limit: ((_b = this.searchService.filter) === null || _b === void 0 ? void 0 : _b.limit) ? this.searchService.filter.limit : this.config.pagination
57
- ? this.config.pagination.limit : null, offset: ((_c = this.searchService.filter) === null || _c === void 0 ? void 0 : _c.offset) || ((_d = this.searchService.filter) === null || _d === void 0 ? void 0 : _d.offset) === 0
58
- ? this.searchService.filter.offset : this.config.pagination ? 0 : null, sortBy: ((_e = this.searchService.filter) === null || _e === void 0 ? void 0 : _e.sortBy) ? this.searchService.filter.sortBy : this.config.sort
59
- ? this.config.sort["default"] : null, sortDesc: ((_f = this.searchService.filter) === null || _f === void 0 ? void 0 : _f.sortDesc) ? this.searchService.filter.sortDesc : this.config.sort
60
- ? this.config.sort["defaultDesc"] : null, query: this.config.baseQuery ? [...this.config.baseQuery] : [] }, this.searchService.filter);
61
- }
62
- this.facade.read(newFilter);
63
- const endButtons = this.getEndButtons();
64
- this.pageOptions = {
65
- title: this.config.title,
66
- search: this.config.search
67
- ? {
68
- text$: this.filter$.pipe(map((f) => (f ? f.searchText : null))),
69
- set: (txt) => {
70
- if (txt !== this.filter.searchText)
71
- this.facade.read(Object.assign(Object.assign({}, this.filter), { searchText: txt, offset: 0 }));
72
- },
73
- }
74
- : null,
75
- endButtons: endButtons,
76
- };
77
- const compiledComponents = yield this.dynamicComponentLoader.getComponentsWithFactories({
78
- components: [
79
- ...(this.config.details &&
80
- this.config.details["components"] &&
81
- this.config.details["components"].top
82
- ? [this.config.details["components"].top]
83
- : []),
84
- ...(this.config.details &&
85
- this.config.details["components"] &&
86
- this.config.details["components"].bottom
87
- ? [this.config.details["components"].bottom]
88
- : []),
89
- ...(this.config.list &&
90
- this.config.list["components"] &&
91
- this.config.list["components"].top
92
- ? [this.config.list["components"].top]
93
- : []),
94
- ],
95
- });
96
- this.listOptions = {
97
- provider: {
98
- getData: (filter) => {
99
- const global = Object.assign(Object.assign({}, this.filter), filter);
100
- this.facade.read(global);
101
- },
102
- onChangeMultiSelected: (list) => __awaiter(this, void 0, void 0, function* () {
103
- if (list.length && !this.menuService.openedEnd) {
104
- yield this.menuService.openEnd({
105
- injector: this.injector,
106
- component: MultiselectComponent,
107
- });
108
- }
109
- else if (!list.length && this.menuService.openedEnd) {
110
- yield this.menuService.closeEnd();
111
- }
112
- this.facade.multiSelect(list);
113
- }),
114
- list$: this.facade.list$,
115
- loading$: this.facade.loaded$.pipe(map((l) => !l)),
116
- },
117
- cellPipe: this.config.list ? this.config.list.cellPipe : null,
118
- mode: (_g = this.config.list) === null || _g === void 0 ? void 0 : _g.mode,
119
- type: this.config.type,
120
- details: this.config.details
121
- ? {
122
- provider: {
123
- getData: (id) => {
124
- this.facade.select(id);
125
- },
126
- clearData: () => {
127
- this.facade.unselect();
128
- },
129
- item$: this.facade.selected$,
130
- loading$: this.facade.loaded$.pipe(map((l) => !l)),
131
- },
132
- componentFactories: {
133
- top: this.config.details &&
134
- this.config.details["components"] &&
135
- this.config.details["components"].top
136
- ? compiledComponents.find((cc) => cc.component === this.config.details["components"].top).factory
137
- : null,
138
- bottom: this.config.details &&
139
- this.config.details["components"] &&
140
- this.config.details["components"].bottom
141
- ? compiledComponents.find((cc) => cc.component ===
142
- this.config.details["components"].bottom).factory
143
- : null,
144
- },
145
- }
146
- : null,
147
- item: this.config.edit || this.config.details
148
- ? {
149
- options: {
150
- routingPrefix: "/" + this.router.routerState.snapshot.url + "/",
151
- edit: this.config.edit,
152
- },
153
- }
154
- : null,
155
- remove: this.config.remove
156
- ? {
157
- provider: {
158
- invoke: (id) => this.facade.delete(id),
159
- },
160
- }
161
- : null,
162
- pagination: yield this.paginationFacade.create({
163
- mode: this.config.list.paginationMode,
164
- limit: this.config.pagination.limit,
165
- provider: {
166
- getFilter: () => {
167
- return this.filter;
168
- },
169
- getLinks: () => this.links,
170
- },
171
- }),
172
- sort: this.config.sort,
173
- };
174
- this.cd.detectChanges();
175
- this.initCloseMenu();
176
- this.initTopComponent(compiledComponents);
177
- this.refreshDynamicInstance();
178
- });
179
- }
180
- initCloseMenu() {
181
- this.router.events.pipe(this.takeUntilDestroy).subscribe(() => __awaiter(this, void 0, void 0, function* () {
182
- yield this.clear();
183
- }));
184
- }
185
- clear() {
186
- return __awaiter(this, void 0, void 0, function* () {
187
- yield this.menuService.closeEnd();
188
- this.listOptions = Object.assign(Object.assign({}, this.listOptions), { select: null });
189
- this.facade.multiSelect([]);
190
- });
191
- }
192
- getEndButtons() {
193
- var _a, _b, _c, _d, _e;
194
- const fieldsWithOptions = getModelFieldsWithOptions(new this.config.type());
195
- const modelOptions = getModelOptions(this.config.type);
196
- const showFilters = fieldsWithOptions.some((x) => { var _a, _b; return (_b = (_a = x.options) === null || _a === void 0 ? void 0 : _a.list) === null || _b === void 0 ? void 0 : _b.filter; }) || ((_a = modelOptions === null || modelOptions === void 0 ? void 0 : modelOptions.filters) === null || _a === void 0 ? void 0 : _a.length);
197
- const showMultiEdit = this.config.edit &&
198
- fieldsWithOptions.some((x) => { var _a, _b; return (_b = (_a = x.options) === null || _a === void 0 ? void 0 : _a.update) === null || _b === void 0 ? void 0 : _b.multi; }) &&
199
- !this.hardwareService.isMobile &&
200
- (!((_c = (_b = this.config) === null || _b === void 0 ? void 0 : _b.list) === null || _c === void 0 ? void 0 : _c.mode) ||
201
- ((_e = (_d = this.config) === null || _d === void 0 ? void 0 : _d.list) === null || _e === void 0 ? void 0 : _e.mode) === ListMode.desktop);
202
- return [
203
- ...(showMultiEdit
204
- ? [
205
- {
206
- icon: "checkbox-outline",
207
- text: "multi",
208
- handler: () => __awaiter(this, void 0, void 0, function* () {
209
- this.listOptions = Object.assign(Object.assign({}, this.listOptions), { select: this.listOptions.select === "multi" ? null : "multi" });
210
- this.facade.multiSelect([]);
211
- if (this.menuService.openedEnd)
212
- yield this.menuService.closeEnd();
213
- this.cd.detectChanges();
214
- }),
215
- },
216
- ]
217
- : []),
218
- ...(showFilters
219
- ? [
220
- {
221
- icon: "filter-outline",
222
- text: "filters",
223
- handler: () => __awaiter(this, void 0, void 0, function* () {
224
- yield this.menuService.openEnd({
225
- injector: this.injector,
226
- component: FiltersComponent,
227
- });
228
- }),
229
- },
230
- ]
231
- : []),
232
- ...(this.config.add
233
- ? [
234
- {
235
- icon: "add",
236
- text: "add",
237
- handler: () => {
238
- this.router.navigate([
239
- "/" + this.router.routerState.snapshot.url + "/add",
240
- ]);
241
- },
242
- },
243
- ]
244
- : []),
245
- ...(this.config.export
246
- ? [
247
- {
248
- text: "export",
249
- icon: "download-outline",
250
- type: "popover",
251
- component: ExportComponent,
252
- },
253
- ]
254
- : []),
255
- ...(this.config.buttons ? this.config.buttons : []),
256
- ];
257
- }
258
- initTopComponent(compiledComponents) {
259
- const factory = this.config.list &&
260
- this.config.list["components"] &&
261
- this.config.list["components"].top
262
- ? compiledComponents.find((cc) => cc.component === this.config.list["components"].top).factory
263
- : null;
264
- setTimeout(() => {
265
- if (factory && !this.topTpl.get(0)) {
266
- this.topTpl.createComponent(factory);
267
- }
268
- });
269
- }
270
- }
271
- /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
272
- ListComponent.decorators = [
273
- { type: Component, args: [{
274
- selector: "smart-crud-list-page",
275
- template: `
276
- <smart-page [options]="pageOptions" *ngIf="filter$ | async">
277
- <div #topTpl></div>
278
- <smart-crud-list-standard-page *ngIf="template === 'default'" [listOptions]="listOptions">
279
- <ng-container [ngTemplateOutlet]="contentTpl"></ng-container>
280
- </smart-crud-list-standard-page>
281
- <ng-template #contentTpl>
282
- <ng-content></ng-content>
283
- </ng-template>
284
- <div class="dynamic-content"></div>
285
- </smart-page>
286
- `
287
- },] }
288
- ];
289
- /**
290
- * @type {function(): !Array<(null|{
291
- * type: ?,
292
- * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
293
- * })>}
294
- * @nocollapse
295
- */
296
- ListComponent.ctorParameters = () => [
297
- { type: CrudFacade },
298
- { type: Router },
299
- { type: DynamicComponentLoader },
300
- { type: Injector },
301
- { type: ChangeDetectorRef },
302
- { type: MenuService },
303
- { type: HardwareService },
304
- { type: CrudListPaginationFactory },
305
- { type: StyleService },
306
- { type: ElementRef },
307
- { type: PageService },
308
- { type: CrudFullConfig },
309
- { type: CrudSearchService },
310
- { type: NgModuleRef },
311
- { type: ComponentFactoryResolver }
312
- ];
313
- /** @type {!Object<string, !Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
314
- ListComponent.propDecorators = {
315
- topTpl: [{ type: ViewChild, args: ["topTpl", { read: ViewContainerRef, static: false },] }],
316
- contentTpl: [{ type: ViewChild, args: ["contentTpl", { read: TemplateRef, static: false },] }],
317
- dynamicContents: [{ type: ViewChildren, args: [DynamicContentDirective, { read: DynamicContentDirective },] }]
318
- };
319
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3BhZ2VzL2xpc3QvbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNTLHdCQUF3QixFQUFFLFVBQVUsRUFDdEQsUUFBUSxFQUFFLFdBQVcsRUFDYixTQUFTLEVBQUUsV0FBVyxFQUM5QixTQUFTLEVBQUUsWUFBWSxFQUN2QixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJekMsT0FBTyxFQUNMLHNCQUFzQixFQUN0QixzQkFBc0IsRUFBRSx1QkFBdUIsRUFDL0MsZUFBZSxFQUlmLFFBQVEsRUFDUixXQUFXLEVBQUUsWUFBWSxHQUMxQixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsZUFBZSxHQUdoQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHlEQUF5RCxDQUFDO0FBQ3BHLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxrQ0FBa0Ms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LENBQUM7SUFDTCxDQUFDOzs7O1lBcldGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsc0JBQXNCO2dCQUNoQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0dBV1Q7YUFDRjs7Ozs7Ozs7OztZQXpCUSxVQUFVO1lBdEJWLE1BQU07WUFNYixzQkFBc0I7WUFadEIsUUFBUTtZQUhSLGlCQUFpQjtZQXFCakIsV0FBVztZQUxYLGVBQWU7WUFxQlIseUJBQXlCO1lBaEJuQixZQUFZO1lBbkJtQixVQUFVO1lBb0NoRCxXQUFXO1lBTlYsY0FBYztZQVFmLGlCQUFpQjtZQXJDYixXQUFXO1lBREgsd0JBQXdCOzs7O3FCQXNFekMsU0FBUyxTQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO3lCQUc3RCxTQUFTLFNBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFOzhCQUc1RCxZQUFZLFNBQUMsdUJBQXVCLEVBQUUsRUFBRSxJQUFJLEVBQUUsdUJBQXVCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb21wb25lbnRGYWN0b3J5LCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsIEVsZW1lbnRSZWYsXG4gIEluamVjdG9yLCBOZ01vZHVsZVJlZiwgT25EZXN0cm95LFxuICBPbkluaXQsIFF1ZXJ5TGlzdCwgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCwgVmlld0NoaWxkcmVuLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgbWFwLCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XG5cbmltcG9ydCB7XG4gIENyZWF0ZUR5bmFtaWNDb21wb25lbnQsXG4gIER5bmFtaWNDb21wb25lbnRMb2FkZXIsIER5bmFtaWNDb250ZW50RGlyZWN0aXZlLFxuICBIYXJkd2FyZVNlcnZpY2UsXG4gIElJY29uQnV0dG9uT3B0aW9ucyxcbiAgSUxpc3RPcHRpb25zLFxuICBJUGFnZU9wdGlvbnMsXG4gIExpc3RNb2RlLFxuICBNZW51U2VydmljZSwgU3R5bGVTZXJ2aWNlLFxufSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9hbmd1bGFyXCI7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcbmltcG9ydCB7XG4gIGdldE1vZGVsRmllbGRzV2l0aE9wdGlvbnMsXG4gIGdldE1vZGVsT3B0aW9ucyxcbiAgSUZpZWxkRWRpdE1ldGFkYXRhLFxuICBJRmllbGRMaXN0TWV0YWRhdGEsXG59IGZyb20gXCJAc21hcnRzb2Z0MDAxL21vZGVsc1wiO1xuXG5pbXBvcnQgeyBDcnVkRmFjYWRlIH0gZnJvbSBcIi4uLy4uLytzdGF0ZS9jcnVkLmZhY2FkZVwiO1xuaW1wb3J0IHsgQ3J1ZEZ1bGxDb25maWcgfSBmcm9tIFwiLi4vLi4vY3J1ZC5jb25maWdcIjtcbmltcG9ydCB7IElDcnVkRmlsdGVyIH0gZnJvbSBcIi4uLy4uL21vZGVscy9pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBFeHBvcnRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9leHBvcnQvZXhwb3J0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRmlsdGVyc0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnRcIjtcbmltcG9ydCB7IE11bHRpc2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvbXVsdGlzZWxlY3QvbXVsdGlzZWxlY3QuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5IH0gZnJvbSBcIi4uLy4uL2ZhY3Rvcmllcy9saXN0LXBhZ2luYXRpb24vbGlzdC1wYWdpbmF0aW9uLmZhY3RvcnlcIjtcbmltcG9ydCB7UGFnZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9wYWdlL3BhZ2Uuc2VydmljZVwiO1xuaW1wb3J0IHtDcnVkTGlzdFBhZ2VCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi9iYXNlL2Jhc2UuY29tcG9uZW50XCI7XG5pbXBvcnQge0NydWRTZWFyY2hTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzbWFydC1jcnVkLWxpc3QtcGFnZVwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzbWFydC1wYWdlIFtvcHRpb25zXT1cInBhZ2VPcHRpb25zXCIgKm5nSWY9XCJmaWx0ZXIkIHwgYXN5bmNcIj5cbiAgICAgIDxkaXYgI3RvcFRwbD48L2Rpdj5cbiAgICAgIDxzbWFydC1jcnVkLWxpc3Qtc3RhbmRhcmQtcGFnZSAqbmdJZj1cInRlbXBsYXRlID09PSAnZGVmYXVsdCdcIiBbbGlzdE9wdGlvbnNdPVwibGlzdE9wdGlvbnNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9zbWFydC1jcnVkLWxpc3Qtc3RhbmRhcmQtcGFnZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudFRwbD5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkeW5hbWljLWNvbnRlbnRcIj48L2Rpdj5cbiAgICA8L3NtYXJ0LXBhZ2U+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgTGlzdENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PlxuICAgIGV4dGVuZHMgQ3JlYXRlRHluYW1pY0NvbXBvbmVudDxDcnVkTGlzdFBhZ2VCYXNlQ29tcG9uZW50PGFueT4+KCdjcnVkLWxpc3QtcGFnZScpXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgcGFnZU9wdGlvbnM6IElQYWdlT3B0aW9ucztcbiAgbGlzdE9wdGlvbnM6IElMaXN0T3B0aW9uczxUPjtcbiAgZmlsdGVyOiBJQ3J1ZEZpbHRlcjtcbiAgbGlua3M6IHsgbmV4dDsgcHJldiB9O1xuXG4gIGZpbHRlciQ6IE9ic2VydmFibGU8SUNydWRGaWx0ZXI+ID0gdGhpcy5mYWNhZGUuZmlsdGVyJC5waXBlKFxuICAgIHRhcCgoZmlsdGVyKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjtcbiAgICB9KVxuICApO1xuXG4gIEBWaWV3Q2hpbGQoXCJ0b3BUcGxcIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIHRvcFRwbDogVmlld0NvbnRhaW5lclJlZjtcblxuICBAVmlld0NoaWxkKFwiY29udGVudFRwbFwiLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIGNvbnRlbnRUcGw6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZHJlbihEeW5hbWljQ29udGVudERpcmVjdGl2ZSwgeyByZWFkOiBEeW5hbWljQ29udGVudERpcmVjdGl2ZSB9KVxuICBkeW5hbWljQ29udGVudHMgPSBuZXcgUXVlcnlMaXN0PER5bmFtaWNDb250ZW50RGlyZWN0aXZlPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmFjYWRlOiBDcnVkRmFjYWRlPFQ+LFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBkeW5hbWljQ29tcG9uZW50TG9hZGVyOiBEeW5hbWljQ29tcG9uZW50TG9hZGVyPFQ+LFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuICAgIHByaXZhdGUgaGFyZHdhcmVTZXJ2aWNlOiBIYXJkd2FyZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYWdpbmF0aW9uRmFjYWRlOiBDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5PFQ+LFxuICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBTdHlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcGFnZVNlcnZpY2U6IFBhZ2VTZXJ2aWNlPFQ+LFxuICAgIHB1YmxpYyBjb25maWc6IENydWRGdWxsQ29uZmlnPFQ+LFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogQ3J1ZFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2R1bGVSZWY6IE5nTW9kdWxlUmVmPGFueT4sXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICApIHtcbiAgICBzdXBlcihjZCwgbW9kdWxlUmVmLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpO1xuXG4gICAgdGhpcy5mYWNhZGUubGlua3MkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGxpbmtzKSA9PiB7XG4gICAgICB0aGlzLmxpbmtzID0gbGlua3M7XG4gICAgfSk7XG4gIH1cblxuICByZWZyZXNoUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2VJbnN0YW5jZS5saXN0T3B0aW9ucyA9IHRoaXMubGlzdE9wdGlvbnM7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhZ2VTZXJ2aWNlLmNoZWNrUGVybWlzc2lvbnMoKTtcblxuICAgIGxldCBuZXdGaWx0ZXIgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLmxpc3Q/LnJlc2V0UXVlcnkgPT09ICdiZWZvcmVJbml0Jykge1xuICAgICAgbmV3RmlsdGVyID0ge1xuICAgICAgICBxdWVyeTogdGhpcy5jb25maWcuYmFzZVF1ZXJ5ID8gWyAuLi50aGlzLmNvbmZpZy5iYXNlUXVlcnkgXSA6IFtdLFxuICAgICAgICBwYWdpbmF0aW9uTW9kZTogdGhpcy5jb25maWcubGlzdC5wYWdpbmF0aW9uTW9kZSxcbiAgICAgICAgbGltaXQ6IHRoaXMuY29uZmlnLnBhZ2luYXRpb24gPyB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uLmxpbWl0IDogbnVsbCxcbiAgICAgICAgb2Zmc2V0OiB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uID8gMCA6IG51bGwsXG4gICAgICAgIHNvcnRCeTogdGhpcy5jb25maWcuc29ydCA/IHRoaXMuY29uZmlnLnNvcnRbXCJkZWZhdWx0XCJdIDogbnVsbCxcbiAgICAgICAgc29ydERlc2M6IHRoaXMuY29uZmlnLnNvcnQgPyB0aGlzLmNvbmZpZy5zb3J0W1wiZGVmYXVsdERlc2NcIl0gOiBudWxsLFxuICAgICAgICAuLi50aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyXG4gICAgICB9O1xuICAgIH0gZWxzZSBpZiAodGhpcy5maWx0ZXIpIHtcbiAgICAgIG5ld0ZpbHRlciA9IHRoaXMuZmlsdGVyO1xuICAgIH0gZWxzZSB7XG4gICAgICBuZXdGaWx0ZXIgPSB7XG4gICAgICAgIHBhZ2luYXRpb25Nb2RlOiB0aGlzLmNvbmZpZy5saXN0LnBhZ2luYXRpb25Nb2RlLFxuICAgICAgICBsaW1pdDogdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlcj8ubGltaXQgPyB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyLmxpbWl0IDogdGhpcy5jb25maWcucGFnaW5hdGlvblxuICAgICAgICAgICAgPyB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uLmxpbWl0IDogbnVsbCxcbiAgICAgICAgb2Zmc2V0OiB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyPy5vZmZzZXQgfHwgdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlcj8ub2Zmc2V0ID09PSAwXG4gICAgICAgICAgICA/IHRoaXMuc2VhcmNoU2VydmljZS5maWx0ZXIub2Zmc2V0IDogdGhpcy5jb25maWcucGFnaW5hdGlvbiA/IDAgOiBudWxsLFxuICAgICAgICBzb3J0Qnk6IHRoaXMuc2VhcmNoU2VydmljZS5maWx0ZXI/LnNvcnRCeSA/IHRoaXMuc2VhcmNoU2VydmljZS5maWx0ZXIuc29ydEJ5IDogdGhpcy5jb25maWcuc29ydFxuICAgICAgICAgICAgPyB0aGlzLmNvbmZpZy5zb3J0W1wiZGVmYXVsdFwiXSA6IG51bGwsXG4gICAgICAgIHNvcnREZXNjOiB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyPy5zb3J0RGVzYyA/IHRoaXMuc2VhcmNoU2VydmljZS5maWx0ZXIuc29ydERlc2MgOiAgdGhpcy5jb25maWcuc29ydFxuICAgICAgICAgICAgPyB0aGlzLmNvbmZpZy5zb3J0W1wiZGVmYXVsdERlc2NcIl0gOiBudWxsLFxuICAgICAgICBxdWVyeTogdGhpcy5jb25maWcuYmFzZVF1ZXJ5ID8gWyAuLi50aGlzLmNvbmZpZy5iYXNlUXVlcnkgXSA6IFtdLFxuICAgICAgICAuLi50aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyXG4gICAgICB9O1xuICAgIH1cblxuICAgIHRoaXMuZmFjYWRlLnJlYWQobmV3RmlsdGVyKTtcblxuICAgIGNvbnN0IGVuZEJ1dHRvbnMgPSB0aGlzLmdldEVuZEJ1dHRvbnMoKTtcblxuICAgIHRoaXMucGFnZU9wdGlvbnMgPSB7XG4gICAgICB0aXRsZTogdGhpcy5jb25maWcudGl0bGUsXG4gICAgICBzZWFyY2g6IHRoaXMuY29uZmlnLnNlYXJjaFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHRleHQkOiB0aGlzLmZpbHRlciQucGlwZShtYXAoKGYpID0+IChmID8gZi5zZWFyY2hUZXh0IDogbnVsbCkpKSxcbiAgICAgICAgICAgIHNldDogKHR4dCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodHh0ICE9PSB0aGlzLmZpbHRlci5zZWFyY2hUZXh0KVxuICAgICAgICAgICAgICAgIHRoaXMuZmFjYWRlLnJlYWQoe1xuICAgICAgICAgICAgICAgICAgLi4udGhpcy5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICBzZWFyY2hUZXh0OiB0eHQsXG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgOiBudWxsLFxuICAgICAgZW5kQnV0dG9uczogZW5kQnV0dG9ucyxcbiAgICB9O1xuXG4gICAgY29uc3QgY29tcGlsZWRDb21wb25lbnRzID1cbiAgICAgIGF3YWl0IHRoaXMuZHluYW1pY0NvbXBvbmVudExvYWRlci5nZXRDb21wb25lbnRzV2l0aEZhY3Rvcmllcyh7XG4gICAgICAgIGNvbXBvbmVudHM6IFtcbiAgICAgICAgICAuLi4odGhpcy5jb25maWcuZGV0YWlscyAmJlxuICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdICYmXG4gICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0udG9wXG4gICAgICAgICAgICA/IFt0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXS50b3BdXG4gICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICAuLi4odGhpcy5jb25maWcuZGV0YWlscyAmJlxuICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdICYmXG4gICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0uYm90dG9tXG4gICAgICAgICAgICA/IFt0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXS5ib3R0b21dXG4gICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICAuLi4odGhpcy5jb25maWcubGlzdCAmJlxuICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3RbXCJjb21wb25lbnRzXCJdICYmXG4gICAgICAgICAgdGhpcy5jb25maWcubGlzdFtcImNvbXBvbmVudHNcIl0udG9wXG4gICAgICAgICAgICA/IFt0aGlzLmNvbmZpZy5saXN0W1wiY29tcG9uZW50c1wiXS50b3BdXG4gICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5saXN0T3B0aW9ucyA9IHtcbiAgICAgIHByb3ZpZGVyOiB7XG4gICAgICAgIGdldERhdGE6IChmaWx0ZXIpOiB2b2lkID0+IHtcbiAgICAgICAgICBjb25zdCBnbG9iYWwgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmZpbHRlcixcbiAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICB9O1xuICAgICAgICAgIHRoaXMuZmFjYWRlLnJlYWQoZ2xvYmFsKTtcbiAgICAgICAgfSxcbiAgICAgICAgb25DaGFuZ2VNdWx0aVNlbGVjdGVkOiBhc3luYyAobGlzdCkgPT4ge1xuICAgICAgICAgIGlmIChsaXN0Lmxlbmd0aCAmJiAhdGhpcy5tZW51U2VydmljZS5vcGVuZWRFbmQpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubWVudVNlcnZpY2Uub3BlbkVuZCh7XG4gICAgICAgICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IE11bHRpc2VsZWN0Q29tcG9uZW50LFxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSBlbHNlIGlmICghbGlzdC5sZW5ndGggJiYgdGhpcy5tZW51U2VydmljZS5vcGVuZWRFbmQpIHtcbiAgICAgICAgICAgIGF3YWl0IHRoaXMubWVudVNlcnZpY2UuY2xvc2VFbmQoKTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLmZhY2FkZS5tdWx0aVNlbGVjdChsaXN0KTtcbiAgICAgICAgfSxcbiAgICAgICAgbGlzdCQ6IHRoaXMuZmFjYWRlLmxpc3QkLFxuICAgICAgICBsb2FkaW5nJDogdGhpcy5mYWNhZGUubG9hZGVkJC5waXBlKG1hcCgobCkgPT4gIWwpKSxcbiAgICAgIH0sXG4gICAgICBjZWxsUGlwZTogdGhpcy5jb25maWcubGlzdCA/IHRoaXMuY29uZmlnLmxpc3QuY2VsbFBpcGUgOiBudWxsLFxuICAgICAgbW9kZTogdGhpcy5jb25maWcubGlzdD8ubW9kZSxcbiAgICAgIHR5cGU6IHRoaXMuY29uZmlnLnR5cGUsXG4gICAgICBkZXRhaWxzOiB0aGlzLmNvbmZpZy5kZXRhaWxzXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcHJvdmlkZXI6IHtcbiAgICAgICAgICAgICAgZ2V0RGF0YTogKGlkKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mYWNhZGUuc2VsZWN0KGlkKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgY2xlYXJEYXRhOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mYWNhZGUudW5zZWxlY3QoKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaXRlbSQ6IHRoaXMuZmFjYWRlLnNlbGVjdGVkJCxcbiAgICAgICAgICAgICAgbG9hZGluZyQ6IHRoaXMuZmFjYWRlLmxvYWRlZCQucGlwZShtYXAoKGwpID0+ICFsKSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yaWVzOiB7XG4gICAgICAgICAgICAgIHRvcDpcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzICYmXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0gJiZcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXS50b3BcbiAgICAgICAgICAgICAgICAgID8gY29tcGlsZWRDb21wb25lbnRzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgKGNjKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuY29tcG9uZW50ID09PSB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXS50b3BcbiAgICAgICAgICAgICAgICAgICAgKS5mYWN0b3J5XG4gICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICAgIGJvdHRvbTpcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzICYmXG4gICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0gJiZcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXS5ib3R0b21cbiAgICAgICAgICAgICAgICAgID8gY29tcGlsZWRDb21wb25lbnRzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgICAgKGNjKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgY2MuY29tcG9uZW50ID09PVxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0uYm90dG9tXG4gICAgICAgICAgICAgICAgICAgICkuZmFjdG9yeVxuICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIDogbnVsbCxcbiAgICAgIGl0ZW06XG4gICAgICAgIHRoaXMuY29uZmlnLmVkaXQgfHwgdGhpcy5jb25maWcuZGV0YWlsc1xuICAgICAgICAgID8ge1xuICAgICAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAgICAgcm91dGluZ1ByZWZpeDogXCIvXCIgKyB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwgKyBcIi9cIixcbiAgICAgICAgICAgICAgICBlZGl0OiB0aGlzLmNvbmZpZy5lZGl0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogbnVsbCxcbiAgICAgIHJlbW92ZTogdGhpcy5jb25maWcucmVtb3ZlXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcHJvdmlkZXI6IHtcbiAgICAgICAgICAgICAgaW52b2tlOiAoaWQpID0+IHRoaXMuZmFjYWRlLmRlbGV0ZShpZCksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgOiBudWxsLFxuICAgICAgcGFnaW5hdGlvbjogYXdhaXQgdGhpcy5wYWdpbmF0aW9uRmFjYWRlLmNyZWF0ZSh7XG4gICAgICAgIG1vZGU6IHRoaXMuY29uZmlnLmxpc3QucGFnaW5hdGlvbk1vZGUsXG4gICAgICAgIGxpbWl0OiB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uLmxpbWl0LFxuICAgICAgICBwcm92aWRlcjoge1xuICAgICAgICAgIGdldEZpbHRlcjogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyO1xuICAgICAgICAgIH0sXG4gICAgICAgICAgZ2V0TGlua3M6ICgpID0+IHRoaXMubGlua3MsXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHNvcnQ6IHRoaXMuY29uZmlnLnNvcnQsXG4gICAgfTtcblxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuXG4gICAgdGhpcy5pbml0Q2xvc2VNZW51KCk7XG4gICAgdGhpcy5pbml0VG9wQ29tcG9uZW50KGNvbXBpbGVkQ29tcG9uZW50cyk7XG5cbiAgICB0aGlzLnJlZnJlc2hEeW5hbWljSW5zdGFuY2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdENsb3NlTWVudSgpIHtcbiAgICB0aGlzLnJvdXRlci5ldmVudHMucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZShhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCB0aGlzLmNsZWFyKCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNsZWFyKCkge1xuICAgIGF3YWl0IHRoaXMubWVudVNlcnZpY2UuY2xvc2VFbmQoKTtcblxuICAgIHRoaXMubGlzdE9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLmxpc3RPcHRpb25zLFxuICAgICAgc2VsZWN0OiBudWxsLFxuICAgIH07XG5cbiAgICB0aGlzLmZhY2FkZS5tdWx0aVNlbGVjdChbXSk7XG4gIH1cblxuICBwcml2YXRlIGdldEVuZEJ1dHRvbnMoKTogQXJyYXk8SUljb25CdXR0b25PcHRpb25zPiB7XG4gICAgY29uc3QgZmllbGRzV2l0aE9wdGlvbnMgPSBnZXRNb2RlbEZpZWxkc1dpdGhPcHRpb25zKG5ldyB0aGlzLmNvbmZpZy50eXBlKCkpO1xuICAgIGNvbnN0IG1vZGVsT3B0aW9ucyA9IGdldE1vZGVsT3B0aW9ucyh0aGlzLmNvbmZpZy50eXBlKTtcblxuICAgIGNvbnN0IHNob3dGaWx0ZXJzID1cbiAgICAgIGZpZWxkc1dpdGhPcHRpb25zLnNvbWUoXG4gICAgICAgICh4KSA9PiAoeC5vcHRpb25zPy5saXN0IGFzIElGaWVsZExpc3RNZXRhZGF0YSk/LmZpbHRlclxuICAgICAgKSB8fCBtb2RlbE9wdGlvbnM/LmZpbHRlcnM/Lmxlbmd0aDtcblxuICAgIGNvbnN0IHNob3dNdWx0aUVkaXQgPVxuICAgICAgdGhpcy5jb25maWcuZWRpdCAmJlxuICAgICAgZmllbGRzV2l0aE9wdGlvbnMuc29tZShcbiAgICAgICAgKHgpID0+ICh4Lm9wdGlvbnM/LnVwZGF0ZSBhcyBJRmllbGRFZGl0TWV0YWRhdGEpPy5tdWx0aVxuICAgICAgKSAmJlxuICAgICAgIXRoaXMuaGFyZHdhcmVTZXJ2aWNlLmlzTW9iaWxlICYmXG4gICAgICAoIXRoaXMuY29uZmlnPy5saXN0Py5tb2RlIHx8XG4gICAgICAgIHRoaXMuY29uZmlnPy5saXN0Py5tb2RlID09PSBMaXN0TW9kZS5kZXNrdG9wKTtcblxuICAgIHJldHVybiBbXG4gICAgICAuLi4oc2hvd011bHRpRWRpdFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWNvbjogXCJjaGVja2JveC1vdXRsaW5lXCIsXG4gICAgICAgICAgICAgIHRleHQ6IFwibXVsdGlcIixcbiAgICAgICAgICAgICAgaGFuZGxlcjogYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdE9wdGlvbnMgPSB7XG4gICAgICAgICAgICAgICAgICAuLi50aGlzLmxpc3RPcHRpb25zLFxuICAgICAgICAgICAgICAgICAgc2VsZWN0OiB0aGlzLmxpc3RPcHRpb25zLnNlbGVjdCA9PT0gXCJtdWx0aVwiID8gbnVsbCA6IFwibXVsdGlcIixcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgIHRoaXMuZmFjYWRlLm11bHRpU2VsZWN0KFtdKTtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5tZW51U2VydmljZS5vcGVuZWRFbmQpXG4gICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlRW5kKCk7XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSksXG4gICAgICAuLi4oc2hvd0ZpbHRlcnNcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIGljb246IFwiZmlsdGVyLW91dGxpbmVcIixcbiAgICAgICAgICAgICAgdGV4dDogXCJmaWx0ZXJzXCIsXG4gICAgICAgICAgICAgIGhhbmRsZXI6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLm9wZW5FbmQoe1xuICAgICAgICAgICAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG4gICAgICAgICAgICAgICAgICBjb21wb25lbnQ6IEZpbHRlcnNDb21wb25lbnQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSksXG4gICAgICAuLi4odGhpcy5jb25maWcuYWRkXG4gICAgICAgID8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpY29uOiBcImFkZFwiLFxuICAgICAgICAgICAgICB0ZXh0OiBcImFkZFwiLFxuICAgICAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1xuICAgICAgICAgICAgICAgICAgXCIvXCIgKyB0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwgKyBcIi9hZGRcIixcbiAgICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICA6IFtdKSxcbiAgICAgIC4uLih0aGlzLmNvbmZpZy5leHBvcnRcbiAgICAgICAgPyBbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHRleHQ6IFwiZXhwb3J0XCIsXG4gICAgICAgICAgICAgIGljb246IFwiZG93bmxvYWQtb3V0bGluZVwiLFxuICAgICAgICAgICAgICB0eXBlOiBcInBvcG92ZXJcIiBhcyBcInBvcG92ZXJcIixcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBFeHBvcnRDb21wb25lbnQsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSksXG4gICAgICAuLi4odGhpcy5jb25maWcuYnV0dG9ucyA/IHRoaXMuY29uZmlnLmJ1dHRvbnMgOiBbXSksXG4gICAgXTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFRvcENvbXBvbmVudChcbiAgICBjb21waWxlZENvbXBvbmVudHM6IHtcbiAgICAgIGNvbXBvbmVudDogYW55O1xuICAgICAgZmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxhbnk+O1xuICAgIH1bXVxuICApIHtcbiAgICBjb25zdCBmYWN0b3J5ID1cbiAgICAgIHRoaXMuY29uZmlnLmxpc3QgJiZcbiAgICAgIHRoaXMuY29uZmlnLmxpc3RbXCJjb21wb25lbnRzXCJdICYmXG4gICAgICB0aGlzLmNvbmZpZy5saXN0W1wiY29tcG9uZW50c1wiXS50b3BcbiAgICAgICAgPyBjb21waWxlZENvbXBvbmVudHMuZmluZChcbiAgICAgICAgICAgIChjYykgPT4gY2MuY29tcG9uZW50ID09PSB0aGlzLmNvbmZpZy5saXN0W1wiY29tcG9uZW50c1wiXS50b3BcbiAgICAgICAgICApLmZhY3RvcnlcbiAgICAgICAgOiBudWxsO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoZmFjdG9yeSAmJiAhdGhpcy50b3BUcGwuZ2V0KDApKSB7XG4gICAgICAgIHRoaXMudG9wVHBsLmNyZWF0ZUNvbXBvbmVudChmYWN0b3J5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -1,39 +0,0 @@
1
- import { Component } from "@angular/core";
2
- import { map } from "rxjs/operators";
3
- import { CrudListPageBaseComponent } from "../base/base.component";
4
- import { CrudListGroupService } from "../../../services/list-group/list-group.service";
5
- import { CrudFacade } from "../../../+state/crud.facade";
6
- import { CrudFullConfig } from "../../../crud.config";
7
- export class ListStandardComponent extends CrudListPageBaseComponent {
8
- constructor(facade, config) {
9
- super(config);
10
- this.facade = facade;
11
- this.config = config;
12
- this.isSearch$ = this.facade.filter$.pipe(map(filter => {
13
- return !!(filter === null || filter === void 0 ? void 0 : filter.searchText);
14
- }));
15
- }
16
- }
17
- /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
18
- ListStandardComponent.decorators = [
19
- { type: Component, args: [{
20
- selector: "smart-crud-list-standard-page",
21
- template: "<smart-crud-filters-config></smart-crud-filters-config>\n<smart-list *ngIf=\"listOptions\"\n [hidden]=\"!(!config.list?.groups || (isSearch$ | async))\"\n [options]=\"listOptions\"\n></smart-list>\n<smart-crud-group *ngIf=\"config.list?.groups && !(isSearch$ | async)\"\n [groups]=\"config.list?.groups\"\n [listOptions]=\"listOptions\"\n>\n</smart-crud-group>",
22
- providers: [
23
- CrudListGroupService
24
- ],
25
- styles: [""]
26
- },] }
27
- ];
28
- /**
29
- * @type {function(): !Array<(null|{
30
- * type: ?,
31
- * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
32
- * })>}
33
- * @nocollapse
34
- */
35
- ListStandardComponent.ctorParameters = () => [
36
- { type: CrudFacade },
37
- { type: CrudFullConfig }
38
- ];
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9wYWdlcy9saXN0L3N0YW5kYXJkL3N0YW5kYXJkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUluQyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBVXBELE1BQU0sT0FBTyxxQkFBaUQsU0FBUSx5QkFBNEI7SUFPOUYsWUFDcUIsTUFBcUIsRUFDdEIsTUFBeUI7UUFFekMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBSEcsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQVI3QyxjQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUNsQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDVCxPQUFPLENBQUMsQ0FBQyxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxVQUFVLENBQUEsQ0FBQTtRQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBT0YsQ0FBQzs7OztZQXBCSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLCtCQUErQjtnQkFDekMsNGFBQXdDO2dCQUV4QyxTQUFTLEVBQUU7b0JBQ1Asb0JBQW9CO2lCQUN2Qjs7YUFDSjs7Ozs7Ozs7OztZQVZRLFVBQVU7WUFDWCxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHtDcnVkTGlzdFBhZ2VCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDcnVkTGlzdEdyb3VwU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2xpc3QtZ3JvdXAvbGlzdC1ncm91cC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDcnVkRmFjYWRlIH0gZnJvbSBcIi4uLy4uLy4uLytzdGF0ZS9jcnVkLmZhY2FkZVwiO1xuaW1wb3J0IHtDcnVkRnVsbENvbmZpZ30gZnJvbSBcIi4uLy4uLy4uL2NydWQuY29uZmlnXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInNtYXJ0LWNydWQtbGlzdC1zdGFuZGFyZC1wYWdlXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9zdGFuZGFyZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9zdGFuZGFyZC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQ3J1ZExpc3RHcm91cFNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIExpc3RTdGFuZGFyZENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIENydWRMaXN0UGFnZUJhc2VDb21wb25lbnQ8VD4ge1xuICAgIGlzU2VhcmNoJCA9IHRoaXMuZmFjYWRlLmZpbHRlciQucGlwZShcbiAgICAgIG1hcChmaWx0ZXIgPT4ge1xuICAgICAgICAgIHJldHVybiAhIWZpbHRlcj8uc2VhcmNoVGV4dFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmFjYWRlOiBDcnVkRmFjYWRlPFQ+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnOiBDcnVkRnVsbENvbmZpZzxUPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29uZmlnKTtcbiAgICB9XG59Il19
@@ -1,56 +0,0 @@
1
- import { Inject, Optional, Pipe } from "@angular/core";
2
- import { CRUD_MODEL_POSSIBILITIES_PROVIDER, ICrudModelPossibilitiesProvider, } from "../../providers/model-possibilities/model-possibilities.provider";
3
- export class FormOptionsPipe {
4
- constructor(modelPossibilitiesProvider) {
5
- this.modelPossibilitiesProvider = modelPossibilitiesProvider;
6
- }
7
- transform(item, mode, type, uniqueProvider, inputComponents) {
8
- if (!mode || !type)
9
- return null;
10
- let possibilities = {};
11
- if (type && this.modelPossibilitiesProvider) {
12
- possibilities = this.modelPossibilitiesProvider.get(type);
13
- }
14
- if (mode === "create") {
15
- return {
16
- mode: "create",
17
- possibilities,
18
- inputComponents,
19
- uniqueProvider,
20
- model: new type(),
21
- };
22
- }
23
- else {
24
- const model = new type();
25
- if (item) {
26
- Object.keys(item).forEach((key) => {
27
- model[key] = item[key];
28
- });
29
- }
30
- return {
31
- mode: mode,
32
- uniqueProvider,
33
- possibilities: possibilities,
34
- inputComponents,
35
- model: model,
36
- };
37
- }
38
- }
39
- }
40
- /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
41
- FormOptionsPipe.decorators = [
42
- { type: Pipe, args: [{
43
- name: "smartFormOptions",
44
- },] }
45
- ];
46
- /**
47
- * @type {function(): !Array<(null|{
48
- * type: ?,
49
- * decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>),
50
- * })>}
51
- * @nocollapse
52
- */
53
- FormOptionsPipe.ctorParameters = () => [
54
- { type: ICrudModelPossibilitiesProvider, decorators: [{ type: Optional }, { type: Inject, args: [CRUD_MODEL_POSSIBILITIES_PROVIDER,] }] }
55
- ];
56
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1vcHRpb25zLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3BpcGVzL2Zvcm0tb3B0aW9ucy9mb3JtLW9wdGlvbnMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQXNCLE1BQU0sZUFBZSxDQUFDO0FBSzFFLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsK0JBQStCLEdBQ2hDLE1BQU0sa0VBQWtFLENBQUM7QUFLMUUsTUFBTSxPQUFPLGVBQWU7SUFFMUIsWUFHVSwwQkFBMkQ7UUFBM0QsK0JBQTBCLEdBQTFCLDBCQUEwQixDQUFpQztJQUNsRSxDQUFDO0lBRUosU0FBUyxDQUNQLElBQU8sRUFDUCxJQUFZLEVBQ1osSUFBUyxFQUNULGNBQW1FLEVBQ25FLGVBQWtFO1FBRWxFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFaEMsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXZCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRTtZQUMzQyxhQUFhLEdBQUcsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMzRDtRQUVELElBQUksSUFBSSxLQUFLLFFBQVEsRUFBRTtZQUNyQixPQUFPO2dCQUNMLElBQUksRUFBRSxRQUFRO2dCQUNkLGFBQWE7Z0JBQ2IsZUFBZTtnQkFDZixjQUFjO2dCQUNkLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRTthQUNsQixDQUFDO1NBQ0g7YUFBTTtZQUNMLE1BQU0sS0FBSyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7WUFFekIsSUFBSSxJQUFJLEVBQUU7Z0JBQ1IsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDaEMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsQ0FBQyxDQUFDLENBQUM7YUFDSjtZQUVELE9BQU87Z0JBQ0wsSUFBSSxFQUFFLElBQUk7Z0JBQ1YsY0FBYztnQkFDZCxhQUFhLEVBQUUsYUFBYTtnQkFDNUIsZUFBZTtnQkFDZixLQUFLLEVBQUUsS0FBSzthQUNiLENBQUM7U0FDSDtJQUNILENBQUM7Ozs7WUFuREYsSUFBSSxTQUFDO2dCQUNKLElBQUksRUFBRSxrQkFBa0I7YUFDekI7Ozs7Ozs7Ozs7WUFMQywrQkFBK0IsdUJBUzVCLFFBQVEsWUFDUixNQUFNLFNBQUMsaUNBQWlDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3QsIE9wdGlvbmFsLCBQaXBlLCBQaXBlVHJhbnNmb3JtLCBUeXBlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcbmltcG9ydCB7SUZvcm1PcHRpb25zLCBJbnB1dEJhc2VDb21wb25lbnR9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2FuZ3VsYXJcIjtcblxuaW1wb3J0IHtcbiAgQ1JVRF9NT0RFTF9QT1NTSUJJTElUSUVTX1BST1ZJREVSLFxuICBJQ3J1ZE1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyLFxufSBmcm9tIFwiLi4vLi4vcHJvdmlkZXJzL21vZGVsLXBvc3NpYmlsaXRpZXMvbW9kZWwtcG9zc2liaWxpdGllcy5wcm92aWRlclwiO1xuXG5AUGlwZSh7XG4gIG5hbWU6IFwic21hcnRGb3JtT3B0aW9uc1wiLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtT3B0aW9uc1BpcGU8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj5cbiAgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQE9wdGlvbmFsKClcbiAgICBASW5qZWN0KENSVURfTU9ERUxfUE9TU0lCSUxJVElFU19QUk9WSURFUilcbiAgICBwcml2YXRlIG1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyOiBJQ3J1ZE1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyXG4gICkge31cblxuICB0cmFuc2Zvcm0oXG4gICAgaXRlbTogVCxcbiAgICBtb2RlOiBzdHJpbmcsXG4gICAgdHlwZTogYW55LFxuICAgIHVuaXF1ZVByb3ZpZGVyPzogKHZhbHVlczogUmVjb3JkPGtleW9mIFQsIGFueT4pID0+IFByb21pc2U8Ym9vbGVhbj4sXG4gICAgaW5wdXRDb21wb25lbnRzPzogeyBba2V5OiBzdHJpbmddOiBUeXBlPElucHV0QmFzZUNvbXBvbmVudDxhbnk+PiB9XG4gICk6IElGb3JtT3B0aW9uczxUPiB7XG4gICAgaWYgKCFtb2RlIHx8ICF0eXBlKSByZXR1cm4gbnVsbDtcblxuICAgIGxldCBwb3NzaWJpbGl0aWVzID0ge307XG5cbiAgICBpZiAodHlwZSAmJiB0aGlzLm1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyKSB7XG4gICAgICBwb3NzaWJpbGl0aWVzID0gdGhpcy5tb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlci5nZXQodHlwZSk7XG4gICAgfVxuXG4gICAgaWYgKG1vZGUgPT09IFwiY3JlYXRlXCIpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1vZGU6IFwiY3JlYXRlXCIsXG4gICAgICAgIHBvc3NpYmlsaXRpZXMsXG4gICAgICAgIGlucHV0Q29tcG9uZW50cyxcbiAgICAgICAgdW5pcXVlUHJvdmlkZXIsXG4gICAgICAgIG1vZGVsOiBuZXcgdHlwZSgpLFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbW9kZWwgPSBuZXcgdHlwZSgpO1xuXG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICBPYmplY3Qua2V5cyhpdGVtKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgICBtb2RlbFtrZXldID0gaXRlbVtrZXldO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgbW9kZTogbW9kZSxcbiAgICAgICAgdW5pcXVlUHJvdmlkZXIsXG4gICAgICAgIHBvc3NpYmlsaXRpZXM6IHBvc3NpYmlsaXRpZXMsXG4gICAgICAgIGlucHV0Q29tcG9uZW50cyxcbiAgICAgICAgbW9kZWw6IG1vZGVsLFxuICAgICAgfTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1,16 +0,0 @@
1
- import { NgModule } from "@angular/core";
2
- import { FormOptionsPipe } from "./form-options/form-options.pipe";
3
- export class CrudPipesModule {
4
- }
5
- /** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
6
- CrudPipesModule.decorators = [
7
- { type: NgModule, args: [{
8
- declarations: [
9
- FormOptionsPipe
10
- ],
11
- exports: [
12
- FormOptionsPipe
13
- ]
14
- },] }
15
- ];
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9waXBlcy9waXBlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFVakUsTUFBTSxPQUFPLGVBQWU7Ozs7WUFSM0IsUUFBUSxTQUFDO2dCQUNOLFlBQVksRUFBRTtvQkFDVixlQUFlO2lCQUNsQjtnQkFDRCxPQUFPLEVBQUU7b0JBQ0wsZUFBZTtpQkFDbEI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7Rm9ybU9wdGlvbnNQaXBlfSBmcm9tIFwiLi9mb3JtLW9wdGlvbnMvZm9ybS1vcHRpb25zLnBpcGVcIjtcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtcbiAgICAgICAgRm9ybU9wdGlvbnNQaXBlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIEZvcm1PcHRpb25zUGlwZVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3J1ZFBpcGVzTW9kdWxlIHtcblxufVxuIl19