@stemy/ngx-utils 12.1.3 → 12.1.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/bundles/stemy-ngx-utils.umd.js +24 -0
  2. package/bundles/stemy-ngx-utils.umd.js.map +1 -1
  3. package/esm2015/ngx-utils/services/acl.service.js +3 -1
  4. package/esm2015/ngx-utils/utils/file-system.js +20 -0
  5. package/esm2015/public_api.js +2 -1
  6. package/esm2020/ngx-utils/common-types.mjs +117 -0
  7. package/esm2020/ngx-utils/components/dynamic-table/dynamic-table.component.mjs +178 -0
  8. package/esm2020/ngx-utils/components/pagination-menu/pagination-menu.component.mjs +101 -0
  9. package/esm2020/ngx-utils/components/unordered-list/unordered-list.component.mjs +65 -0
  10. package/esm2020/ngx-utils/directives/async-method.base.mjs +78 -0
  11. package/esm2020/ngx-utils/directives/async-method.directive.mjs +21 -0
  12. package/esm2020/ngx-utils/directives/background.directive.mjs +51 -0
  13. package/esm2020/ngx-utils/directives/dynamic-table-template.directive.mjs +20 -0
  14. package/esm2020/ngx-utils/directives/global-template.directive.mjs +30 -0
  15. package/esm2020/ngx-utils/directives/icon.directive.mjs +67 -0
  16. package/esm2020/ngx-utils/directives/ngx-template-outlet.directive.mjs +90 -0
  17. package/esm2020/ngx-utils/directives/pagination-item.directive.mjs +33 -0
  18. package/esm2020/ngx-utils/directives/pagination.directive.mjs +83 -0
  19. package/esm2020/ngx-utils/directives/resource-if.directive.mjs +50 -0
  20. package/esm2020/ngx-utils/directives/sticky-class.directive.mjs +34 -0
  21. package/esm2020/ngx-utils/directives/sticky.directive.mjs +55 -0
  22. package/esm2020/ngx-utils/directives/unordered-list-item.directive.mjs +77 -0
  23. package/esm2020/ngx-utils/directives/unordered-list-template.directive.mjs +26 -0
  24. package/esm2020/ngx-utils/ngx-utils.imports.mjs +165 -0
  25. package/esm2020/ngx-utils/ngx-utils.module.mjs +178 -0
  26. package/esm2020/ngx-utils/pipes/chunk.pipe.mjs +25 -0
  27. package/esm2020/ngx-utils/pipes/entries.pipe.mjs +28 -0
  28. package/esm2020/ngx-utils/pipes/extra-item-properties.pipe.mjs +31 -0
  29. package/esm2020/ngx-utils/pipes/filter.pipe.mjs +42 -0
  30. package/esm2020/ngx-utils/pipes/find.pipe.mjs +29 -0
  31. package/esm2020/ngx-utils/pipes/format-number.pipe.mjs +21 -0
  32. package/esm2020/ngx-utils/pipes/get-offset.pipe.mjs +17 -0
  33. package/esm2020/ngx-utils/pipes/get-type.pipe.mjs +16 -0
  34. package/esm2020/ngx-utils/pipes/global-template.pipe.mjs +41 -0
  35. package/esm2020/ngx-utils/pipes/group-by.pipe.mjs +27 -0
  36. package/esm2020/ngx-utils/pipes/is-type.pipe.mjs +16 -0
  37. package/esm2020/ngx-utils/pipes/join.pipe.mjs +19 -0
  38. package/esm2020/ngx-utils/pipes/keys.pipe.mjs +22 -0
  39. package/esm2020/ngx-utils/pipes/map.pipe.mjs +29 -0
  40. package/esm2020/ngx-utils/pipes/max.pipe.mjs +26 -0
  41. package/esm2020/ngx-utils/pipes/min.pipe.mjs +26 -0
  42. package/esm2020/ngx-utils/pipes/reduce.pipe.mjs +30 -0
  43. package/esm2020/ngx-utils/pipes/remap.pipe.mjs +32 -0
  44. package/esm2020/ngx-utils/pipes/replace.pipe.mjs +16 -0
  45. package/esm2020/ngx-utils/pipes/reverse.pipe.mjs +24 -0
  46. package/esm2020/ngx-utils/pipes/round.pipe.mjs +21 -0
  47. package/esm2020/ngx-utils/pipes/safe-html.pipe.mjs +34 -0
  48. package/esm2020/ngx-utils/pipes/translate.pipe.mjs +86 -0
  49. package/esm2020/ngx-utils/pipes/values.pipe.mjs +22 -0
  50. package/esm2020/ngx-utils/plugins/resize-event.plugin.mjs +59 -0
  51. package/esm2020/ngx-utils/plugins/scroll-event.plugin.mjs +39 -0
  52. package/esm2020/ngx-utils/services/acl.service.mjs +81 -0
  53. package/esm2020/ngx-utils/services/api.service.mjs +38 -0
  54. package/esm2020/ngx-utils/services/auth.service.mjs +14 -0
  55. package/esm2020/ngx-utils/services/base-http.client.mjs +47 -0
  56. package/esm2020/ngx-utils/services/base-http.service.mjs +298 -0
  57. package/esm2020/ngx-utils/services/config.service.mjs +116 -0
  58. package/esm2020/ngx-utils/services/error-handler.service.mjs +49 -0
  59. package/esm2020/ngx-utils/services/events.service.mjs +26 -0
  60. package/esm2020/ngx-utils/services/formatter.service.mjs +47 -0
  61. package/esm2020/ngx-utils/services/global-template.service.mjs +37 -0
  62. package/esm2020/ngx-utils/services/icon.service.mjs +26 -0
  63. package/esm2020/ngx-utils/services/language.service.mjs +113 -0
  64. package/esm2020/ngx-utils/services/open-api.service.mjs +40 -0
  65. package/esm2020/ngx-utils/services/promise.service.mjs +55 -0
  66. package/esm2020/ngx-utils/services/state.service.mjs +173 -0
  67. package/esm2020/ngx-utils/services/static-language.service.mjs +166 -0
  68. package/esm2020/ngx-utils/services/storage.service.mjs +49 -0
  69. package/esm2020/ngx-utils/services/toaster.service.mjs +32 -0
  70. package/esm2020/ngx-utils/services/translated-url.serializer.mjs +73 -0
  71. package/esm2020/ngx-utils/services/universal.service.mjs +78 -0
  72. package/esm2020/ngx-utils/utils/ajax-request-handler.mjs +40 -0
  73. package/esm2020/ngx-utils/utils/array.utils.mjs +100 -0
  74. package/esm2020/ngx-utils/utils/auth.guard.mjs +181 -0
  75. package/esm2020/ngx-utils/utils/canvas.utils.mjs +388 -0
  76. package/esm2020/ngx-utils/utils/date.utils.mjs +28 -0
  77. package/esm2020/ngx-utils/utils/file.utils.mjs +90 -0
  78. package/esm2020/ngx-utils/utils/generic-value.mjs +20 -0
  79. package/esm2020/ngx-utils/utils/geometry.mjs +132 -0
  80. package/esm2020/ngx-utils/utils/initializer.mjs +20 -0
  81. package/esm2020/ngx-utils/utils/loader.utils.mjs +55 -0
  82. package/esm2020/ngx-utils/utils/math.utils.mjs +15 -0
  83. package/esm2020/ngx-utils/utils/object.utils.mjs +261 -0
  84. package/esm2020/ngx-utils/utils/observable.utils.mjs +63 -0
  85. package/esm2020/ngx-utils/utils/reflect.utils.mjs +33 -0
  86. package/esm2020/ngx-utils/utils/set.utils.mjs +20 -0
  87. package/esm2020/ngx-utils/utils/string.utils.mjs +41 -0
  88. package/esm2020/ngx-utils/utils/timer.utils.mjs +52 -0
  89. package/esm2020/ngx-utils/utils/unique.utils.mjs +24 -0
  90. package/esm2020/ngx-utils/utils/vector.mjs +77 -0
  91. package/esm2020/public_api.mjs +85 -0
  92. package/esm2020/stemy-ngx-utils.mjs +5 -0
  93. package/esm2020/tools/config.mjs +71 -0
  94. package/esm2020/tools/public_api.mjs +2 -0
  95. package/esm2020/tools/stemy-ngx-utils-tools.mjs +5 -0
  96. package/fesm2015/stemy-ngx-utils-tools.mjs +77 -0
  97. package/fesm2015/stemy-ngx-utils-tools.mjs.map +1 -0
  98. package/fesm2015/stemy-ngx-utils.js +23 -1
  99. package/fesm2015/stemy-ngx-utils.js.map +1 -1
  100. package/fesm2015/stemy-ngx-utils.mjs +5168 -0
  101. package/fesm2015/stemy-ngx-utils.mjs.map +1 -0
  102. package/fesm2020/stemy-ngx-utils-tools.mjs +77 -0
  103. package/fesm2020/stemy-ngx-utils-tools.mjs.map +1 -0
  104. package/fesm2020/stemy-ngx-utils.mjs +5099 -0
  105. package/fesm2020/stemy-ngx-utils.mjs.map +1 -0
  106. package/ngx-utils/utils/file-system.d.ts +16 -0
  107. package/package.json +1 -1
  108. package/public_api.d.ts +1 -0
  109. package/stemy-ngx-utils.metadata.json +1 -1
  110. package/tools/config.d.ts +7 -0
  111. package/tools/package.json +10 -0
  112. package/tools/public_api.d.ts +1 -0
  113. package/tools/stemy-ngx-utils-tools.d.ts +5 -0
  114. package/bundles/stemy-ngx-utils.umd.min.js +0 -16
  115. package/bundles/stemy-ngx-utils.umd.min.js.map +0 -1
@@ -0,0 +1,101 @@
1
+ import { Component, Inject, Input } from "@angular/core";
2
+ import { ObjectUtils } from "../../utils/object.utils";
3
+ import { StateService } from "../../services/state.service";
4
+ import { PaginationDirective } from "../../directives/pagination.directive";
5
+ import { ICON_SERVICE } from "../../common-types";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../services/state.service";
8
+ import * as i2 from "../../directives/pagination.directive";
9
+ import * as i3 from "@angular/common";
10
+ import * as i4 from "../../pipes/safe-html.pipe";
11
+ export class PaginationMenuComponent {
12
+ constructor(state, pagination, icons) {
13
+ this.state = state;
14
+ this.pagination = pagination;
15
+ this.icons = icons;
16
+ this.maxSize = 5;
17
+ this.directionLinks = true;
18
+ this.boundaryLinks = true;
19
+ this.firstLabel = `<<`;
20
+ this.prevLabel = `<`;
21
+ this.nextLabel = `>`;
22
+ this.lastLabel = `>>`;
23
+ }
24
+ get hasPrev() {
25
+ return this.pagination.page > 1;
26
+ }
27
+ get hasNext() {
28
+ return this.pagination.page < this.pagination.maxPage;
29
+ }
30
+ ngOnInit() {
31
+ this.onRefresh = this.pagination.onRefresh.subscribe(() => this.setPages());
32
+ this.setIcon("firstLabel", "first-page");
33
+ this.setIcon("prevLabel", "prev-page");
34
+ this.setIcon("nextLabel", "next-page");
35
+ this.setIcon("lastLabel", "last-page");
36
+ }
37
+ ngOnDestroy() {
38
+ if (!this.onRefresh)
39
+ return;
40
+ this.onRefresh.unsubscribe();
41
+ }
42
+ ngOnChanges(changes) {
43
+ this.maxSize = isNaN(this.maxSize) || this.maxSize <= 0 ? 5 : this.maxSize;
44
+ this.directionLinks = ObjectUtils.isBoolean(this.directionLinks) ? this.directionLinks : true;
45
+ this.boundaryLinks = ObjectUtils.isBoolean(this.boundaryLinks) ? this.boundaryLinks : true;
46
+ this.setPages();
47
+ }
48
+ paginate(page) {
49
+ if (this.pagination.page == page || this.pagination.maxPage < page || page < 1)
50
+ return;
51
+ if (!this.urlParam) {
52
+ this.pagination.paginate(page);
53
+ return;
54
+ }
55
+ const params = Object.assign({}, this.state.params);
56
+ params[this.urlParam] = page.toString();
57
+ const path = StateService.toPath(this.state.route, params);
58
+ this.state.navigateByUrl(path);
59
+ }
60
+ setIcon(labelName, icon) {
61
+ this.icons.getIcon(icon, icon, false).then(i => {
62
+ if (i == icon)
63
+ return;
64
+ this[labelName] = i;
65
+ });
66
+ }
67
+ setPages() {
68
+ if (!this.pagination)
69
+ return;
70
+ const totalPages = this.pagination.maxPage;
71
+ let startPage = Math.max(this.pagination.page - Math.floor(this.maxSize / 2), 1);
72
+ let endPage = startPage + this.maxSize - 1;
73
+ if (endPage > totalPages) {
74
+ endPage = totalPages;
75
+ startPage = Math.max(endPage - this.maxSize + 1, 1);
76
+ }
77
+ const pages = [];
78
+ for (let num = startPage; num <= endPage; num++) {
79
+ pages.push(num);
80
+ }
81
+ this.pages = pages;
82
+ }
83
+ }
84
+ PaginationMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PaginationMenuComponent, deps: [{ token: i1.StateService }, { token: i2.PaginationDirective }, { token: ICON_SERVICE }], target: i0.ɵɵFactoryTarget.Component });
85
+ PaginationMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: PaginationMenuComponent, selector: "pagination-menu", inputs: { maxSize: "maxSize", urlParam: "urlParam", directionLinks: "directionLinks", boundaryLinks: "boundaryLinks" }, usesOnChanges: true, ngImport: i0, template: "<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"boundaryLinks\">\r\n <a class=\"page-link\" (click)=\"paginate(1)\" [innerHTML]=\"firstLabel | safe\"></a>\r\n </li>\r\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"directionLinks\">\r\n <a class=\"page-link\" (click)=\"paginate(pagination.page - 1)\" [innerHTML]=\"prevLabel | safe\"></a>\r\n </li>\r\n <li class=\"page-item\" [ngClass]=\"{active: pagination.page == page}\" *ngFor=\"let page of pages\">\r\n <a class=\"page-link\" [ngClass]=\"{active: pagination.page == page}\" (click)=\"paginate(page)\">{{ page }}</a>\r\n </li>\r\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"directionLinks\">\r\n <a class=\"page-link\" (click)=\"paginate(pagination.page + 1)\" [innerHTML]=\"nextLabel | safe\"></a>\r\n </li>\r\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"boundaryLinks\">\r\n <a class=\"page-link\" (click)=\"paginate(pagination.maxPage)\" [innerHTML]=\"lastLabel | safe\"></a>\r\n </li>\r\n </ul>\r\n</div>\r\n", directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "safe": i4.SafeHtmlPipe } });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: PaginationMenuComponent, decorators: [{
87
+ type: Component,
88
+ args: [{ selector: "pagination-menu", template: "<div class=\"pagination-menu\" *ngIf=\"pagination.total > pagination.itemsPerPage\">\r\n <ul class=\"pagination\">\r\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"boundaryLinks\">\r\n <a class=\"page-link\" (click)=\"paginate(1)\" [innerHTML]=\"firstLabel | safe\"></a>\r\n </li>\r\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasPrev}\" *ngIf=\"directionLinks\">\r\n <a class=\"page-link\" (click)=\"paginate(pagination.page - 1)\" [innerHTML]=\"prevLabel | safe\"></a>\r\n </li>\r\n <li class=\"page-item\" [ngClass]=\"{active: pagination.page == page}\" *ngFor=\"let page of pages\">\r\n <a class=\"page-link\" [ngClass]=\"{active: pagination.page == page}\" (click)=\"paginate(page)\">{{ page }}</a>\r\n </li>\r\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"directionLinks\">\r\n <a class=\"page-link\" (click)=\"paginate(pagination.page + 1)\" [innerHTML]=\"nextLabel | safe\"></a>\r\n </li>\r\n <li class=\"page-item\" [ngClass]=\"{disabled: !hasNext}\" *ngIf=\"boundaryLinks\">\r\n <a class=\"page-link\" (click)=\"paginate(pagination.maxPage)\" [innerHTML]=\"lastLabel | safe\"></a>\r\n </li>\r\n </ul>\r\n</div>\r\n" }]
89
+ }], ctorParameters: function () { return [{ type: i1.StateService }, { type: i2.PaginationDirective }, { type: undefined, decorators: [{
90
+ type: Inject,
91
+ args: [ICON_SERVICE]
92
+ }] }]; }, propDecorators: { maxSize: [{
93
+ type: Input
94
+ }], urlParam: [{
95
+ type: Input
96
+ }], directionLinks: [{
97
+ type: Input
98
+ }], boundaryLinks: [{
99
+ type: Input
100
+ }] } });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy9wYWdpbmF0aW9uLW1lbnUvcGFnaW5hdGlvbi1tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBOEMsTUFBTSxlQUFlLENBQUM7QUFFcEcsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw4QkFBOEIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsbUJBQW1CLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUMxRSxPQUFPLEVBQUMsWUFBWSxFQUFlLE1BQU0sb0JBQW9CLENBQUM7Ozs7OztBQU05RCxNQUFNLE9BQU8sdUJBQXVCO0lBdUJoQyxZQUFtQixLQUFtQixFQUFTLFVBQStCLEVBQStCLEtBQW1CO1FBQTdHLFVBQUssR0FBTCxLQUFLLENBQWM7UUFBUyxlQUFVLEdBQVYsVUFBVSxDQUFxQjtRQUErQixVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQzVILElBQUksQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ2pCLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDO1FBQzNCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdB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RyxhQUFhO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXN9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge09iamVjdFV0aWxzfSBmcm9tIFwiLi4vLi4vdXRpbHMvb2JqZWN0LnV0aWxzXCI7XHJcbmltcG9ydCB7U3RhdGVTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc3RhdGUuc2VydmljZVwiO1xyXG5pbXBvcnQge1BhZ2luYXRpb25EaXJlY3RpdmV9IGZyb20gXCIuLi8uLi9kaXJlY3RpdmVzL3BhZ2luYXRpb24uZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7SUNPTl9TRVJWSUNFLCBJSWNvblNlcnZpY2V9IGZyb20gXCIuLi8uLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6IFwicGFnaW5hdGlvbi1tZW51XCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3BhZ2luYXRpb24tbWVudS5jb21wb25lbnQuaHRtbFwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQYWdpbmF0aW9uTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBPbkNoYW5nZXMge1xyXG5cclxuICAgIEBJbnB1dCgpIG1heFNpemU6IG51bWJlcjtcclxuICAgIEBJbnB1dCgpIHVybFBhcmFtOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBkaXJlY3Rpb25MaW5rczogYm9vbGVhbjtcclxuICAgIEBJbnB1dCgpIGJvdW5kYXJ5TGlua3M6IGJvb2xlYW47XHJcblxyXG4gICAgcGFnZXM6IG51bWJlcltdO1xyXG4gICAgZmlyc3RMYWJlbDogc3RyaW5nO1xyXG4gICAgcHJldkxhYmVsOiBzdHJpbmc7XHJcbiAgICBuZXh0TGFiZWw6IHN0cmluZztcclxuICAgIGxhc3RMYWJlbDogc3RyaW5nO1xyXG5cclxuICAgIGdldCBoYXNQcmV2KCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnBhZ2luYXRpb24ucGFnZSA+IDE7XHJcbiAgICB9XHJcblxyXG4gICAgZ2V0IGhhc05leHQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucGFnaW5hdGlvbi5wYWdlIDwgdGhpcy5wYWdpbmF0aW9uLm1heFBhZ2VcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIG9uUmVmcmVzaDogU3Vic2NyaXB0aW9uO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBzdGF0ZTogU3RhdGVTZXJ2aWNlLCBwdWJsaWMgcGFnaW5hdGlvbjogUGFnaW5hdGlvbkRpcmVjdGl2ZSwgQEluamVjdChJQ09OX1NFUlZJQ0UpIHB1YmxpYyBpY29uczogSUljb25TZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5tYXhTaXplID0gNTtcclxuICAgICAgICB0aGlzLmRpcmVjdGlvbkxpbmtzID0gdHJ1ZTtcclxuICAgICAgICB0aGlzLmJvdW5kYXJ5TGlua3MgPSB0cnVlO1xyXG4gICAgICAgIHRoaXMuZmlyc3RMYWJlbCA9IGA8PGA7XHJcbiAgICAgICAgdGhpcy5wcmV2TGFiZWwgPSBgPGA7XHJcbiAgICAgICAgdGhpcy5uZXh0TGFiZWwgPSBgPmA7XHJcbiAgICAgICAgdGhpcy5sYXN0TGFiZWwgPSBgPj5gO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25SZWZyZXNoID0gdGhpcy5wYWdpbmF0aW9uLm9uUmVmcmVzaC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZXRQYWdlcygpKTtcclxuICAgICAgICB0aGlzLnNldEljb24oXCJmaXJzdExhYmVsXCIsIFwiZmlyc3QtcGFnZVwiKTtcclxuICAgICAgICB0aGlzLnNldEljb24oXCJwcmV2TGFiZWxcIiwgXCJwcmV2LXBhZ2VcIik7XHJcbiAgICAgICAgdGhpcy5zZXRJY29uKFwibmV4dExhYmVsXCIsIFwibmV4dC1wYWdlXCIpO1xyXG4gICAgICAgIHRoaXMuc2V0SWNvbihcImxhc3RMYWJlbFwiLCBcImxhc3QtcGFnZVwiKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIXRoaXMub25SZWZyZXNoKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5vblJlZnJlc2gudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5tYXhTaXplID0gaXNOYU4odGhpcy5tYXhTaXplKSB8fCB0aGlzLm1heFNpemUgPD0gMCA/IDUgOiB0aGlzLm1heFNpemU7XHJcbiAgICAgICAgdGhpcy5kaXJlY3Rpb25MaW5rcyA9IE9iamVjdFV0aWxzLmlzQm9vbGVhbih0aGlzLmRpcmVjdGlvbkxpbmtzKSA/IHRoaXMuZGlyZWN0aW9uTGlua3MgOiB0cnVlO1xyXG4gICAgICAgIHRoaXMuYm91bmRhcnlMaW5rcyA9IE9iamVjdFV0aWxzLmlzQm9vbGVhbih0aGlzLmJvdW5kYXJ5TGlua3MpID8gdGhpcy5ib3VuZGFyeUxpbmtzIDogdHJ1ZTtcclxuICAgICAgICB0aGlzLnNldFBhZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcGFnaW5hdGUocGFnZTogbnVtYmVyKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMucGFnaW5hdGlvbi5wYWdlID09IHBhZ2UgfHwgdGhpcy5wYWdpbmF0aW9uLm1heFBhZ2UgPCBwYWdlIHx8IHBhZ2UgPCAxKSByZXR1cm47XHJcbiAgICAgICAgaWYgKCF0aGlzLnVybFBhcmFtKSB7XHJcbiAgICAgICAgICAgIHRoaXMucGFnaW5hdGlvbi5wYWdpbmF0ZShwYWdlKTtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCBwYXJhbXMgPSBPYmplY3QuYXNzaWduKHt9LCB0aGlzLnN0YXRlLnBhcmFtcyk7XHJcbiAgICAgICAgcGFyYW1zW3RoaXMudXJsUGFyYW1dID0gcGFnZS50b1N0cmluZygpO1xyXG4gICAgICAgIGNvbnN0IHBhdGggPSBTdGF0ZVNlcnZpY2UudG9QYXRoKHRoaXMuc3RhdGUucm91dGUsIHBhcmFtcyk7XHJcbiAgICAgICAgdGhpcy5zdGF0ZS5uYXZpZ2F0ZUJ5VXJsKHBhdGgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBzZXRJY29uKGxhYmVsTmFtZTogc3RyaW5nLCBpY29uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmljb25zLmdldEljb24oaWNvbiwgaWNvbiwgZmFsc2UpLnRoZW4oaSA9PiB7XHJcbiAgICAgICAgICAgIGlmIChpID09IGljb24pIHJldHVybjtcclxuICAgICAgICAgICAgdGhpc1tsYWJlbE5hbWVdID0gaTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgc2V0UGFnZXMoKTogbnVtYmVyIHtcclxuICAgICAgICBpZiAoIXRoaXMucGFnaW5hdGlvbikgcmV0dXJuO1xyXG4gICAgICAgIGNvbnN0IHRvdGFsUGFnZXMgPSB0aGlzLnBhZ2luYXRpb24ubWF4UGFnZTtcclxuICAgICAgICBsZXQgc3RhcnRQYWdlID0gTWF0aC5tYXgodGhpcy5wYWdpbmF0aW9uLnBhZ2UgLSBNYXRoLmZsb29yKHRoaXMubWF4U2l6ZSAvIDIpLCAxKTtcclxuICAgICAgICBsZXQgZW5kUGFnZSA9IHN0YXJ0UGFnZSArIHRoaXMubWF4U2l6ZSAtIDE7XHJcbiAgICAgICAgaWYgKGVuZFBhZ2UgPiB0b3RhbFBhZ2VzKSB7XHJcbiAgICAgICAgICAgIGVuZFBhZ2UgPSB0b3RhbFBhZ2VzO1xyXG4gICAgICAgICAgICBzdGFydFBhZ2UgPSBNYXRoLm1heChlbmRQYWdlIC0gdGhpcy5tYXhTaXplICsgMSwgMSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHBhZ2VzOiBudW1iZXJbXSA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IG51bSA9IHN0YXJ0UGFnZTsgbnVtIDw9IGVuZFBhZ2U7IG51bSsrKSB7XHJcbiAgICAgICAgICAgIHBhZ2VzLnB1c2gobnVtKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5wYWdlcyA9IHBhZ2VzO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJwYWdpbmF0aW9uLW1lbnVcIiAqbmdJZj1cInBhZ2luYXRpb24udG90YWwgPiBwYWdpbmF0aW9uLml0ZW1zUGVyUGFnZVwiPlxyXG4gICAgPHVsIGNsYXNzPVwicGFnaW5hdGlvblwiPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc1ByZXZ9XCIgKm5nSWY9XCJib3VuZGFyeUxpbmtzXCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cInBhZ2luYXRlKDEpXCIgW2lubmVySFRNTF09XCJmaXJzdExhYmVsIHwgc2FmZVwiPjwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc1ByZXZ9XCIgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJwYWdpbmF0ZShwYWdpbmF0aW9uLnBhZ2UgLSAxKVwiIFtpbm5lckhUTUxdPVwicHJldkxhYmVsIHwgc2FmZVwiPjwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cInthY3RpdmU6IHBhZ2luYXRpb24ucGFnZSA9PSBwYWdlfVwiICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VzXCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgW25nQ2xhc3NdPVwie2FjdGl2ZTogcGFnaW5hdGlvbi5wYWdlID09IHBhZ2V9XCIgKGNsaWNrKT1cInBhZ2luYXRlKHBhZ2UpXCI+e3sgcGFnZSB9fTwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc05leHR9XCIgKm5nSWY9XCJkaXJlY3Rpb25MaW5rc1wiPlxyXG4gICAgICAgICAgICA8YSBjbGFzcz1cInBhZ2UtbGlua1wiIChjbGljayk9XCJwYWdpbmF0ZShwYWdpbmF0aW9uLnBhZ2UgKyAxKVwiIFtpbm5lckhUTUxdPVwibmV4dExhYmVsIHwgc2FmZVwiPjwvYT5cclxuICAgICAgICA8L2xpPlxyXG4gICAgICAgIDxsaSBjbGFzcz1cInBhZ2UtaXRlbVwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDogIWhhc05leHR9XCIgKm5nSWY9XCJib3VuZGFyeUxpbmtzXCI+XHJcbiAgICAgICAgICAgIDxhIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cInBhZ2luYXRlKHBhZ2luYXRpb24ubWF4UGFnZSlcIiBbaW5uZXJIVE1MXT1cImxhc3RMYWJlbCB8IHNhZmVcIj48L2E+XHJcbiAgICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,65 @@
1
+ import { ChangeDetectorRef, Component, ContentChildren, Input, QueryList, TemplateRef, ViewChild } from "@angular/core";
2
+ import { ObjectUtils } from "../../utils/object.utils";
3
+ import { UnorderedListTemplateDirective } from "../../directives/unordered-list-template.directive";
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@angular/common";
6
+ import * as i2 from "../../directives/unordered-list-item.directive";
7
+ import * as i3 from "../../pipes/translate.pipe";
8
+ import * as i4 from "../../pipes/entries.pipe";
9
+ export class UnorderedListComponent {
10
+ constructor(cdr) {
11
+ this.cdr = cdr;
12
+ this.keyPrefix = "";
13
+ this.listStyle = "table";
14
+ this.path = "";
15
+ this.level = 0;
16
+ }
17
+ ngOnChanges(changes) {
18
+ this.isArray = ObjectUtils.isArray(this.data);
19
+ this.isObject = ObjectUtils.isObject(this.data);
20
+ }
21
+ ngAfterContentInit() {
22
+ const templates = this.templateDirectives.toArray();
23
+ this.templates = this.templates ? this.templates.concat(templates) : templates;
24
+ this.cdr.detectChanges();
25
+ }
26
+ ngAfterViewInit() {
27
+ this.defaultTemplates = {
28
+ key: this.defaultKeyTemplate,
29
+ value: this.defaultValueTemplate,
30
+ item: this.defaultItemTemplate
31
+ };
32
+ this.cdr.detectChanges();
33
+ }
34
+ }
35
+ UnorderedListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: UnorderedListComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
36
+ UnorderedListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.8", type: UnorderedListComponent, selector: "unordered-list", inputs: { data: "data", keyPrefix: "keyPrefix", listStyle: "listStyle", path: "path", level: "level", templates: "templates" }, queries: [{ propertyName: "templateDirectives", predicate: UnorderedListTemplateDirective }], viewQueries: [{ propertyName: "defaultKeyTemplate", first: true, predicate: ["defaultKeyTemplate"], descendants: true }, { propertyName: "defaultValueTemplate", first: true, predicate: ["defaultValueTemplate"], descendants: true }, { propertyName: "defaultItemTemplate", first: true, predicate: ["defaultItemTemplate"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-template let-keyPrefix=\"keyPrefix\" let-key=\"item.key\" let-isArray=\"isArray\" #defaultKeyTemplate>\r\n {{ (keyPrefix ? keyPrefix + key : key) | translate }}:\r\n</ng-template>\r\n<ng-template let-keyPrefix=\"keyPrefix\" let-listStyle=\"listStyle\" let-val=\"item.value\" let-path=\"path\"\r\n let-templates=\"templates\" let-isObject=\"valueIsObject\" let-isArray=\"valueIsArray\" #defaultValueTemplate>\r\n <ng-template #value>{{ val }}</ng-template>\r\n <unordered-list [data]=\"val\"\r\n [keyPrefix]=\"keyPrefix\"\r\n [listStyle]=\"listStyle\"\r\n [path]=\"path\"\r\n [level]=\"level + 1\"\r\n [templates]=\"templates\"\r\n *ngIf=\"(isObject || isArray); else value\"></unordered-list>\r\n</ng-template>\r\n<ng-template let-item=\"item\" let-data=\"data\" let-keyPrefix=\"keyPrefix\" let-listStyle=\"listStyle\" let-path=\"path\" let-level=\"level\" let-templates=\"templates\" #defaultItemTemplate>\r\n <ng-template #itemKey>\r\n <ng-container [unorderedListItem]=\"item\"\r\n type=\"key\"\r\n [data]=\"data\"\r\n [keyPrefix]=\"keyPrefix\"\r\n [listStyle]=\"listStyle\"\r\n [path]=\"path\"\r\n [level]=\"level\"\r\n [templates]=\"templates\"\r\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\r\n </ng-template>\r\n <ng-template #itemValue>\r\n <ng-container [unorderedListItem]=\"item\"\r\n type=\"value\"\r\n [data]=\"data\"\r\n [keyPrefix]=\"keyPrefix\"\r\n [listStyle]=\"listStyle\"\r\n [path]=\"path\"\r\n [level]=\"level\"\r\n [templates]=\"templates\"\r\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"!isArray\">\r\n <th *ngIf=\"listStyle == 'table'; else itemKey\">\r\n <ng-container [ngTemplateOutlet]=\"itemKey\"></ng-container>\r\n </th>\r\n </ng-container>\r\n <td *ngIf=\"listStyle == 'table'; else itemValue\">\r\n <ng-container [ngTemplateOutlet]=\"itemValue\"></ng-container>\r\n </td>\r\n</ng-template>\r\n<ng-template #value>\r\n {{ data }}\r\n</ng-template>\r\n<ng-container *ngIf=\"(isObject || isArray); else value\" [ngSwitch]=\"listStyle\">\r\n <ul [ngClass]=\"'level-' + level\" *ngSwitchCase=\"'list'\">\r\n <li *ngFor=\"let item of data | entries\" [ngClass]=\"item.classList\">\r\n <ng-container [unorderedListItem]=\"item\"\r\n type=\"item\"\r\n [data]=\"data\"\r\n [keyPrefix]=\"keyPrefix\"\r\n [listStyle]=\"listStyle\"\r\n [path]=\"path ? path + '.' + item.key : item.key\"\r\n [level]=\"level\"\r\n [templates]=\"templates\"\r\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\r\n </li>\r\n </ul>\r\n <table [ngClass]=\"'level-' + level\" *ngSwitchDefault>\r\n <tr *ngFor=\"let item of data | entries\" [ngClass]=\"item.classList\">\r\n <ng-container [unorderedListItem]=\"item\"\r\n type=\"item\"\r\n [data]=\"data\"\r\n [keyPrefix]=\"keyPrefix\"\r\n [listStyle]=\"listStyle\"\r\n [path]=\"path ? path + '.' + item.key : item.key\"\r\n [level]=\"level\"\r\n [templates]=\"templates\"\r\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\r\n </tr>\r\n </table>\r\n</ng-container>\r\n", components: [{ type: UnorderedListComponent, selector: "unordered-list", inputs: ["data", "keyPrefix", "listStyle", "path", "level", "templates"] }], directives: [{ type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.UnorderedListItemDirective, selector: "[unorderedListItem]", inputs: ["unorderedListItem", "type", "data", "keyPrefix", "listStyle", "path", "level", "templates", "defaultTemplates"] }, { type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }], pipes: { "translate": i3.TranslatePipe, "entries": i4.EntriesPipe } });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: UnorderedListComponent, decorators: [{
38
+ type: Component,
39
+ args: [{ selector: "unordered-list", template: "<ng-template let-keyPrefix=\"keyPrefix\" let-key=\"item.key\" let-isArray=\"isArray\" #defaultKeyTemplate>\r\n {{ (keyPrefix ? keyPrefix + key : key) | translate }}:\r\n</ng-template>\r\n<ng-template let-keyPrefix=\"keyPrefix\" let-listStyle=\"listStyle\" let-val=\"item.value\" let-path=\"path\"\r\n let-templates=\"templates\" let-isObject=\"valueIsObject\" let-isArray=\"valueIsArray\" #defaultValueTemplate>\r\n <ng-template #value>{{ val }}</ng-template>\r\n <unordered-list [data]=\"val\"\r\n [keyPrefix]=\"keyPrefix\"\r\n [listStyle]=\"listStyle\"\r\n [path]=\"path\"\r\n [level]=\"level + 1\"\r\n [templates]=\"templates\"\r\n *ngIf=\"(isObject || isArray); else value\"></unordered-list>\r\n</ng-template>\r\n<ng-template let-item=\"item\" let-data=\"data\" let-keyPrefix=\"keyPrefix\" let-listStyle=\"listStyle\" let-path=\"path\" let-level=\"level\" let-templates=\"templates\" #defaultItemTemplate>\r\n <ng-template #itemKey>\r\n <ng-container [unorderedListItem]=\"item\"\r\n type=\"key\"\r\n [data]=\"data\"\r\n [keyPrefix]=\"keyPrefix\"\r\n [listStyle]=\"listStyle\"\r\n [path]=\"path\"\r\n [level]=\"level\"\r\n [templates]=\"templates\"\r\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\r\n </ng-template>\r\n <ng-template #itemValue>\r\n <ng-container [unorderedListItem]=\"item\"\r\n type=\"value\"\r\n [data]=\"data\"\r\n [keyPrefix]=\"keyPrefix\"\r\n [listStyle]=\"listStyle\"\r\n [path]=\"path\"\r\n [level]=\"level\"\r\n [templates]=\"templates\"\r\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\r\n </ng-template>\r\n <ng-container *ngIf=\"!isArray\">\r\n <th *ngIf=\"listStyle == 'table'; else itemKey\">\r\n <ng-container [ngTemplateOutlet]=\"itemKey\"></ng-container>\r\n </th>\r\n </ng-container>\r\n <td *ngIf=\"listStyle == 'table'; else itemValue\">\r\n <ng-container [ngTemplateOutlet]=\"itemValue\"></ng-container>\r\n </td>\r\n</ng-template>\r\n<ng-template #value>\r\n {{ data }}\r\n</ng-template>\r\n<ng-container *ngIf=\"(isObject || isArray); else value\" [ngSwitch]=\"listStyle\">\r\n <ul [ngClass]=\"'level-' + level\" *ngSwitchCase=\"'list'\">\r\n <li *ngFor=\"let item of data | entries\" [ngClass]=\"item.classList\">\r\n <ng-container [unorderedListItem]=\"item\"\r\n type=\"item\"\r\n [data]=\"data\"\r\n [keyPrefix]=\"keyPrefix\"\r\n [listStyle]=\"listStyle\"\r\n [path]=\"path ? path + '.' + item.key : item.key\"\r\n [level]=\"level\"\r\n [templates]=\"templates\"\r\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\r\n </li>\r\n </ul>\r\n <table [ngClass]=\"'level-' + level\" *ngSwitchDefault>\r\n <tr *ngFor=\"let item of data | entries\" [ngClass]=\"item.classList\">\r\n <ng-container [unorderedListItem]=\"item\"\r\n type=\"item\"\r\n [data]=\"data\"\r\n [keyPrefix]=\"keyPrefix\"\r\n [listStyle]=\"listStyle\"\r\n [path]=\"path ? path + '.' + item.key : item.key\"\r\n [level]=\"level\"\r\n [templates]=\"templates\"\r\n [defaultTemplates]=\"defaultTemplates\"></ng-container>\r\n </tr>\r\n </table>\r\n</ng-container>\r\n" }]
40
+ }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { data: [{
41
+ type: Input
42
+ }], keyPrefix: [{
43
+ type: Input
44
+ }], listStyle: [{
45
+ type: Input
46
+ }], path: [{
47
+ type: Input
48
+ }], level: [{
49
+ type: Input
50
+ }], templates: [{
51
+ type: Input
52
+ }], templateDirectives: [{
53
+ type: ContentChildren,
54
+ args: [UnorderedListTemplateDirective]
55
+ }], defaultKeyTemplate: [{
56
+ type: ViewChild,
57
+ args: ["defaultKeyTemplate"]
58
+ }], defaultValueTemplate: [{
59
+ type: ViewChild,
60
+ args: ["defaultValueTemplate"]
61
+ }], defaultItemTemplate: [{
62
+ type: ViewChild,
63
+ args: ["defaultItemTemplate"]
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidW5vcmRlcmVkLWxpc3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL25neC11dGlscy9jb21wb25lbnRzL3Vub3JkZXJlZC1saXN0L3Vub3JkZXJlZC1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvY29tcG9uZW50cy91bm9yZGVyZWQtbGlzdC91bm9yZGVyZWQtbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBR0gsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsS0FBSyxFQUVMLFNBQVMsRUFDTSxXQUFXLEVBQUUsU0FBUyxFQUN4QyxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDckQsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sb0RBQW9ELENBQUM7Ozs7OztBQU1sRyxNQUFNLE9BQU8sc0JBQXNCO0lBdUIvQixZQUFvQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUN0QyxJQUFJLENBQUMsU0FBUyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztRQUN6QixJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxrQkFBa0I7UUFDZCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQy9FLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsZ0JBQWdCLEdBQUc7WUFDcEIsR0FBRyxFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDNUIsS0FBSyxFQUFFLElBQUksQ0FBQyxvQkFBb0I7WUFDaEMsSUFBSSxFQUFFLElBQUksQ0FBQyxtQkFBbUI7U0FDakMsQ0FBQztRQUNGLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7bUhBaERRLHNCQUFzQjt1R0FBdEIsc0JBQXNCLHlOQWFkLDhCQUE4Qix3WUNoQ25ELCs2SEE2RUEsdUJEMURhLHNCQUFzQjsyRkFBdEIsc0JBQXNCO2tCQUpsQyxTQUFTOytCQUNJLGdCQUFnQjt3R0FLakIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBT0Usa0JBQWtCO3NCQUR6QixlQUFlO3VCQUFDLDhCQUE4QjtnQkFJdkMsa0JBQWtCO3NCQUR6QixTQUFTO3VCQUFDLG9CQUFvQjtnQkFHdkIsb0JBQW9CO3NCQUQzQixTQUFTO3VCQUFDLHNCQUFzQjtnQkFHekIsbUJBQW1CO3NCQUQxQixTQUFTO3VCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBBZnRlckNvbnRlbnRJbml0LFxyXG4gICAgQWZ0ZXJWaWV3SW5pdCxcclxuICAgIENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgQ29udGVudENoaWxkcmVuLFxyXG4gICAgSW5wdXQsXHJcbiAgICBPbkNoYW5nZXMsXHJcbiAgICBRdWVyeUxpc3QsXHJcbiAgICBTaW1wbGVDaGFuZ2VzLCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtVbm9yZGVyZWRMaXN0U3R5bGUsIFVub3JkZXJlZExpc3RUZW1wbGF0ZXMsIFVub3JlZGVyZWRMaXN0VGVtcGxhdGV9IGZyb20gXCIuLi8uLi9jb21tb24tdHlwZXNcIjtcclxuaW1wb3J0IHtPYmplY3RVdGlsc30gZnJvbSBcIi4uLy4uL3V0aWxzL29iamVjdC51dGlsc1wiO1xyXG5pbXBvcnQge1Vub3JkZXJlZExpc3RUZW1wbGF0ZURpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvdW5vcmRlcmVkLWxpc3QtdGVtcGxhdGUuZGlyZWN0aXZlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiBcInVub3JkZXJlZC1saXN0XCIsXHJcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3Vub3JkZXJlZC1saXN0LmNvbXBvbmVudC5odG1sXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIFVub3JkZXJlZExpc3RDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIEFmdGVyQ29udGVudEluaXQsIEFmdGVyVmlld0luaXQge1xyXG5cclxuICAgIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuICAgIEBJbnB1dCgpIGtleVByZWZpeDogc3RyaW5nO1xyXG4gICAgQElucHV0KCkgbGlzdFN0eWxlOiBVbm9yZGVyZWRMaXN0U3R5bGU7XHJcbiAgICBASW5wdXQoKSBwYXRoOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBsZXZlbDogbnVtYmVyO1xyXG4gICAgQElucHV0KCkgdGVtcGxhdGVzOiBVbm9yZWRlcmVkTGlzdFRlbXBsYXRlW107XHJcblxyXG4gICAgaXNBcnJheTogYm9vbGVhbjtcclxuICAgIGlzT2JqZWN0OiBib29sZWFuO1xyXG4gICAgZGVmYXVsdFRlbXBsYXRlczogVW5vcmRlcmVkTGlzdFRlbXBsYXRlcztcclxuXHJcbiAgICBAQ29udGVudENoaWxkcmVuKFVub3JkZXJlZExpc3RUZW1wbGF0ZURpcmVjdGl2ZSlcclxuICAgIHByaXZhdGUgdGVtcGxhdGVEaXJlY3RpdmVzOiBRdWVyeUxpc3Q8VW5vcmRlcmVkTGlzdFRlbXBsYXRlRGlyZWN0aXZlPjtcclxuXHJcbiAgICBAVmlld0NoaWxkKFwiZGVmYXVsdEtleVRlbXBsYXRlXCIpXHJcbiAgICBwcml2YXRlIGRlZmF1bHRLZXlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoXCJkZWZhdWx0VmFsdWVUZW1wbGF0ZVwiKVxyXG4gICAgcHJpdmF0ZSBkZWZhdWx0VmFsdWVUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcclxuICAgIEBWaWV3Q2hpbGQoXCJkZWZhdWx0SXRlbVRlbXBsYXRlXCIpXHJcbiAgICBwcml2YXRlIGRlZmF1bHRJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgICAgICAgdGhpcy5rZXlQcmVmaXggPSBcIlwiO1xyXG4gICAgICAgIHRoaXMubGlzdFN0eWxlID0gXCJ0YWJsZVwiO1xyXG4gICAgICAgIHRoaXMucGF0aCA9IFwiXCI7XHJcbiAgICAgICAgdGhpcy5sZXZlbCA9IDA7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNBcnJheSA9IE9iamVjdFV0aWxzLmlzQXJyYXkodGhpcy5kYXRhKTtcclxuICAgICAgICB0aGlzLmlzT2JqZWN0ID0gT2JqZWN0VXRpbHMuaXNPYmplY3QodGhpcy5kYXRhKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdGVtcGxhdGVzID0gdGhpcy50ZW1wbGF0ZURpcmVjdGl2ZXMudG9BcnJheSgpO1xyXG4gICAgICAgIHRoaXMudGVtcGxhdGVzID0gdGhpcy50ZW1wbGF0ZXMgPyB0aGlzLnRlbXBsYXRlcy5jb25jYXQodGVtcGxhdGVzKSA6IHRlbXBsYXRlcztcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZGVmYXVsdFRlbXBsYXRlcyA9IHtcclxuICAgICAgICAgICAga2V5OiB0aGlzLmRlZmF1bHRLZXlUZW1wbGF0ZSxcclxuICAgICAgICAgICAgdmFsdWU6IHRoaXMuZGVmYXVsdFZhbHVlVGVtcGxhdGUsXHJcbiAgICAgICAgICAgIGl0ZW06IHRoaXMuZGVmYXVsdEl0ZW1UZW1wbGF0ZVxyXG4gICAgICAgIH07XHJcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSBsZXQta2V5UHJlZml4PVwia2V5UHJlZml4XCIgbGV0LWtleT1cIml0ZW0ua2V5XCIgbGV0LWlzQXJyYXk9XCJpc0FycmF5XCIgI2RlZmF1bHRLZXlUZW1wbGF0ZT5cclxuICAgIHt7IChrZXlQcmVmaXggPyBrZXlQcmVmaXggKyBrZXkgOiBrZXkpIHwgdHJhbnNsYXRlIH19OlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgbGV0LWtleVByZWZpeD1cImtleVByZWZpeFwiIGxldC1saXN0U3R5bGU9XCJsaXN0U3R5bGVcIiBsZXQtdmFsPVwiaXRlbS52YWx1ZVwiIGxldC1wYXRoPVwicGF0aFwiXHJcbiAgICAgICAgICAgICBsZXQtdGVtcGxhdGVzPVwidGVtcGxhdGVzXCIgbGV0LWlzT2JqZWN0PVwidmFsdWVJc09iamVjdFwiIGxldC1pc0FycmF5PVwidmFsdWVJc0FycmF5XCIgI2RlZmF1bHRWYWx1ZVRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICN2YWx1ZT57eyB2YWwgfX08L25nLXRlbXBsYXRlPlxyXG4gICAgPHVub3JkZXJlZC1saXN0IFtkYXRhXT1cInZhbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2tleVByZWZpeF09XCJrZXlQcmVmaXhcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtsaXN0U3R5bGVdPVwibGlzdFN0eWxlXCJcclxuICAgICAgICAgICAgICAgICAgICBbcGF0aF09XCJwYXRoXCJcclxuICAgICAgICAgICAgICAgICAgICBbbGV2ZWxdPVwibGV2ZWwgKyAxXCJcclxuICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVzXT1cInRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIoaXNPYmplY3QgfHwgaXNBcnJheSk7IGVsc2UgdmFsdWVcIj48L3Vub3JkZXJlZC1saXN0PlxyXG48L25nLXRlbXBsYXRlPlxyXG48bmctdGVtcGxhdGUgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWRhdGE9XCJkYXRhXCIgbGV0LWtleVByZWZpeD1cImtleVByZWZpeFwiIGxldC1saXN0U3R5bGU9XCJsaXN0U3R5bGVcIiBsZXQtcGF0aD1cInBhdGhcIiBsZXQtbGV2ZWw9XCJsZXZlbFwiIGxldC10ZW1wbGF0ZXM9XCJ0ZW1wbGF0ZXNcIiAjZGVmYXVsdEl0ZW1UZW1wbGF0ZT5cclxuICAgIDxuZy10ZW1wbGF0ZSAjaXRlbUtleT5cclxuICAgICAgICA8bmctY29udGFpbmVyIFt1bm9yZGVyZWRMaXN0SXRlbV09XCJpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJrZXlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBba2V5UHJlZml4XT1cImtleVByZWZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbGlzdFN0eWxlXT1cImxpc3RTdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbcGF0aF09XCJwYXRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtsZXZlbF09XCJsZXZlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVzXT1cInRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdFRlbXBsYXRlc109XCJkZWZhdWx0VGVtcGxhdGVzXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLXRlbXBsYXRlICNpdGVtVmFsdWU+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbdW5vcmRlcmVkTGlzdEl0ZW1dPVwiaXRlbVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwiZGF0YVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBba2V5UHJlZml4XT1cImtleVByZWZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbbGlzdFN0eWxlXT1cImxpc3RTdHlsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbcGF0aF09XCJwYXRoXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtsZXZlbF09XCJsZXZlbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVzXT1cInRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdFRlbXBsYXRlc109XCJkZWZhdWx0VGVtcGxhdGVzXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0FycmF5XCI+XHJcbiAgICAgICAgPHRoICpuZ0lmPVwibGlzdFN0eWxlID09ICd0YWJsZSc7IGVsc2UgaXRlbUtleVwiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1LZXlcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L3RoPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8dGQgKm5nSWY9XCJsaXN0U3R5bGUgPT0gJ3RhYmxlJzsgZWxzZSBpdGVtVmFsdWVcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIml0ZW1WYWx1ZVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC90ZD5cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLXRlbXBsYXRlICN2YWx1ZT5cclxuICAgIHt7IGRhdGEgfX1cclxuPC9uZy10ZW1wbGF0ZT5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIihpc09iamVjdCB8fCBpc0FycmF5KTsgZWxzZSB2YWx1ZVwiIFtuZ1N3aXRjaF09XCJsaXN0U3R5bGVcIj5cclxuICAgIDx1bCBbbmdDbGFzc109XCInbGV2ZWwtJyArIGxldmVsXCIgKm5nU3dpdGNoQ2FzZT1cIidsaXN0J1wiPlxyXG4gICAgICAgIDxsaSAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhIHwgZW50cmllc1wiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NMaXN0XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW3Vub3JkZXJlZExpc3RJdGVtXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBba2V5UHJlZml4XT1cImtleVByZWZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpc3RTdHlsZV09XCJsaXN0U3R5bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXRoXT1cInBhdGggPyBwYXRoICsgJy4nICsgaXRlbS5rZXkgOiBpdGVtLmtleVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2xldmVsXT1cImxldmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVzXT1cInRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRUZW1wbGF0ZXNdPVwiZGVmYXVsdFRlbXBsYXRlc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gICAgPHRhYmxlIFtuZ0NsYXNzXT1cIidsZXZlbC0nICsgbGV2ZWxcIiAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBkYXRhIHwgZW50cmllc1wiIFtuZ0NsYXNzXT1cIml0ZW0uY2xhc3NMaXN0XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgW3Vub3JkZXJlZExpc3RJdGVtXT1cIml0ZW1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJpdGVtXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGF0YV09XCJkYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBba2V5UHJlZml4XT1cImtleVByZWZpeFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2xpc3RTdHlsZV09XCJsaXN0U3R5bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIFtwYXRoXT1cInBhdGggPyBwYXRoICsgJy4nICsgaXRlbS5rZXkgOiBpdGVtLmtleVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2xldmVsXT1cImxldmVsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICBbdGVtcGxhdGVzXT1cInRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgW2RlZmF1bHRUZW1wbGF0ZXNdPVwiZGVmYXVsdFRlbXBsYXRlc1wiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvdHI+XHJcbiAgICA8L3RhYmxlPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
@@ -0,0 +1,78 @@
1
+ import { Directive, EventEmitter, HostBinding, HostListener, Inject, Input, Output } from "@angular/core";
2
+ import { TOASTER_SERVICE } from "../common-types";
3
+ import * as i0 from "@angular/core";
4
+ export class AsyncMethodBase {
5
+ constructor(toaster) {
6
+ this.toaster = toaster;
7
+ this.onSuccess = new EventEmitter();
8
+ this.onError = new EventEmitter();
9
+ }
10
+ get isDisabled() {
11
+ return this.disabled;
12
+ }
13
+ get isLoading() {
14
+ return this.loading;
15
+ }
16
+ getMethod() {
17
+ return async () => null;
18
+ }
19
+ click() {
20
+ if (this.disabled)
21
+ return;
22
+ this.callMethod();
23
+ }
24
+ callMethod() {
25
+ if (this.loading)
26
+ return true;
27
+ this.loading = true;
28
+ const method = this.getMethod();
29
+ const result = !method ? null : method(this.context);
30
+ if (!(result instanceof Promise)) {
31
+ this.loading = false;
32
+ return false;
33
+ }
34
+ result.then(result => {
35
+ this.loading = false;
36
+ if (result) {
37
+ this.onSuccess.emit(result);
38
+ this.toaster.success(result.message, result.context);
39
+ }
40
+ }, reason => {
41
+ if (!reason || !reason.message)
42
+ throw new Error("Reason must implement IAsyncMessage interface");
43
+ this.loading = false;
44
+ this.onError.emit(reason);
45
+ this.toaster.error(reason.message, reason.context);
46
+ });
47
+ return true;
48
+ }
49
+ }
50
+ AsyncMethodBase.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AsyncMethodBase, deps: [{ token: TOASTER_SERVICE }], target: i0.ɵɵFactoryTarget.Directive });
51
+ AsyncMethodBase.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AsyncMethodBase, selector: "[__asmb__]", inputs: { disabled: "disabled", context: "context" }, outputs: { onSuccess: "onSuccess", onError: "onError" }, host: { listeners: { "click": "click()" }, properties: { "class.disabled": "this.isDisabled", "class.loading": "this.isLoading" } }, ngImport: i0 });
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AsyncMethodBase, decorators: [{
53
+ type: Directive,
54
+ args: [{
55
+ selector: "[__asmb__]"
56
+ }]
57
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
58
+ type: Inject,
59
+ args: [TOASTER_SERVICE]
60
+ }] }]; }, propDecorators: { disabled: [{
61
+ type: Input
62
+ }], context: [{
63
+ type: Input
64
+ }], onSuccess: [{
65
+ type: Output
66
+ }], onError: [{
67
+ type: Output
68
+ }], isDisabled: [{
69
+ type: HostBinding,
70
+ args: ["class.disabled"]
71
+ }], isLoading: [{
72
+ type: HostBinding,
73
+ args: ["class.loading"]
74
+ }], click: [{
75
+ type: HostListener,
76
+ args: ["click"]
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtbWV0aG9kLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvYXN5bmMtbWV0aG9kLmJhc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxZQUFZLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN4RyxPQUFPLEVBQThDLGVBQWUsRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQUs3RixNQUFNLE9BQU8sZUFBZTtJQW9CeEIsWUFBK0MsT0FBd0I7UUFBeEIsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDbkUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLFlBQVksRUFBaUIsQ0FBQztRQUNuRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFpQixDQUFDO0lBQ3JELENBQUM7SUFiRCxJQUNJLFVBQVU7UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQ0ksU0FBUztRQUNULE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBT1MsU0FBUztRQUNmLE9BQU8sS0FBSyxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7SUFDNUIsQ0FBQztJQUdELEtBQUs7UUFDRCxJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsT0FBTztRQUMxQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELFVBQVU7UUFDTixJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLENBQUMsTUFBTSxZQUFZLE9BQU8sQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1lBQ3JCLE9BQU8sS0FBSyxDQUFDO1NBQ2hCO1FBQ0QsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLE1BQU0sRUFBRTtnQkFDUixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDeEQ7UUFDTCxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUU7WUFDUixJQUFJLENBQUMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU87Z0JBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsK0NBQStDLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztZQUNyQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2RCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7OzRHQTFEUSxlQUFlLGtCQW9CSixlQUFlO2dHQXBCMUIsZUFBZTsyRkFBZixlQUFlO2tCQUgzQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO2lCQUN6Qjs7MEJBcUJnQixNQUFNOzJCQUFDLGVBQWU7NENBbEIxQixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLE9BQU87c0JBQWhCLE1BQU07Z0JBS0gsVUFBVTtzQkFEYixXQUFXO3VCQUFDLGdCQUFnQjtnQkFNekIsU0FBUztzQkFEWixXQUFXO3VCQUFDLGVBQWU7Z0JBZTVCLEtBQUs7c0JBREosWUFBWTt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEV2ZW50RW1pdHRlciwgSG9zdEJpbmRpbmcsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgT3V0cHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FzeW5jTWV0aG9kLCBJQXN5bmNNZXNzYWdlLCBJVG9hc3RlclNlcnZpY2UsIFRPQVNURVJfU0VSVklDRX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbX19hc21iX19dXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzeW5jTWV0aG9kQmFzZSB7XHJcblxyXG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XHJcbiAgICBASW5wdXQoKSBjb250ZXh0OiBhbnk7XHJcblxyXG4gICAgQE91dHB1dCgpIG9uU3VjY2VzczogRXZlbnRFbWl0dGVyPElBc3luY01lc3NhZ2U+O1xyXG4gICAgQE91dHB1dCgpIG9uRXJyb3I6IEV2ZW50RW1pdHRlcjxJQXN5bmNNZXNzYWdlPjtcclxuXHJcbiAgICBwcm90ZWN0ZWQgbG9hZGluZzogYm9vbGVhbjtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5kaXNhYmxlZFwiKVxyXG4gICAgZ2V0IGlzRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQ7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RCaW5kaW5nKFwiY2xhc3MubG9hZGluZ1wiKVxyXG4gICAgZ2V0IGlzTG9hZGluZygpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkaW5nO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoVE9BU1RFUl9TRVJWSUNFKSBwcm90ZWN0ZWQgdG9hc3RlcjogSVRvYXN0ZXJTZXJ2aWNlKSB7XHJcbiAgICAgICAgdGhpcy5vblN1Y2Nlc3MgPSBuZXcgRXZlbnRFbWl0dGVyPElBc3luY01lc3NhZ2U+KCk7XHJcbiAgICAgICAgdGhpcy5vbkVycm9yID0gbmV3IEV2ZW50RW1pdHRlcjxJQXN5bmNNZXNzYWdlPigpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXRNZXRob2QoKTogQXN5bmNNZXRob2Qge1xyXG4gICAgICAgIHJldHVybiBhc3luYyAoKSA9PiBudWxsO1xyXG4gICAgfVxyXG5cclxuICAgIEBIb3N0TGlzdGVuZXIoXCJjbGlja1wiKVxyXG4gICAgY2xpY2soKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgICAgICB0aGlzLmNhbGxNZXRob2QoKTtcclxuICAgIH1cclxuXHJcbiAgICBjYWxsTWV0aG9kKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIGlmICh0aGlzLmxvYWRpbmcpIHJldHVybiB0cnVlO1xyXG4gICAgICAgIHRoaXMubG9hZGluZyA9IHRydWU7XHJcbiAgICAgICAgY29uc3QgbWV0aG9kID0gdGhpcy5nZXRNZXRob2QoKTtcclxuICAgICAgICBjb25zdCByZXN1bHQgPSAhbWV0aG9kID8gbnVsbCA6IG1ldGhvZCh0aGlzLmNvbnRleHQpO1xyXG4gICAgICAgIGlmICghKHJlc3VsdCBpbnN0YW5jZW9mIFByb21pc2UpKSB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJlc3VsdC50aGVuKHJlc3VsdCA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgICBpZiAocmVzdWx0KSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLm9uU3VjY2Vzcy5lbWl0KHJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRvYXN0ZXIuc3VjY2VzcyhyZXN1bHQubWVzc2FnZSwgcmVzdWx0LmNvbnRleHQpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSwgcmVhc29uID0+IHtcclxuICAgICAgICAgICAgaWYgKCFyZWFzb24gfHwgIXJlYXNvbi5tZXNzYWdlKVxyXG4gICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiUmVhc29uIG11c3QgaW1wbGVtZW50IElBc3luY01lc3NhZ2UgaW50ZXJmYWNlXCIpO1xyXG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgdGhpcy5vbkVycm9yLmVtaXQocmVhc29uKTtcclxuICAgICAgICAgICAgdGhpcy50b2FzdGVyLmVycm9yKHJlYXNvbi5tZXNzYWdlLCByZWFzb24uY29udGV4dCk7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,21 @@
1
+ import { Directive, Input } from "@angular/core";
2
+ import { AsyncMethodBase } from "./async-method.base";
3
+ import * as i0 from "@angular/core";
4
+ export class AsyncMethodDirective extends AsyncMethodBase {
5
+ getMethod() {
6
+ return this.method;
7
+ }
8
+ }
9
+ AsyncMethodDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AsyncMethodDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
10
+ AsyncMethodDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: AsyncMethodDirective, selector: "[async-method]", inputs: { method: ["async-method", "method"] }, exportAs: ["async-method"], usesInheritance: true, ngImport: i0 });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: AsyncMethodDirective, decorators: [{
12
+ type: Directive,
13
+ args: [{
14
+ selector: "[async-method]",
15
+ exportAs: "async-method"
16
+ }]
17
+ }], propDecorators: { method: [{
18
+ type: Input,
19
+ args: ["async-method"]
20
+ }] } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMtbWV0aG9kLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9hc3luYy1tZXRob2QuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsS0FBSyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRS9DLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQzs7QUFNcEQsTUFBTSxPQUFPLG9CQUFxQixTQUFRLGVBQWU7SUFJM0MsU0FBUztRQUNmLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztJQUN2QixDQUFDOztpSEFOUSxvQkFBb0I7cUdBQXBCLG9CQUFvQjsyRkFBcEIsb0JBQW9CO2tCQUpoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFFBQVEsRUFBRSxjQUFjO2lCQUMzQjs4QkFHMEIsTUFBTTtzQkFBNUIsS0FBSzt1QkFBQyxjQUFjIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIElucHV0fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0FzeW5jTWV0aG9kfSBmcm9tIFwiLi4vY29tbW9uLXR5cGVzXCI7XHJcbmltcG9ydCB7QXN5bmNNZXRob2RCYXNlfSBmcm9tIFwiLi9hc3luYy1tZXRob2QuYmFzZVwiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbYXN5bmMtbWV0aG9kXVwiLFxyXG4gICAgZXhwb3J0QXM6IFwiYXN5bmMtbWV0aG9kXCJcclxufSlcclxuZXhwb3J0IGNsYXNzIEFzeW5jTWV0aG9kRGlyZWN0aXZlIGV4dGVuZHMgQXN5bmNNZXRob2RCYXNlIHtcclxuXHJcbiAgICBASW5wdXQoXCJhc3luYy1tZXRob2RcIikgbWV0aG9kOiBBc3luY01ldGhvZDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0TWV0aG9kKCk6IEFzeW5jTWV0aG9kIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5tZXRob2Q7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,51 @@
1
+ import { Directive, ElementRef, Input, Renderer2 } from "@angular/core";
2
+ import { HttpClient } from "@angular/common/http";
3
+ import { FileUtils } from "../utils/file.utils";
4
+ import { UniversalService } from "../services/universal.service";
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "@angular/common/http";
7
+ import * as i2 from "../services/universal.service";
8
+ const defaultClass = "default-image";
9
+ const loadingClass = "loading-image";
10
+ export class BackgroundDirective {
11
+ constructor(http, element, renderer, universal) {
12
+ this.http = http;
13
+ this.element = element;
14
+ this.renderer = renderer;
15
+ this.universal = universal;
16
+ }
17
+ ngOnChanges(changes) {
18
+ if (this.universal.isServer) {
19
+ this.setBackground(this.background);
20
+ return;
21
+ }
22
+ this.renderer.removeClass(this.element.nativeElement, defaultClass);
23
+ this.renderer.addClass(this.element.nativeElement, loadingClass);
24
+ FileUtils.readDataFromUrl(this.http, this.background).then(url => {
25
+ this.setBackground(url);
26
+ }, () => {
27
+ this.renderer.removeClass(this.element.nativeElement, loadingClass);
28
+ this.renderer.addClass(this.element.nativeElement, defaultClass);
29
+ });
30
+ }
31
+ setBackground(url) {
32
+ this.renderer.removeClass(this.element.nativeElement, loadingClass);
33
+ this.renderer.setStyle(this.element.nativeElement, "background-image", `url('${url}')`);
34
+ if (!this.backgroundSize)
35
+ return;
36
+ this.renderer.setStyle(this.element.nativeElement, "background-size", this.backgroundSize);
37
+ }
38
+ }
39
+ BackgroundDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: BackgroundDirective, deps: [{ token: i1.HttpClient }, { token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i2.UniversalService }], target: i0.ɵɵFactoryTarget.Directive });
40
+ BackgroundDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: BackgroundDirective, selector: "[background]", inputs: { background: "background", backgroundSize: "backgroundSize" }, usesOnChanges: true, ngImport: i0 });
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: BackgroundDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ selector: "[background]"
45
+ }]
46
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i2.UniversalService }]; }, propDecorators: { background: [{
47
+ type: Input
48
+ }], backgroundSize: [{
49
+ type: Input
50
+ }] } });
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFja2dyb3VuZC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvYmFja2dyb3VuZC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFhLFNBQVMsRUFBZ0IsTUFBTSxlQUFlLENBQUM7QUFDaEcsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBQ2hELE9BQU8sRUFBQyxTQUFTLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUM5QyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQzs7OztBQUUvRCxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUM7QUFDckMsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDO0FBS3JDLE1BQU0sT0FBTyxtQkFBbUI7SUFLNUIsWUFBb0IsSUFBZ0IsRUFBVSxPQUFtQixFQUFVLFFBQW1CLEVBQVUsU0FBMkI7UUFBL0csU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFFbkksQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFO1lBQ3pCLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3BDLE9BQU87U0FDVjtRQUNELElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ2pFLFNBQVMsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDNUIsQ0FBQyxFQUFFLEdBQUcsRUFBRTtZQUNKLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3JFLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVPLGFBQWEsQ0FBQyxHQUFXO1FBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGtCQUFrQixFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsSUFBSSxDQUFDLGNBQWM7WUFBRSxPQUFPO1FBQ2pDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUMvRixDQUFDOztnSEE3QlEsbUJBQW1CO29HQUFuQixtQkFBbUI7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsY0FBYztpQkFDM0I7aUxBR1ksVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIElucHV0LCBPbkNoYW5nZXMsIFJlbmRlcmVyMiwgU2ltcGxlQ2hhbmdlc30gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtIdHRwQ2xpZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHtGaWxlVXRpbHN9IGZyb20gXCIuLi91dGlscy9maWxlLnV0aWxzXCI7XHJcbmltcG9ydCB7VW5pdmVyc2FsU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL3VuaXZlcnNhbC5zZXJ2aWNlXCI7XHJcblxyXG5jb25zdCBkZWZhdWx0Q2xhc3MgPSBcImRlZmF1bHQtaW1hZ2VcIjtcclxuY29uc3QgbG9hZGluZ0NsYXNzID0gXCJsb2FkaW5nLWltYWdlXCI7XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiBcIltiYWNrZ3JvdW5kXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCYWNrZ3JvdW5kRGlyZWN0aXZlIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuXHJcbiAgICBASW5wdXQoKSBiYWNrZ3JvdW5kOiBzdHJpbmc7XHJcbiAgICBASW5wdXQoKSBiYWNrZ3JvdW5kU2l6ZTogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgdW5pdmVyc2FsOiBVbml2ZXJzYWxTZXJ2aWNlKSB7XHJcblxyXG4gICAgfVxyXG5cclxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy51bml2ZXJzYWwuaXNTZXJ2ZXIpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRCYWNrZ3JvdW5kKHRoaXMuYmFja2dyb3VuZCk7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgZGVmYXVsdENsYXNzKTtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBsb2FkaW5nQ2xhc3MpO1xyXG4gICAgICAgIEZpbGVVdGlscy5yZWFkRGF0YUZyb21VcmwodGhpcy5odHRwLCB0aGlzLmJhY2tncm91bmQpLnRoZW4odXJsID0+IHtcclxuICAgICAgICAgICAgdGhpcy5zZXRCYWNrZ3JvdW5kKHVybCk7XHJcbiAgICAgICAgfSwgKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBsb2FkaW5nQ2xhc3MpO1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBkZWZhdWx0Q2xhc3MpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0QmFja2dyb3VuZCh1cmw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlQ2xhc3ModGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQsIGxvYWRpbmdDbGFzcyk7XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgXCJiYWNrZ3JvdW5kLWltYWdlXCIsIGB1cmwoJyR7dXJsfScpYCk7XHJcbiAgICAgICAgaWYgKCF0aGlzLmJhY2tncm91bmRTaXplKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgXCJiYWNrZ3JvdW5kLXNpemVcIiwgdGhpcy5iYWNrZ3JvdW5kU2l6ZSk7XHJcbiAgICB9XHJcbn1cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { Directive, Input, TemplateRef } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class DynamicTableTemplateDirective {
4
+ constructor(ref) {
5
+ this.ref = ref;
6
+ }
7
+ }
8
+ DynamicTableTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicTableTemplateDirective, deps: [{ token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
9
+ DynamicTableTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: DynamicTableTemplateDirective, selector: "ng-template[column]", inputs: { column: "column", pure: "pure" }, ngImport: i0 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: DynamicTableTemplateDirective, decorators: [{
11
+ type: Directive,
12
+ args: [{
13
+ selector: "ng-template[column]"
14
+ }]
15
+ }], ctorParameters: function () { return [{ type: i0.TemplateRef }]; }, propDecorators: { column: [{
16
+ type: Input
17
+ }], pure: [{
18
+ type: Input
19
+ }] } });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWJsZS10ZW1wbGF0ZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvZHluYW1pYy10YWJsZS10ZW1wbGF0ZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQU81RCxNQUFNLE9BQU8sNkJBQTZCO0lBS3RDLFlBQW1CLEdBQXFCO1FBQXJCLFFBQUcsR0FBSCxHQUFHLENBQWtCO0lBQ3hDLENBQUM7OzBIQU5RLDZCQUE2Qjs4R0FBN0IsNkJBQTZCOzJGQUE3Qiw2QkFBNkI7a0JBSnpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtpQkFDbEM7a0dBSVksTUFBTTtzQkFBZCxLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBJbnB1dCwgVGVtcGxhdGVSZWZ9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7SVRhYmxlVGVtcGxhdGV9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwibmctdGVtcGxhdGVbY29sdW1uXVwiXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgRHluYW1pY1RhYmxlVGVtcGxhdGVEaXJlY3RpdmUgaW1wbGVtZW50cyBJVGFibGVUZW1wbGF0ZSB7XHJcblxyXG4gICAgQElucHV0KCkgY29sdW1uOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICAgIEBJbnB1dCgpIHB1cmU6IGJvb2xlYW47XHJcblxyXG4gICAgY29uc3RydWN0b3IocHVibGljIHJlZjogVGVtcGxhdGVSZWY8YW55Pikge1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,30 @@
1
+ import { Directive, Inject, Input, TemplateRef } from "@angular/core";
2
+ import { GLOBAL_TEMPLATES } from "../common-types";
3
+ import * as i0 from "@angular/core";
4
+ export class GlobalTemplateDirective {
5
+ constructor(globalTemplates, template) {
6
+ this.globalTemplates = globalTemplates;
7
+ this.template = template;
8
+ }
9
+ ngOnInit() {
10
+ this.globalTemplates.add(this.id, this.template);
11
+ }
12
+ ngOnDestroy() {
13
+ this.globalTemplates.remove(this.id);
14
+ }
15
+ }
16
+ GlobalTemplateDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: GlobalTemplateDirective, deps: [{ token: GLOBAL_TEMPLATES }, { token: i0.TemplateRef }], target: i0.ɵɵFactoryTarget.Directive });
17
+ GlobalTemplateDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: GlobalTemplateDirective, selector: "[globalTemplate]", inputs: { id: ["globalTemplate", "id"] }, ngImport: i0 });
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: GlobalTemplateDirective, decorators: [{
19
+ type: Directive,
20
+ args: [{
21
+ selector: "[globalTemplate]"
22
+ }]
23
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
24
+ type: Inject,
25
+ args: [GLOBAL_TEMPLATES]
26
+ }] }, { type: i0.TemplateRef }]; }, propDecorators: { id: [{
27
+ type: Input,
28
+ args: ["globalTemplate"]
29
+ }] } });
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXRlbXBsYXRlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9uZ3gtdXRpbHMvZGlyZWN0aXZlcy9nbG9iYWwtdGVtcGxhdGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBcUIsV0FBVyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxnQkFBZ0IsRUFBbUIsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLbkUsTUFBTSxPQUFPLHVCQUF1QjtJQUloQyxZQUErQyxlQUFpQyxFQUMzRCxRQUEwQjtRQURBLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUMzRCxhQUFRLEdBQVIsUUFBUSxDQUFrQjtJQUUvQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3pDLENBQUM7O29IQWZRLHVCQUF1QixrQkFJWixnQkFBZ0I7d0dBSjNCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUhuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7aUJBQy9COzswQkFLZ0IsTUFBTTsyQkFBQyxnQkFBZ0I7c0VBRlgsRUFBRTtzQkFBMUIsS0FBSzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5qZWN0LCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIFRlbXBsYXRlUmVmfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0dMT0JBTF9URU1QTEFURVMsIElHbG9iYWxUZW1wbGF0ZXN9IGZyb20gXCIuLi9jb21tb24tdHlwZXNcIjtcclxuXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgc2VsZWN0b3I6IFwiW2dsb2JhbFRlbXBsYXRlXVwiXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBHbG9iYWxUZW1wbGF0ZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuXHJcbiAgICBASW5wdXQoXCJnbG9iYWxUZW1wbGF0ZVwiKSBpZDogc3RyaW5nO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKEBJbmplY3QoR0xPQkFMX1RFTVBMQVRFUykgcmVhZG9ubHkgZ2xvYmFsVGVtcGxhdGVzOiBJR2xvYmFsVGVtcGxhdGVzLFxyXG4gICAgICAgICAgICAgICAgcmVhZG9ubHkgdGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT4pIHtcclxuXHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5nbG9iYWxUZW1wbGF0ZXMuYWRkKHRoaXMuaWQsIHRoaXMudGVtcGxhdGUpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZ2xvYmFsVGVtcGxhdGVzLnJlbW92ZSh0aGlzLmlkKTtcclxuICAgIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,67 @@
1
+ import { Directive, ElementRef, EventEmitter, HostBinding, HostListener, Inject, Input, Output, Renderer2 } from "@angular/core";
2
+ import { ICON_SERVICE } from "../common-types";
3
+ import * as i0 from "@angular/core";
4
+ export class IconDirective {
5
+ constructor(element, renderer, icons) {
6
+ this.element = element;
7
+ this.renderer = renderer;
8
+ this.icons = icons;
9
+ this.renderer.addClass(this.element.nativeElement, "svg-icon");
10
+ this.activeChange = new EventEmitter();
11
+ }
12
+ get isActive() {
13
+ return this.active;
14
+ }
15
+ ngOnInit() {
16
+ this.iconsLoaded = this.icons.iconsLoaded.subscribe(() => this.changeIcon());
17
+ }
18
+ ngOnDestroy() {
19
+ if (this.iconsLoaded)
20
+ this.iconsLoaded.unsubscribe();
21
+ }
22
+ ngOnChanges(changes) {
23
+ if (changes.icon) {
24
+ this.renderer.removeClass(this.element.nativeElement, `svg-icon-${changes.icon.previousValue}`);
25
+ this.renderer.addClass(this.element.nativeElement, `svg-icon-${changes.icon.currentValue}`);
26
+ }
27
+ this.changeIcon();
28
+ }
29
+ click() {
30
+ this.active = !this.active;
31
+ this.activeChange.emit(this.active);
32
+ this.changeIcon();
33
+ }
34
+ changeIcon() {
35
+ this.icons.getIcon(this.icon, this.activeIcon || `${this.icon}-active`, this.active).then(icon => {
36
+ if (this.icons.isDisabled)
37
+ return;
38
+ this.element.nativeElement.innerHTML = icon;
39
+ });
40
+ }
41
+ }
42
+ IconDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: IconDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: ICON_SERVICE }], target: i0.ɵɵFactoryTarget.Directive });
43
+ IconDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.8", type: IconDirective, selector: "[icon]", inputs: { icon: "icon", activeIcon: "activeIcon", active: "active" }, outputs: { activeChange: "activeChange" }, host: { listeners: { "click": "click()" }, properties: { "class.active": "this.isActive" } }, usesOnChanges: true, ngImport: i0 });
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.8", ngImport: i0, type: IconDirective, decorators: [{
45
+ type: Directive,
46
+ args: [{
47
+ selector: "[icon]"
48
+ }]
49
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
50
+ type: Inject,
51
+ args: [ICON_SERVICE]
52
+ }] }]; }, propDecorators: { icon: [{
53
+ type: Input
54
+ }], activeIcon: [{
55
+ type: Input
56
+ }], active: [{
57
+ type: Input
58
+ }], activeChange: [{
59
+ type: Output
60
+ }], isActive: [{
61
+ type: HostBinding,
62
+ args: ["class.active"]
63
+ }], click: [{
64
+ type: HostListener,
65
+ args: ["click"]
66
+ }] } });
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbmd4LXV0aWxzL2RpcmVjdGl2ZXMvaWNvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEVBQ04sU0FBUyxFQUVaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBQyxZQUFZLEVBQWUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFLM0QsTUFBTSxPQUFPLGFBQWE7SUFjdEIsWUFBb0IsT0FBbUIsRUFBVSxRQUFtQixFQUFnQyxLQUFtQjtRQUFuRyxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFnQyxVQUFLLEdBQUwsS0FBSyxDQUFjO1FBQ25ILElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQy9ELElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztJQUNwRCxDQUFDO0lBVkQsSUFDSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7SUFTRCxRQUFRO1FBQ0osSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUM7SUFDakYsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLElBQUksQ0FBQyxXQUFXO1lBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLE9BQU8sQ0FBQyxJQUFJLEVBQUU7WUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxZQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQztZQUNoRyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxZQUFZLE9BQU8sQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztTQUMvRjtRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBR0QsS0FBSztRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVPLFVBQVU7UUFDZCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxTQUFTLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUM3RixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVTtnQkFBRSxPQUFPO1lBQ2xDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDaEQsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzswR0FoRFEsYUFBYSxxRUFjd0QsWUFBWTs4RkFkakYsYUFBYTsyRkFBYixhQUFhO2tCQUh6QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxRQUFRO2lCQUNyQjs7MEJBZTBFLE1BQU07MkJBQUMsWUFBWTs0Q0FaakYsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNJLFlBQVk7c0JBQXJCLE1BQU07Z0JBR0gsUUFBUTtzQkFEWCxXQUFXO3VCQUFDLGNBQWM7Z0JBOEIzQixLQUFLO3NCQURKLFlBQVk7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBEaXJlY3RpdmUsXHJcbiAgICBFbGVtZW50UmVmLFxyXG4gICAgRXZlbnRFbWl0dGVyLFxyXG4gICAgSG9zdEJpbmRpbmcsXHJcbiAgICBIb3N0TGlzdGVuZXIsXHJcbiAgICBJbmplY3QsXHJcbiAgICBJbnB1dCxcclxuICAgIE9uQ2hhbmdlcyxcclxuICAgIE9uRGVzdHJveSxcclxuICAgIE9uSW5pdCxcclxuICAgIE91dHB1dCxcclxuICAgIFJlbmRlcmVyMixcclxuICAgIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHtJQ09OX1NFUlZJQ0UsIElJY29uU2VydmljZX0gZnJvbSBcIi4uL2NvbW1vbi10eXBlc1wiO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcbiAgICBzZWxlY3RvcjogXCJbaWNvbl1cIlxyXG59KVxyXG5leHBvcnQgY2xhc3MgSWNvbkRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG5cclxuICAgIEBJbnB1dCgpIGljb246IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFjdGl2ZUljb246IHN0cmluZztcclxuICAgIEBJbnB1dCgpIGFjdGl2ZTogYm9vbGVhbjtcclxuICAgIEBPdXRwdXQoKSBhY3RpdmVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuXHJcbiAgICBASG9zdEJpbmRpbmcoXCJjbGFzcy5hY3RpdmVcIilcclxuICAgIGdldCBpc0FjdGl2ZSgpIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmU7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGljb25zTG9hZGVkOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLCBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIEBJbmplY3QoSUNPTl9TRVJWSUNFKSBwcml2YXRlIGljb25zOiBJSWNvblNlcnZpY2UpIHtcclxuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBcInN2Zy1pY29uXCIpO1xyXG4gICAgICAgIHRoaXMuYWN0aXZlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaWNvbnNMb2FkZWQgPSB0aGlzLmljb25zLmljb25zTG9hZGVkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYW5nZUljb24oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKHRoaXMuaWNvbnNMb2FkZWQpXHJcbiAgICAgICAgICAgIHRoaXMuaWNvbnNMb2FkZWQudW5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICAgICAgaWYgKGNoYW5nZXMuaWNvbikge1xyXG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LCBgc3ZnLWljb24tJHtjaGFuZ2VzLmljb24ucHJldmlvdXNWYWx1ZX1gKTtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudCwgYHN2Zy1pY29uLSR7Y2hhbmdlcy5pY29uLmN1cnJlbnRWYWx1ZX1gKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgdGhpcy5jaGFuZ2VJY29uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXHJcbiAgICBjbGljaygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZSA9ICF0aGlzLmFjdGl2ZTtcclxuICAgICAgICB0aGlzLmFjdGl2ZUNoYW5nZS5lbWl0KHRoaXMuYWN0aXZlKTtcclxuICAgICAgICB0aGlzLmNoYW5nZUljb24oKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoYW5nZUljb24oKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pY29ucy5nZXRJY29uKHRoaXMuaWNvbiwgdGhpcy5hY3RpdmVJY29uIHx8IGAke3RoaXMuaWNvbn0tYWN0aXZlYCwgdGhpcy5hY3RpdmUpLnRoZW4oaWNvbiA9PiB7XHJcbiAgICAgICAgICAgIGlmICh0aGlzLmljb25zLmlzRGlzYWJsZWQpIHJldHVybjtcclxuICAgICAgICAgICAgdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaW5uZXJIVE1MID0gaWNvbjtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxufVxyXG4iXX0=