@acorex/components 6.0.2 → 6.0.8

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 (153) 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/data-table/src/data-table.component.d.ts +3 -1
  15. package/date-picker/src/datepicker.component.d.ts +11 -14
  16. package/decorators/public-api.d.ts +0 -1
  17. package/decorators/src/decorators.module.d.ts +5 -6
  18. package/decorators/src/header.component.d.ts +1 -1
  19. package/esm2020/alert/src/alert.component.mjs +5 -4
  20. package/esm2020/button/src/button.component.mjs +1 -1
  21. package/esm2020/calendar/src/calendar.component.mjs +33 -5
  22. package/esm2020/checkbox/src/checkbox.component.mjs +3 -3
  23. package/esm2020/common/src/styles.class.mjs +13 -2
  24. package/esm2020/context-menu/acorex-components-context-menu.mjs +5 -0
  25. package/esm2020/context-menu/public-api.mjs +3 -0
  26. package/esm2020/context-menu/src/context-menu.component.mjs +257 -0
  27. package/esm2020/context-menu/src/context-menu.module.mjs +36 -0
  28. package/esm2020/data-table/src/data-table.component.mjs +11 -4
  29. package/esm2020/decorators/public-api.mjs +1 -2
  30. package/esm2020/decorators/src/decorators.module.mjs +1 -5
  31. package/esm2020/decorators/src/header.component.mjs +3 -3
  32. package/esm2020/form/public-api.mjs +2 -2
  33. package/esm2020/form/src/form.component.mjs +74 -8
  34. package/esm2020/form/src/form.module.mjs +68 -0
  35. package/esm2020/menu/src/menu.component.mjs +261 -117
  36. package/esm2020/menu/src/menu.module.mjs +16 -8
  37. package/esm2020/mixin/src/base-components.class.mjs +1 -3
  38. package/esm2020/mixin/src/base-menu-mixin.class.mjs +11 -11
  39. package/esm2020/mixin/src/datalist-component.class.mjs +1 -1
  40. package/esm2020/mixin/src/mixin.class.mjs +14 -14
  41. package/esm2020/mixin/src/selection-component.class.mjs +2 -4
  42. package/esm2020/mixin/src/textbox-mixin.class.mjs +1 -1
  43. package/esm2020/mixin/src/value-mixin.class.mjs +6 -6
  44. package/esm2020/number-box/src/number-box.component.mjs +14 -4
  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-data-table.mjs +10 -3
  66. package/fesm2015/acorex-components-data-table.mjs.map +1 -1
  67. package/fesm2015/acorex-components-decorators.mjs +4 -25
  68. package/fesm2015/acorex-components-decorators.mjs.map +1 -1
  69. package/fesm2015/acorex-components-form.mjs +81 -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-radio.mjs +2 -2
  78. package/fesm2015/acorex-components-radio.mjs.map +1 -1
  79. package/fesm2015/acorex-components-result.mjs +2 -2
  80. package/fesm2015/acorex-components-result.mjs.map +1 -1
  81. package/fesm2015/acorex-components-search-box.mjs +2 -2
  82. package/fesm2015/acorex-components-search-box.mjs.map +1 -1
  83. package/fesm2015/acorex-components-selection-list.mjs +2 -2
  84. package/fesm2015/acorex-components-selection-list.mjs.map +1 -1
  85. package/fesm2015/acorex-components-tabs.mjs +35 -16
  86. package/fesm2015/acorex-components-tabs.mjs.map +1 -1
  87. package/fesm2015/acorex-components-toast.mjs +12 -3
  88. package/fesm2015/acorex-components-toast.mjs.map +1 -1
  89. package/fesm2015/acorex-components.mjs.map +1 -1
  90. package/fesm2020/acorex-components-alert.mjs +4 -3
  91. package/fesm2020/acorex-components-alert.mjs.map +1 -1
  92. package/fesm2020/acorex-components-button.mjs.map +1 -1
  93. package/fesm2020/acorex-components-calendar.mjs +30 -2
  94. package/fesm2020/acorex-components-calendar.mjs.map +1 -1
  95. package/fesm2020/acorex-components-checkbox.mjs +2 -2
  96. package/fesm2020/acorex-components-checkbox.mjs.map +1 -1
  97. package/fesm2020/acorex-components-common.mjs +13 -2
  98. package/fesm2020/acorex-components-common.mjs.map +1 -1
  99. package/fesm2020/acorex-components-context-menu.mjs +297 -0
  100. package/fesm2020/acorex-components-context-menu.mjs.map +1 -0
  101. package/fesm2020/acorex-components-data-table.mjs +10 -3
  102. package/fesm2020/acorex-components-data-table.mjs.map +1 -1
  103. package/fesm2020/acorex-components-decorators.mjs +4 -25
  104. package/fesm2020/acorex-components-decorators.mjs.map +1 -1
  105. package/fesm2020/acorex-components-form.mjs +80 -14
  106. package/fesm2020/acorex-components-form.mjs.map +1 -1
  107. package/fesm2020/acorex-components-menu.mjs +273 -120
  108. package/fesm2020/acorex-components-menu.mjs.map +1 -1
  109. package/fesm2020/acorex-components-mixin.mjs +17 -20
  110. package/fesm2020/acorex-components-mixin.mjs.map +1 -1
  111. package/fesm2020/acorex-components-number-box.mjs +13 -3
  112. package/fesm2020/acorex-components-number-box.mjs.map +1 -1
  113. package/fesm2020/acorex-components-radio.mjs +2 -2
  114. package/fesm2020/acorex-components-radio.mjs.map +1 -1
  115. package/fesm2020/acorex-components-result.mjs +2 -2
  116. package/fesm2020/acorex-components-result.mjs.map +1 -1
  117. package/fesm2020/acorex-components-search-box.mjs +2 -2
  118. package/fesm2020/acorex-components-search-box.mjs.map +1 -1
  119. package/fesm2020/acorex-components-selection-list.mjs +2 -2
  120. package/fesm2020/acorex-components-selection-list.mjs.map +1 -1
  121. package/fesm2020/acorex-components-tabs.mjs +34 -15
  122. package/fesm2020/acorex-components-tabs.mjs.map +1 -1
  123. package/fesm2020/acorex-components-toast.mjs +12 -3
  124. package/fesm2020/acorex-components-toast.mjs.map +1 -1
  125. package/fesm2020/acorex-components.mjs.map +1 -1
  126. package/form/public-api.d.ts +1 -1
  127. package/form/src/form.component.d.ts +19 -2
  128. package/form/src/{form-field.module.d.ts → form.module.d.ts} +0 -0
  129. package/menu/src/menu.component.d.ts +21 -36
  130. package/menu/src/menu.module.d.ts +2 -2
  131. package/mixin/src/base-components.class.d.ts +1 -3
  132. package/mixin/src/base-menu-mixin.class.d.ts +8 -9
  133. package/mixin/src/button-mixin.class.d.ts +1 -2
  134. package/mixin/src/clickable-mixin.class.d.ts +1 -2
  135. package/mixin/src/color-look-mixing.class.d.ts +1 -2
  136. package/mixin/src/datalist-component.class.d.ts +9 -10
  137. package/mixin/src/dropdown-mixin.class.d.ts +1 -2
  138. package/mixin/src/interactive-mixin.class.d.ts +6 -5
  139. package/mixin/src/loading-mixin.class.d.ts +1 -2
  140. package/mixin/src/mixin.class.d.ts +47 -100
  141. package/mixin/src/page-component.class.d.ts +1 -2
  142. package/mixin/src/selection-component.class.d.ts +1 -2
  143. package/mixin/src/sizable-mixin.class.d.ts +1 -2
  144. package/mixin/src/textbox-mixin.class.d.ts +7 -8
  145. package/mixin/src/value-mixin.class.d.ts +7 -8
  146. package/package.json +9 -1
  147. package/tabs/src/tab-item.component.d.ts +1 -2
  148. package/tabs/src/tabs.class.d.ts +1 -0
  149. package/tabs/src/tabs.component.d.ts +9 -4
  150. package/toast/src/toast.service.d.ts +1 -0
  151. package/decorators/src/addon.component.d.ts +0 -8
  152. package/esm2020/decorators/src/addon.component.mjs +0 -21
  153. 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,64 @@ 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.validateInitValues = false;
27
+ this._subs = [];
28
+ }
29
+ get updateOn() {
30
+ return this._updateOn;
31
+ }
32
+ set updateOn(v) {
33
+ this._setOption({
34
+ name: 'updateOn',
35
+ value: v,
36
+ afterCallback: (oldValue, newValue) => {
37
+ this._bindEvents();
38
+ },
39
+ });
24
40
  }
25
41
  _getComponenets() {
26
- return Array.from(this._getHostElement().querySelectorAll('[ax-form-input="true"]'));
42
+ return Array.from(this._getHostElement().querySelectorAll('[ax-form-input="true"]')).map((c) => c.__axContext__);
43
+ }
44
+ onViewInit() {
45
+ if (this.validateInitValues) {
46
+ this._validateInitValues();
47
+ }
48
+ this._bindEvents();
49
+ const config = { attributes: false, childList: true, subtree: true };
50
+ const callback = (mutationList, observer) => {
51
+ this._bindEvents();
52
+ };
53
+ // Create an observer instance linked to the callback function
54
+ this._observer = new MutationObserver(callback);
55
+ this._observer.observe(this._getHostElement(), config);
56
+ }
57
+ _bindEvents() {
58
+ this._clearSubs();
59
+ const widgets = this._getComponenets();
60
+ //
61
+ widgets.forEach(w => {
62
+ if (this.updateOn == 'change') {
63
+ this._subs.push(w.onValueChanged?.subscribe(v => {
64
+ w.validate();
65
+ }));
66
+ }
67
+ else if (this.updateOn == 'blur') {
68
+ this._subs.push(w.onBlur?.subscribe(v => {
69
+ w.validate();
70
+ }));
71
+ }
72
+ });
73
+ }
74
+ _clearSubs() {
75
+ this._subs.forEach(c => c.unsubscribe());
76
+ this._subs = [];
77
+ }
78
+ _validateInitValues() {
79
+ this._getComponenets()
80
+ .filter(c => c['value'])
81
+ .forEach(c => c.validate());
27
82
  }
28
83
  validate(...args) {
29
84
  const widgets = this._getComponenets();
@@ -33,7 +88,7 @@ export class AXFormComponent extends AXBaseComponentMixin {
33
88
  }
34
89
  //
35
90
  return new Promise((resolve, reject) => {
36
- Promise.all(widgets.map((c) => c.__axContext__)
91
+ Promise.all(widgets
37
92
  .filter(c => (args == null || args.length == 0) || args.includes(c.name))
38
93
  .map((c) => c.validate()))
39
94
  .then((rules) => {
@@ -43,7 +98,7 @@ export class AXFormComponent extends AXBaseComponentMixin {
43
98
  result: false,
44
99
  items: failed
45
100
  });
46
- reject({
101
+ resolve({
47
102
  result: false,
48
103
  items: failed
49
104
  });
@@ -65,21 +120,32 @@ export class AXFormComponent extends AXBaseComponentMixin {
65
120
  clear() {
66
121
  const widgets = this._getComponenets();
67
122
  widgets.forEach(w => {
68
- w.__axContext__.clear();
123
+ w.clear();
69
124
  });
70
125
  }
126
+ onDestroy() {
127
+ this._observer.disconnect();
128
+ this._observer = null;
129
+ this._clearSubs();
130
+ }
71
131
  }
72
132
  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 });
133
+ AXFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXFormComponent, selector: "ax-form", inputs: { updateOn: "updateOn", validateInitValues: "validateInitValues" }, 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
134
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFormComponent, decorators: [{
75
135
  type: Component,
76
136
  args: [{
77
137
  selector: 'ax-form',
78
- template: '<ng-content></ng-content>',
138
+ template: '<form ><ng-content></ng-content></form>',
79
139
  encapsulation: ViewEncapsulation.None,
80
140
  changeDetection: ChangeDetectionStrategy.OnPush,
81
141
  }]
82
142
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onValidate: [{
83
143
  type: Output
144
+ }], updateOnChange: [{
145
+ type: Output
146
+ }], updateOn: [{
147
+ type: Input
148
+ }], validateInitValues: [{
149
+ type: Input
84
150
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9mb3JtL3NyYy9mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNJLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUVwRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFFaEU7OztFQUdFO0FBQ0YsTUFBTSxPQUFPLHFCQUFzQixTQUFRLE9BQU87Q0FFakQ7QUFFRDs7OztHQUlHO0FBT0gsTUFBTSxPQUFPLGVBQWdCLFNBQVEsb0JBQW9CO0lBQ3JEOztNQUVFO0lBQ0YsWUFDSSxVQUFzQixFQUNkLEdBQXNCO1FBRTlCLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFGZixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQU9sQyxlQUFVLEdBQXdDLElBQUksWUFBWSxFQUF5QixDQUFDO0lBSjVGLENBQUM7SUFPTyxlQUFlO1FBQ25CLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsd0JBQXdCLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFFRCxRQUFRLENBQUMsR0FBRyxJQUFjO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3RCLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQzVDO1FBQ0QsRUFBRTtRQUNGLE9BQU8sSUFBSSxPQUFPLENBQXlCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxFQUFFO1lBQzNELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUUsQ0FBUyxDQUFDLGFBQWEsQ0FBQztpQkFDbkQsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7aUJBQ3hFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7aUJBQ3pCLElBQUksQ0FBQyxDQUFDLEtBQVUsRUFBRSxFQUFFO2dCQUNqQixNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDbkQsSUFBSSxNQUFNLENBQUMsTUFBTSxFQUFFO29CQUNmLElBQUksQ0FBQyxvQkFBb0IsQ0FBQzt3QkFDdEIsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsS0FBSyxFQUFFLE1BQU07cUJBQ2hCLENBQUMsQ0FBQztvQkFDSCxNQUFNLENBQUM7d0JBQ0gsTUFBTSxFQUFFLEtBQUs7d0JBQ2IsS0FBSyxFQUFFLE1BQU07cUJBQ2hCLENBQUMsQ0FBQztpQkFDTjtxQkFDSTtvQkFDRCxJQUFJLENBQUMsb0JBQW9CLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztvQkFDNUMsT0FBTyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7aUJBQzdCO1lBQ0wsQ0FBQyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDTyxvQkFBb0IsQ0FBQyxDQUF5QjtRQUNsRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNqQixTQUFTLEVBQUUsSUFBSTtZQUNmLE1BQU0sRUFBRSxDQUFDO1lBQ1QsV0FBVyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUU7U0FDdEMsQ0FBQyxDQUFBO0lBQ04sQ0FBQztJQUVELEtBQUs7UUFDRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUNmLENBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDckMsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDOzs0R0EvRFEsZUFBZTtnR0FBZixlQUFlLDZHQUpkLDJCQUEyQjsyRkFJNUIsZUFBZTtrQkFOM0IsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsU0FBUztvQkFDbkIsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7b0JBQ3JDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO2lCQUNsRDtpSUFjRyxVQUFVO3NCQURULE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYRXZlbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcclxuaW1wb3J0IHsgQVhGb3JtVmFsaWRhdGlvblJlc3VsdCB9IGZyb20gJy4vdmFsaWRhdGlvbi5jbGFzcyc7XHJcbmltcG9ydCB7IEFYQmFzZUNvbXBvbmVudE1peGluIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcclxuXHJcbi8qKlxyXG4qICBDb250YWlucyBuYXRpdmUgZXZlbnRcclxuKiBAY2F0ZWdvcnkgRXZlbnRzXHJcbiovXHJcbmV4cG9ydCBjbGFzcyBBWEZvcm1WYWxpZGF0aW9uRXZlbnQgZXh0ZW5kcyBBWEV2ZW50IHtcclxuICAgIHJlc3VsdDogQVhGb3JtVmFsaWRhdGlvblJlc3VsdDtcclxufVxyXG5cclxuLyoqXHJcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcclxuICpcclxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdheC1mb3JtJyxcclxuICAgIHRlbXBsYXRlOiAnPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PicsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWEZvcm1Db21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnRNaXhpbiB7XHJcbiAgICAvKipcclxuICAgICogIEBpZ25vcmVcclxuICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICAgKSB7XHJcbiAgICAgICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcclxuICAgIH1cclxuXHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICBvblZhbGlkYXRlOiBFdmVudEVtaXR0ZXI8QVhGb3JtVmFsaWRhdGlvbkV2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhGb3JtVmFsaWRhdGlvbkV2ZW50PigpO1xyXG5cclxuXHJcbiAgICBwcml2YXRlIF9nZXRDb21wb25lbmV0cygpIHtcclxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGwoJ1theC1mb3JtLWlucHV0PVwidHJ1ZVwiXScpKTtcclxuICAgIH1cclxuXHJcbiAgICB2YWxpZGF0ZSguLi5hcmdzOiBzdHJpbmdbXSk6IFByb21pc2U8QVhGb3JtVmFsaWRhdGlvblJlc3VsdD4ge1xyXG4gICAgICAgIGNvbnN0IHdpZGdldHMgPSB0aGlzLl9nZXRDb21wb25lbmV0cygpO1xyXG4gICAgICAgIGlmICh3aWRnZXRzLmxlbmd0aCA9PT0gMCkge1xyXG4gICAgICAgICAgICB0aGlzLl9lbWl0T25WYWxpZGF0ZUV2ZW50KHsgcmVzdWx0OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHsgcmVzdWx0OiB0cnVlIH0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICAvL1xyXG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZTxBWEZvcm1WYWxpZGF0aW9uUmVzdWx0PigocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XHJcbiAgICAgICAgICAgIFByb21pc2UuYWxsKHdpZGdldHMubWFwKChjKSA9PiAoYyBhcyBhbnkpLl9fYXhDb250ZXh0X18pXHJcbiAgICAgICAgICAgICAgICAuZmlsdGVyKGMgPT4gKGFyZ3MgPT0gbnVsbCB8fCBhcmdzLmxlbmd0aCA9PSAwKSB8fCBhcmdzLmluY2x1ZGVzKGMubmFtZSkpXHJcbiAgICAgICAgICAgICAgICAubWFwKChjKSA9PiBjLnZhbGlkYXRlKCkpKVxyXG4gICAgICAgICAgICAgICAgLnRoZW4oKHJ1bGVzOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBmYWlsZWQgPSBydWxlcy5maWx0ZXIoKGM6IGFueSkgPT4gIWMucmVzdWx0KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoZmFpbGVkLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0T25WYWxpZGF0ZUV2ZW50KHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogZmFsc2UsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtczogZmFpbGVkXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZWplY3Qoe1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBmYWxzZSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBmYWlsZWRcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9lbWl0T25WYWxpZGF0ZUV2ZW50KHsgcmVzdWx0OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKHsgcmVzdWx0OiB0cnVlIH0pO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgcHJpdmF0ZSBfZW1pdE9uVmFsaWRhdGVFdmVudChlOiBBWEZvcm1WYWxpZGF0aW9uUmVzdWx0KSB7XHJcbiAgICAgICAgdGhpcy5vblZhbGlkYXRlLmVtaXQoe1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgICAgICAgIHJlc3VsdDogZSxcclxuICAgICAgICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuX2dldEhvc3RFbGVtZW50KCksXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBjbGVhcigpIHtcclxuICAgICAgICBjb25zdCB3aWRnZXRzID0gdGhpcy5fZ2V0Q29tcG9uZW5ldHMoKTtcclxuICAgICAgICB3aWRnZXRzLmZvckVhY2godyA9PiB7XHJcbiAgICAgICAgICAgICh3IGFzIGFueSkuX19heENvbnRleHRfXy5jbGVhcigpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59Il19
151
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9mb3JtL3NyYy9mb3JtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQXFCLFNBQVMsRUFBYyxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsSixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBR2hFOzs7RUFHRTtBQUNGLE1BQU0sT0FBTyxxQkFBc0IsU0FBUSxPQUFPO0NBRWpEO0FBU0Q7Ozs7R0FJRztBQU9ILE1BQU0sT0FBTyxlQUFnQixTQUFRLG9CQUFvQjtJQWtDckQ7O01BRUU7SUFDRixZQUNJLFVBQXNCLEVBQ2QsR0FBc0I7UUFFOUIsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUZmLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBbkNsQyxlQUFVLEdBQXdDLElBQUksWUFBWSxFQUF5QixDQUFDO1FBSTVGLG1CQUFjLEdBQWlDLElBQUksWUFBWSxFQUFrQixDQUFDO1FBRTFFLGNBQVMsR0FBbUIsTUFBTSxDQUFDO1FBZ0IzQyx1QkFBa0IsR0FBWSxLQUFLLENBQUM7UUFJNUIsVUFBSyxHQUFtQixFQUFFLENBQUM7SUFZbkMsQ0FBQztJQS9CRCxJQUNXLFFBQVE7UUFDZixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDMUIsQ0FBQztJQUNELElBQVcsUUFBUSxDQUFDLENBQWlCO1FBQ2pDLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDWixJQUFJLEVBQUUsVUFBVTtZQUNoQixLQUFLLEVBQUUsQ0FBQztZQUNSLGFBQWEsRUFBRSxDQUFDLFFBQVMs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LENBQUM7WUFDakIsU0FBUyxFQUFFLElBQUk7WUFDZixNQUFNLEVBQUUsQ0FBQztZQUNULFdBQVcsRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFO1NBQ3RDLENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxLQUFLO1FBQ0QsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDaEIsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsU0FBUztRQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3RCLENBQUM7OzRHQW5KUSxlQUFlO2dHQUFmLGVBQWUsMk5BSmQsMENBQTBDOzJGQUkzQyxlQUFlO2tCQU4zQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxTQUFTO29CQUNuQixRQUFRLEVBQUUsMENBQTBDO29CQUNwRCxhQUFhLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtvQkFDckMsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07aUJBQ2xEO2lJQUtHLFVBQVU7c0JBRFQsTUFBTTtnQkFLUCxjQUFjO3NCQURiLE1BQU07Z0JBS0ksUUFBUTtzQkFEbEIsS0FBSztnQkFlTixrQkFBa0I7c0JBRGpCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBWEV2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XHJcbmltcG9ydCB7IEFYRm9ybVZhbGlkYXRpb25SZXN1bHQgfSBmcm9tICcuL3ZhbGlkYXRpb24uY2xhc3MnO1xyXG5pbXBvcnQgeyBBWEJhc2VDb21wb25lbnRNaXhpbiB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9taXhpbic7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuLyoqXHJcbiogIENvbnRhaW5zIG5hdGl2ZSBldmVudFxyXG4qIEBjYXRlZ29yeSBFdmVudHNcclxuKi9cclxuZXhwb3J0IGNsYXNzIEFYRm9ybVZhbGlkYXRpb25FdmVudCBleHRlbmRzIEFYRXZlbnQge1xyXG4gICAgcmVzdWx0OiBBWEZvcm1WYWxpZGF0aW9uUmVzdWx0O1xyXG59XHJcblxyXG4vKipcclxuKiAgQ29udGFpbnMgbmF0aXZlIGV2ZW50XHJcbiogQGNhdGVnb3J5IEV2ZW50c1xyXG4qL1xyXG5leHBvcnQgdHlwZSBBWEZvcm1VcGRhdGVPbiA9ICdjaGFuZ2UnIHwgJ2JsdXInIHwgJ21hbnVhbCc7XHJcblxyXG5cclxuLyoqXHJcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcclxuICpcclxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdheC1mb3JtJyxcclxuICAgIHRlbXBsYXRlOiAnPGZvcm0gID48bmctY29udGVudD48L25nLWNvbnRlbnQ+PC9mb3JtPicsXHJcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWEZvcm1Db21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnRNaXhpbiB7XHJcblxyXG5cclxuICAgIEBPdXRwdXQoKVxyXG4gICAgb25WYWxpZGF0ZTogRXZlbnRFbWl0dGVyPEFYRm9ybVZhbGlkYXRpb25FdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYRm9ybVZhbGlkYXRpb25FdmVudD4oKTtcclxuXHJcblxyXG4gICAgQE91dHB1dCgpXHJcbiAgICB1cGRhdGVPbkNoYW5nZTogRXZlbnRFbWl0dGVyPEFYRm9ybVVwZGF0ZU9uPiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhGb3JtVXBkYXRlT24+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBfdXBkYXRlT246IEFYRm9ybVVwZGF0ZU9uID0gJ2JsdXInO1xyXG4gICAgQElucHV0KClcclxuICAgIHB1YmxpYyBnZXQgdXBkYXRlT24oKTogQVhGb3JtVXBkYXRlT24ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl91cGRhdGVPbjtcclxuICAgIH1cclxuICAgIHB1YmxpYyBzZXQgdXBkYXRlT24odjogQVhGb3JtVXBkYXRlT24pIHtcclxuICAgICAgICB0aGlzLl9zZXRPcHRpb24oe1xyXG4gICAgICAgICAgICBuYW1lOiAndXBkYXRlT24nLFxyXG4gICAgICAgICAgICB2YWx1ZTogdixcclxuICAgICAgICAgICAgYWZ0ZXJDYWxsYmFjazogKG9sZFZhbHVlPywgbmV3VmFsdWU/KSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLl9iaW5kRXZlbnRzKCk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgfSlcclxuICAgIH1cclxuXHJcbiAgICBASW5wdXQoKVxyXG4gICAgdmFsaWRhdGVJbml0VmFsdWVzOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG5cclxuICAgIHByaXZhdGUgX29ic2VydmVyOiBNdXRhdGlvbk9ic2VydmVyO1xyXG4gICAgcHJpdmF0ZSBfc3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcclxuXHJcblxyXG5cclxuICAgIC8qKlxyXG4gICAgKiAgQGlnbm9yZVxyXG4gICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXHJcbiAgICAgICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXHJcbiAgICApIHtcclxuICAgICAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgX2dldENvbXBvbmVuZXRzKCkge1xyXG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKFxyXG4gICAgICAgICAgICB0aGlzLl9nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3JBbGwoJ1theC1mb3JtLWlucHV0PVwidHJ1ZVwiXScpXHJcbiAgICAgICAgKS5tYXAoKGMpID0+IChjIGFzIGFueSkuX19heENvbnRleHRfXyk7XHJcbiAgICB9XHJcblxyXG4gICAgb25WaWV3SW5pdCgpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy52YWxpZGF0ZUluaXRWYWx1ZXMpIHtcclxuICAgICAgICAgICAgdGhpcy5fdmFsaWRhdGVJbml0VmFsdWVzKCk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuX2JpbmRFdmVudHMoKTtcclxuXHJcbiAgICAgICAgY29uc3QgY29uZmlnID0geyBhdHRyaWJ1dGVzOiBmYWxzZSwgY2hpbGRMaXN0OiB0cnVlLCBzdWJ0cmVlOiB0cnVlIH07XHJcbiAgICAgICAgY29uc3QgY2FsbGJhY2sgPSAobXV0YXRpb25MaXN0LCBvYnNlcnZlcikgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9iaW5kRXZlbnRzKCk7XHJcbiAgICAgICAgfTtcclxuXHJcbiAgICAgICAgLy8gQ3JlYXRlIGFuIG9ic2VydmVyIGluc3RhbmNlIGxpbmtlZCB0byB0aGUgY2FsbGJhY2sgZnVuY3Rpb25cclxuICAgICAgICB0aGlzLl9vYnNlcnZlciA9IG5ldyBNdXRhdGlvbk9ic2VydmVyKGNhbGxiYWNrKTtcclxuICAgICAgICB0aGlzLl9vYnNlcnZlci5vYnNlcnZlKHRoaXMuX2dldEhvc3RFbGVtZW50KCksIGNvbmZpZyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBfYmluZEV2ZW50cygpIHtcclxuICAgICAgICB0aGlzLl9jbGVhclN1YnMoKTtcclxuICAgICAgICBjb25zdCB3aWRnZXRzID0gdGhpcy5fZ2V0Q29tcG9uZW5ldHMoKVxyXG4gICAgICAgIC8vXHJcbiAgICAgICAgd2lkZ2V0cy5mb3JFYWNoKHcgPT4ge1xyXG4gICAgICAgICAgICBpZiAodGhpcy51cGRhdGVPbiA9PSAnY2hhbmdlJykge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fc3Vicy5wdXNoKHcub25WYWx1ZUNoYW5nZWQ/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=