@magic-xpa/angular 4.1100.0-dev4110.25 → 4.1100.0-dev4110.252

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 (171) hide show
  1. package/{esm2020 → esm2022}/index.mjs +59 -59
  2. package/{esm2020 → esm2022}/magic-xpa-angular.mjs +1 -1
  3. package/esm2022/src/controls.metadata.model.mjs +183 -0
  4. package/{esm2020 → esm2022}/src/interfaces/sub-form-definition.iterface.mjs +1 -1
  5. package/{esm2020 → esm2022}/src/magic.core.module.mjs +159 -160
  6. package/{esm2020 → esm2022}/src/services/ISubformMagicService.mjs +1 -1
  7. package/esm2022/src/services/OverlayWindowService.mjs +244 -0
  8. package/esm2022/src/services/StylesMapManager.mjs +28 -0
  9. package/esm2022/src/services/accessor.magic.service.mjs +358 -0
  10. package/esm2022/src/services/commands-collector.magic.service.mjs +47 -0
  11. package/esm2022/src/services/component-list.magic.service.mjs +45 -0
  12. package/{esm2020 → esm2022}/src/services/confirmation.components.magic.provider.mjs +21 -21
  13. package/esm2022/src/services/engine.magic.service.mjs +80 -0
  14. package/{esm2020 → esm2022}/src/services/exit.magic.service.mjs +13 -13
  15. package/esm2022/src/services/magic-color.service.mjs +101 -0
  16. package/{esm2020 → esm2022}/src/services/magic.lazy.loader.service.mjs +16 -16
  17. package/{esm2020 → esm2022}/src/services/magic.providers.mjs +24 -24
  18. package/esm2022/src/services/magic.services.mjs +36 -0
  19. package/esm2022/src/services/mg-date-adapter.mjs +108 -0
  20. package/{esm2020 → esm2022}/src/services/overlay.conainer.magic.provider.mjs +14 -14
  21. package/esm2022/src/services/router-commands.magic.service.mjs +31 -0
  22. package/esm2022/src/services/subform.magic.service.mjs +194 -0
  23. package/esm2022/src/services/table.magic.service.mjs +81 -0
  24. package/esm2022/src/services/task.magics.service.mjs +637 -0
  25. package/esm2022/src/services/title.magic.service.mjs +19 -0
  26. package/esm2022/src/ui/GuiInteractiveExecutor.mjs +109 -0
  27. package/esm2022/src/ui/components/base-magic-alert.component.mjs +24 -0
  28. package/esm2022/src/ui/components/base-magic-confirm.component.mjs +24 -0
  29. package/esm2022/src/ui/components/magic-alert.component.mjs +36 -0
  30. package/esm2022/src/ui/components/magic-confirmation-box.component.mjs +42 -0
  31. package/esm2022/src/ui/directives/NonMagicControlDirective.mjs +58 -0
  32. package/esm2022/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.mjs +29 -0
  33. package/esm2022/src/ui/directives/magic/checkbox.magic.directive.mjs +29 -0
  34. package/esm2022/src/ui/directives/magic/combobox.magic.directive.mjs +37 -0
  35. package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.mjs +27 -0
  36. package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs +85 -0
  37. package/esm2022/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.mjs +32 -0
  38. package/esm2022/src/ui/directives/magic/input.noformcontrol.magic.directive.mjs +28 -0
  39. package/esm2022/src/ui/directives/magic/nocontrol.magic.directive.mjs +193 -0
  40. package/esm2022/src/ui/directives/magic/row.magic.directive.mjs +62 -0
  41. package/esm2022/src/ui/directives/magic-focus.directive.mjs +20 -0
  42. package/esm2022/src/ui/directives/magic.directive.mjs +229 -0
  43. package/esm2022/src/ui/directives/magicViewContainerRef.directive.mjs +20 -0
  44. package/esm2022/src/ui/directives/mgformat.magic.directive.mjs +579 -0
  45. package/esm2022/src/ui/directives/range-validator.magic.directive.mjs +60 -0
  46. package/{esm2020 → esm2022}/src/ui/magic-confirmationBox.mjs +42 -42
  47. package/{esm2020 → esm2022}/src/ui/magic-modal/base-magic-overlay-container.mjs +22 -22
  48. package/esm2022/src/ui/magic-modal/magic-modal-form.mjs +6 -0
  49. package/{esm2020 → esm2022}/src/ui/magic-modal/magic-modal-interface.mjs +1 -1
  50. package/esm2022/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +124 -0
  51. package/esm2022/src/ui/magic-modal/magic-overlay-container.mjs +162 -0
  52. package/esm2022/src/ui/magic-root.component.mjs +236 -0
  53. package/esm2022/src/ui/mgerror.magic.component.mjs +125 -0
  54. package/esm2022/src/ui/pipes/date.magic.pipe.mjs +106 -0
  55. package/esm2022/src/ui/pipes/time.magic.pipe.mjs +52 -0
  56. package/esm2022/src/ui/pipes/time24.magic.pipe.mjs +35 -0
  57. package/esm2022/src/ui/router-container.magic.component.mjs +115 -0
  58. package/{esm2020 → esm2022}/src/ui/subform.magic.component.mjs +50 -46
  59. package/esm2022/src/ui/task-base.magic.component.mjs +91 -0
  60. package/esm2022/src/ui/utils.mjs +54 -0
  61. package/{fesm2020 → fesm2022}/magic-xpa-angular.mjs +4827 -4444
  62. package/fesm2022/magic-xpa-angular.mjs.map +1 -0
  63. package/index.d.ts +58 -58
  64. package/package.json +10 -16
  65. package/src/controls.metadata.model.d.ts +62 -62
  66. package/src/interfaces/sub-form-definition.iterface.d.ts +12 -12
  67. package/src/magic.core.module.d.ts +41 -41
  68. package/src/services/ISubformMagicService.d.ts +4 -4
  69. package/src/services/OverlayWindowService.d.ts +30 -25
  70. package/src/services/StylesMapManager.d.ts +5 -5
  71. package/src/services/accessor.magic.service.d.ts +69 -69
  72. package/src/services/commands-collector.magic.service.d.ts +15 -15
  73. package/src/services/component-list.magic.service.d.ts +23 -23
  74. package/src/services/confirmation.components.magic.provider.d.ts +8 -8
  75. package/src/services/engine.magic.service.d.ts +27 -27
  76. package/src/services/exit.magic.service.d.ts +6 -6
  77. package/src/services/magic-color.service.d.ts +19 -19
  78. package/src/services/magic.lazy.loader.service.d.ts +6 -6
  79. package/src/services/magic.providers.d.ts +107 -107
  80. package/src/services/magic.services.d.ts +16 -16
  81. package/src/services/mg-date-adapter.d.ts +38 -40
  82. package/src/services/overlay.conainer.magic.provider.d.ts +7 -7
  83. package/src/services/router-commands.magic.service.d.ts +17 -17
  84. package/src/services/subform.magic.service.d.ts +43 -43
  85. package/src/services/table.magic.service.d.ts +30 -30
  86. package/src/services/task.magics.service.d.ts +100 -100
  87. package/src/services/title.magic.service.d.ts +9 -9
  88. package/src/ui/GuiInteractiveExecutor.d.ts +22 -21
  89. package/src/ui/components/base-magic-alert.component.d.ts +10 -10
  90. package/src/ui/components/base-magic-confirm.component.d.ts +10 -10
  91. package/src/ui/components/magic-alert.component.d.ts +6 -6
  92. package/src/ui/components/magic-confirmation-box.component.d.ts +6 -6
  93. package/src/ui/directives/NonMagicControlDirective.d.ts +26 -26
  94. package/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.d.ts +9 -9
  95. package/src/ui/directives/magic/checkbox.magic.directive.d.ts +9 -9
  96. package/src/ui/directives/magic/combobox.magic.directive.d.ts +10 -10
  97. package/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.d.ts +7 -7
  98. package/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.d.ts +23 -17
  99. package/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.d.ts +7 -7
  100. package/src/ui/directives/magic/input.noformcontrol.magic.directive.d.ts +9 -9
  101. package/src/ui/directives/magic/nocontrol.magic.directive.d.ts +18 -18
  102. package/src/ui/directives/magic/row.magic.directive.d.ts +17 -17
  103. package/src/ui/directives/magic-focus.directive.d.ts +9 -9
  104. package/src/ui/directives/magic.directive.d.ts +44 -44
  105. package/src/ui/directives/magicViewContainerRef.directive.d.ts +8 -8
  106. package/src/ui/directives/mgformat.magic.directive.d.ts +38 -31
  107. package/src/ui/directives/range-validator.magic.directive.d.ts +17 -17
  108. package/src/ui/magic-confirmationBox.d.ts +6 -6
  109. package/src/ui/magic-modal/base-magic-overlay-container.d.ts +5 -5
  110. package/src/ui/magic-modal/magic-modal-form.d.ts +5 -5
  111. package/src/ui/magic-modal/magic-modal-interface.d.ts +10 -10
  112. package/src/ui/magic-modal/magic-overlay-container-wrapper.d.ts +30 -31
  113. package/src/ui/magic-modal/magic-overlay-container.d.ts +24 -25
  114. package/src/ui/magic-root.component.d.ts +43 -40
  115. package/src/ui/mgerror.magic.component.d.ts +20 -20
  116. package/src/ui/pipes/date.magic.pipe.d.ts +17 -17
  117. package/src/ui/pipes/time.magic.pipe.d.ts +11 -11
  118. package/src/ui/pipes/time24.magic.pipe.d.ts +10 -10
  119. package/src/ui/router-container.magic.component.d.ts +29 -30
  120. package/src/ui/subform.magic.component.d.ts +16 -16
  121. package/src/ui/task-base.magic.component.d.ts +34 -34
  122. package/src/ui/utils.d.ts +9 -9
  123. package/esm2020/src/controls.metadata.model.mjs +0 -180
  124. package/esm2020/src/services/OverlayWindowService.mjs +0 -208
  125. package/esm2020/src/services/StylesMapManager.mjs +0 -28
  126. package/esm2020/src/services/accessor.magic.service.mjs +0 -356
  127. package/esm2020/src/services/commands-collector.magic.service.mjs +0 -46
  128. package/esm2020/src/services/component-list.magic.service.mjs +0 -46
  129. package/esm2020/src/services/engine.magic.service.mjs +0 -82
  130. package/esm2020/src/services/magic-color.service.mjs +0 -99
  131. package/esm2020/src/services/magic.services.mjs +0 -31
  132. package/esm2020/src/services/mg-date-adapter.mjs +0 -109
  133. package/esm2020/src/services/router-commands.magic.service.mjs +0 -28
  134. package/esm2020/src/services/subform.magic.service.mjs +0 -184
  135. package/esm2020/src/services/table.magic.service.mjs +0 -77
  136. package/esm2020/src/services/task.magics.service.mjs +0 -624
  137. package/esm2020/src/services/title.magic.service.mjs +0 -18
  138. package/esm2020/src/ui/GuiInteractiveExecutor.mjs +0 -98
  139. package/esm2020/src/ui/components/base-magic-alert.component.mjs +0 -23
  140. package/esm2020/src/ui/components/base-magic-confirm.component.mjs +0 -23
  141. package/esm2020/src/ui/components/magic-alert.component.mjs +0 -35
  142. package/esm2020/src/ui/components/magic-confirmation-box.component.mjs +0 -41
  143. package/esm2020/src/ui/directives/NonMagicControlDirective.mjs +0 -49
  144. package/esm2020/src/ui/directives/magic/checkbox-noformcontrol.magic.directive.mjs +0 -28
  145. package/esm2020/src/ui/directives/magic/checkbox.magic.directive.mjs +0 -28
  146. package/esm2020/src/ui/directives/magic/combobox.magic.directive.mjs +0 -36
  147. package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/checkbox.cva.directive.mjs +0 -27
  148. package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/date.cva.directive.mjs +0 -52
  149. package/esm2020/src/ui/directives/magic/form-controls/control-value-accessors/default.cva.directive.mjs +0 -32
  150. package/esm2020/src/ui/directives/magic/input.noformcontrol.magic.directive.mjs +0 -27
  151. package/esm2020/src/ui/directives/magic/nocontrol.magic.directive.mjs +0 -193
  152. package/esm2020/src/ui/directives/magic/row.magic.directive.mjs +0 -58
  153. package/esm2020/src/ui/directives/magic-focus.directive.mjs +0 -19
  154. package/esm2020/src/ui/directives/magic.directive.mjs +0 -215
  155. package/esm2020/src/ui/directives/magicViewContainerRef.directive.mjs +0 -19
  156. package/esm2020/src/ui/directives/mgformat.magic.directive.mjs +0 -408
  157. package/esm2020/src/ui/directives/range-validator.magic.directive.mjs +0 -58
  158. package/esm2020/src/ui/magic-modal/magic-modal-form.mjs +0 -8
  159. package/esm2020/src/ui/magic-modal/magic-overlay-container-wrapper.mjs +0 -121
  160. package/esm2020/src/ui/magic-modal/magic-overlay-container.mjs +0 -159
  161. package/esm2020/src/ui/magic-root.component.mjs +0 -203
  162. package/esm2020/src/ui/mgerror.magic.component.mjs +0 -119
  163. package/esm2020/src/ui/pipes/date.magic.pipe.mjs +0 -105
  164. package/esm2020/src/ui/pipes/time.magic.pipe.mjs +0 -51
  165. package/esm2020/src/ui/pipes/time24.magic.pipe.mjs +0 -34
  166. package/esm2020/src/ui/router-container.magic.component.mjs +0 -108
  167. package/esm2020/src/ui/task-base.magic.component.mjs +0 -86
  168. package/esm2020/src/ui/utils.mjs +0 -54
  169. package/fesm2015/magic-xpa-angular.mjs +0 -4832
  170. package/fesm2015/magic-xpa-angular.mjs.map +0 -1
  171. package/fesm2020/magic-xpa-angular.mjs.map +0 -1
@@ -0,0 +1,85 @@
1
+ import { Directive, ElementRef, forwardRef, HostListener, Renderer2 } from "@angular/core";
2
+ import { NG_VALUE_ACCESSOR } from "@angular/forms";
3
+ import { MagicDirective } from "../../../magic.directive";
4
+ import { TaskMagicService } from "../../../../../services/task.magics.service";
5
+ import { Environment, LastFocusedManager } from "@magic-xpa/engine";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../magic.directive";
8
+ import * as i2 from "../../../../../services/task.magics.service";
9
+ export const DATE_VALUE_ACCESSOR = {
10
+ provide: NG_VALUE_ACCESSOR,
11
+ useExisting: forwardRef(() => DateValueAccessor),
12
+ multi: true
13
+ };
14
+ export class DateValueAccessor {
15
+ renderer;
16
+ elementRef;
17
+ magicDir;
18
+ _task;
19
+ onChange = (_) => { };
20
+ onTouched = () => { };
21
+ onBlurEvent(event) {
22
+ const century = Environment.Instance.GetCentury(LastFocusedManager.Instance.getCurrTask().getCompIdx());
23
+ let control = this._task.getFormControl(this.magicDir.rowId, this.magicDir.id);
24
+ this.formatDateWithCentury(event.target.value, century, control);
25
+ }
26
+ constructor(renderer, elementRef, magicDir, _task) {
27
+ this.renderer = renderer;
28
+ this.elementRef = elementRef;
29
+ this.magicDir = magicDir;
30
+ this._task = _task;
31
+ }
32
+ formatDateWithCentury(userInput, century, control) {
33
+ const separator = userInput.includes('/') ? '/' : "-";
34
+ let centuryVal = parseInt(century.toString().slice(0, 2));
35
+ if (userInput.length == 0)
36
+ return;
37
+ const dateArray = userInput.split(separator);
38
+ const day = Number(dateArray[2]);
39
+ const month = Number(dateArray[1]);
40
+ const year = Number(dateArray[0]);
41
+ let updatedYear = year.toString().length === 2 ? (year < century % 100 ? centuryVal + 1 : centuryVal) + '' + year :
42
+ year.toString().length === 1 ? (year < century % 100 ? centuryVal + 1 : centuryVal) + '0' + year :
43
+ year;
44
+ control.setValue(new Date(`${updatedYear}${separator}${month}${separator}${day}`));
45
+ }
46
+ writeValue(value) {
47
+ if (!value) {
48
+ this.renderer.setProperty(this.elementRef.nativeElement, "value", null);
49
+ return;
50
+ }
51
+ this.renderer.setProperty(this.elementRef.nativeElement, "valueAsDate", new Date(Date.UTC(value.getFullYear(), value.getMonth(), value.getDate())));
52
+ }
53
+ registerOnChange(fn) {
54
+ this.onChange = v => fn(v instanceof Date
55
+ ? new Date(v.getUTCFullYear(), v.getUTCMonth(), v.getUTCDate())
56
+ : v);
57
+ }
58
+ registerOnTouched(fn) {
59
+ this.onTouched = fn;
60
+ }
61
+ setDisabledState(isDisabled) {
62
+ this.renderer.setProperty(this.elementRef.nativeElement, "disabled", isDisabled);
63
+ }
64
+ static ɵfac = function DateValueAccessor_Factory(t) { return new (t || DateValueAccessor)(i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.MagicDirective), i0.ɵɵdirectiveInject(i2.TaskMagicService)); };
65
+ static ɵdir = i0.ɵɵdefineDirective({ type: DateValueAccessor, selectors: [["", "dateInput", ""]], hostBindings: function DateValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {
66
+ i0.ɵɵlistener("input", function DateValueAccessor_input_HostBindingHandler($event) { return ctx.onChange($event.target.valueAsDate); })("blur", function DateValueAccessor_blur_HostBindingHandler($event) { return ctx.onBlurEvent($event); });
67
+ } }, features: [i0.ɵɵProvidersFeature([DATE_VALUE_ACCESSOR])] });
68
+ }
69
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(DateValueAccessor, [{
70
+ type: Directive,
71
+ args: [{
72
+ selector: "[dateInput]",
73
+ providers: [DATE_VALUE_ACCESSOR]
74
+ }]
75
+ }], () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.MagicDirective }, { type: i2.TaskMagicService }], { onChange: [{
76
+ type: HostListener,
77
+ args: ["input", ["$event.target.valueAsDate"]]
78
+ }], onTouched: [{
79
+ type: HostListener,
80
+ args: ["blur", []]
81
+ }], onBlurEvent: [{
82
+ type: HostListener,
83
+ args: ['blur', ['$event']]
84
+ }] }); })();
85
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jdmEuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvZGlyZWN0aXZlcy9tYWdpYy9mb3JtLWNvbnRyb2xzL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL2RhdGUuY3ZhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsWUFBWSxFQUNaLFNBQVMsRUFDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdDLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEYsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLDBCQUEwQixDQUFDO0FBQ3hELE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLDZDQUE2QyxDQUFDO0FBQzdFLE9BQU8sRUFBQyxXQUFXLEVBQUUsa0JBQWtCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQzs7OztBQUVsRSxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBUTtJQUN0QyxPQUFPLEVBQUUsaUJBQWlCO0lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsaUJBQWlCLENBQUM7SUFDaEQsS0FBSyxFQUFFLElBQUk7Q0FDWixDQUFDO0FBY0YsTUFBTSxPQUFPLGlCQUFpQjtJQWNSO0lBQTZCO0lBQzNCO0lBQ0E7SUFkdEIsUUFBUSxHQUFHLENBQUMsQ0FBTSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFFMUIsU0FBUyxHQUFHLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUdkLFdBQVcsQ0FBQyxLQUFLO1FBQ3RCLE1BQU0sT0FBTyxHQUFHLFdBQVcsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ3hHLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLENBQUM7UUFFL0UsSUFBSSxDQUFDLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsWUFBb0IsUUFBbUIsRUFBVSxVQUFzQixFQUNqRCxRQUF3QixFQUN4QixLQUF1QjtRQUZ6QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQVUsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUNqRCxhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixVQUFLLEdBQUwsS0FBSyxDQUFrQjtJQUFHLENBQUM7SUFJakQscUJBQXFCLENBQUMsU0FBZ0IsRUFBRSxPQUFjLEVBQUUsT0FBd0I7UUFDOUUsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQSxDQUFDLENBQUEsR0FBRyxDQUFBLENBQUMsQ0FBQSxHQUFHLENBQUM7UUFDbEQsSUFBSSxVQUFVLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDMUQsSUFBRyxTQUFTLENBQUMsTUFBTSxJQUFJLENBQUM7WUFDdEIsT0FBUTtRQUVWLE1BQU0sU0FBUyxHQUFhLFNBQVMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdkQsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pDLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFbEMsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLE9BQU8sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNqSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLEdBQUcsR0FBRyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNoRyxJQUFJLENBQUM7UUFFVCxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksSUFBSSxDQUFDLEdBQUcsV0FBVyxHQUFHLFNBQVMsR0FBRyxLQUFLLEdBQUcsU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQTtJQUNwRixDQUFDO0lBSUQsVUFBVSxDQUFDLEtBQVc7UUFDcEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQ3hFLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQ3ZCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxFQUM3QixhQUFhLEVBQ2IsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQzNFLENBQUM7SUFDSixDQUFDO0lBR0QsZ0JBQWdCLENBQUMsRUFBb0I7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUNsQixFQUFFLENBQ0EsQ0FBQyxZQUFZLElBQUk7WUFDZixDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGNBQWMsRUFBRSxFQUFFLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDL0QsQ0FBQyxDQUFDLENBQUMsQ0FDTixDQUFDO0lBQ04sQ0FBQztJQUdELGlCQUFpQixDQUFDLEVBQWM7UUFDOUIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUdELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFDN0IsVUFBVSxFQUNWLFVBQVUsQ0FDWCxDQUFDO0lBQ0osQ0FBQzsyRUEzRVUsaUJBQWlCOytDQUFqQixpQkFBaUI7WUFBakIsNEZBQUEsdUNBQW1DLElBQWxCLDZFQUFqQix1QkFBbUIsSUFBRjs4Q0FGakIsQ0FBQyxtQkFBbUIsQ0FBQzs7aUZBRXJCLGlCQUFpQjtjQUo3QixTQUFTO2VBQUM7Z0JBQ1QsUUFBUSxFQUFFLGFBQWE7Z0JBQ3ZCLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO2FBQ2pDOytIQUdDLFFBQVE7a0JBRFAsWUFBWTttQkFBQyxPQUFPLEVBQUUsQ0FBQywyQkFBMkIsQ0FBQztZQUdwRCxTQUFTO2tCQURSLFlBQVk7bUJBQUMsTUFBTSxFQUFFLEVBQUU7WUFJakIsV0FBVztrQkFEakIsWUFBWTttQkFBQyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIERpcmVjdGl2ZSxcclxuICBFbGVtZW50UmVmLFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIFJlbmRlcmVyMlxyXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7QWJzdHJhY3RDb250cm9sLCBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1J9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge01hZ2ljRGlyZWN0aXZlfSBmcm9tIFwiLi4vLi4vLi4vbWFnaWMuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7VGFza01hZ2ljU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL3NlcnZpY2VzL3Rhc2subWFnaWNzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHtFbnZpcm9ubWVudCwgTGFzdEZvY3VzZWRNYW5hZ2VyfSBmcm9tIFwiQG1hZ2ljLXhwYS9lbmdpbmVcIjtcclxuXHJcbmV4cG9ydCBjb25zdCBEQVRFX1ZBTFVFX0FDQ0VTU09SOiBhbnkgPSB7XHJcbiAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZVZhbHVlQWNjZXNzb3IpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG4vKipcclxuICogVGhlIGFjY2Vzc29yIGZvciB3cml0aW5nIGEgdmFsdWUgYW5kIGxpc3RlbmluZyB0byBjaGFuZ2VzIG9uIGEgZGF0ZSBpbnB1dCBlbGVtZW50XHJcbiAqXHJcbiAqICAjIyMgRXhhbXBsZVxyXG4gKiAgYDxpbnB1dCB0eXBlPVwiZGF0ZVwiIG5hbWU9XCJiaXJ0aGRheVwiIG5nTW9kZWwgZGF0ZUlucHV0PmBcclxuICogIE9SXHJcbiAqICBgPGlucHV0IHR5cGU9XCJkYXRlXCIgZm9ybUNvbnRyb2xOYW1lPVwiYmlydGhkYXlcIiBkYXRlSW5wdXQ+YFxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IFwiW2RhdGVJbnB1dF1cIixcclxuICBwcm92aWRlcnM6IFtEQVRFX1ZBTFVFX0FDQ0VTU09SXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZVZhbHVlQWNjZXNzb3IgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgQEhvc3RMaXN0ZW5lcihcImlucHV0XCIsIFtcIiRldmVudC50YXJnZXQudmFsdWVBc0RhdGVcIl0pXHJcbiAgb25DaGFuZ2UgPSAoXzogYW55KSA9PiB7fTtcclxuICBASG9zdExpc3RlbmVyKFwiYmx1clwiLCBbXSlcclxuICBvblRvdWNoZWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignYmx1cicsIFsnJGV2ZW50J10pXHJcbiAgcHVibGljIG9uQmx1ckV2ZW50KGV2ZW50KSB7XHJcbiAgICBjb25zdCBjZW50dXJ5ID0gRW52aXJvbm1lbnQuSW5zdGFuY2UuR2V0Q2VudHVyeShMYXN0Rm9jdXNlZE1hbmFnZXIuSW5zdGFuY2UuZ2V0Q3VyclRhc2soKS5nZXRDb21wSWR4KCkpO1xyXG4gICAgbGV0IGNvbnRyb2wgPSB0aGlzLl90YXNrLmdldEZvcm1Db250cm9sKHRoaXMubWFnaWNEaXIucm93SWQsIHRoaXMubWFnaWNEaXIuaWQpO1xyXG5cclxuICAgIHRoaXMuZm9ybWF0RGF0ZVdpdGhDZW50dXJ5KGV2ZW50LnRhcmdldC52YWx1ZSwgY2VudHVyeSwgY29udHJvbCk7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgbWFnaWNEaXI6IE1hZ2ljRGlyZWN0aXZlICxcclxuICAgICAgICAgICAgICBwcm90ZWN0ZWQgX3Rhc2s6IFRhc2tNYWdpY1NlcnZpY2UpIHt9XHJcblxyXG5cclxuICAvKiogRm9ybWF0IHllYXIsIGlmIHVzZXIgZW50ZXJzIDIgZGlnaXRzIGluc3RlYWQgb2YgNCBkaWdpdHMgYXMgcGVyIHRoZSBjZW50dXJ5IGdpdmVuIGluIE1hZ2ljLmluaSBmaWxlICovXHJcbiAgZm9ybWF0RGF0ZVdpdGhDZW50dXJ5KHVzZXJJbnB1dDpzdHJpbmcsIGNlbnR1cnk6bnVtYmVyLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpe1xyXG4gICAgY29uc3Qgc2VwYXJhdG9yID0gdXNlcklucHV0LmluY2x1ZGVzKCcvJyk/Jy8nOlwiLVwiO1xyXG4gICAgbGV0IGNlbnR1cnlWYWwgPSBwYXJzZUludChjZW50dXJ5LnRvU3RyaW5nKCkuc2xpY2UoMCwgMikpO1xyXG4gICAgaWYodXNlcklucHV0Lmxlbmd0aCA9PSAwKVxyXG4gICAgICByZXR1cm4gO1xyXG5cclxuICAgIGNvbnN0IGRhdGVBcnJheTogc3RyaW5nW10gPSB1c2VySW5wdXQuc3BsaXQoc2VwYXJhdG9yKTtcclxuICAgIGNvbnN0IGRheSA9IE51bWJlcihkYXRlQXJyYXlbMl0pO1xyXG4gICAgY29uc3QgbW9udGggPSBOdW1iZXIoZGF0ZUFycmF5WzFdKTtcclxuICAgIGNvbnN0IHllYXIgPSBOdW1iZXIoZGF0ZUFycmF5WzBdKTtcclxuXHJcbiAgICBsZXQgdXBkYXRlZFllYXIgPSB5ZWFyLnRvU3RyaW5nKCkubGVuZ3RoID09PSAyID8gKHllYXIgPCBjZW50dXJ5ICUgMTAwID8gY2VudHVyeVZhbCArIDEgOiBjZW50dXJ5VmFsKSArICcnICsgeWVhciA6XHJcbiAgICAgIHllYXIudG9TdHJpbmcoKS5sZW5ndGggPT09IDEgPyAoeWVhciA8IGNlbnR1cnkgJSAxMDAgPyBjZW50dXJ5VmFsICsgMSA6IGNlbnR1cnlWYWwpICsgJzAnICsgeWVhciA6XHJcbiAgICAgICAgeWVhcjtcclxuXHJcbiAgICBjb250cm9sLnNldFZhbHVlKG5ldyBEYXRlKGAke3VwZGF0ZWRZZWFyfSR7c2VwYXJhdG9yfSR7bW9udGh9JHtzZXBhcmF0b3J9JHtkYXl9YCkpXHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqIFdyaXRlcyBhIG5ldyB2YWx1ZSB0byB0aGUgZWxlbWVudCAobW9kZWwgLT4gdmlldykgKi9cclxuICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlKTogdm9pZCB7XHJcbiAgICBpZiAoIXZhbHVlKSB7XHJcbiAgICAgIHRoaXMucmVuZGVyZXIuc2V0UHJvcGVydHkodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsIFwidmFsdWVcIiwgbnVsbCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnJlbmRlcmVyLnNldFByb3BlcnR5KFxyXG4gICAgICB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCxcclxuICAgICAgXCJ2YWx1ZUFzRGF0ZVwiLFxyXG4gICAgICBuZXcgRGF0ZShEYXRlLlVUQyh2YWx1ZS5nZXRGdWxsWWVhcigpLCB2YWx1ZS5nZXRNb250aCgpLCB2YWx1ZS5nZXREYXRlKCkpKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIC8qKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiwgY2FsbGVkIHdoZW4gdmFsdWUgY2hhbmdlcyAodmlldyAtPiBtb2RlbCkgKi9cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uQ2hhbmdlID0gdiA9PlxyXG4gICAgICBmbihcclxuICAgICAgICB2IGluc3RhbmNlb2YgRGF0ZVxyXG4gICAgICAgICAgPyBuZXcgRGF0ZSh2LmdldFVUQ0Z1bGxZZWFyKCksIHYuZ2V0VVRDTW9udGgoKSwgdi5nZXRVVENEYXRlKCkpXHJcbiAgICAgICAgICA6IHZcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIC8qKiBSZWdpc3RlcnMgYSBjYWxsYmFjayBmdW5jdGlvbiwgY2FsbGVkIHdoZW4gdGhlIGNvbnRyb2wgaXMgYmx1cnJlZCAqL1xyXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XHJcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xyXG4gIH1cclxuXHJcbiAgLyoqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIGVsZW1lbnQgd2hlbiB0aGUgY29udHJvbCBzdGF0dXMgY2hhbmdlcyAqL1xyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eShcclxuICAgICAgdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgIFwiZGlzYWJsZWRcIixcclxuICAgICAgaXNEaXNhYmxlZFxyXG4gICAgKTtcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,32 @@
1
+ import { Directive, forwardRef } from '@angular/core';
2
+ import { DefaultValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';
3
+ import * as i0 from "@angular/core";
4
+ export const MAGIC_DEFAULT_VALUE_ACCESSOR = {
5
+ provide: NG_VALUE_ACCESSOR,
6
+ useExisting: forwardRef(() => MagicDefaultValueAccessor),
7
+ multi: true
8
+ };
9
+ export class MagicDefaultValueAccessor extends DefaultValueAccessor {
10
+ static ɵfac = (() => { let ɵMagicDefaultValueAccessor_BaseFactory; return function MagicDefaultValueAccessor_Factory(t) { return (ɵMagicDefaultValueAccessor_BaseFactory || (ɵMagicDefaultValueAccessor_BaseFactory = i0.ɵɵgetInheritedFactory(MagicDefaultValueAccessor)))(t || MagicDefaultValueAccessor); }; })();
11
+ static ɵdir = i0.ɵɵdefineDirective({ type: MagicDefaultValueAccessor, selectors: [["input", "magic", "", 3, "type", "checkbox", 3, "formControlName", "", 3, "no-form-control", ""], ["textarea", "magic", "", 3, "formControlName", "", 3, "noFormControl", "", 3, "no-form-control", ""]], hostBindings: function MagicDefaultValueAccessor_HostBindings(rf, ctx) { if (rf & 1) {
12
+ i0.ɵɵlistener("input", function MagicDefaultValueAccessor_input_HostBindingHandler($event) { return ctx._handleInput($event.target.value); })("blur", function MagicDefaultValueAccessor_blur_HostBindingHandler() { return ctx.onTouched(); })("compositionstart", function MagicDefaultValueAccessor_compositionstart_HostBindingHandler() { return ctx._compositionStart(); })("compositionend", function MagicDefaultValueAccessor_compositionend_HostBindingHandler($event) { return ctx._compositionEnd($event.target.value); });
13
+ } }, exportAs: ["magic"], features: [i0.ɵɵProvidersFeature([MAGIC_DEFAULT_VALUE_ACCESSOR]), i0.ɵɵInheritDefinitionFeature] });
14
+ }
15
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicDefaultValueAccessor, [{
16
+ type: Directive,
17
+ args: [{
18
+ selector: `
19
+ input[magic]:not([type=checkbox]):not([formControlName]):not([no-form-control]),
20
+ textarea[magic]:not([formControlName]):not([noFormControl]):not([no-form-control])
21
+ `,
22
+ host: {
23
+ '(input)': '$any(this)._handleInput($event.target.value)',
24
+ '(blur)': 'onTouched()',
25
+ '(compositionstart)': '$any(this)._compositionStart()',
26
+ '(compositionend)': '$any(this)._compositionEnd($event.target.value)'
27
+ },
28
+ providers: [MAGIC_DEFAULT_VALUE_ACCESSOR],
29
+ exportAs: 'magic'
30
+ }]
31
+ }], null, null); })();
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC5jdmEuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvZGlyZWN0aXZlcy9tYWdpYy9mb3JtLWNvbnRyb2xzL2NvbnRyb2wtdmFsdWUtYWNjZXNzb3JzL2RlZmF1bHQuY3ZhLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFLekUsTUFBTSxDQUFDLE1BQU0sNEJBQTRCLEdBQVE7SUFDL0MsT0FBTyxFQUFFLGlCQUFpQjtJQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO0lBQ3hELEtBQUssRUFBRSxJQUFJO0NBQ1osQ0FBQztBQW1CRixNQUFNLE9BQU8seUJBQTBCLFNBQVEsb0JBQW9CO21QQUF0RCx5QkFBeUIsU0FBekIseUJBQXlCOytDQUF6Qix5QkFBeUI7WUFBekIsb0dBQUEscUNBQTRDLElBQW5CLCtFQUF6QixlQUFXLElBQWMsdUdBQXpCLHVCQUE4QixJQUFMLHlHQUF6Qix3Q0FBK0MsSUFBdEI7bUVBSHpCLENBQUMsNEJBQTRCLENBQUM7O2lGQUc5Qix5QkFBeUI7Y0FkckMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRTs7O0dBR1Q7Z0JBQ0QsSUFBSSxFQUFFO29CQUNKLFNBQVMsRUFBRSw4Q0FBOEM7b0JBQ3pELFFBQVEsRUFBRSxhQUFhO29CQUN2QixvQkFBb0IsRUFBRSxnQ0FBZ0M7b0JBQ3RELGtCQUFrQixFQUFFLGlEQUFpRDtpQkFDdEU7Z0JBQ0QsU0FBUyxFQUFFLENBQUMsNEJBQTRCLENBQUM7Z0JBQ3pDLFFBQVEsRUFBRSxPQUFPO2FBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBmb3J3YXJkUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IERlZmF1bHRWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgTUFHSUNfREVGQVVMVF9WQUxVRV9BQ0NFU1NPUjogYW55ID0ge1xyXG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IE1hZ2ljRGVmYXVsdFZhbHVlQWNjZXNzb3IpLFxyXG4gIG11bHRpOiB0cnVlXHJcbn07XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6IGBcclxuICAgIGlucHV0W21hZ2ljXTpub3QoW3R5cGU9Y2hlY2tib3hdKTpub3QoW2Zvcm1Db250cm9sTmFtZV0pOm5vdChbbm8tZm9ybS1jb250cm9sXSksXHJcbiAgICB0ZXh0YXJlYVttYWdpY106bm90KFtmb3JtQ29udHJvbE5hbWVdKTpub3QoW25vRm9ybUNvbnRyb2xdKTpub3QoW25vLWZvcm0tY29udHJvbF0pXHJcbiAgYCxcclxuICBob3N0OiB7XHJcbiAgICAnKGlucHV0KSc6ICckYW55KHRoaXMpLl9oYW5kbGVJbnB1dCgkZXZlbnQudGFyZ2V0LnZhbHVlKScsXHJcbiAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJyxcclxuICAgICcoY29tcG9zaXRpb25zdGFydCknOiAnJGFueSh0aGlzKS5fY29tcG9zaXRpb25TdGFydCgpJyxcclxuICAgICcoY29tcG9zaXRpb25lbmQpJzogJyRhbnkodGhpcykuX2NvbXBvc2l0aW9uRW5kKCRldmVudC50YXJnZXQudmFsdWUpJ1xyXG4gIH0sXHJcbiAgcHJvdmlkZXJzOiBbTUFHSUNfREVGQVVMVF9WQUxVRV9BQ0NFU1NPUl0sXHJcbiAgZXhwb3J0QXM6ICdtYWdpYydcclxufSlcclxuZXhwb3J0IGNsYXNzIE1hZ2ljRGVmYXVsdFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBEZWZhdWx0VmFsdWVBY2Nlc3NvciB7XHJcblxyXG4gIC8qY29uc3RydWN0b3IoX3JlbmRlcmVyOiBSZW5kZXJlcjIsIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLCBAT3B0aW9uYWwoKSBASW5qZWN0KENPTVBPU0lUSU9OX0JVRkZFUl9NT0RFKSAgX2NvbXBvc2l0aW9uTW9kZTogYm9vbGVhbikge1xyXG4gICAgc3VwZXIoX3JlbmRlcmVyLCBfZWxlbWVudFJlZiwgX2NvbXBvc2l0aW9uTW9kZSk7XHJcbiAgICBkZWJ1Z2dlcjtcclxuICB9Ki9cclxuXHJcbn1cclxuIl19
@@ -0,0 +1,28 @@
1
+ import { Directive, HostListener } from "@angular/core";
2
+ import { MagicDirective } from '../magic.directive';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../magic.directive";
5
+ export class InputNoFormControlMagicDirective {
6
+ magicDirective;
7
+ constructor(magicDirective) {
8
+ this.magicDirective = magicDirective;
9
+ }
10
+ onChange($event) {
11
+ this.magicDirective.task.setInputTextValue(this.magicDirective.id, this.magicDirective.rowId, event.srcElement.value);
12
+ }
13
+ static ɵfac = function InputNoFormControlMagicDirective_Factory(t) { return new (t || InputNoFormControlMagicDirective)(i0.ɵɵdirectiveInject(i1.MagicDirective)); };
14
+ static ɵdir = i0.ɵɵdefineDirective({ type: InputNoFormControlMagicDirective, selectors: [["input", "magic", "", "noFormControl", "", 3, "type", "checkbox"], ["textarea", "magic", "", "noFormControl", "", 3, "type", "checkbox"]], hostBindings: function InputNoFormControlMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
15
+ i0.ɵɵlistener("change", function InputNoFormControlMagicDirective_change_HostBindingHandler($event) { return ctx.onChange($event); });
16
+ } } });
17
+ }
18
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(InputNoFormControlMagicDirective, [{
19
+ type: Directive,
20
+ args: [{
21
+ selector: `input[magic]:([noFormControl]):not([type=checkbox]),
22
+ textarea[magic]:([noFormControl]):not([type=checkbox])`
23
+ }]
24
+ }], () => [{ type: i1.MagicDirective }], { onChange: [{
25
+ type: HostListener,
26
+ args: ['change', ['$event']]
27
+ }] }); })();
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQubm9mb3JtY29udHJvbC5tYWdpYy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91aS9kaXJlY3RpdmVzL21hZ2ljL2lucHV0Lm5vZm9ybWNvbnRyb2wubWFnaWMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsWUFBWSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3RELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQzs7O0FBV2xELE1BQU0sT0FBTyxnQ0FBZ0M7SUFDckI7SUFBdEIsWUFBc0IsY0FBOEI7UUFBOUIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO0lBQ3BELENBQUM7SUFPRCxRQUFRLENBQUMsTUFBTTtRQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFDTixLQUFLLENBQUMsVUFBVyxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3hGLENBQUM7MEZBYlUsZ0NBQWdDOytDQUFoQyxnQ0FBZ0M7WUFBaEMsNkdBQUEsb0JBQWdCLElBQWdCOzs7aUZBQWhDLGdDQUFnQztjQUw1QyxTQUFTO2VBQUM7Z0JBQ0UsUUFBUSxFQUFFO29FQUM2QzthQUVuRTsrQ0FVQyxRQUFRO2tCQURQLFlBQVk7bUJBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEaXJlY3RpdmUsIEhvc3RMaXN0ZW5lcn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHtNYWdpY0RpcmVjdGl2ZX0gZnJvbSAnLi4vbWFnaWMuZGlyZWN0aXZlJztcclxuXHJcblxyXG4vKipcclxuICogRGlyZWN0aXZlIGZvciBub24tY2hlY2tib3ggaW5wdXQgY29udHJvbHMgd2hpY2ggZG8gbm90IGhhdmUgYSBmb3JtIGNvbnRyb2xcclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG4gICAgICAgICAgICAgc2VsZWN0b3I6IGBpbnB1dFttYWdpY106KFtub0Zvcm1Db250cm9sXSk6bm90KFt0eXBlPWNoZWNrYm94XSksXHJcbiAgICAgICAgICAgICB0ZXh0YXJlYVttYWdpY106KFtub0Zvcm1Db250cm9sXSk6bm90KFt0eXBlPWNoZWNrYm94XSlgXHJcblxyXG59KVxyXG5leHBvcnQgY2xhc3MgSW5wdXROb0Zvcm1Db250cm9sTWFnaWNEaXJlY3RpdmUgIHtcclxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgbWFnaWNEaXJlY3RpdmU6IE1hZ2ljRGlyZWN0aXZlKSB7XHJcbiAgfVxyXG5cclxuXHJcbiAgLyoqXHJcbiAgICogSGFuZGxlcyB0aGUgJ2NoYW5nZScgZXZlbnQgLSBwYXNzIGl0IHRvIHRoZSBNYWdpYyBlbmdpbmVcclxuICAgKi9cclxuICBASG9zdExpc3RlbmVyKCdjaGFuZ2UnLCBbJyRldmVudCddKVxyXG4gIG9uQ2hhbmdlKCRldmVudCkge1xyXG4gICAgICB0aGlzLm1hZ2ljRGlyZWN0aXZlLnRhc2suc2V0SW5wdXRUZXh0VmFsdWUodGhpcy5tYWdpY0RpcmVjdGl2ZS5pZCxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLm1hZ2ljRGlyZWN0aXZlLnJvd0lkLFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICg8SFRNTElucHV0RWxlbWVudD5ldmVudC5zcmNFbGVtZW50KS52YWx1ZSlcclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,193 @@
1
+ import { Directive, ElementRef, Input, Renderer2, ViewContainerRef, Optional } from '@angular/core';
2
+ import { CommandType } from "@magic-xpa/gui";
3
+ import { getGuiEventObj } from "@magic-xpa/engine";
4
+ import { HtmlProperties } from "@magic-xpa/gui";
5
+ import { MagicDirective } from "../magic.directive";
6
+ import { TaskMagicService } from "../../../services/task.magics.service";
7
+ import { StylesMapManager } from "../../../services/StylesMapManager";
8
+ import { RowMagicDirective } from "./row.magic.directive";
9
+ import { Platform } from "@angular/cdk/platform";
10
+ import * as i0 from "@angular/core";
11
+ import * as i1 from "../../../services/task.magics.service";
12
+ import * as i2 from "@angular/cdk/platform";
13
+ import * as i3 from "./row.magic.directive";
14
+ export class NoControlMagicDirective extends MagicDirective {
15
+ set magic(val) { this.id = val; this.selector = 'magicnc'; }
16
+ ;
17
+ constructor(_task, element, renderer, vcRef, platform, magicRow) {
18
+ super(_task, element, renderer, vcRef, platform, magicRow);
19
+ }
20
+ regEvents() {
21
+ super.regEvents();
22
+ if (this.htmlElement instanceof HTMLSelectElement) {
23
+ this.htmlElement.addEventListener('change', (e) => {
24
+ let guiEvent = getGuiEventObj("selectionchanged", this.id, 0);
25
+ guiEvent.Value = (event.target).selectedIndex.toString();
26
+ this.task.insertEvent(guiEvent);
27
+ });
28
+ }
29
+ if (this.isRadio()) {
30
+ this.htmlElement.addEventListener('change', (e) => {
31
+ let guiEvent = getGuiEventObj("selectionchanged", this.id, 0);
32
+ guiEvent.Value = (e.target).value;
33
+ this.task.insertEvent(guiEvent);
34
+ });
35
+ }
36
+ if (this.isTabControl()) {
37
+ const tabControl = this.htmlElement.children[0];
38
+ let guiEvent = getGuiEventObj("selectionchanged", this.id, 0);
39
+ for (var i = 0; i < tabControl.children.length; i++) {
40
+ tabControl.children[i].addEventListener('click', (e) => {
41
+ guiEvent.Value = (e.currentTarget.getAttribute('layer') - 1).toString();
42
+ this.task.insertEvent(guiEvent);
43
+ });
44
+ }
45
+ }
46
+ }
47
+ isTabControl() {
48
+ return this.htmlElement instanceof HTMLDivElement &&
49
+ this.htmlElement.children[0].getAttribute('magicMark') === "magicTabControl";
50
+ }
51
+ isRadio() {
52
+ return this.htmlElement instanceof HTMLDivElement &&
53
+ this.htmlElement.children[0].getAttribute('magicMark') === "magicRadio";
54
+ }
55
+ handleCommand(command) {
56
+ super.handleCommand(command);
57
+ switch (command.CommandType) {
58
+ case CommandType.SET_CLASS:
59
+ const controlMetadata = this._task.Records.list[0].getControlMetadata(this.id);
60
+ if (controlMetadata.removedClass != '') {
61
+ this.htmlElement.classList.remove(controlMetadata.removedClass);
62
+ controlMetadata.removedClass = '';
63
+ }
64
+ this.htmlElement.classList.add(command.obj1);
65
+ break;
66
+ case CommandType.SET_VALUE:
67
+ if (this.htmlElement instanceof HTMLLabelElement)
68
+ this.htmlElement.innerText = command.value;
69
+ if (this.htmlElement instanceof HTMLSelectElement)
70
+ this.htmlElement.value = command.value;
71
+ if (this.htmlElement instanceof HTMLAnchorElement)
72
+ this.htmlElement.text = command.value;
73
+ if (this.htmlElement instanceof HTMLInputElement) {
74
+ if (this.htmlElement.type === "checkbox") {
75
+ this.htmlElement.checked = command.value;
76
+ }
77
+ else {
78
+ this.htmlElement.value = command.value;
79
+ }
80
+ }
81
+ if (this.htmlElement instanceof HTMLButtonElement) {
82
+ this.htmlElement.innerHTML = command.value;
83
+ }
84
+ break;
85
+ case CommandType.SET_PROPERTY:
86
+ this.handleSetProperty(command);
87
+ break;
88
+ case CommandType.SET_STYLE:
89
+ let value = StylesMapManager.magicValueGetStyle(command.Operation, command.obj1);
90
+ let attribute = StylesMapManager.MagicPropertyToHtmlAttributeMap.get(command.Operation);
91
+ this.htmlElement.setAttribute("style", attribute + ":" + value);
92
+ break;
93
+ }
94
+ }
95
+ handleSetProperty(command) {
96
+ super.handleSetProperty(command);
97
+ switch (command.Operation) {
98
+ case HtmlProperties.Text:
99
+ if (this.htmlElement instanceof HTMLLabelElement)
100
+ this.htmlElement.innerText = command.obj1;
101
+ break;
102
+ case HtmlProperties.Image:
103
+ if (this.htmlElement instanceof HTMLImageElement)
104
+ this.htmlElement.src = command.obj1;
105
+ else
106
+ this.htmlElement.setAttribute("src", command.obj1);
107
+ break;
108
+ case HtmlProperties.ItemsList:
109
+ if (this.htmlElement instanceof HTMLSelectElement) {
110
+ var len = this.htmlElement.length;
111
+ for (var i = len - 1; i >= 0; i--) {
112
+ this.htmlElement.remove(i);
113
+ }
114
+ for (let s of command.obj1) {
115
+ let elem = document.createElement("option");
116
+ elem.text = s.displayValue;
117
+ elem.value = s.index;
118
+ this.htmlElement.add(elem);
119
+ }
120
+ }
121
+ else if (this.isTabControl() && this.htmlElement.children.length > 0) {
122
+ const tabControl = this.htmlElement.children[0];
123
+ for (var i = 0; i < tabControl.children.length; i++) {
124
+ if (tabControl.children[i] instanceof HTMLButtonElement) {
125
+ tabControl.children[i].innerText = command.obj1[i].displayValue;
126
+ }
127
+ }
128
+ }
129
+ break;
130
+ case HtmlProperties.Visible:
131
+ this.htmlElement.setAttribute('style', 'visibility:' + (command.obj1 ? 'visible' : 'hidden'));
132
+ break;
133
+ case HtmlProperties.Enabled:
134
+ if (command.obj1 === false)
135
+ this.htmlElement.setAttribute("disabled", "true");
136
+ else
137
+ this.htmlElement.removeAttribute("disabled");
138
+ break;
139
+ case HtmlProperties.TabIndex:
140
+ this.htmlElement.setAttribute(command.Operation, command.obj1);
141
+ break;
142
+ case HtmlProperties.SelectedValue:
143
+ if (this.htmlElement instanceof HTMLSelectElement)
144
+ this.htmlElement.value = command.obj1;
145
+ else if (this.isTabControl() && this.htmlElement.children.length > 0) {
146
+ const tabControl = this.htmlElement.children[0];
147
+ for (var i = 0; i < tabControl.children.length; i++) {
148
+ let child = tabControl.children[i];
149
+ const layer = child.getAttribute('layer') - 1;
150
+ if (child instanceof HTMLButtonElement) {
151
+ if (layer == command.obj1) {
152
+ child.classList.add('tab_button_active');
153
+ }
154
+ else {
155
+ child.classList.remove('tab_button_active');
156
+ }
157
+ }
158
+ else {
159
+ let style = (layer == command.obj1) ? 'display: inline' : 'display: none';
160
+ child.setAttribute('style', style);
161
+ }
162
+ }
163
+ }
164
+ break;
165
+ case HtmlProperties.PlaceHolder:
166
+ this.htmlElement.setAttribute("placeholder", command.obj1);
167
+ break;
168
+ case HtmlProperties.Tooltip:
169
+ this.htmlElement.setAttribute("title", command.obj1);
170
+ break;
171
+ case HtmlProperties.Password:
172
+ if (command.obj1 === false)
173
+ this.htmlElement.setAttribute("type", "text");
174
+ else
175
+ this.htmlElement.setAttribute("type", "password");
176
+ break;
177
+ }
178
+ }
179
+ static ɵfac = function NoControlMagicDirective_Factory(t) { return new (t || NoControlMagicDirective)(i0.ɵɵdirectiveInject(i1.TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i0.Renderer2), i0.ɵɵdirectiveInject(i0.ViewContainerRef), i0.ɵɵdirectiveInject(i2.Platform), i0.ɵɵdirectiveInject(i3.RowMagicDirective, 8)); };
180
+ static ɵdir = i0.ɵɵdefineDirective({ type: NoControlMagicDirective, selectors: [["", "magicnc", ""]], inputs: { magic: [i0.ɵɵInputFlags.None, "magicnc", "magic"] }, features: [i0.ɵɵInheritDefinitionFeature] });
181
+ }
182
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(NoControlMagicDirective, [{
183
+ type: Directive,
184
+ args: [{
185
+ selector: '[magicnc]'
186
+ }]
187
+ }], () => [{ type: i1.TaskMagicService }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ViewContainerRef }, { type: i2.Platform }, { type: i3.RowMagicDirective, decorators: [{
188
+ type: Optional
189
+ }] }], { magic: [{
190
+ type: Input,
191
+ args: ['magicnc']
192
+ }] }); })();
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9jb250cm9sLm1hZ2ljLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL2RpcmVjdGl2ZXMvbWFnaWMvbm9jb250cm9sLm1hZ2ljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRyxPQUFPLEVBQUMsV0FBVyxFQUFhLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkQsT0FBTyxFQUFZLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBRTVELE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTyxnQkFBZ0IsQ0FBQztBQUMvQyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sb0JBQW9CLENBQUM7QUFDbEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sb0NBQW9DLENBQUM7QUFDcEUsT0FBTyxFQUFDLGlCQUFpQixFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDeEQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLHVCQUF1QixDQUFDOzs7OztBQVMvQyxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsY0FBYztJQUV6RCxJQUFzQixLQUFLLENBQUMsR0FBRyxJQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsQ0FBQSxDQUFDO0lBQUEsQ0FBQztJQUU3RSxZQUNFLEtBQTBCLEVBQzFCLE9BQW9CLEVBQ3BCLFFBQW1CLEVBQ25CLEtBQTBCLEVBQzFCLFFBQWtCLEVBQ04sUUFBMkI7UUFDdkMsS0FBSyxDQUFDLEtBQUssRUFBRSxPQUFP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LENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckQsTUFBTTtZQUVSLEtBQUssY0FBYyxDQUFDLFFBQVE7Z0JBQzFCLElBQUksT0FBTyxDQUFDLElBQUksS0FBSyxLQUFLO29CQUN4QixJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7O29CQUU5QyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3BELE1BQU07UUFDVixDQUFDO0lBQ0gsQ0FBQztpRkFyTlUsdUJBQXVCOytDQUF2Qix1QkFBdUI7O2lGQUF2Qix1QkFBdUI7Y0FKbkMsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxXQUFXO2FBQ3RCOztzQkFZSSxRQUFRO3FCQVJXLEtBQUs7a0JBQTFCLEtBQUs7bUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCwgUmVuZGVyZXIyLCBWaWV3Q29udGFpbmVyUmVmLCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29tbWFuZFR5cGUsIEd1aUNvbW1hbmR9IGZyb20gXCJAbWFnaWMteHBhL2d1aVwiO1xyXG5pbXBvcnQge0lHdWlFdmVudCwgZ2V0R3VpRXZlbnRPYmp9IGZyb20gXCJAbWFnaWMteHBhL2VuZ2luZVwiO1xyXG5pbXBvcnQge0NvbnRyb2xNZXRhZGF0YX0gZnJvbSBcIi4uLy4uLy4uL2NvbnRyb2xzLm1ldGFkYXRhLm1vZGVsXCI7XHJcbmltcG9ydCB7SHRtbFByb3BlcnRpZXN9IGZyb20gIFwiQG1hZ2ljLXhwYS9ndWlcIjtcclxuaW1wb3J0IHtNYWdpY0RpcmVjdGl2ZX0gZnJvbSBcIi4uL21hZ2ljLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge1Rhc2tNYWdpY1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy90YXNrLm1hZ2ljcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7U3R5bGVzTWFwTWFuYWdlcn0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL1N0eWxlc01hcE1hbmFnZXJcIjtcclxuaW1wb3J0IHtSb3dNYWdpY0RpcmVjdGl2ZX0gZnJvbSBcIi4vcm93Lm1hZ2ljLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge1BsYXRmb3JtfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BsYXRmb3JtXCI7XHJcblxyXG4vKipcclxuICogQGlnbm9yZVxyXG4gKi9cclxuQERpcmVjdGl2ZSh7XHJcbiAgc2VsZWN0b3I6ICdbbWFnaWNuY10nXHJcbn0pXHJcblxyXG5leHBvcnQgY2xhc3MgTm9Db250cm9sTWFnaWNEaXJlY3RpdmUgZXh0ZW5kcyBNYWdpY0RpcmVjdGl2ZSB7XHJcblxyXG4gIEBJbnB1dCgnbWFnaWNuYycpIHNldCBtYWdpYyh2YWwpIHt0aGlzLmlkID0gdmFsOyB0aGlzLnNlbGVjdG9yID0gJ21hZ2ljbmMnO307XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgX3Rhc2sgICA6IFRhc2tNYWdpY1NlcnZpY2UsXHJcbiAgICBlbGVtZW50IDogRWxlbWVudFJlZixcclxuICAgIHJlbmRlcmVyOiBSZW5kZXJlcjIsXHJcbiAgICB2Y1JlZiAgIDogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHBsYXRmb3JtOiBQbGF0Zm9ybSxcclxuICAgIEBPcHRpb25hbCgpIG1hZ2ljUm93OiBSb3dNYWdpY0RpcmVjdGl2ZSkge1xyXG4gICAgc3VwZXIoX3Rhc2ssIGVsZW1lbnQsIHJlbmRlcmVyLCAgdmNSZWYsIHBsYXRmb3JtLCBtYWdpY1Jvdyk7XHJcbiAgfVxyXG5cclxuICByZWdFdmVudHMoKSB7XHJcbiAgc3VwZXIucmVnRXZlbnRzKClcclxuXHJcbiAgICBpZiAodGhpcy5odG1sRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxTZWxlY3RFbGVtZW50KSB7XHJcbiAgICAgIHRoaXMuaHRtbEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhbmdlJywgKGUpID0+IHtcclxuICAgICAgICBsZXQgZ3VpRXZlbnQ6IElHdWlFdmVudCA9IGdldEd1aUV2ZW50T2JqKFwic2VsZWN0aW9uY2hhbmdlZFwiLCB0aGlzLmlkLCAwKTtcclxuICAgICAgICBndWlFdmVudC5WYWx1ZSA9ICg8YW55PihldmVudC50YXJnZXQpKS5zZWxlY3RlZEluZGV4LnRvU3RyaW5nKClcclxuICAgICAgICB0aGlzLnRhc2suaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5pc1JhZGlvKCkpIHtcclxuICAgICAgdGhpcy5odG1sRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCAoZSkgPT4ge1xyXG4gICAgICAgIGxldCBndWlFdmVudDogSUd1aUV2ZW50ID0gZ2V0R3VpRXZlbnRPYmooXCJzZWxlY3Rpb25jaGFuZ2VkXCIsIHRoaXMuaWQsIDApO1xyXG4gICAgICAgIGd1aUV2ZW50LlZhbHVlID0gKDxhbnk+KGUudGFyZ2V0KSkudmFsdWU7XHJcbiAgICAgICAgdGhpcy50YXNrLmluc2VydEV2ZW50KGd1aUV2ZW50KTtcclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYodGhpcy5pc1RhYkNvbnRyb2woKSkge1xyXG4gICAgICAgIGNvbnN0IHRhYkNvbnRyb2wgPSB0aGlzLmh0bWxFbGVtZW50LmNoaWxkcmVuWzBdO1xyXG4gICAgICAgIGxldCBndWlFdmVudDogSUd1aUV2ZW50ID0gZ2V0R3VpRXZlbnRPYmooXCJzZWxlY3Rpb25jaGFuZ2VkXCIsIHRoaXMuaWQsIDApO1xyXG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFiQ29udHJvbC5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgdGFiQ29udHJvbC5jaGlsZHJlbltpXS5hZGRFdmVudExpc3RlbmVyKCdjbGljaycsIChlKSA9PiB7XHJcbiAgICAgICAgICAgIGd1aUV2ZW50LlZhbHVlID0gKCg8bnVtYmVyPjxhbnk+KDxFbGVtZW50PmUuY3VycmVudFRhcmdldCkuZ2V0QXR0cmlidXRlKCdsYXllcicpKS0xKS50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB0aGlzLnRhc2suaW5zZXJ0RXZlbnQoZ3VpRXZlbnQpO1xyXG4gICAgICAgICAgfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gaXMgdGhlIGRpdiBhIHRhYiBjb250cm9sXHJcbiAgaXNUYWJDb250cm9sKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHRtbEVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRGl2RWxlbWVudCAmJlxyXG4gICAgICB0aGlzLmh0bWxFbGVtZW50LmNoaWxkcmVuWzBdLmdldEF0dHJpYnV0ZSgnbWFnaWNNYXJrJyk9PT0gXCJtYWdpY1RhYkNvbnRyb2xcIjtcclxuICB9XHJcblxyXG4gIC8vIGlzIHRoZSBkaXYgYSByYWRpbyBidXR0b25zIHdyYXBwZXJcclxuICBpc1JhZGlvKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHRtbEVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRGl2RWxlbWVudCAmJlxyXG4gICAgICB0aGlzLmh0bWxFbGVtZW50LmNoaWxkcmVuWzBdLmdldEF0dHJpYnV0ZSgnbWFnaWNNYXJrJykgPT09IFwibWFnaWNSYWRpb1wiO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlQ29tbWFuZChjb21tYW5kOiBHdWlDb21tYW5kKSB7XHJcbiAgICBzdXBlci5oYW5kbGVDb21tYW5kKGNvbW1hbmQpO1xyXG5cclxuICAgIHN3aXRjaCAoY29tbWFuZC5Db21tYW5kVHlwZSkge1xyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLlNFVF9DTEFTUzpcclxuICAgICAgICAvL3JlbW92ZSB0aGUgY2xhc3Mgd2hpY2ggd2FzIHJlcGxhY2VkIGJ5IHRoaXMgbmV3IG9uZSwgYXMgcmVnaXN0ZXJlZCBpbiB0aGUgQ29udHJvbE1ldGFkYXRhXHJcbiAgICAgICAgY29uc3QgY29udHJvbE1ldGFkYXRhOkNvbnRyb2xNZXRhZGF0YSA9IHRoaXMuX3Rhc2suUmVjb3Jkcy5saXN0WzBdLmdldENvbnRyb2xNZXRhZGF0YSh0aGlzLmlkKTtcclxuICAgICAgICBpZihjb250cm9sTWV0YWRhdGEucmVtb3ZlZENsYXNzICE9ICcnKSB7XHJcbiAgICAgICAgICB0aGlzLmh0bWxFbGVtZW50LmNsYXNzTGlzdC5yZW1vdmUoY29udHJvbE1ldGFkYXRhLnJlbW92ZWRDbGFzcyk7XHJcbiAgICAgICAgICBjb250cm9sTWV0YWRhdGEucmVtb3ZlZENsYXNzID0gJyc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuaHRtbEVsZW1lbnQuY2xhc3NMaXN0LmFkZChjb21tYW5kLm9iajEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSAgQ29tbWFuZFR5cGUuU0VUX1ZBTFVFOlxyXG4gICAgICAgIGlmICh0aGlzLmh0bWxFbGVtZW50IGluc3RhbmNlb2YgSFRNTExhYmVsRWxlbWVudClcclxuICAgICAgICAgICg8SFRNTExhYmVsRWxlbWVudD50aGlzLmh0bWxFbGVtZW50KS5pbm5lclRleHQgPSBjb21tYW5kLnZhbHVlO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5odG1sRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxTZWxlY3RFbGVtZW50KVxyXG4gICAgICAgICAgKDxIVE1MU2VsZWN0RWxlbWVudD50aGlzLmh0bWxFbGVtZW50KS52YWx1ZSA9IGNvbW1hbmQudmFsdWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmh0bWxFbGVtZW50IGluc3RhbmNlb2YgSFRNTEFuY2hvckVsZW1lbnQpIC8vaHlwZXItdGV4dCBidXR0b25cclxuICAgICAgICAgICg8SFRNTEFuY2hvckVsZW1lbnQ+dGhpcy5odG1sRWxlbWVudCkudGV4dCA9IGNvbW1hbmQudmFsdWU7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmh0bWxFbGVtZW50IGluc3RhbmNlb2YgSFRNTElucHV0RWxlbWVudClcclxuICAgICAgICB7XHJcbiAgICAgICAgICBpZigoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5odG1sRWxlbWVudCkudHlwZSA9PT0gXCJjaGVja2JveFwiKSB7XHJcbiAgICAgICAgICAgICg8SFRNTElucHV0RWxlbWVudD50aGlzLmh0bWxFbGVtZW50KS5jaGVja2VkID0gY29tbWFuZC52YWx1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAoPEhUTUxJbnB1dEVsZW1lbnQ+dGhpcy5odG1sRWxlbWVudCkudmFsdWUgPSBjb21tYW5kLnZhbHVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgaWYgKHRoaXMuaHRtbEVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MQnV0dG9uRWxlbWVudClcclxuICAgICAgICB7XHJcbiAgICAgICAgICAoPEhUTUxCdXR0b25FbGVtZW50PnRoaXMuaHRtbEVsZW1lbnQpLmlubmVySFRNTCA9IGNvbW1hbmQudmFsdWU7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgQ29tbWFuZFR5cGUuU0VUX1BST1BFUlRZOlxyXG4gICAgICAgIHRoaXMuaGFuZGxlU2V0UHJvcGVydHkoY29tbWFuZCk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIENvbW1hbmRUeXBlLlNFVF9TVFlMRTpcclxuICAgICAgICBsZXQgdmFsdWU6IHN0cmluZyA9IFN0eWxlc01hcE1hbmFnZXIubWFnaWNWYWx1ZUdldFN0eWxlKGNvbW1hbmQuT3BlcmF0aW9uLCBjb21tYW5kLm9iajEpO1xyXG4gICAgICAgIGxldCBhdHRyaWJ1dGU6IHN0cmluZyA9IFN0eWxlc01hcE1hbmFnZXIuTWFnaWNQcm9wZXJ0eVRvSHRtbEF0dHJpYnV0ZU1hcC5nZXQoY29tbWFuZC5PcGVyYXRpb24pO1xyXG4gICAgICAgIHRoaXMuaHRtbEVsZW1lbnQuc2V0QXR0cmlidXRlKFwic3R5bGVcIiwgYXR0cmlidXRlICsgXCI6XCIgKyB2YWx1ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gaGFuZGxlIHNldC1wcm9wZXJ0eSBjb21tYW5kc1xyXG4gIGhhbmRsZVNldFByb3BlcnR5KGNvbW1hbmQ6IEd1aUNvbW1hbmQpIHtcclxuICAgIHN1cGVyLmhhbmRsZVNldFByb3BlcnR5KGNvbW1hbmQpO1xyXG4gICAgc3dpdGNoIChjb21tYW5kLk9wZXJhdGlvbikge1xyXG4gICAgICBjYXNlIEh0bWxQcm9wZXJ0aWVzLlRleHQ6XHJcbiAgICAgICAgaWYgKHRoaXMuaHRtbEVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MTGFiZWxFbGVtZW50KVxyXG4gICAgICAgICAgKDxIVE1MTGFiZWxFbGVtZW50PnRoaXMuaHRtbEVsZW1lbnQpLmlubmVyVGV4dCA9IGNvbW1hbmQub2JqMTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEh0bWxQcm9wZXJ0aWVzLkltYWdlOlxyXG4gICAgICAgIGlmICh0aGlzLmh0bWxFbGVtZW50IGluc3RhbmNlb2YgSFRNTEltYWdlRWxlbWVudClcclxuICAgICAgICAgICg8SFRNTEltYWdlRWxlbWVudD50aGlzLmh0bWxFbGVtZW50KS5zcmMgPSBjb21tYW5kLm9iajE7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5odG1sRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJzcmNcIiwgY29tbWFuZC5vYmoxKTtcclxuXHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEh0bWxQcm9wZXJ0aWVzLkl0ZW1zTGlzdDpcclxuICAgICAgICBpZiAodGhpcy5odG1sRWxlbWVudCBpbnN0YW5jZW9mIEhUTUxTZWxlY3RFbGVtZW50KSB7XHJcblxyXG4gICAgICAgICAgLy8gY2xlYXIgdGhlIGxpc3RcclxuICAgICAgICAgIHZhciBsZW4gPSB0aGlzLmh0bWxFbGVtZW50Lmxlbmd0aDtcclxuICAgICAgICAgIGZvciAodmFyIGkgPSBsZW4gLSAxOyBpID49IDA7IGktLSkge1xyXG4gICAgICAgICAgICB0aGlzLmh0bWxFbGVtZW50LnJlbW92ZShpKTtcclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICBmb3IgKGxldCBzIG9mIGNvbW1hbmQub2JqMSkge1xyXG4gICAgICAgICAgICBsZXQgZWxlbSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJvcHRpb25cIik7XHJcbiAgICAgICAgICAgIGVsZW0udGV4dCA9IHMuZGlzcGxheVZhbHVlO1xyXG4gICAgICAgICAgICBlbGVtLnZhbHVlID0gcy5pbmRleDtcclxuICAgICAgICAgICAgKDxIVE1MU2VsZWN0RWxlbWVudD50aGlzLmh0bWxFbGVtZW50KS5hZGQoZWxlbSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYodGhpcy5pc1RhYkNvbnRyb2woKSAmJiB0aGlzLmh0bWxFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgIGNvbnN0IHRhYkNvbnRyb2wgPSB0aGlzLmh0bWxFbGVtZW50LmNoaWxkcmVuWzBdO1xyXG5cclxuICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgdGFiQ29udHJvbC5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBpZih0YWJDb250cm9sLmNoaWxkcmVuW2ldIGluc3RhbmNlb2YgSFRNTEJ1dHRvbkVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAoPEhUTUxFbGVtZW50PnRhYkNvbnRyb2wuY2hpbGRyZW5baV0pLmlubmVyVGV4dCA9IGNvbW1hbmQub2JqMVtpXS5kaXNwbGF5VmFsdWU7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEh0bWxQcm9wZXJ0aWVzLlZpc2libGU6XHJcbiAgICAgICAgdGhpcy5odG1sRWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3N0eWxlJywgJ3Zpc2liaWxpdHk6JyArIChjb21tYW5kLm9iajEgPyAndmlzaWJsZScgOiAnaGlkZGVuJykpO1xyXG4gICAgICAgIGJyZWFrO1xyXG5cclxuICAgICAgY2FzZSBIdG1sUHJvcGVydGllcy5FbmFibGVkOlxyXG4gICAgICAgIGlmIChjb21tYW5kLm9iajEgPT09IGZhbHNlKVxyXG4gICAgICAgICAgdGhpcy5odG1sRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiLCBcInRydWVcIik7XHJcbiAgICAgICAgZWxzZVxyXG4gICAgICAgICAgdGhpcy5odG1sRWxlbWVudC5yZW1vdmVBdHRyaWJ1dGUoXCJkaXNhYmxlZFwiKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgSHRtbFByb3BlcnRpZXMuVGFiSW5kZXg6XHJcbiAgICAgICAgdGhpcy5odG1sRWxlbWVudC5zZXRBdHRyaWJ1dGUoY29tbWFuZC5PcGVyYXRpb24sIGNvbW1hbmQub2JqMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEh0bWxQcm9wZXJ0aWVzLlNlbGVjdGVkVmFsdWU6XHJcbiAgICAgICAgaWYgKHRoaXMuaHRtbEVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MU2VsZWN0RWxlbWVudClcclxuICAgICAgICAgICg8SFRNTFNlbGVjdEVsZW1lbnQ+dGhpcy5odG1sRWxlbWVudCkudmFsdWUgPSBjb21tYW5kLm9iajE7XHJcbiAgICAgICAgZWxzZSBpZih0aGlzLmlzVGFiQ29udHJvbCgpICAmJiB0aGlzLmh0bWxFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDApe1xyXG4gICAgICAgICAgY29uc3QgdGFiQ29udHJvbCA9IHRoaXMuaHRtbEVsZW1lbnQuY2hpbGRyZW5bMF07XHJcblxyXG4gICAgICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCB0YWJDb250cm9sLmNoaWxkcmVuLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgICAgICAgIGxldCBjaGlsZCA9IHRhYkNvbnRyb2wuY2hpbGRyZW5baV07XHJcbiAgICAgICAgICAgIGNvbnN0IGxheWVyID0gKDxudW1iZXI+PGFueT5jaGlsZC5nZXRBdHRyaWJ1dGUoJ2xheWVyJykpLTE7XHJcblxyXG4gICAgICAgICAgICBpZihjaGlsZCBpbnN0YW5jZW9mIEhUTUxCdXR0b25FbGVtZW50KSB7XHJcbiAgICAgICAgICAgICAgLy8gc2V0IGJ1dHRvbiBzdHlsZVxyXG4gICAgICAgICAgICAgIGlmICggbGF5ZXIgPT0gY29tbWFuZC5vYmoxKSB7IC8vIGNvbXBhcmUgaW50IHRvIHN0cmluZ1xyXG4gICAgICAgICAgICAgICAgY2hpbGQuY2xhc3NMaXN0LmFkZCgndGFiX2J1dHRvbl9hY3RpdmUnKTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgICAgICBjaGlsZC5jbGFzc0xpc3QucmVtb3ZlKCd0YWJfYnV0dG9uX2FjdGl2ZScpO1xyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAvLyBub3QgYSBidXRvbiAtIGhpZGUgdW5zZWxlY3RlZCB0YWJwYWdlc1xyXG4gICAgICAgICAgICAgIGxldCBzdHlsZSA9IChsYXllciA9PSBjb21tYW5kLm9iajEpID8gJ2Rpc3BsYXk6IGlubGluZScgOiAnZGlzcGxheTogbm9uZSc7XHJcbiAgICAgICAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCdzdHlsZScsICBzdHlsZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEh0bWxQcm9wZXJ0aWVzLlBsYWNlSG9sZGVyOlxyXG4gICAgICAgIHRoaXMuaHRtbEVsZW1lbnQuc2V0QXR0cmlidXRlKFwicGxhY2Vob2xkZXJcIiwgY29tbWFuZC5vYmoxKTtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICAgIGNhc2UgSHRtbFByb3BlcnRpZXMuVG9vbHRpcDpcclxuICAgICAgICB0aGlzLmh0bWxFbGVtZW50LnNldEF0dHJpYnV0ZShcInRpdGxlXCIsIGNvbW1hbmQub2JqMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcblxyXG4gICAgICBjYXNlIEh0bWxQcm9wZXJ0aWVzLlBhc3N3b3JkOlxyXG4gICAgICAgIGlmIChjb21tYW5kLm9iajEgPT09IGZhbHNlKVxyXG4gICAgICAgICAgdGhpcy5odG1sRWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJ0eXBlXCIsIFwidGV4dFwiKTtcclxuICAgICAgICBlbHNlXHJcbiAgICAgICAgICB0aGlzLmh0bWxFbGVtZW50LnNldEF0dHJpYnV0ZShcInR5cGVcIiwgXCJwYXNzd29yZFwiKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIl19
@@ -0,0 +1,62 @@
1
+ import { Directive, ElementRef, HostListener, Input } from "@angular/core";
2
+ import { TaskMagicService } from "../../../services/task.magics.service";
3
+ import { getGuiEventObj } from "@magic-xpa/engine";
4
+ import { filter } from "rxjs/operators";
5
+ import { MagicDirective } from "../../directives/magic.directive";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../../services/task.magics.service";
8
+ export class RowMagicDirective {
9
+ _task;
10
+ element;
11
+ rowId;
12
+ htmlElement;
13
+ rowChangedSubscriber = null;
14
+ constructor(_task, element) {
15
+ this._task = _task;
16
+ this.element = element;
17
+ this.htmlElement = this.element.nativeElement;
18
+ }
19
+ ngOnInit() {
20
+ this.rowChangedSubscriber = this._task
21
+ .OnSelectedRowChanged.pipe(filter(rowId => rowId === this.rowId))
22
+ .subscribe(rowId => {
23
+ if (!this.isInView(this.htmlElement))
24
+ this.htmlElement.scrollIntoView();
25
+ });
26
+ }
27
+ isInView(element) {
28
+ const rect = element.getBoundingClientRect();
29
+ const parentRect = element.parentElement.getBoundingClientRect();
30
+ return (rect.top >= parentRect.top &&
31
+ rect.bottom <= parentRect.bottom);
32
+ }
33
+ ngOnDestroy() {
34
+ if (this.rowChangedSubscriber !== null) {
35
+ this.rowChangedSubscriber.unsubscribe();
36
+ }
37
+ }
38
+ onClick($event) {
39
+ if (this.rowId != '') {
40
+ this._task.insertEvent(getGuiEventObj('click', "magicRow", +this.rowId));
41
+ if (MagicDirective.noOfAutoCompleteBoxesOpened < 1)
42
+ event.cancelBubble = true;
43
+ }
44
+ }
45
+ static ɵfac = function RowMagicDirective_Factory(t) { return new (t || RowMagicDirective)(i0.ɵɵdirectiveInject(i1.TaskMagicService), i0.ɵɵdirectiveInject(i0.ElementRef)); };
46
+ static ɵdir = i0.ɵɵdefineDirective({ type: RowMagicDirective, selectors: [["", "magicRow", ""]], hostBindings: function RowMagicDirective_HostBindings(rf, ctx) { if (rf & 1) {
47
+ i0.ɵɵlistener("click", function RowMagicDirective_click_HostBindingHandler($event) { return ctx.onClick($event); });
48
+ } }, inputs: { rowId: [i0.ɵɵInputFlags.None, "magicRow", "rowId"] } });
49
+ }
50
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(RowMagicDirective, [{
51
+ type: Directive,
52
+ args: [{
53
+ selector: '[magicRow]'
54
+ }]
55
+ }], () => [{ type: i1.TaskMagicService }, { type: i0.ElementRef }], { rowId: [{
56
+ type: Input,
57
+ args: ['magicRow']
58
+ }], onClick: [{
59
+ type: HostListener,
60
+ args: ['click', ['$event']]
61
+ }] }); })();
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93Lm1hZ2ljLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FuZ3VsYXIvc3JjL3VpL2RpcmVjdGl2ZXMvbWFnaWMvcm93Lm1hZ2ljLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUN2RSxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXhDLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQTs7O0FBVS9ELE1BQU0sT0FBTyxpQkFBaUI7SUFjaEI7SUFDQTtJQWRPLEtBQUssQ0FBUztJQUt2QixXQUFXLENBQWM7SUFLM0Isb0JBQW9CLEdBQWlCLElBQUksQ0FBQztJQUVsRCxZQUNZLEtBQXdCLEVBQ3hCLE9BQW1CO1FBRG5CLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFHN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUNoRCxDQUFDO0lBS0QsUUFBUTtRQUNOLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsS0FBSzthQUNuQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNoRSxTQUFTLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2dCQUNsQyxJQUFJLENBQUMsV0FBVyxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3RDLENBQUMsQ0FDRixDQUFDO0lBQ04sQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUFPO1FBQ3RCLE1BQU0sSUFBSSxHQUFHLE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdDLE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUNqRSxPQUFPLENBQ0wsSUFBSSxDQUFDLEdBQUcsSUFBSSxVQUFVLENBQUMsR0FBRztZQUMxQixJQUFJLENBQUMsTUFBTSxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQ2pDLENBQUM7SUFDSixDQUFDO0lBS0QsV0FBVztRQU9ULElBQUksSUFBSSxDQUFDLG9CQUFvQixLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUMxQyxDQUFDO0lBQ0gsQ0FBQztJQUdELE9BQU8sQ0FBQyxNQUFNO1FBQ1osSUFBRyxJQUFJLENBQUMsS0FBSyxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLGNBQWMsQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekUsSUFBSSxjQUFjLENBQUMsMkJBQTJCLEdBQUcsQ0FBQztnQkFDaEQsS0FBSyxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDOUIsQ0FBQztJQUNILENBQUM7MkVBakVVLGlCQUFpQjsrQ0FBakIsaUJBQWlCO1lBQWpCLDRGQUFBLG1CQUFlLElBQUU7OztpRkFBakIsaUJBQWlCO2NBTDVCLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsWUFBWTthQUN2QjswRUFJbUIsS0FBSztrQkFBdkIsS0FBSzttQkFBQyxVQUFVO1lBMERqQixPQUFPO2tCQUROLFlBQVk7bUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge1Rhc2tNYWdpY1NlcnZpY2V9IGZyb20gXCIuLi8uLi8uLi9zZXJ2aWNlcy90YXNrLm1hZ2ljcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7Z2V0R3VpRXZlbnRPYmp9IGZyb20gXCJAbWFnaWMteHBhL2VuZ2luZVwiO1xyXG5pbXBvcnQgeyBmaWx0ZXIgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anMvUnhcIjtcclxuaW1wb3J0IHtNYWdpY0RpcmVjdGl2ZX0gZnJvbSBcIi4uLy4uL2RpcmVjdGl2ZXMvbWFnaWMuZGlyZWN0aXZlXCJcclxuXHJcbi8qKlxyXG4gKiBAaWdub3JlXHJcbiAqL1xyXG4gQERpcmVjdGl2ZSh7XHJcbiAgIHNlbGVjdG9yOiAnW21hZ2ljUm93XSdcclxuIH0pXHJcblxyXG5cclxuZXhwb3J0IGNsYXNzIFJvd01hZ2ljRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3l7XHJcbiAgQElucHV0KCdtYWdpY1JvdycpIHJvd0lkOiBzdHJpbmc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBIVE1MIGVsZW1lbnQgY29ubmVjdGVkIHRvIHRoaXMgZGlyZWN0aXZlXHJcbiAgICovXHJcbiAgcHJvdGVjdGVkIGh0bWxFbGVtZW50OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgLyoqXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIHByaXZhdGUgcm93Q2hhbmdlZFN1YnNjcmliZXI6IFN1YnNjcmlwdGlvbiA9IG51bGw7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJvdGVjdGVkIF90YXNrIDogVGFza01hZ2ljU2VydmljZSxcclxuICAgIHByb3RlY3RlZCBlbGVtZW50OiBFbGVtZW50UmVmXHJcbiAgKVxyXG4gIHtcclxuICAgIHRoaXMuaHRtbEVsZW1lbnQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEluaXRpYWxpemVzIHRoaXMgb2JqZWN0XHJcbiAgICovXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnJvd0NoYW5nZWRTdWJzY3JpYmVyID0gdGhpcy5fdGFza1xyXG4gICAgICAuT25TZWxlY3RlZFJvd0NoYW5nZWQucGlwZShmaWx0ZXIocm93SWQgPT4gcm93SWQgPT09IHRoaXMucm93SWQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHJvd0lkID0+IHtcclxuICAgICAgICAgIGlmICghdGhpcy5pc0luVmlldyh0aGlzLmh0bWxFbGVtZW50KSlcclxuICAgICAgICAgICAgdGhpcy5odG1sRWxlbWVudC5zY3JvbGxJbnRvVmlldygpO1xyXG4gICAgICAgIH1cclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaXNJblZpZXcoZWxlbWVudCk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgcmVjdCA9IGVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICBjb25zdCBwYXJlbnRSZWN0ID0gZWxlbWVudC5wYXJlbnRFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gICAgcmV0dXJuIChcclxuICAgICAgcmVjdC50b3AgPj0gcGFyZW50UmVjdC50b3AgJiZcclxuICAgICAgcmVjdC5ib3R0b20gPD0gcGFyZW50UmVjdC5ib3R0b21cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhbnVwXHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICAvLyBEb24ndCBrbm93IHdoeSwgYnV0IHdoZW4gdGhlIHRhYmxlIGlzIGxvYWRlZCBmb3IgdGhlIGZpcnN0IHRpbWUsIHdlXHJcbiAgICAvLyBnZXQgbmdPbkluaXQoKSBmb3IgdGhlIDFzdCByb3cgKHJvd0lkID0gXCIwXCIpIGFuZCB0aGVuIG5nT25EZXN0cm95KClcclxuICAgIC8vIGZvciBudW1iZXIgb2Ygcm93cyBpbiB0aGUgcGFnZSBidXQgaGVyZSB0aGlzLnJvd0lkIGlzIHVuZGVmaW5lZC5cclxuICAgIC8vIFNpbmNlIG5nT25Jbml0KCkgd2FzIG5vdCBjYWxsZWQgZm9yIGFsbCB0aGVzZSByb3dzLCB0aGlzLnJvd0NoYW5nZWRTdWJzY3JpYmVyXHJcbiAgICAvLyBpcyBudWxsIGFuZCBoZW5jZSBjcmFzaGVzLlxyXG4gICAgLy8gU28sIHRoZSBjb25kaXRpb24gdG8gY2hlY2sgbnVsaXR5IGlzIGFkZGVkLlxyXG4gICAgaWYgKHRoaXMucm93Q2hhbmdlZFN1YnNjcmliZXIgIT09IG51bGwpIHtcclxuICAgICAgdGhpcy5yb3dDaGFuZ2VkU3Vic2NyaWJlci51bnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soJGV2ZW50KSB7XHJcbiAgICBpZih0aGlzLnJvd0lkICE9ICcnKSB7XHJcbiAgICAgIHRoaXMuX3Rhc2suaW5zZXJ0RXZlbnQoZ2V0R3VpRXZlbnRPYmooJ2NsaWNrJywgXCJtYWdpY1Jvd1wiLCArdGhpcy5yb3dJZCkpO1xyXG4gICAgICBpZiAoTWFnaWNEaXJlY3RpdmUubm9PZkF1dG9Db21wbGV0ZUJveGVzT3BlbmVkIDwgMSlcclxuICAgICAgICBldmVudC5jYW5jZWxCdWJibGUgPSB0cnVlO1xyXG4gICAgfVxyXG4gIH1cclxuIH1cclxuIl19
@@ -0,0 +1,20 @@
1
+ import { Directive, ElementRef } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ export class MagicFocusDirective {
4
+ hostElement;
5
+ constructor(hostElement) {
6
+ this.hostElement = hostElement;
7
+ }
8
+ ngAfterViewInit() {
9
+ this.hostElement.nativeElement.focus();
10
+ }
11
+ static ɵfac = function MagicFocusDirective_Factory(t) { return new (t || MagicFocusDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
12
+ static ɵdir = i0.ɵɵdefineDirective({ type: MagicFocusDirective, selectors: [["", "magicFocus", ""]] });
13
+ }
14
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(MagicFocusDirective, [{
15
+ type: Directive,
16
+ args: [{
17
+ selector: '[magicFocus]'
18
+ }]
19
+ }], () => [{ type: i0.ElementRef }], null); })();
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFnaWMtZm9jdXMuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdWkvZGlyZWN0aXZlcy9tYWdpYy1mb2N1cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBUXRELE1BQU0sT0FBTyxtQkFBbUI7SUFFVjtJQUFwQixZQUFvQixXQUF1QjtRQUF2QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtJQUFHLENBQUM7SUFDL0MsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pDLENBQUM7NkVBTFUsbUJBQW1COytDQUFuQixtQkFBbUI7O2lGQUFuQixtQkFBbUI7Y0FIL0IsU0FBUztlQUFDO2dCQUNULFFBQVEsRUFBRSxjQUFjO2FBQ3pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuLyoqXG4gKiBEaXJlY3RpdmUgZm9yIHNldHRpbmcgZm9jdXMgb24gZWxlbWVudFxuICovXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbbWFnaWNGb2N1c10nXG59KVxuZXhwb3J0IGNsYXNzIE1hZ2ljRm9jdXNEaXJlY3RpdmUgIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGhvc3RFbGVtZW50OiBFbGVtZW50UmVmKSB7fVxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5ob3N0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gIH1cblxufVxuIl19