@acorex/components 6.0.0 → 6.0.5

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 (161) hide show
  1. package/README.md +24 -24
  2. package/alert/src/alert.component.d.ts +2 -3
  3. package/badge/src/badge.component.d.ts +1 -2
  4. package/breadcrumbs/src/breadcrumbs-item.component.d.ts +4 -6
  5. package/button/src/button-group.component.d.ts +4 -6
  6. package/button/src/button-item.component.d.ts +4 -6
  7. package/calendar/src/calendar.component.d.ts +1 -0
  8. package/color-picker/src/color-picker.component.d.ts +14 -21
  9. package/common/src/styles.class.d.ts +2 -2
  10. package/context-menu/index.d.ts +5 -0
  11. package/context-menu/public-api.d.ts +2 -0
  12. package/context-menu/src/context-menu.component.d.ts +34 -0
  13. package/context-menu/src/context-menu.module.d.ts +13 -0
  14. package/date-picker/src/datepicker.component.d.ts +11 -14
  15. package/decorators/public-api.d.ts +0 -1
  16. package/decorators/src/decorators.module.d.ts +5 -6
  17. package/decorators/src/header.component.d.ts +1 -1
  18. package/esm2020/alert/src/alert.component.mjs +5 -4
  19. package/esm2020/button/src/button.component.mjs +1 -1
  20. package/esm2020/calendar/src/calendar.component.mjs +33 -5
  21. package/esm2020/checkbox/src/checkbox.component.mjs +3 -3
  22. package/esm2020/common/src/styles.class.mjs +13 -2
  23. package/esm2020/context-menu/acorex-components-context-menu.mjs +5 -0
  24. package/esm2020/context-menu/public-api.mjs +3 -0
  25. package/esm2020/context-menu/src/context-menu.component.mjs +257 -0
  26. package/esm2020/context-menu/src/context-menu.module.mjs +36 -0
  27. package/esm2020/decorators/public-api.mjs +1 -2
  28. package/esm2020/decorators/src/decorators.module.mjs +1 -5
  29. package/esm2020/decorators/src/header.component.mjs +3 -3
  30. package/esm2020/dialog/src/dialog.component.mjs +3 -3
  31. package/esm2020/form/public-api.mjs +2 -2
  32. package/esm2020/form/src/form.component.mjs +69 -8
  33. package/esm2020/form/src/form.module.mjs +68 -0
  34. package/esm2020/menu/src/menu.component.mjs +261 -117
  35. package/esm2020/menu/src/menu.module.mjs +16 -8
  36. package/esm2020/mixin/src/base-components.class.mjs +1 -3
  37. package/esm2020/mixin/src/base-menu-mixin.class.mjs +11 -11
  38. package/esm2020/mixin/src/mixin.class.mjs +14 -14
  39. package/esm2020/mixin/src/selection-component.class.mjs +2 -4
  40. package/esm2020/mixin/src/textbox-mixin.class.mjs +1 -1
  41. package/esm2020/mixin/src/value-mixin.class.mjs +6 -6
  42. package/esm2020/number-box/src/number-box.component.mjs +14 -4
  43. package/esm2020/popover/src/popover.component.mjs +3 -3
  44. package/esm2020/popup/src/popup.component.mjs +3 -3
  45. package/esm2020/public-api.mjs +1 -1
  46. package/esm2020/radio/src/radio.component.mjs +3 -3
  47. package/esm2020/result/src/result.component.mjs +3 -3
  48. package/esm2020/search-box/src/search-box.component.mjs +3 -3
  49. package/esm2020/selection-list/src/selection-list.component.mjs +3 -3
  50. package/esm2020/tabs/src/tabs.class.mjs +1 -1
  51. package/esm2020/tabs/src/tabs.component.mjs +35 -16
  52. package/esm2020/toast/src/toast.component.mjs +4 -4
  53. package/esm2020/toast/src/toast.service.mjs +10 -1
  54. package/fesm2015/acorex-components-alert.mjs +4 -3
  55. package/fesm2015/acorex-components-alert.mjs.map +1 -1
  56. package/fesm2015/acorex-components-button.mjs.map +1 -1
  57. package/fesm2015/acorex-components-calendar.mjs +30 -2
  58. package/fesm2015/acorex-components-calendar.mjs.map +1 -1
  59. package/fesm2015/acorex-components-checkbox.mjs +2 -2
  60. package/fesm2015/acorex-components-checkbox.mjs.map +1 -1
  61. package/fesm2015/acorex-components-common.mjs +13 -2
  62. package/fesm2015/acorex-components-common.mjs.map +1 -1
  63. package/fesm2015/acorex-components-context-menu.mjs +297 -0
  64. package/fesm2015/acorex-components-context-menu.mjs.map +1 -0
  65. package/fesm2015/acorex-components-decorators.mjs +4 -25
  66. package/fesm2015/acorex-components-decorators.mjs.map +1 -1
  67. package/fesm2015/acorex-components-dialog.mjs +2 -2
  68. package/fesm2015/acorex-components-dialog.mjs.map +1 -1
  69. package/fesm2015/acorex-components-form.mjs +76 -14
  70. package/fesm2015/acorex-components-form.mjs.map +1 -1
  71. package/fesm2015/acorex-components-menu.mjs +276 -124
  72. package/fesm2015/acorex-components-menu.mjs.map +1 -1
  73. package/fesm2015/acorex-components-mixin.mjs +17 -21
  74. package/fesm2015/acorex-components-mixin.mjs.map +1 -1
  75. package/fesm2015/acorex-components-number-box.mjs +13 -3
  76. package/fesm2015/acorex-components-number-box.mjs.map +1 -1
  77. package/fesm2015/acorex-components-popover.mjs +2 -2
  78. package/fesm2015/acorex-components-popover.mjs.map +1 -1
  79. package/fesm2015/acorex-components-popup.mjs +2 -2
  80. package/fesm2015/acorex-components-popup.mjs.map +1 -1
  81. package/fesm2015/acorex-components-radio.mjs +2 -2
  82. package/fesm2015/acorex-components-radio.mjs.map +1 -1
  83. package/fesm2015/acorex-components-result.mjs +2 -2
  84. package/fesm2015/acorex-components-result.mjs.map +1 -1
  85. package/fesm2015/acorex-components-search-box.mjs +2 -2
  86. package/fesm2015/acorex-components-search-box.mjs.map +1 -1
  87. package/fesm2015/acorex-components-selection-list.mjs +2 -2
  88. package/fesm2015/acorex-components-selection-list.mjs.map +1 -1
  89. package/fesm2015/acorex-components-tabs.mjs +35 -16
  90. package/fesm2015/acorex-components-tabs.mjs.map +1 -1
  91. package/fesm2015/acorex-components-toast.mjs +12 -3
  92. package/fesm2015/acorex-components-toast.mjs.map +1 -1
  93. package/fesm2015/acorex-components.mjs.map +1 -1
  94. package/fesm2020/acorex-components-alert.mjs +4 -3
  95. package/fesm2020/acorex-components-alert.mjs.map +1 -1
  96. package/fesm2020/acorex-components-button.mjs.map +1 -1
  97. package/fesm2020/acorex-components-calendar.mjs +30 -2
  98. package/fesm2020/acorex-components-calendar.mjs.map +1 -1
  99. package/fesm2020/acorex-components-checkbox.mjs +2 -2
  100. package/fesm2020/acorex-components-checkbox.mjs.map +1 -1
  101. package/fesm2020/acorex-components-common.mjs +13 -2
  102. package/fesm2020/acorex-components-common.mjs.map +1 -1
  103. package/fesm2020/acorex-components-context-menu.mjs +297 -0
  104. package/fesm2020/acorex-components-context-menu.mjs.map +1 -0
  105. package/fesm2020/acorex-components-decorators.mjs +4 -25
  106. package/fesm2020/acorex-components-decorators.mjs.map +1 -1
  107. package/fesm2020/acorex-components-dialog.mjs +2 -2
  108. package/fesm2020/acorex-components-dialog.mjs.map +1 -1
  109. package/fesm2020/acorex-components-form.mjs +75 -14
  110. package/fesm2020/acorex-components-form.mjs.map +1 -1
  111. package/fesm2020/acorex-components-menu.mjs +273 -120
  112. package/fesm2020/acorex-components-menu.mjs.map +1 -1
  113. package/fesm2020/acorex-components-mixin.mjs +17 -20
  114. package/fesm2020/acorex-components-mixin.mjs.map +1 -1
  115. package/fesm2020/acorex-components-number-box.mjs +13 -3
  116. package/fesm2020/acorex-components-number-box.mjs.map +1 -1
  117. package/fesm2020/acorex-components-popover.mjs +2 -2
  118. package/fesm2020/acorex-components-popover.mjs.map +1 -1
  119. package/fesm2020/acorex-components-popup.mjs +2 -2
  120. package/fesm2020/acorex-components-popup.mjs.map +1 -1
  121. package/fesm2020/acorex-components-radio.mjs +2 -2
  122. package/fesm2020/acorex-components-radio.mjs.map +1 -1
  123. package/fesm2020/acorex-components-result.mjs +2 -2
  124. package/fesm2020/acorex-components-result.mjs.map +1 -1
  125. package/fesm2020/acorex-components-search-box.mjs +2 -2
  126. package/fesm2020/acorex-components-search-box.mjs.map +1 -1
  127. package/fesm2020/acorex-components-selection-list.mjs +2 -2
  128. package/fesm2020/acorex-components-selection-list.mjs.map +1 -1
  129. package/fesm2020/acorex-components-tabs.mjs +34 -15
  130. package/fesm2020/acorex-components-tabs.mjs.map +1 -1
  131. package/fesm2020/acorex-components-toast.mjs +12 -3
  132. package/fesm2020/acorex-components-toast.mjs.map +1 -1
  133. package/fesm2020/acorex-components.mjs.map +1 -1
  134. package/form/public-api.d.ts +1 -1
  135. package/form/src/form.component.d.ts +18 -2
  136. package/form/src/{form-field.module.d.ts → form.module.d.ts} +0 -0
  137. package/menu/src/menu.component.d.ts +21 -36
  138. package/menu/src/menu.module.d.ts +2 -2
  139. package/mixin/src/base-components.class.d.ts +1 -3
  140. package/mixin/src/base-menu-mixin.class.d.ts +8 -9
  141. package/mixin/src/button-mixin.class.d.ts +1 -2
  142. package/mixin/src/clickable-mixin.class.d.ts +1 -2
  143. package/mixin/src/color-look-mixing.class.d.ts +1 -2
  144. package/mixin/src/datalist-component.class.d.ts +9 -10
  145. package/mixin/src/dropdown-mixin.class.d.ts +1 -2
  146. package/mixin/src/interactive-mixin.class.d.ts +6 -5
  147. package/mixin/src/loading-mixin.class.d.ts +1 -2
  148. package/mixin/src/mixin.class.d.ts +47 -100
  149. package/mixin/src/page-component.class.d.ts +1 -2
  150. package/mixin/src/selection-component.class.d.ts +1 -2
  151. package/mixin/src/sizable-mixin.class.d.ts +1 -2
  152. package/mixin/src/textbox-mixin.class.d.ts +7 -8
  153. package/mixin/src/value-mixin.class.d.ts +7 -8
  154. package/package.json +9 -1
  155. package/tabs/src/tab-item.component.d.ts +1 -2
  156. package/tabs/src/tabs.class.d.ts +1 -0
  157. package/tabs/src/tabs.component.d.ts +9 -4
  158. package/toast/src/toast.service.d.ts +1 -0
  159. package/decorators/src/addon.component.d.ts +0 -8
  160. package/esm2020/decorators/src/addon.component.mjs +0 -21
  161. package/esm2020/form/src/form-field.module.mjs +0 -68
@@ -1,4 +1,4 @@
1
- import { ChangeDetectionStrategy, Component, EventEmitter, Output, ViewEncapsulation } from '@angular/core';
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
2
2
  import { AXEvent } from '@acorex/components/common';
3
3
  import { AXBaseComponentMixin } from '@acorex/components/mixin';
4
4
  import * as i0 from "@angular/core";
@@ -21,9 +21,61 @@ export class AXFormComponent extends AXBaseComponentMixin {
21
21
  super(elementRef, cdr);
22
22
  this.cdr = cdr;
23
23
  this.onValidate = new EventEmitter();
24
+ this.updateOnChange = new EventEmitter();
25
+ this._updateOn = 'blur';
26
+ this._subs = [];
27
+ }
28
+ get updateOn() {
29
+ return this._updateOn;
30
+ }
31
+ set updateOn(v) {
32
+ this._setOption({
33
+ name: 'updateOn',
34
+ value: v,
35
+ afterCallback: (oldValue, newValue) => {
36
+ this._bindEvents();
37
+ },
38
+ });
24
39
  }
25
40
  _getComponenets() {
26
- return Array.from(this._getHostElement().querySelectorAll('[ax-form-input="true"]'));
41
+ return Array.from(this._getHostElement().querySelectorAll('[ax-form-input="true"]')).map((c) => c.__axContext__);
42
+ }
43
+ onViewInit() {
44
+ this._validateInitValues();
45
+ this._bindEvents();
46
+ const config = { attributes: false, childList: true, subtree: true };
47
+ const callback = (mutationList, observer) => {
48
+ this._bindEvents();
49
+ };
50
+ // Create an observer instance linked to the callback function
51
+ this._observer = new MutationObserver(callback);
52
+ this._observer.observe(this._getHostElement(), config);
53
+ }
54
+ _bindEvents() {
55
+ this._clearSubs();
56
+ const widgets = this._getComponenets();
57
+ //
58
+ widgets.forEach(w => {
59
+ if (this.updateOn == 'change') {
60
+ this._subs.push(w.onValueChanged?.subscribe(v => {
61
+ w.validate();
62
+ }));
63
+ }
64
+ else if (this.updateOn == 'blur') {
65
+ this._subs.push(w.onBlur?.subscribe(v => {
66
+ w.validate();
67
+ }));
68
+ }
69
+ });
70
+ }
71
+ _clearSubs() {
72
+ this._subs.forEach(c => c.unsubscribe());
73
+ this._subs = [];
74
+ }
75
+ _validateInitValues() {
76
+ this._getComponenets()
77
+ .filter(c => c['value'])
78
+ .forEach(c => c.validate());
27
79
  }
28
80
  validate(...args) {
29
81
  const widgets = this._getComponenets();
@@ -33,7 +85,7 @@ export class AXFormComponent extends AXBaseComponentMixin {
33
85
  }
34
86
  //
35
87
  return new Promise((resolve, reject) => {
36
- Promise.all(widgets.map((c) => c.__axContext__)
88
+ Promise.all(widgets
37
89
  .filter(c => (args == null || args.length == 0) || args.includes(c.name))
38
90
  .map((c) => c.validate()))
39
91
  .then((rules) => {
@@ -43,7 +95,7 @@ export class AXFormComponent extends AXBaseComponentMixin {
43
95
  result: false,
44
96
  items: failed
45
97
  });
46
- reject({
98
+ resolve({
47
99
  result: false,
48
100
  items: failed
49
101
  });
@@ -65,21 +117,30 @@ export class AXFormComponent extends AXBaseComponentMixin {
65
117
  clear() {
66
118
  const widgets = this._getComponenets();
67
119
  widgets.forEach(w => {
68
- w.__axContext__.clear();
120
+ w.clear();
69
121
  });
70
122
  }
123
+ onDestroy() {
124
+ this._observer.disconnect();
125
+ this._observer = null;
126
+ this._clearSubs();
127
+ }
71
128
  }
72
129
  AXFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFormComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
73
- AXFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXFormComponent, selector: "ax-form", outputs: { onValidate: "onValidate" }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
130
+ AXFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXFormComponent, selector: "ax-form", inputs: { updateOn: "updateOn" }, outputs: { onValidate: "onValidate", updateOnChange: "updateOnChange" }, usesInheritance: true, ngImport: i0, template: '<form ><ng-content></ng-content></form>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
74
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFormComponent, decorators: [{
75
132
  type: Component,
76
133
  args: [{
77
134
  selector: 'ax-form',
78
- template: '<ng-content></ng-content>',
135
+ template: '<form ><ng-content></ng-content></form>',
79
136
  encapsulation: ViewEncapsulation.None,
80
137
  changeDetection: ChangeDetectionStrategy.OnPush,
81
138
  }]
82
139
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onValidate: [{
83
140
  type: Output
141
+ }], updateOnChange: [{
142
+ type: Output
143
+ }], updateOn: [{
144
+ type: Input
84
145
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9mb3JtL3NyYy9mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFaEU7OztFQUdFO0FBQ0YsTUFBTSxPQUFPLHFCQUFzQixTQUFRLE9BQU87Q0FFakQ7QUFFRDs7OztHQUlHO0FBT0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsb0JBQW9CO0lBQ3JEOztNQUVFO0lBQ0YsWUFDSSxVQUFzQixFQUNkLEdBQXNCO1FBRTlCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGZixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQU9sQyxlQUFVLEdBQXdDLElBQUksWUFBWSxFQUF5QixDQUFDO0lBSjVGLENBQUM7SUFPTyxlQUFlO1FBQ25CLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBRyxJQUFjO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsRUFBRTtRQUNGLE9BQU8sSUFBSSxPQUFPLENBQXlCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUUsQ0FBUyxDQUFDLGFBQWEsQ0FBQztpQkFDbkQsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7aUJBQ3pCLElBQUksQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNqQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUNmLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzt3QkFDdEIsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsS0FBSyxFQUFFLE1BQU07cUJBQ2hCLENBQUMsQ0FBQztvQkFDSCxNQUFNLENBQUM7d0JBQ0gsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsS0FBSyxFQUFFLE1BQU07cUJBQ2hCLENBQUMsQ0FBQztpQkFDTjtxQkFDSTtvQkFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDNUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQzdCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDTyxvQkFBb0IsQ0FBQyxDQUF5QjtRQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNqQixTQUFTLEVBQUUsSUFBSTtZQUNmLE1BQU0sRUFBRSxDQUFDO1lBQ1QsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7U0FDdEMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELEtBQUs7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNmLENBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs0R0EvRFEsZUFBZTtnR0FBZixlQUFlLDZHQUpkLDJCQUEyQjsyRkFJNUIsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDtpSUFjRyxVQUFVO3NCQURULE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcclxuaW1wb3J0IHsgQVhGb3JtVmFsaWRhdGlvblJlc3VsdCB9IGZyb20gJy4vdmFsaWRhdGlvbi5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQmFzZUNvbXBvbmVudE1peGluIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcclxuXHJcbi8qKlxyXG4qICBDb250YWlucyBuYXRpdmUgZXZlbnRcclxuKiBAY2F0ZWdvcnkgRXZlbnRzXHJcbiovXHJcbmV4cG9ydCBjbGFzcyBBWEZvcm1WYWxpZGF0aW9uRXZlbnQgZXh0ZW5kcyBBWEV2ZW50IHtcclxuICAgIHJlc3VsdDogQVhGb3JtVmFsaWRhdGlvblJlc3VsdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcclxuICpcclxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdheC1mb3JtJyxcclxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWEZvcm1Db21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnRNaXhpbiB7XHJcbiAgICAvKipcclxuICAgICogIEBpZ25vcmVcclxuICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBvblZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8QVhGb3JtVmFsaWRhdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhGb3JtVmFsaWRhdGlvbkV2ZW50PigpO1xyXG5cclxuXHJcbiAgICBwcml2YXRlIF9nZXRDb21wb25lbmV0cygpIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGwoJ1theC1mb3JtLWlucHV0PVwidHJ1ZVwiXScpKTtcclxuICAgIH1cclxuXHJcbiAgICB2YWxpZGF0ZSguLi5hcmdzOiBzdHJpbmdbXSk6IFByb21pc2U8QVhGb3JtVmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHdpZGdldHMgPSB0aGlzLl9nZXRDb21wb25lbmV0cygpO1xyXG4gICAgICAgIGlmICh3aWRnZXRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9lbWl0T25WYWxpZGF0ZUV2ZW50KHsgcmVzdWx0OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgcmVzdWx0OiB0cnVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxBWEZvcm1WYWxpZGF0aW9uUmVzdWx0PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIFByb21pc2UuYWxsKHdpZGdldHMubWFwKChjKSA9PiAoYyBhcyBhbnkpLl9fYXhDb250ZXh0X18pXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGMgPT4gKGFyZ3MgPT0gbnVsbCB8fCBhcmdzLmxlbmd0aCA9PSAwKSB8fCBhcmdzLmluY2x1ZGVzKGMubmFtZSkpXHJcbiAgICAgICAgICAgICAgICAubWFwKChjKSA9PiBjLnZhbGlkYXRlKCkpKVxyXG4gICAgICAgICAgICAgICAgLnRoZW4oKHJ1bGVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmYWlsZWQgPSBydWxlcy5maWx0ZXIoKGM6IGFueSkgPT4gIWMucmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmFpbGVkLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0T25WYWxpZGF0ZUV2ZW50KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogZmFpbGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBmYWlsZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0T25WYWxpZGF0ZUV2ZW50KHsgcmVzdWx0OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHsgcmVzdWx0OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfZW1pdE9uVmFsaWRhdGVFdmVudChlOiBBWEZvcm1WYWxpZGF0aW9uUmVzdWx0KSB7XHJcbiAgICAgICAgdGhpcy5vblZhbGlkYXRlLmVtaXQoe1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgIHJlc3VsdDogZSxcclxuICAgICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuX2dldEhvc3RFbGVtZW50KCksXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBjbGVhcigpIHtcclxuICAgICAgICBjb25zdCB3aWRnZXRzID0gdGhpcy5fZ2V0Q29tcG9uZW5ldHMoKTtcclxuICAgICAgICB3aWRnZXRzLmZvckVhY2godyA9PiB7XHJcbiAgICAgICAgICAgICh3IGFzIGFueSkuX19heENvbnRleHRfXy5jbGVhcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il19
146
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9mb3JtL3NyYy9mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBR2hFOzs7RUFHRTtBQUNGLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxPQUFPO0NBRWpEO0FBU0Q7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxlQUFnQixTQUFRLG9CQUFvQjtJQWdDckQ7O01BRUU7SUFDRixZQUNJLFVBQXNCLEVBQ2QsR0FBc0I7UUFFOUIsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUZmLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBakNsQyxlQUFVLEdBQXdDLElBQUksWUFBWSxFQUF5QixDQUFDO1FBSTVGLG1CQUFjLEdBQWlDLElBQUksWUFBWSxFQUFrQixDQUFDO1FBRTFFLGNBQVMsR0FBbUIsTUFBTSxDQUFDO1FBa0JuQyxVQUFLLEdBQW1CLEVBQUUsQ0FBQztJQVluQyxDQUFDO0lBN0JELElBQ1csUUFBUTtRQUNmLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUMxQixDQUFDO0lBQ0QsSUFBVyxRQUFRLENBQUMsQ0FBaUI7UUFDakMsSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUNaLElBQUksRUFBRSxVQUFVO1lBQ2hCLEtBQUssRUFBRSxDQUFDO1lBQ1IsYUFBYSxFQUFFLENBQUMsUUFBUyxFQUFFLFFBQVMsRUFBRSxFQUFFO2dCQUNwQyxJ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LENBQUMsZUFBZSxFQUFFO1NBQ3RDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxLQUFLO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7OzRHQS9JUSxlQUFlO2dHQUFmLGVBQWUsaUxBSmQsMENBQTBDOzJGQUkzQyxlQUFlO2tCQU4zQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxTQUFTO29CQUNuQixRQUFRLEVBQUUsMENBQTBDO29CQUNwRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEO2lJQUtHLFVBQVU7c0JBRFQsTUFBTTtnQkFLUCxjQUFjO3NCQURiLE1BQU07Z0JBS0ksUUFBUTtzQkFEbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcclxuaW1wb3J0IHsgQVhGb3JtVmFsaWRhdGlvblJlc3VsdCB9IGZyb20gJy4vdmFsaWRhdGlvbi5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQmFzZUNvbXBvbmVudE1peGluIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vKipcclxuKiAgQ29udGFpbnMgbmF0aXZlIGV2ZW50XHJcbiogQGNhdGVnb3J5IEV2ZW50c1xyXG4qL1xyXG5leHBvcnQgY2xhc3MgQVhGb3JtVmFsaWRhdGlvbkV2ZW50IGV4dGVuZHMgQVhFdmVudCB7XHJcbiAgICByZXN1bHQ6IEFYRm9ybVZhbGlkYXRpb25SZXN1bHQ7XHJcbn1cclxuXHJcbi8qKlxyXG4qICBDb250YWlucyBuYXRpdmUgZXZlbnRcclxuKiBAY2F0ZWdvcnkgRXZlbnRzXHJcbiovXHJcbmV4cG9ydCB0eXBlIEFYRm9ybVVwZGF0ZU9uID0gJ2NoYW5nZScgfCAnYmx1cicgfCAnbWFudWFsJztcclxuXHJcblxyXG4vKipcclxuICogVGhlIEJ1dHRvbiBpcyBhIGNvbXBvbmVudCB3aGljaCBkZXRlY3RzIHVzZXIgaW50ZXJhY3Rpb24gYW5kIHRyaWdnZXJzIGEgY29ycmVzcG9uZGluZyBldmVudFxyXG4gKlxyXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xyXG4gKi9cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2F4LWZvcm0nLFxyXG4gICAgdGVtcGxhdGU6ICc8Zm9ybSAgPjxuZy1jb250ZW50PjwvbmctY29udGVudD48L2Zvcm0+JyxcclxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYRm9ybUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZUNvbXBvbmVudE1peGluIHtcclxuXHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBvblZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8QVhGb3JtVmFsaWRhdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhGb3JtVmFsaWRhdGlvbkV2ZW50PigpO1xyXG5cclxuXHJcbiAgICBAT3V0cHV0KClcclxuICAgIHVwZGF0ZU9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8QVhGb3JtVXBkYXRlT24+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWEZvcm1VcGRhdGVPbj4oKTtcclxuXHJcbiAgICBwcml2YXRlIF91cGRhdGVPbjogQVhGb3JtVXBkYXRlT24gPSAnYmx1cic7XHJcbiAgICBASW5wdXQoKVxyXG4gICAgcHVibGljIGdldCB1cGRhdGVPbigpOiBBWEZvcm1VcGRhdGVPbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuX3VwZGF0ZU9uO1xyXG4gICAgfVxyXG4gICAgcHVibGljIHNldCB1cGRhdGVPbih2OiBBWEZvcm1VcGRhdGVPbikge1xyXG4gICAgICAgIHRoaXMuX3NldE9wdGlvbih7XHJcbiAgICAgICAgICAgIG5hbWU6ICd1cGRhdGVPbicsXHJcbiAgICAgICAgICAgIHZhbHVlOiB2LFxyXG4gICAgICAgICAgICBhZnRlckNhbGxiYWNrOiAob2xkVmFsdWU/LCBuZXdWYWx1ZT8pID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2JpbmRFdmVudHMoKTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICB9KVxyXG4gICAgfVxyXG5cclxuXHJcblxyXG4gICAgcHJpdmF0ZSBfb2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XHJcbiAgICBwcml2YXRlIF9zdWJzOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG5cclxuXHJcblxyXG4gICAgLyoqXHJcbiAgICAqICBAaWdub3JlXHJcbiAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcclxuICAgICkge1xyXG4gICAgICAgIHN1cGVyKGVsZW1lbnRSZWYsIGNkcik7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZ2V0Q29tcG9uZW5ldHMoKSB7XHJcbiAgICAgICAgcmV0dXJuIEFycmF5LmZyb20oXHJcbiAgICAgICAgICAgIHRoaXMuX2dldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvckFsbCgnW2F4LWZvcm0taW5wdXQ9XCJ0cnVlXCJdJylcclxuICAgICAgICApLm1hcCgoYykgPT4gKGMgYXMgYW55KS5fX2F4Q29udGV4dF9fKTtcclxuICAgIH1cclxuXHJcbiAgICBvblZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuX3ZhbGlkYXRlSW5pdFZhbHVlcygpO1xyXG4gICAgICAgIHRoaXMuX2JpbmRFdmVudHMoKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29uZmlnID0geyBhdHRyaWJ1dGVzOiBmYWxzZSwgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH07XHJcbiAgICAgICAgY29uc3QgY2FsbGJhY2sgPSAobXV0YXRpb25MaXN0LCBvYnNlcnZlcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9iaW5kRXZlbnRzKCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIGFuIG9ic2VydmVyIGluc3RhbmNlIGxpbmtlZCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb25cclxuICAgICAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTtcclxuICAgICAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX2dldEhvc3RFbGVtZW50KCksIGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYmluZEV2ZW50cygpIHtcclxuICAgICAgICB0aGlzLl9jbGVhclN1YnMoKTtcclxuICAgICAgICBjb25zdCB3aWRnZXRzID0gdGhpcy5fZ2V0Q29tcG9uZW5ldHMoKVxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgd2lkZ2V0cy5mb3JFYWNoKHcgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy51cGRhdGVPbiA9PSAnY2hhbmdlJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc3Vicy5wdXNoKHcub25WYWx1ZUNoYW5nZWQ/LnN1YnNjcmliZSh2ID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB3LnZhbGlkYXRlKCk7XHJcbiAgICAgICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAodGhpcy51cGRhdGVPbiA9PSAnYmx1cicpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX3N1YnMucHVzaCh3Lm9uQmx1cj8uc3Vic2NyaWJlKHYgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHcudmFsaWRhdGUoKTtcclxuICAgICAgICAgICAgICAgIH0pKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pXHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfY2xlYXJTdWJzKCkge1xyXG4gICAgICAgIHRoaXMuX3N1YnMuZm9yRWFjaChjID0+IGMudW5zdWJzY3JpYmUoKSlcclxuICAgICAgICB0aGlzLl9zdWJzID0gW107XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfdmFsaWRhdGVJbml0VmFsdWVzKCkge1xyXG4gICAgICAgIHRoaXMuX2dldENvbXBvbmVuZXRzKClcclxuICAgICAgICAgICAgLmZpbHRlcihjID0+IGNbJ3ZhbHVlJ10pXHJcbiAgICAgICAgICAgIC5mb3JFYWNoKGMgPT4gYy52YWxpZGF0ZSgpKTtcclxuICAgIH1cclxuXHJcblxyXG5cclxuICAgIHZhbGlkYXRlKC4uLmFyZ3M6IHN0cmluZ1tdKTogUHJvbWlzZTxBWEZvcm1WYWxpZGF0aW9uUmVzdWx0PiB7XHJcbiAgICAgICAgY29uc3Qgd2lkZ2V0cyA9IHRoaXMuX2dldENvbXBvbmVuZXRzKCk7XHJcbiAgICAgICAgaWYgKHdpZGdldHMubGVuZ3RoID09PSAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX2VtaXRPblZhbGlkYXRlRXZlbnQoeyByZXN1bHQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoeyByZXN1bHQ6IHRydWUgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlPEFYRm9ybVZhbGlkYXRpb25SZXN1bHQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcclxuICAgICAgICAgICAgUHJvbWlzZS5hbGwod2lkZ2V0c1xyXG4gICAgICAgICAgICAgICAgLmZpbHRlcihjID0+IChhcmdzID09IG51bGwgfHwgYXJncy5sZW5ndGggPT0gMCkgfHwgYXJncy5pbmNsdWRlcyhjLm5hbWUpKVxyXG4gICAgICAgICAgICAgICAgLm1hcCgoYykgPT4gYy52YWxpZGF0ZSgpKSlcclxuICAgICAgICAgICAgICAgIC50aGVuKChydWxlczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZmFpbGVkID0gcnVsZXMuZmlsdGVyKChjOiBhbnkpID0+ICFjLnJlc3VsdCk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhaWxlZC5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5fZW1pdE9uVmFsaWRhdGVFdmVudCh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IGZhaWxlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzb2x2ZSh7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IGZhbHNlLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaXRlbXM6IGZhaWxlZFxyXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2VtaXRPblZhbGlkYXRlRXZlbnQoeyByZXN1bHQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoeyByZXN1bHQ6IHRydWUgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfZW1pdE9uVmFsaWRhdGVFdmVudChlOiBBWEZvcm1WYWxpZGF0aW9uUmVzdWx0KSB7XHJcbiAgICAgICAgdGhpcy5vblZhbGlkYXRlLmVtaXQoe1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgIHJlc3VsdDogZSxcclxuICAgICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuX2dldEhvc3RFbGVtZW50KCksXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBjbGVhcigpIHtcclxuICAgICAgICBjb25zdCB3aWRnZXRzID0gdGhpcy5fZ2V0Q29tcG9uZW5ldHMoKTtcclxuICAgICAgICB3aWRnZXRzLmZvckVhY2godyA9PiB7XHJcbiAgICAgICAgICAgIHcuY2xlYXIoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBvbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fb2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xyXG4gICAgICAgIHRoaXMuX29ic2VydmVyID0gbnVsbDtcclxuICAgICAgICB0aGlzLl9jbGVhclN1YnMoKTtcclxuICAgIH1cclxufSJdfQ==
@@ -0,0 +1,68 @@
1
+ import { AXAlertModule } from '@acorex/components/alert';
2
+ import { AXButtonModule } from '@acorex/components/button';
3
+ import { AXDecoratorModule } from '@acorex/components/decorators';
4
+ import { AXConfig } from '@acorex/core/config';
5
+ import { AXTranslator } from '@acorex/core/translation';
6
+ import { CommonModule } from '@angular/common';
7
+ import { NgModule } from '@angular/core';
8
+ import { AXFormFieldComponent } from './form-field.component';
9
+ import { AXFormHintComponent } from './form-hint.component';
10
+ import { AXFormComponent } from './form.component';
11
+ import { AXValidationRuleComponent } from './validation-rule.widget';
12
+ import { AXValidationSummaryComponent } from './validation-summary.component';
13
+ import * as i0 from "@angular/core";
14
+ export class AXFormModule {
15
+ constructor() {
16
+ AXConfig.set({
17
+ form: {
18
+ validation: {
19
+ rules: {
20
+ email: {
21
+ rule: 'regex',
22
+ value: /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/,
23
+ message: AXTranslator.get('validation.messages.email'),
24
+ },
25
+ phone: {
26
+ rule: 'regex',
27
+ value: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\s\./0-9]*$/,
28
+ message: AXTranslator.get('validation.messages.phone'),
29
+ },
30
+ },
31
+ },
32
+ },
33
+ });
34
+ }
35
+ }
36
+ AXFormModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFormModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
37
+ AXFormModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXFormModule, declarations: [AXFormFieldComponent,
38
+ AXFormComponent,
39
+ AXFormHintComponent,
40
+ AXValidationRuleComponent,
41
+ AXValidationSummaryComponent], imports: [CommonModule, AXDecoratorModule, AXAlertModule, AXButtonModule], exports: [AXFormFieldComponent,
42
+ AXFormComponent,
43
+ AXFormHintComponent,
44
+ AXValidationRuleComponent,
45
+ AXValidationSummaryComponent] });
46
+ AXFormModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFormModule, imports: [CommonModule, AXDecoratorModule, AXAlertModule, AXButtonModule] });
47
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFormModule, decorators: [{
48
+ type: NgModule,
49
+ args: [{
50
+ declarations: [
51
+ AXFormFieldComponent,
52
+ AXFormComponent,
53
+ AXFormHintComponent,
54
+ AXValidationRuleComponent,
55
+ AXValidationSummaryComponent,
56
+ ],
57
+ imports: [CommonModule, AXDecoratorModule, AXAlertModule, AXButtonModule],
58
+ exports: [
59
+ AXFormFieldComponent,
60
+ AXFormComponent,
61
+ AXFormHintComponent,
62
+ AXValidationRuleComponent,
63
+ AXValidationSummaryComponent,
64
+ ],
65
+ providers: [],
66
+ }]
67
+ }], ctorParameters: function () { return []; } });
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9mb3JtL3NyYy9mb3JtLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDekQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDOUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQW9COUUsTUFBTSxPQUFPLFlBQVk7SUFDdkI7UUFDRSxRQUFRLENBQUMsR0FBRyxDQUFDO1lBQ1gsSUFBSSxFQUFFO2dCQUNKLFVBQVUsRUFBRTtvQkFDVixLQUFLLEVBQUU7d0JBQ0wsS0FBSyxFQUFFOzRCQUNMLElBQUksRUFBRSxPQUFPOzRCQUNiLEtBQUssRUFDSCx1SkFBdUo7NEJBQ3pKLE9BQU8sRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLDJCQUEyQixDQUFDO3lCQUN2RDt3QkFDRCxLQUFLLEVBQUU7NEJBQ0wsSUFBSSxFQUFFLE9BQU87NEJBQ2IsS0FBSyxFQUFFLDhDQUE4Qzs0QkFDckQsT0FBTyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsMkJBQTJCLENBQUM7eUJBQ3ZEO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOzt5R0FyQlUsWUFBWTswR0FBWixZQUFZLGlCQWhCckIsb0JBQW9CO1FBQ3BCLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIseUJBQXlCO1FBQ3pCLDRCQUE0QixhQUVwQixZQUFZLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGNBQWMsYUFFdEUsb0JBQW9CO1FBQ3BCLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIseUJBQXlCO1FBQ3pCLDRCQUE0QjswR0FJbkIsWUFBWSxZQVZiLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsY0FBYzsyRkFVN0QsWUFBWTtrQkFsQnhCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3FCQUM3QjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsYUFBYSxFQUFFLGNBQWMsQ0FBQztvQkFDekUsT0FBTyxFQUFFO3dCQUNQLG9CQUFvQjt3QkFDcEIsZUFBZTt3QkFDZixtQkFBbUI7d0JBQ25CLHlCQUF5Qjt3QkFDekIsNEJBQTRCO3FCQUM3QjtvQkFDRCxTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQWxlcnRNb2R1bGUgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvYWxlcnQnO1xyXG5pbXBvcnQgeyBBWEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9idXR0b24nO1xyXG5pbXBvcnQgeyBBWERlY29yYXRvck1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9kZWNvcmF0b3JzJztcclxuaW1wb3J0IHsgQVhDb25maWcgfSBmcm9tICdAYWNvcmV4L2NvcmUvY29uZmlnJztcclxuaW1wb3J0IHsgQVhUcmFuc2xhdG9yIH0gZnJvbSAnQGFjb3JleC9jb3JlL3RyYW5zbGF0aW9uJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IEFYRm9ybUZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9mb3JtLWZpZWxkLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFYRm9ybUhpbnRDb21wb25lbnQgfSBmcm9tICcuL2Zvcm0taGludC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBWEZvcm1Db21wb25lbnQgfSBmcm9tICcuL2Zvcm0uY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhWYWxpZGF0aW9uUnVsZUNvbXBvbmVudCB9IGZyb20gJy4vdmFsaWRhdGlvbi1ydWxlLndpZGdldCc7XHJcbmltcG9ydCB7IEFYVmFsaWRhdGlvblN1bW1hcnlDb21wb25lbnQgfSBmcm9tICcuL3ZhbGlkYXRpb24tc3VtbWFyeS5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIEFYRm9ybUZpZWxkQ29tcG9uZW50LFxyXG4gICAgQVhGb3JtQ29tcG9uZW50LFxyXG4gICAgQVhGb3JtSGludENvbXBvbmVudCxcclxuICAgIEFYVmFsaWRhdGlvblJ1bGVDb21wb25lbnQsXHJcbiAgICBBWFZhbGlkYXRpb25TdW1tYXJ5Q29tcG9uZW50LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGUsIEFYQWxlcnRNb2R1bGUsIEFYQnV0dG9uTW9kdWxlXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBBWEZvcm1GaWVsZENvbXBvbmVudCxcclxuICAgIEFYRm9ybUNvbXBvbmVudCxcclxuICAgIEFYRm9ybUhpbnRDb21wb25lbnQsXHJcbiAgICBBWFZhbGlkYXRpb25SdWxlQ29tcG9uZW50LFxyXG4gICAgQVhWYWxpZGF0aW9uU3VtbWFyeUNvbXBvbmVudCxcclxuICBdLFxyXG4gIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWEZvcm1Nb2R1bGUge1xyXG4gIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgQVhDb25maWcuc2V0KHtcclxuICAgICAgZm9ybToge1xyXG4gICAgICAgIHZhbGlkYXRpb246IHtcclxuICAgICAgICAgIHJ1bGVzOiB7XHJcbiAgICAgICAgICAgIGVtYWlsOiB7XHJcbiAgICAgICAgICAgICAgcnVsZTogJ3JlZ2V4JyxcclxuICAgICAgICAgICAgICB2YWx1ZTpcclxuICAgICAgICAgICAgICAgIC9eKChbXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKyhcXC5bXjw+KClbXFxdXFxcXC4sOzpcXHNAXCJdKykqKXwoXCIuK1wiKSlAKChcXFtbMC05XXsxLDN9XFwuWzAtOV17MSwzfVxcLlswLTldezEsM31cXC5bMC05XXsxLDN9XFxdKXwoKFthLXpBLVpcXC0wLTldK1xcLikrW2EtekEtWl17Mix9KSkkLyxcclxuICAgICAgICAgICAgICBtZXNzYWdlOiBBWFRyYW5zbGF0b3IuZ2V0KCd2YWxpZGF0aW9uLm1lc3NhZ2VzLmVtYWlsJyksXHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIHBob25lOiB7XHJcbiAgICAgICAgICAgICAgcnVsZTogJ3JlZ2V4JyxcclxuICAgICAgICAgICAgICB2YWx1ZTogL15bK10qWyhdezAsMX1bMC05XXsxLDR9WyldezAsMX1bLVxcc1xcLi8wLTldKiQvLFxyXG4gICAgICAgICAgICAgIG1lc3NhZ2U6IEFYVHJhbnNsYXRvci5nZXQoJ3ZhbGlkYXRpb24ubWVzc2FnZXMucGhvbmUnKSxcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgfSxcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iXX0=