@bizdoc/core 1.17.10 → 1.17.12

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 (107) hide show
  1. package/assets/bizdoc-schema.json +1 -0
  2. package/esm2020/lib/admin/architecture/declarations.mjs +1 -1
  3. package/esm2020/lib/admin/architecture/designer-element.component.mjs +2 -2
  4. package/esm2020/lib/admin/architecture/designer.base.mjs +29 -1
  5. package/esm2020/lib/admin/architecture/designer.component.mjs +5 -4
  6. package/esm2020/lib/admin/architecture/elements/action.component.mjs +1 -1
  7. package/esm2020/lib/admin/architecture/elements/attribute.component.mjs +6 -5
  8. package/esm2020/lib/admin/architecture/elements/configuration-datasource.component.mjs +1 -1
  9. package/esm2020/lib/admin/architecture/elements/control.component.mjs +3 -2
  10. package/esm2020/lib/admin/architecture/elements/cube.component.mjs +24 -20
  11. package/esm2020/lib/admin/architecture/elements/folder.component.mjs +4 -3
  12. package/esm2020/lib/admin/architecture/elements/form-invite.dialog.mjs +1 -1
  13. package/esm2020/lib/admin/architecture/elements/form.component.mjs +4 -4
  14. package/esm2020/lib/admin/architecture/elements/report.component.mjs +4 -3
  15. package/esm2020/lib/admin/architecture/elements/role.component.mjs +6 -5
  16. package/esm2020/lib/admin/architecture/elements/state.component.mjs +1 -1
  17. package/esm2020/lib/admin/architecture/elements/type.component.mjs +6 -6
  18. package/esm2020/lib/admin/architecture/elements/widget.component.mjs +4 -3
  19. package/esm2020/lib/admin/core/localized-string.component.mjs +12 -45
  20. package/esm2020/lib/admin/form/designer/box-designer.component.mjs +11 -9
  21. package/esm2020/lib/admin/form/designer/properties.component.mjs +2 -2
  22. package/esm2020/lib/admin/form/designer/section.component.mjs +1 -1
  23. package/esm2020/lib/admin/form/workflow/node.component.mjs +2 -2
  24. package/esm2020/lib/admin/positions/positions.component.mjs +27 -26
  25. package/esm2020/lib/admin/system.service.mjs +30 -2
  26. package/esm2020/lib/browse/browse-items.component.mjs +12 -11
  27. package/esm2020/lib/compose/form.component.mjs +4 -4
  28. package/esm2020/lib/compose/version-compare/version-compare.directive.mjs +8 -8
  29. package/esm2020/lib/core/checkbox.mjs +5 -5
  30. package/esm2020/lib/core/component-factory-resolver.mjs +1 -1
  31. package/esm2020/lib/core/fields/address.designer.mjs +1 -1
  32. package/esm2020/lib/core/fields/autocomplete.field.mjs +27 -12
  33. package/esm2020/lib/core/fields/checkbox.designer.mjs +1 -1
  34. package/esm2020/lib/core/fields/checkbox.field.mjs +3 -3
  35. package/esm2020/lib/core/fields/checklist.designer.mjs +27 -12
  36. package/esm2020/lib/core/fields/date-range.designer.mjs +1 -1
  37. package/esm2020/lib/core/fields/date.designer.mjs +1 -1
  38. package/esm2020/lib/core/fields/expression.field.mjs +31 -5
  39. package/esm2020/lib/core/fields/file.designer.mjs +1 -1
  40. package/esm2020/lib/core/fields/html.designer.mjs +1 -1
  41. package/esm2020/lib/core/fields/input.designer.mjs +1 -1
  42. package/esm2020/lib/core/fields/localized-string.field.mjs +32 -5
  43. package/esm2020/lib/core/fields/numeric.designer.mjs +1 -1
  44. package/esm2020/lib/core/fields/options.base.mjs +7 -7
  45. package/esm2020/lib/core/fields/options.component.mjs +3 -3
  46. package/esm2020/lib/core/fields/radio-button.designer.mjs +9 -9
  47. package/esm2020/lib/core/fields/select.designer.mjs +26 -12
  48. package/esm2020/lib/core/fields/signature.designer.mjs +1 -1
  49. package/esm2020/lib/core/fields/textarea.designer.mjs +1 -1
  50. package/esm2020/lib/core/fields/time.designer.mjs +40 -0
  51. package/esm2020/lib/core/fields/time.field.mjs +40 -0
  52. package/esm2020/lib/core/fields/timespan.field.mjs +19 -2
  53. package/esm2020/lib/core/fields/yesno.designer.mjs +29 -15
  54. package/esm2020/lib/core/inputs/auto-complete.input.mjs +2 -2
  55. package/esm2020/lib/core/inputs/select.input.mjs +2 -2
  56. package/esm2020/lib/core/layout.component.mjs +9 -71
  57. package/esm2020/lib/core/models.mjs +1 -19
  58. package/esm2020/lib/core/slots/router.service.mjs +2 -2
  59. package/esm2020/lib/core/slots/slots.component.mjs +7 -4
  60. package/esm2020/lib/cube/chart/chart.component.mjs +2 -2
  61. package/esm2020/lib/cube/explore/explore-items.component.mjs +9 -9
  62. package/esm2020/lib/designer.module.mjs +18 -14
  63. package/esm2020/lib/reports/report-viewer.component.mjs +2 -2
  64. package/esm2020/lib/reports/report.mobile.component.mjs +5 -5
  65. package/esm2020/lib/reports/table/table-view.component.mjs +2 -2
  66. package/esm2020/lib/shared.module.mjs +6 -4
  67. package/esm2020/lib/system.module.mjs +7 -3
  68. package/esm2020/lib/views/timeline/timeline.component.exp.mjs +5 -2
  69. package/esm2020/public-api.mjs +5 -1
  70. package/fesm2015/bizdoc-core.mjs +7208 -7053
  71. package/fesm2015/bizdoc-core.mjs.map +1 -1
  72. package/fesm2020/bizdoc-core.mjs +11266 -11115
  73. package/fesm2020/bizdoc-core.mjs.map +1 -1
  74. package/lib/admin/architecture/declarations.d.ts +5 -0
  75. package/lib/admin/architecture/designer.base.d.ts +4 -2
  76. package/lib/admin/architecture/elements/attribute.component.d.ts +2 -2
  77. package/lib/admin/architecture/elements/control.component.d.ts +2 -2
  78. package/lib/admin/architecture/elements/cube.component.d.ts +5 -5
  79. package/lib/admin/architecture/elements/folder.component.d.ts +1 -0
  80. package/lib/admin/architecture/elements/form.component.d.ts +2 -2
  81. package/lib/admin/architecture/elements/role.component.d.ts +2 -2
  82. package/lib/admin/architecture/elements/type.component.d.ts +1 -1
  83. package/lib/admin/core/localized-string.component.d.ts +4 -17
  84. package/lib/admin/form/designer/box-designer.component.d.ts +1 -2
  85. package/lib/admin/positions/positions.component.d.ts +8 -5
  86. package/lib/admin/system.service.d.ts +12 -1
  87. package/lib/core/checkbox.d.ts +2 -2
  88. package/lib/core/component-factory-resolver.d.ts +1 -1
  89. package/lib/core/fields/autocomplete.field.d.ts +4 -6
  90. package/lib/core/fields/checklist.designer.d.ts +2 -2
  91. package/lib/core/fields/expression.field.d.ts +12 -2
  92. package/lib/core/fields/localized-string.field.d.ts +9 -2
  93. package/lib/core/fields/options.base.d.ts +6 -5
  94. package/lib/core/fields/radio-button.designer.d.ts +2 -2
  95. package/lib/core/fields/select.designer.d.ts +2 -2
  96. package/lib/core/fields/time.designer.d.ts +25 -0
  97. package/lib/core/fields/time.field.d.ts +22 -0
  98. package/lib/core/fields/timespan.field.d.ts +10 -2
  99. package/lib/core/fields/yesno.designer.d.ts +4 -6
  100. package/lib/core/layout.component.d.ts +5 -2
  101. package/lib/core/models.d.ts +4 -28
  102. package/lib/core/slots/router.service.d.ts +1 -1
  103. package/lib/designer.module.d.ts +24 -20
  104. package/lib/shared.module.d.ts +137 -136
  105. package/lib/views/timeline/timeline.component.exp.d.ts +2 -1
  106. package/package.json +1 -1
  107. package/public-api.d.ts +4 -0
@@ -1,5 +1,5 @@
1
1
  import { Injectable } from '@angular/core';
2
- import { shareReplay, tap } from 'rxjs';
2
+ import { map, shareReplay, tap } from 'rxjs';
3
3
  import { isString } from '../core/functions';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common/http";
@@ -69,10 +69,38 @@ export class SystemService {
69
69
  return this._controls || (this._controls = this._http.get(`/api/system/form/controls`).
70
70
  pipe(tap(c => c.forEach(i => c[i.name] = i)), shareReplay()));
71
71
  }
72
+ datatypes() {
73
+ return this._datatypes || (this._datatypes = this._http.get(`/api/system/form/datatypes`).
74
+ pipe(tap(t => t.forEach(i => t[i.name] = i)), shareReplay()));
75
+ }
72
76
  save(form) {
73
77
  const { workflow } = form;
74
78
  return this._http.put(`/api/system/form/${encodeURIComponent(form.name)}`, { workflow });
75
79
  }
80
+ typegroups() {
81
+ return this.datatypes().pipe(map(t => {
82
+ const defaultgroup = { elements: [] }, groups = [];
83
+ groups['_'] = defaultgroup;
84
+ t.forEach(t => {
85
+ if (t.family) {
86
+ let group = groups[t.family];
87
+ if (!group) {
88
+ group = {
89
+ title: t.family,
90
+ elements: [t]
91
+ };
92
+ groups.push(group);
93
+ groups[t.family] = group;
94
+ }
95
+ else
96
+ group.elements.push(t);
97
+ }
98
+ else
99
+ defaultgroup.elements.push(t);
100
+ });
101
+ return groups;
102
+ }));
103
+ }
76
104
  }
77
105
  SystemService._cache = {};
78
106
  SystemService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: SystemService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -80,4 +108,4 @@ SystemService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", versio
80
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.7", ngImport: i0, type: SystemService, decorators: [{
81
109
  type: Injectable
82
110
  }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
83
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3N5c3RlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFtQixXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBRzdDLE1BQU0sT0FBTyxhQUFhO0lBd0V4QixZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBRXJDLENBQUM7SUF6RUQsS0FBSyxDQUFDLElBQVU7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFTLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQW9CLG9CQUFvQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFJRCxPQUFPLENBQUMsT0FBZ0Y7UUFDdEYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNuQixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQ3hCO1lBQ0gsSUFBSSxPQUFPLENBQUMsTUFBTTtnQkFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUN0RCxJQUFJLE9BQU8sQ0FBQyxNQUFNO2dCQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxPQUFPLENBQUMsTUFBTSxDQUFDO1lB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LENBQUM7MEdBUGhCLGFBQWE7OEdBQWIsYUFBYTsyRkFBYixhQUFhO2tCQUR6QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBtYXAsIE9ic2VydmFibGUsIHNoYXJlUmVwbGF5LCB0YXAgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRm9ybSB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2Z1bmN0aW9ucyc7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBTeXN0ZW1TZXJ2aWNlIHtcclxuICBydWxlcyhhcmdzPzogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8UnVsZVtdPignL2FwaS9zeXN0ZW0vZm9ybS9ydWxlcycsIHsgcGFyYW1zOiBhcmdzIH0pO1xyXG4gIH1cclxuICBzeW5jaHJpbml6ZShuYW1lOiBzdHJpbmcpIHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnBvc3Q8QmFja2dyb3VuZEpvYkluZm8+KGAvYXBpL3N5c3RlbS9jdWJlLyR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfS9zeW5jaHJvbml6ZWAsIHt9KTtcclxuICB9XHJcbiAgcHJpdmF0ZSBzdGF0aWMgX2NhY2hlID0ge307XHJcbiAgZmluZEFsbChvcHRpb25zOiB7IHNlYXJjaD86IHN0cmluZywgc3RhcnQ/OiBEYXRlLCBlbmQ/OiBEYXRlLCBmb3JtSWQ/OiBzdHJpbmcgfSlcclxuICBmaW5kQWxsKHNlYXJjaD86IHN0cmluZylcclxuICBmaW5kQWxsKG9wdGlvbnM6IHN0cmluZyB8IHsgc2VhcmNoPzogc3RyaW5nLCBzdGFydD86IERhdGUsIGVuZD86IERhdGUsIGZvcm1JZD86IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxEb2N1bWVudEluZm9bXT4ge1xyXG4gICAgY29uc3QgcGFyYW1zID0ge307XHJcbiAgICBpZiAoaXNTdHJpbmcob3B0aW9ucykpXHJcbiAgICAgIHBhcmFtc1snc2VhcmNoJ10gPSBvcHRpb25zO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGlmIChvcHRpb25zLnNlYXJjaCkgcGFyYW1zWydzZWFyY2gnXSA9IG9wdGlvbnMuc2VhcmNoO1xyXG4gICAgICBpZiAob3B0aW9ucy5mb3JtSWQpIHBhcmFtc1snZm9ybUlkJ10gPSBvcHRpb25zLmZvcm1JZDtcclxuICAgICAgaWYgKG9wdGlvbnMuc3RhcnQpIHBhcmFtc1snc3RhcnQnXSA9IG5ldyBEYXRlKG9wdGlvbnMuc3RhcnQpLnRvSVNPU3RyaW5nKCk7XHJcbiAgICAgIGlmIChvcHRpb25zLmVuZCkgcGFyYW1zWydlbmQnXSA9IG5ldyBEYXRlKG9wdGlvbnMuZW5kKS50b0lTT1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PERvY3VtZW50SW5mb1tdPignL2FwaS9zeXN0ZW0vZm9ybS9maW5kQWxsJywge1xyXG4gICAgICBwYXJhbXNcclxuICAgIH0pO1xyXG4gIH1cclxuICByb2xlcygpOiBPYnNlcnZhYmxlPFJvbGVbXT4ge1xyXG4gICAgcmV0dXJuIFN5c3RlbVNlcnZpY2UuX2NhY2hlWydyb2xlcyddIHx8IChTeXN0ZW1TZXJ2aWNlLl9jYWNoZVsncm9sZXMnXSA9XHJcbiAgICAgIHRoaXMuX2h0dHAuZ2V0PFJvbGVbXT4oJy9hcGkvc3lzdGVtL3Bvc2l0aW9ucy9yb2xlcycpLnBpcGUoc2hhcmVSZXBsYXkoKSkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZm9ybUlkXHJcbiAgICovXHJcbiAgcmFuZ2UoZm9ybUlkPzogc3RyaW5nKTogT2JzZXJ2YWJsZTxSYW5nZUluZm9bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJhbmdlSW5mb1tdPignL2FwaS9zeXN0ZW0vZm9ybS9yYW5nZScsIHtcclxuICAgICAgcGFyYW1zOiB7IGZvcm1JZDogZm9ybUlkIHx8IG51bGwgfVxyXG4gICAgfSkucGlwZSh0YXAoKHI6IFJhbmdlSW5mb1tdKSA9PlxyXG4gICAgICByLmZvckVhY2gocCA9PiBwLmRhdGUgPSBuZXcgRGF0ZShwLmRhdGUpKVxyXG4gICAgKSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBmb3JtSWRcclxuICAgKiBAcGFyYW0gb3B0aW9uc1xyXG4gICAqL1xyXG4gIGludml0ZShmb3JtSWQ6IHN0cmluZywgb3B0aW9uczogeyBncm91cHM6IHN0cmluZ1tdLCBtZXNzYWdlPzogc3RyaW5nOyBkZXZpY2VzOiBJbnZpdGVEZXZpY2VbXSwgZHVlPzogRGF0ZSB9KSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8eyB0YXJnZXQ6IG51bWJlcjsgb2s6IG51bWJlcjsgaW0/OiBudW1iZXI7IGVtYWlsPzogbnVtYmVyOyBzbXM/OiBudW1iZXIgfT4oYC9hcGkvc3lzdGVtL2Zvcm0vaW52aXRlLyR7Zm9ybUlkfWAsIG9wdGlvbnMpO1xyXG4gIH1cclxuICBwcm9qZWN0aW9uKG9wdGlvbnM6IHsgZ3JvdXBzOiBzdHJpbmdbXSB9KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLnB1dDxudW1iZXI+KCcvYXBpL3N5c3RlbS9mb3JtL3Byb2plY3Rpb24vJywgb3B0aW9ucyk7XHJcbiAgfVxyXG4gIGN1YmUobmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Q3ViZUluZm8+KGAvYXBpL3N5c3RlbS9jdWJlLyR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfWApO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gbmFtZVxyXG4gICAqL1xyXG4gIGZvcm0obmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxGb3JtPiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5nZXQ8Rm9ybT4oYC9hcGkvc3lzdGVtL2Zvcm0vJHtlbmNvZGVVUklDb21wb25lbnQobmFtZSl9YCk7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NvbnRyb2xzOiBPYnNlcnZhYmxlPENvbnRyb2xJbmZvW10+O1xyXG4gIGNvbnRyb2xzKCk6IE9ic2VydmFibGU8Q29udHJvbEluZm9bXT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2NvbnRyb2xzIHx8ICh0aGlzLl9jb250cm9scyA9IHRoaXMuX2h0dHAuZ2V0PENvbnRyb2xJbmZvW10+KGAvYXBpL3N5c3RlbS9mb3JtL2NvbnRyb2xzYCkuXHJcbiAgICAgIHBpcGUoXHJcbiAgICAgICAgdGFwKGMgPT5cclxuICAgICAgICAgIGMuZm9yRWFjaChpID0+IGNbaS5uYW1lXSA9IGkpKSxcclxuICAgICAgICBzaGFyZVJlcGxheSgpKSk7XHJcbiAgfVxyXG4gIHNhdmUoZm9ybTogRm9ybSk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB7IHdvcmtmbG93IH0gPSBmb3JtO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PG51bWJlcj4oYC9hcGkvc3lzdGVtL2Zvcm0vJHtlbmNvZGVVUklDb21wb25lbnQoZm9ybS5uYW1lKX1gLCB7IHdvcmtmbG93IH0pO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50KSB7XHJcblxyXG4gIH1cclxufVxyXG5leHBvcnQgdHlwZSBJbnZpdGVEZXZpY2UgPSAnU21zJyB8ICdFbWFpbCcgfCAnSU0nO1xyXG5leHBvcnQgaW50ZXJmYWNlIFJhbmdlSW5mbyB7XHJcbiAgY291bnQ6IG51bWJlcjtcclxuICBkYXRlOiBEYXRlO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRG9jdW1lbnRJbmZvIHtcclxuICBpZDogbnVtYmVyO1xyXG4gIG51bWJlcjogc3RyaW5nO1xyXG4gIHN1YmplY3Q6IHN0cmluZztcclxuICBzdGF0ZUlkOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBDb250cm9sSW5mbyB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbiAgaWNvbj86IHN0cmluZztcclxuICB0ZW1wbGF0ZT86IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEN1YmVJbmZvIHtcclxuICBqb2JJbmZvOiBCYWNrZ3JvdW5kSm9iSW5mbztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIEJhY2tncm91bmRKb2JJbmZvIHtcclxuICBlcnJvcj86IHN0cmluZztcclxuICBuZXh0RXhlY3V0aW9uPzogRGF0ZTtcclxuICBsYXN0RXhlY3V0aW9uPzogRGF0ZTtcclxuICBsYXN0Sm9iU3RhdGU/OiBzdHJpbmc7XHJcbn1cclxuaW50ZXJmYWNlIFJ1bGUge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICB0aXRsZTogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgUm9sZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbn1cclxuIl19
111
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3lzdGVtLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJyYXJpZXMvY29yZS9zcmMvbGliL2FkbWluL3N5c3RlbS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBYyxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXpELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7O0FBSTdDLE1BQU0sT0FBTyxhQUFhO0lBZ0Z4QixZQUFvQixLQUFpQjtRQUFqQixVQUFLLEdBQUwsS0FBSyxDQUFZO0lBRXJDLENBQUM7SUFqRkQsS0FBSyxDQUFDLElBQVU7UUFDZCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFTLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDNUUsQ0FBQztJQUNELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQW9CLG9CQUFvQixrQkFBa0IsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQzVHLENBQUM7SUFJRCxPQUFPLENBQUMsT0FBZ0Y7UUFDdEYsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2xCLElBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUNuQixNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDO2FBQ3hCO1lBQ0gsSUFBSSxPQUFPLENBQUMsTUFBTTtnQkFBRSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUN0RCxJQUFJLE9BQU8sQ0FBQyxNQUFNO2dCQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxPQUFPLENBQUMsTUFB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SSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLENBQUMsQ0FBQyxDQUFDO1lBQ0gsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUNMLENBQUM7O0FBbkdjLG9CQUFNLEdBQUcsRUFBRSxDQUFDOzBHQVBoQixhQUFhOzhHQUFiLGFBQWE7MkZBQWIsYUFBYTtrQkFEekIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlLCBzaGFyZVJlcGxheSwgdGFwIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEZpZWxkSW5mbywgRm9ybSB9IGZyb20gJy4uL2NvcmUvbW9kZWxzJztcclxuaW1wb3J0IHsgaXNTdHJpbmcgfSBmcm9tICcuLi9jb3JlL2Z1bmN0aW9ucyc7XHJcbmltcG9ydCB7IEVsZW1lbnRGYW1pbHkgfSBmcm9tICcuL2FyY2hpdGVjdHVyZS9kZWNsYXJhdGlvbnMnO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgU3lzdGVtU2VydmljZSB7XHJcbiAgcnVsZXMoYXJncz86IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PFJ1bGVbXT4oJy9hcGkvc3lzdGVtL2Zvcm0vcnVsZXMnLCB7IHBhcmFtczogYXJncyB9KTtcclxuICB9XHJcbiAgc3luY2hyaW5pemUobmFtZTogc3RyaW5nKSB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wb3N0PEJhY2tncm91bmRKb2JJbmZvPihgL2FwaS9zeXN0ZW0vY3ViZS8ke2VuY29kZVVSSUNvbXBvbmVudChuYW1lKX0vc3luY2hyb25pemVgLCB7fSk7XHJcbiAgfVxyXG4gIHByaXZhdGUgc3RhdGljIF9jYWNoZSA9IHt9O1xyXG4gIGZpbmRBbGwob3B0aW9uczogeyBzZWFyY2g/OiBzdHJpbmcsIHN0YXJ0PzogRGF0ZSwgZW5kPzogRGF0ZSwgZm9ybUlkPzogc3RyaW5nIH0pXHJcbiAgZmluZEFsbChzZWFyY2g/OiBzdHJpbmcpXHJcbiAgZmluZEFsbChvcHRpb25zOiBzdHJpbmcgfCB7IHNlYXJjaD86IHN0cmluZywgc3RhcnQ/OiBEYXRlLCBlbmQ/OiBEYXRlLCBmb3JtSWQ/OiBzdHJpbmcgfSk6IE9ic2VydmFibGU8RG9jdW1lbnRJbmZvW10+IHtcclxuICAgIGNvbnN0IHBhcmFtcyA9IHt9O1xyXG4gICAgaWYgKGlzU3RyaW5nKG9wdGlvbnMpKVxyXG4gICAgICBwYXJhbXNbJ3NlYXJjaCddID0gb3B0aW9ucztcclxuICAgIGVsc2Uge1xyXG4gICAgICBpZiAob3B0aW9ucy5zZWFyY2gpIHBhcmFtc1snc2VhcmNoJ10gPSBvcHRpb25zLnNlYXJjaDtcclxuICAgICAgaWYgKG9wdGlvbnMuZm9ybUlkKSBwYXJhbXNbJ2Zvcm1JZCddID0gb3B0aW9ucy5mb3JtSWQ7XHJcbiAgICAgIGlmIChvcHRpb25zLnN0YXJ0KSBwYXJhbXNbJ3N0YXJ0J10gPSBuZXcgRGF0ZShvcHRpb25zLnN0YXJ0KS50b0lTT1N0cmluZygpO1xyXG4gICAgICBpZiAob3B0aW9ucy5lbmQpIHBhcmFtc1snZW5kJ10gPSBuZXcgRGF0ZShvcHRpb25zLmVuZCkudG9JU09TdHJpbmcoKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxEb2N1bWVudEluZm9bXT4oJy9hcGkvc3lzdGVtL2Zvcm0vZmluZEFsbCcsIHtcclxuICAgICAgcGFyYW1zXHJcbiAgICB9KTtcclxuICB9XHJcbiAgcm9sZXMoKTogT2JzZXJ2YWJsZTxSb2xlW10+IHtcclxuICAgIHJldHVybiBTeXN0ZW1TZXJ2aWNlLl9jYWNoZVsncm9sZXMnXSB8fCAoU3lzdGVtU2VydmljZS5fY2FjaGVbJ3JvbGVzJ10gPVxyXG4gICAgICB0aGlzLl9odHRwLmdldDxSb2xlW10+KCcvYXBpL3N5c3RlbS9wb3NpdGlvbnMvcm9sZXMnKS5waXBlKHNoYXJlUmVwbGF5KCkpKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIGZvcm1JZFxyXG4gICAqL1xyXG4gIHJhbmdlKGZvcm1JZD86IHN0cmluZyk6IE9ic2VydmFibGU8UmFuZ2VJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9odHRwLmdldDxSYW5nZUluZm9bXT4oJy9hcGkvc3lzdGVtL2Zvcm0vcmFuZ2UnLCB7XHJcbiAgICAgIHBhcmFtczogeyBmb3JtSWQ6IGZvcm1JZCB8fCBudWxsIH1cclxuICAgIH0pLnBpcGUodGFwKChyOiBSYW5nZUluZm9bXSkgPT5cclxuICAgICAgci5mb3JFYWNoKHAgPT4gcC5kYXRlID0gbmV3IERhdGUocC5kYXRlKSlcclxuICAgICkpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBcclxuICAgKiBAcGFyYW0gZm9ybUlkXHJcbiAgICogQHBhcmFtIG9wdGlvbnNcclxuICAgKi9cclxuICBpbnZpdGUoZm9ybUlkOiBzdHJpbmcsIG9wdGlvbnM6IHsgZ3JvdXBzOiBzdHJpbmdbXSwgbWVzc2FnZT86IHN0cmluZzsgZGV2aWNlczogSW52aXRlRGV2aWNlW10sIGR1ZT86IERhdGUgfSkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PHsgdGFyZ2V0OiBudW1iZXI7IG9rOiBudW1iZXI7IGltPzogbnVtYmVyOyBlbWFpbD86IG51bWJlcjsgc21zPzogbnVtYmVyIH0+KGAvYXBpL3N5c3RlbS9mb3JtL2ludml0ZS8ke2Zvcm1JZH1gLCBvcHRpb25zKTtcclxuICB9XHJcbiAgcHJvamVjdGlvbihvcHRpb25zOiB7IGdyb3Vwczogc3RyaW5nW10gfSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5faHR0cC5wdXQ8bnVtYmVyPignL2FwaS9zeXN0ZW0vZm9ybS9wcm9qZWN0aW9uLycsIG9wdGlvbnMpO1xyXG4gIH1cclxuICBjdWJlKG5hbWU6IHN0cmluZykge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PEN1YmVJbmZvPihgL2FwaS9zeXN0ZW0vY3ViZS8ke2VuY29kZVVSSUNvbXBvbmVudChuYW1lKX1gKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIG5hbWVcclxuICAgKi9cclxuICBmb3JtKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8Rm9ybT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAuZ2V0PEZvcm0+KGAvYXBpL3N5c3RlbS9mb3JtLyR7ZW5jb2RlVVJJQ29tcG9uZW50KG5hbWUpfWApO1xyXG4gIH1cclxuICBwcml2YXRlIF9jb250cm9sczogT2JzZXJ2YWJsZTxDb250cm9sSW5mb1tdPjtcclxuICBjb250cm9scygpOiBPYnNlcnZhYmxlPENvbnRyb2xJbmZvW10+IHtcclxuICAgIHJldHVybiB0aGlzLl9jb250cm9scyB8fCAodGhpcy5fY29udHJvbHMgPSB0aGlzLl9odHRwLmdldDxDb250cm9sSW5mb1tdPihgL2FwaS9zeXN0ZW0vZm9ybS9jb250cm9sc2ApLlxyXG4gICAgICBwaXBlKFxyXG4gICAgICAgIHRhcChjID0+XHJcbiAgICAgICAgICBjLmZvckVhY2goaSA9PiBjW2kubmFtZV0gPSBpKSksXHJcbiAgICAgICAgc2hhcmVSZXBsYXkoKSkpO1xyXG4gIH1cclxuICBwcml2YXRlIF9kYXRhdHlwZXM6IE9ic2VydmFibGU8RGF0YVR5cGVJbmZvW10+O1xyXG4gIGRhdGF0eXBlcygpOiBPYnNlcnZhYmxlPERhdGFUeXBlSW5mb1tdPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF0YXR5cGVzIHx8ICh0aGlzLl9kYXRhdHlwZXMgPSB0aGlzLl9odHRwLmdldDxEYXRhVHlwZUluZm9bXT4oYC9hcGkvc3lzdGVtL2Zvcm0vZGF0YXR5cGVzYCkuXHJcbiAgICAgIHBpcGUoXHJcbiAgICAgICAgdGFwKHQgPT5cclxuICAgICAgICAgIHQuZm9yRWFjaChpID0+IHRbaS5uYW1lXSA9IGkpKSxcclxuICAgICAgICBzaGFyZVJlcGxheSgpKSk7XHJcbiAgfVxyXG4gIHNhdmUoZm9ybTogRm9ybSk6IE9ic2VydmFibGU8bnVtYmVyPiB7XHJcbiAgICBjb25zdCB7IHdvcmtmbG93IH0gPSBmb3JtO1xyXG4gICAgcmV0dXJuIHRoaXMuX2h0dHAucHV0PG51bWJlcj4oYC9hcGkvc3lzdGVtL2Zvcm0vJHtlbmNvZGVVUklDb21wb25lbnQoZm9ybS5uYW1lKX1gLCB7IHdvcmtmbG93IH0pO1xyXG4gIH1cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9odHRwOiBIdHRwQ2xpZW50KSB7XHJcblxyXG4gIH1cclxuICBwdWJsaWMgdHlwZWdyb3VwcygpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGF0eXBlcygpLnBpcGUobWFwKHQgPT4ge1xyXG4gICAgICBjb25zdFxyXG4gICAgICAgIGRlZmF1bHRncm91cCA9IHsgZWxlbWVudHM6IFtdIH0sXHJcbiAgICAgICAgZ3JvdXBzID0gW10gYXMgRWxlbWVudEZhbWlseVtdO1xyXG4gICAgICBncm91cHNbJ18nXSA9IGRlZmF1bHRncm91cDtcclxuICAgICAgdC5mb3JFYWNoKHQgPT4ge1xyXG4gICAgICAgIGlmICh0LmZhbWlseSkge1xyXG4gICAgICAgICAgbGV0IGdyb3VwID0gZ3JvdXBzW3QuZmFtaWx5XTtcclxuICAgICAgICAgIGlmICghZ3JvdXApIHtcclxuICAgICAgICAgICAgZ3JvdXAgPSB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6IHQuZmFtaWx5LFxyXG4gICAgICAgICAgICAgIGVsZW1lbnRzOiBbdF1cclxuICAgICAgICAgICAgfTtcclxuICAgICAgICAgICAgZ3JvdXBzLnB1c2goZ3JvdXApO1xyXG4gICAgICAgICAgICBncm91cHNbdC5mYW1pbHldID0gZ3JvdXA7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBlbHNlIGdyb3VwLmVsZW1lbnRzLnB1c2godCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgZGVmYXVsdGdyb3VwLmVsZW1lbnRzLnB1c2godCk7XHJcbiAgICAgIH0pO1xyXG4gICAgICByZXR1cm4gZ3JvdXBzO1xyXG4gICAgfSkpXHJcbiAgfVxyXG59XHJcbmV4cG9ydCB0eXBlIEludml0ZURldmljZSA9ICdTbXMnIHwgJ0VtYWlsJyB8ICdJTSc7XHJcbmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2VJbmZvIHtcclxuICBjb3VudDogbnVtYmVyO1xyXG4gIGRhdGU6IERhdGU7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudEluZm8ge1xyXG4gIGlkOiBudW1iZXI7XHJcbiAgbnVtYmVyOiBzdHJpbmc7XHJcbiAgc3ViamVjdDogc3RyaW5nO1xyXG4gIHN0YXRlSWQ6IHN0cmluZztcclxufVxyXG5leHBvcnQgaW50ZXJmYWNlIENvbnRyb2xJbmZvIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBpY29uPzogc3RyaW5nO1xyXG4gIHRlbXBsYXRlPzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVR5cGVJbmZvIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBhc3NpZ25hYmxlPzogYm9vbGVhbjtcclxuICBjb2x1bW5zPzogRmllbGRJbmZvW107XHJcbiAgZmFtaWx5Pzogc3RyaW5nO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3ViZUluZm8ge1xyXG4gIGpvYkluZm86IEJhY2tncm91bmRKb2JJbmZvO1xyXG59XHJcbmV4cG9ydCBpbnRlcmZhY2UgQmFja2dyb3VuZEpvYkluZm8ge1xyXG4gIGVycm9yPzogc3RyaW5nO1xyXG4gIG5leHRFeGVjdXRpb24/OiBEYXRlO1xyXG4gIGxhc3RFeGVjdXRpb24/OiBEYXRlO1xyXG4gIGxhc3RKb2JTdGF0ZT86IHN0cmluZztcclxufVxyXG5pbnRlcmZhY2UgUnVsZSB7XHJcbiAgbmFtZTogc3RyaW5nO1xyXG4gIHRpdGxlOiBzdHJpbmc7XHJcbn1cclxuZXhwb3J0IGludGVyZmFjZSBSb2xlIHtcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdGl0bGU6IHN0cmluZztcclxufVxyXG4iXX0=