imm-element-ui 0.0.1

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 (149) hide show
  1. package/README.md +24 -0
  2. package/esm2022/imm-element-ui.mjs +5 -0
  3. package/esm2022/lib/am/am.component.mjs +502 -0
  4. package/esm2022/lib/crumb-action/crumb-action.component.mjs +127 -0
  5. package/esm2022/lib/form/form/form.component.mjs +217 -0
  6. package/esm2022/lib/form/form-field/field-control.mjs +19 -0
  7. package/esm2022/lib/form/form-field/field-utils.mjs +227 -0
  8. package/esm2022/lib/form/form-field/form-field.mjs +129 -0
  9. package/esm2022/lib/form/form-field/form-type.mjs +123 -0
  10. package/esm2022/lib/form/form-field/label.directive.mjs +62 -0
  11. package/esm2022/lib/form/form-type/autocomplete.type.mjs +200 -0
  12. package/esm2022/lib/form/form-type/codemirror.type.mjs +167 -0
  13. package/esm2022/lib/form/form-type/datepicker.type.mjs +212 -0
  14. package/esm2022/lib/form/form-type/image.type.mjs +225 -0
  15. package/esm2022/lib/form/form-type/inputnumber.type.mjs +144 -0
  16. package/esm2022/lib/form/form-type/inputtext.type.mjs +69 -0
  17. package/esm2022/lib/form/form-type/multiselect.type.mjs +219 -0
  18. package/esm2022/lib/form/form-type/radio.type.mjs +167 -0
  19. package/esm2022/lib/form/form-type/select.type.mjs +196 -0
  20. package/esm2022/lib/form/form-type/textarea.type.mjs +75 -0
  21. package/esm2022/lib/form/form-type/treeselect.type.mjs +174 -0
  22. package/esm2022/lib/form/form-type/upload.type.mjs +228 -0
  23. package/esm2022/lib/grid/actions/actions.component.mjs +30 -0
  24. package/esm2022/lib/grid/cell-edit/cell-edit-autoComplete.component.mjs +89 -0
  25. package/esm2022/lib/grid/cell-edit/cell-edit-datePicker.compoent.mjs +182 -0
  26. package/esm2022/lib/grid/cell-edit/cell-edit-inputNumber.component.mjs +107 -0
  27. package/esm2022/lib/grid/cell-edit/cell-edit-inputText.compoent.mjs +46 -0
  28. package/esm2022/lib/grid/cell-edit/cell-edit-select.component.mjs +148 -0
  29. package/esm2022/lib/grid/cell-edit/index.mjs +7 -0
  30. package/esm2022/lib/grid/cell-render/async-renderer.mjs +29 -0
  31. package/esm2022/lib/grid/cell-render/link-render.mjs +42 -0
  32. package/esm2022/lib/grid/grid/grid.component.mjs +373 -0
  33. package/esm2022/lib/grid/grid-utils.mjs +103 -0
  34. package/esm2022/lib/grid/mock-data.mjs +14 -0
  35. package/esm2022/lib/grid/pager/pager.component.mjs +19 -0
  36. package/esm2022/lib/head/head.component.mjs +43 -0
  37. package/esm2022/lib/import/import.component.mjs +68 -0
  38. package/esm2022/lib/log/log.component.mjs +37 -0
  39. package/esm2022/lib/page-form/page-form.component.mjs +167 -0
  40. package/esm2022/lib/page-form/page-form.interface.mjs +2 -0
  41. package/esm2022/lib/page-grid-list/page-grid-list.component.mjs +60 -0
  42. package/esm2022/lib/row-selector/row-selector.component.mjs +58 -0
  43. package/esm2022/lib/search/mock-data.mjs +40 -0
  44. package/esm2022/lib/search/pop-date/pop-date.component.mjs +106 -0
  45. package/esm2022/lib/search/pop-list/pop-list.component.mjs +32 -0
  46. package/esm2022/lib/search/pop-panel/pop-panel.component.mjs +44 -0
  47. package/esm2022/lib/search/pop-select/pop-select.component.mjs +45 -0
  48. package/esm2022/lib/search/pop-self/pop-self.component.mjs +132 -0
  49. package/esm2022/lib/search/pop-tree/pop-tree.component.mjs +50 -0
  50. package/esm2022/lib/search/search/search.component.mjs +138 -0
  51. package/esm2022/lib/search/search-tip/search-tip.component.mjs +54 -0
  52. package/esm2022/lib/search/search-utils.mjs +165 -0
  53. package/esm2022/lib/search/text-panel/text-panel.component.mjs +41 -0
  54. package/esm2022/lib/service/action.service.mjs +115 -0
  55. package/esm2022/lib/service/i18n.service.mjs +79 -0
  56. package/esm2022/lib/service/themeConfig.service.mjs +82 -0
  57. package/esm2022/lib/service/userHistory.service.mjs +106 -0
  58. package/esm2022/lib/share/utils.mjs +150 -0
  59. package/esm2022/lib/steps/steps.component.mjs +31 -0
  60. package/esm2022/lib/theme-config/theme-config-panel.compoent.mjs +141 -0
  61. package/esm2022/lib/theme-config/theme-config.compoent.mjs +45 -0
  62. package/esm2022/public-api.mjs +26 -0
  63. package/fesm2022/imm-element-ui.mjs +6382 -0
  64. package/fesm2022/imm-element-ui.mjs.map +1 -0
  65. package/index.d.ts +5 -0
  66. package/lib/am/am.component.d.ts +191 -0
  67. package/lib/crumb-action/crumb-action.component.d.ts +40 -0
  68. package/lib/form/form/form.component.d.ts +53 -0
  69. package/lib/form/form-field/field-control.d.ts +13 -0
  70. package/lib/form/form-field/field-utils.d.ts +12 -0
  71. package/lib/form/form-field/form-field.d.ts +86 -0
  72. package/lib/form/form-field/form-type.d.ts +22 -0
  73. package/lib/form/form-field/label.directive.d.ts +14 -0
  74. package/lib/form/form-type/autocomplete.type.d.ts +77 -0
  75. package/lib/form/form-type/codemirror.type.d.ts +31 -0
  76. package/lib/form/form-type/datepicker.type.d.ts +83 -0
  77. package/lib/form/form-type/image.type.d.ts +49 -0
  78. package/lib/form/form-type/inputnumber.type.d.ts +49 -0
  79. package/lib/form/form-type/inputtext.type.d.ts +17 -0
  80. package/lib/form/form-type/multiselect.type.d.ts +85 -0
  81. package/lib/form/form-type/radio.type.d.ts +31 -0
  82. package/lib/form/form-type/select.type.d.ts +73 -0
  83. package/lib/form/form-type/textarea.type.d.ts +19 -0
  84. package/lib/form/form-type/treeselect.type.d.ts +62 -0
  85. package/lib/form/form-type/upload.type.d.ts +51 -0
  86. package/lib/grid/actions/actions.component.d.ts +14 -0
  87. package/lib/grid/cell-edit/cell-edit-autoComplete.component.d.ts +18 -0
  88. package/lib/grid/cell-edit/cell-edit-datePicker.compoent.d.ts +16 -0
  89. package/lib/grid/cell-edit/cell-edit-inputNumber.component.d.ts +15 -0
  90. package/lib/grid/cell-edit/cell-edit-inputText.compoent.d.ts +16 -0
  91. package/lib/grid/cell-edit/cell-edit-select.component.d.ts +12 -0
  92. package/lib/grid/cell-edit/index.d.ts +6 -0
  93. package/lib/grid/cell-render/async-renderer.d.ts +10 -0
  94. package/lib/grid/cell-render/link-render.d.ts +14 -0
  95. package/lib/grid/grid/grid.component.d.ts +272 -0
  96. package/lib/grid/grid-utils.d.ts +751 -0
  97. package/lib/grid/mock-data.d.ts +12 -0
  98. package/lib/grid/pager/pager.component.d.ts +15 -0
  99. package/lib/head/head.component.d.ts +17 -0
  100. package/lib/import/import.component.d.ts +22 -0
  101. package/lib/log/log.component.d.ts +14 -0
  102. package/lib/page-form/page-form.component.d.ts +46 -0
  103. package/lib/page-form/page-form.interface.d.ts +27 -0
  104. package/lib/page-grid-list/page-grid-list.component.d.ts +18 -0
  105. package/lib/row-selector/row-selector.component.d.ts +21 -0
  106. package/lib/search/mock-data.d.ts +20 -0
  107. package/lib/search/pop-date/pop-date.component.d.ts +26 -0
  108. package/lib/search/pop-list/pop-list.component.d.ts +12 -0
  109. package/lib/search/pop-panel/pop-panel.component.d.ts +15 -0
  110. package/lib/search/pop-select/pop-select.component.d.ts +13 -0
  111. package/lib/search/pop-self/pop-self.component.d.ts +31 -0
  112. package/lib/search/pop-tree/pop-tree.component.d.ts +22 -0
  113. package/lib/search/search/search.component.d.ts +60 -0
  114. package/lib/search/search-tip/search-tip.component.d.ts +22 -0
  115. package/lib/search/search-utils.d.ts +10 -0
  116. package/lib/search/text-panel/text-panel.component.d.ts +21 -0
  117. package/lib/service/action.service.d.ts +54 -0
  118. package/lib/service/i18n.service.d.ts +93 -0
  119. package/lib/service/themeConfig.service.d.ts +24 -0
  120. package/lib/service/userHistory.service.d.ts +26 -0
  121. package/lib/share/utils.d.ts +16 -0
  122. package/lib/steps/steps.component.d.ts +16 -0
  123. package/lib/theme-config/theme-config-panel.compoent.d.ts +78 -0
  124. package/lib/theme-config/theme-config.compoent.d.ts +6 -0
  125. package/package.json +28 -0
  126. package/public-api.d.ts +20 -0
  127. package/src/lib/crumb-action/crumb-action.component.scss +51 -0
  128. package/src/lib/form/form/form.component.scss +0 -0
  129. package/src/lib/grid/actions/actions.component.scss +0 -0
  130. package/src/lib/grid/grid/grid.component.scss +0 -0
  131. package/src/lib/grid/pager/pager.component.scss +13 -0
  132. package/src/lib/head/head.component.scss +3 -0
  133. package/src/lib/import/import.component.scss +10 -0
  134. package/src/lib/log/log.component.scss +21 -0
  135. package/src/lib/page-form/page-form.component.scss +14 -0
  136. package/src/lib/page-grid-list/page-grid-list.component.scss +14 -0
  137. package/src/lib/row-selector/row-selector.component.scss +1 -0
  138. package/src/lib/search/dynamic-search/dynamic-search.component.scss +70 -0
  139. package/src/lib/search/pop-date/pop-date.component.scss +47 -0
  140. package/src/lib/search/pop-list/pop-list.component.scss +23 -0
  141. package/src/lib/search/pop-panel/pop-panel.component.scss +49 -0
  142. package/src/lib/search/pop-select/pop-select.component.scss +29 -0
  143. package/src/lib/search/pop-self/pop-self.component.scss +60 -0
  144. package/src/lib/search/pop-tree/pop-tree.component.scss +34 -0
  145. package/src/lib/search/search/search.component.scss +70 -0
  146. package/src/lib/search/search-tip/search-tip.component.scss +47 -0
  147. package/src/lib/search/text-panel/text-panel.component.scss +16 -0
  148. package/src/lib/steps/steps.component.scss +52 -0
  149. package/src/lib/styles/styles.scss +232 -0
@@ -0,0 +1,200 @@
1
+ import { Component, input, effect, ViewChild, ElementRef } from '@angular/core';
2
+ import { ReactiveFormsModule } from '@angular/forms';
3
+ import { AutoComplete } from 'primeng/autocomplete';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "../../service/action.service";
6
+ import * as i2 from "@angular/forms";
7
+ export class AutoCompleteComponent {
8
+ constructor(action, renderer) {
9
+ this.action = action;
10
+ this.renderer = renderer;
11
+ this.field = input();
12
+ this.props = {};
13
+ effect(() => {
14
+ if (this.field()) {
15
+ this.props = this.field().autoCompleteProps;
16
+ this.handleDisabled();
17
+ }
18
+ });
19
+ effect(() => {
20
+ const labelAction = this.action.getFieldLabelAction();
21
+ if (!labelAction || labelAction?.key != this.field()?.uuid) {
22
+ return;
23
+ }
24
+ if (labelAction.type == 'mouseenter') {
25
+ this.renderer.addClass(this.autoCompleteRef.nativeElement, 'ng-hovered');
26
+ }
27
+ else if (labelAction.type == 'mouseleave') {
28
+ this.renderer.removeClass(this.autoCompleteRef.nativeElement, 'ng-hovered');
29
+ }
30
+ else if (labelAction.type == 'click') {
31
+ this.autoCompleteRef.nativeElement.querySelector('input')?.focus();
32
+ }
33
+ });
34
+ }
35
+ handleDisabled() {
36
+ if (this.props?.disabled) {
37
+ this.field().fieldControl.disable({ emitEvent: false });
38
+ }
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoCompleteComponent, deps: [{ token: i1.ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
41
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: AutoCompleteComponent, isStandalone: true, selector: "form-autocomplete", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "autoCompleteRef", first: true, predicate: AutoComplete, descendants: true, read: ElementRef }], ngImport: i0, template: `<p-autocomplete
42
+ [id]="field()?.uuid"
43
+ [inputId]="field()?.uuid"
44
+ [minLength]="props.minLength ?? 1"
45
+ [delay]="props.delay ?? 300"
46
+ [panelStyle]="props.panelStyle"
47
+ [panelStyleClass]="props.panelStyleClass"
48
+ [styleClass]="props.styleClass"
49
+ [inputStyle]="props.inputStyle"
50
+ [inputStyleClass]="props.inputStyleClass"
51
+ [placeholder]="props.placeholder"
52
+ [readonly]="props.readonly"
53
+ [scrollHeight]="props.scrollHeight ?? '200px'"
54
+ [lazy]="props.lazy"
55
+ [virtualScroll]="props.virtualScroll"
56
+ [virtualScrollItemSize]="props.virtualScrollItemSize"
57
+ [virtualScrollOptions]="props.virtualScrollOptions"
58
+ [maxlength]="props.maxlength"
59
+ [name]="props.name"
60
+ [size]="props.size"
61
+ [appendTo]="props.appendTo"
62
+ [autoHighlight]="props.autoHighlight"
63
+ [forceSelection]="props.forceSelection"
64
+ [type]="props.type ?? 'text'"
65
+ [autoZIndex]="props.autoZIndex ?? true"
66
+ [baseZIndex]="props.baseZIndex ?? 0"
67
+ [ariaLabel]="props.ariaLabel"
68
+ [ariaLabelledBy]="props.ariaLabelledBy"
69
+ [dropdownAriaLabel]="props.dropdownAriaLabel"
70
+ [dropdownIcon]="props.dropdownIcon"
71
+ [unique]="props.unique ?? true"
72
+ [group]="props.group"
73
+ [completeOnFocus]="props.completeOnFocus"
74
+ [showClear]="props.showClear"
75
+ [dropdown]="props.dropdown"
76
+ [showEmptyMessage]="props.showEmptyMessage ?? true"
77
+ [dropdownMode]="props.dropdownMode ?? 'blank'"
78
+ [multiple]="props.multiple"
79
+ [tabindex]="props.tabindex"
80
+ [dataKey]="props.dataKey"
81
+ [emptyMessage]="props.emptyMessage"
82
+ [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
83
+ [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
84
+ [autofocus]="props.autofocus"
85
+ [autocomplete]="props.autocomplete ?? 'off'"
86
+ [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
87
+ [optionGroupLabel]="props.optionGroupLabel ?? 'label'"
88
+ [overlayOptions]="props.overlayOptions"
89
+ [suggestions]="props.suggestions ?? []"
90
+ [optionLabel]="props.optionLabel"
91
+ [optionValue]="props.optionValue"
92
+ [searchMessage]="props.searchMessage ?? '{0} results are available'"
93
+ [emptySelectionMessage]="props.emptySelectionMessage ?? 'No selected item'"
94
+ [selectionMessage]="props.selectionMessage ?? '{0} items selected'"
95
+ [autoOptionFocus]="props.autoOptionFocus"
96
+ [selectOnFocus]="props.selectOnFocus"
97
+ [searchLocale]="props.searchLocale"
98
+ [optionDisabled]="props.optionDisabled"
99
+ [focusOnHover]="props.focusOnHover ?? true"
100
+ [typeahead]="props.typeahead ?? true"
101
+ [variant]="props.variant"
102
+ [fluid]="props.fluid ?? true"
103
+ [class]="props.class"
104
+ [style]="props.style"
105
+ (completeMethod)="props.completeMethod?.(field()!, $event)"
106
+ (onSelect)="props.onSelect?.(field()!, $event)"
107
+ (onUnselect)="props.onUnselect?.(field()!, $event)"
108
+ (onFocus)="props.onFocus?.(field()!, $event)"
109
+ (onBlur)="props.onBlur?.(field()!, $event)"
110
+ (onDropdownClick)="props.onDropdownClick?.(field()!, $event)"
111
+ (onClear)="props.onClear?.(field()!, $event)"
112
+ (onKeyUp)="props.onKeyUp?.(field()!, $event)"
113
+ (onShow)="props.onShow?.(field()!, $event)"
114
+ (onHide)="props.onHide?.(field()!, $event)"
115
+ (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
116
+ [formControl]="field()!.fieldControl!" />`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "component", type: AutoComplete, selector: "p-autoComplete, p-autocomplete, p-auto-complete", inputs: ["minLength", "delay", "style", "panelStyle", "styleClass", "panelStyleClass", "inputStyle", "inputId", "inputStyleClass", "placeholder", "readonly", "disabled", "scrollHeight", "lazy", "virtualScroll", "virtualScrollItemSize", "virtualScrollOptions", "maxlength", "name", "required", "size", "appendTo", "autoHighlight", "forceSelection", "type", "autoZIndex", "baseZIndex", "ariaLabel", "dropdownAriaLabel", "ariaLabelledBy", "dropdownIcon", "unique", "group", "completeOnFocus", "showClear", "field", "dropdown", "showEmptyMessage", "dropdownMode", "multiple", "tabindex", "dataKey", "emptyMessage", "showTransitionOptions", "hideTransitionOptions", "autofocus", "autocomplete", "optionGroupChildren", "optionGroupLabel", "overlayOptions", "suggestions", "itemSize", "optionLabel", "optionValue", "id", "searchMessage", "emptySelectionMessage", "selectionMessage", "autoOptionFocus", "selectOnFocus", "searchLocale", "optionDisabled", "focusOnHover", "typeahead", "variant", "fluid"], outputs: ["completeMethod", "onSelect", "onUnselect", "onFocus", "onBlur", "onDropdownClick", "onClear", "onKeyUp", "onShow", "onHide", "onLazyLoad"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
117
+ }
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AutoCompleteComponent, decorators: [{
119
+ type: Component,
120
+ args: [{ selector: 'form-autocomplete', standalone: true, imports: [AutoComplete, ReactiveFormsModule], template: `<p-autocomplete
121
+ [id]="field()?.uuid"
122
+ [inputId]="field()?.uuid"
123
+ [minLength]="props.minLength ?? 1"
124
+ [delay]="props.delay ?? 300"
125
+ [panelStyle]="props.panelStyle"
126
+ [panelStyleClass]="props.panelStyleClass"
127
+ [styleClass]="props.styleClass"
128
+ [inputStyle]="props.inputStyle"
129
+ [inputStyleClass]="props.inputStyleClass"
130
+ [placeholder]="props.placeholder"
131
+ [readonly]="props.readonly"
132
+ [scrollHeight]="props.scrollHeight ?? '200px'"
133
+ [lazy]="props.lazy"
134
+ [virtualScroll]="props.virtualScroll"
135
+ [virtualScrollItemSize]="props.virtualScrollItemSize"
136
+ [virtualScrollOptions]="props.virtualScrollOptions"
137
+ [maxlength]="props.maxlength"
138
+ [name]="props.name"
139
+ [size]="props.size"
140
+ [appendTo]="props.appendTo"
141
+ [autoHighlight]="props.autoHighlight"
142
+ [forceSelection]="props.forceSelection"
143
+ [type]="props.type ?? 'text'"
144
+ [autoZIndex]="props.autoZIndex ?? true"
145
+ [baseZIndex]="props.baseZIndex ?? 0"
146
+ [ariaLabel]="props.ariaLabel"
147
+ [ariaLabelledBy]="props.ariaLabelledBy"
148
+ [dropdownAriaLabel]="props.dropdownAriaLabel"
149
+ [dropdownIcon]="props.dropdownIcon"
150
+ [unique]="props.unique ?? true"
151
+ [group]="props.group"
152
+ [completeOnFocus]="props.completeOnFocus"
153
+ [showClear]="props.showClear"
154
+ [dropdown]="props.dropdown"
155
+ [showEmptyMessage]="props.showEmptyMessage ?? true"
156
+ [dropdownMode]="props.dropdownMode ?? 'blank'"
157
+ [multiple]="props.multiple"
158
+ [tabindex]="props.tabindex"
159
+ [dataKey]="props.dataKey"
160
+ [emptyMessage]="props.emptyMessage"
161
+ [showTransitionOptions]="props.showTransitionOptions ?? '.12s cubic-bezier(0, 0, 0.2, 1)'"
162
+ [hideTransitionOptions]="props.hideTransitionOptions ?? '.1s linear'"
163
+ [autofocus]="props.autofocus"
164
+ [autocomplete]="props.autocomplete ?? 'off'"
165
+ [optionGroupChildren]="props.optionGroupChildren ?? 'items'"
166
+ [optionGroupLabel]="props.optionGroupLabel ?? 'label'"
167
+ [overlayOptions]="props.overlayOptions"
168
+ [suggestions]="props.suggestions ?? []"
169
+ [optionLabel]="props.optionLabel"
170
+ [optionValue]="props.optionValue"
171
+ [searchMessage]="props.searchMessage ?? '{0} results are available'"
172
+ [emptySelectionMessage]="props.emptySelectionMessage ?? 'No selected item'"
173
+ [selectionMessage]="props.selectionMessage ?? '{0} items selected'"
174
+ [autoOptionFocus]="props.autoOptionFocus"
175
+ [selectOnFocus]="props.selectOnFocus"
176
+ [searchLocale]="props.searchLocale"
177
+ [optionDisabled]="props.optionDisabled"
178
+ [focusOnHover]="props.focusOnHover ?? true"
179
+ [typeahead]="props.typeahead ?? true"
180
+ [variant]="props.variant"
181
+ [fluid]="props.fluid ?? true"
182
+ [class]="props.class"
183
+ [style]="props.style"
184
+ (completeMethod)="props.completeMethod?.(field()!, $event)"
185
+ (onSelect)="props.onSelect?.(field()!, $event)"
186
+ (onUnselect)="props.onUnselect?.(field()!, $event)"
187
+ (onFocus)="props.onFocus?.(field()!, $event)"
188
+ (onBlur)="props.onBlur?.(field()!, $event)"
189
+ (onDropdownClick)="props.onDropdownClick?.(field()!, $event)"
190
+ (onClear)="props.onClear?.(field()!, $event)"
191
+ (onKeyUp)="props.onKeyUp?.(field()!, $event)"
192
+ (onShow)="props.onShow?.(field()!, $event)"
193
+ (onHide)="props.onHide?.(field()!, $event)"
194
+ (onLazyLoad)="props.onLazyLoad?.(field()!, $event)"
195
+ [formControl]="field()!.fieldControl!" />`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"] }]
196
+ }], ctorParameters: () => [{ type: i1.ActionService }, { type: i0.Renderer2 }], propDecorators: { autoCompleteRef: [{
197
+ type: ViewChild,
198
+ args: [AutoComplete, { read: ElementRef, static: false }]
199
+ }] } });
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2NvbXBsZXRlLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pbW0tdWkvc3JjL2xpYi9mb3JtL2Zvcm0tdHlwZS9hdXRvY29tcGxldGUudHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFzSnBELE1BQU0sT0FBTyxxQkFBcUI7SUFJakMsWUFDUyxNQUFxQixFQUNyQixRQUFtQjtRQURuQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFKNUIsVUFBSyxHQUFHLEtBQUssRUFBYSxDQUFDO1FBQzNCLFVBQUssR0FBc0IsRUFBRSxDQUFDO1FBSzdCLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO2dCQUNsQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxpQkFBa0IsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3ZCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDNUQsT0FBTztZQUNSLENBQUM7WUFDRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxDQUFDO1lBQzFFLENBQUM7aUJBQU0sSUFBSSxXQUFXLENBQUMsSUFBSSxJQUFJLFlBQVksRUFBRSxDQUFDO2dCQUM3QyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FBQztZQUM3RSxDQUFDO2lCQUFNLElBQUksV0FBVyxDQUFDLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1lBQ3BFLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxjQUFjO1FBQ2IsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxLQUFLLEVBQUcsQ0FBQyxZQUFhLENBQUMsT0FBTyxDQUFDLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDM0QsQ0FBQztJQUNGLENBQUM7K0dBakNXLHFCQUFxQjttR0FBckIscUJBQXFCLGtRQUN0QixZQUFZLDJCQUFVLFVBQVUsNkJBL0VqQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzRDQTJFaUMsd2lMQTVFakMsWUFBWSxzdENBQUUsbUJBQW1COzs0RkErRS9CLHFCQUFxQjtrQkFsRmpDLFNBQVM7K0JBQ0MsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyxZQUNsQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzRDQTJFaUM7MEdBSW1CLGVBQWU7c0JBQTVFLFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBpbnB1dCwgZWZmZWN0LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMsIEF0dHJpYnV0ZUV2ZW50IH0gZnJvbSAnLi4vZm9ybS1maWVsZC9mb3JtLWZpZWxkJztcclxuaW1wb3J0IHsgQXV0b0NvbXBsZXRlIH0gZnJvbSAncHJpbWVuZy9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBTY3JvbGxlck9wdGlvbnMsIE92ZXJsYXlPcHRpb25zIH0gZnJvbSAncHJpbWVuZy9hcGknO1xyXG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBdXRvQ29tcGxldGVQcm9wcyBleHRlbmRzIEZpZWxkUHJvcHMge1xyXG5cdHNjcm9sbEhlaWdodD86IHN0cmluZztcclxuXHRtaW5MZW5ndGg/OiBudW1iZXI7XHJcblx0ZGVsYXk/OiBudW1iZXI7XHJcblx0cGFuZWxTdHlsZT86IGFueTtcclxuXHRwYW5lbFN0eWxlQ2xhc3M/OiBzdHJpbmc7XHJcblx0YXV0b0hpZ2hsaWdodD86IGJvb2xlYW47XHJcblx0Zm9yY2VTZWxlY3Rpb24/OiBib29sZWFuO1xyXG5cdHR5cGU/OiBzdHJpbmc7XHJcblx0YXV0b1pJbmRleD86IGJvb2xlYW47XHJcblx0YmFzZVpJbmRleD86IG51bWJlcjtcclxuXHRkcm9wZG93bkFyaWFMYWJlbD86IHN0cmluZztcclxuXHR1bmlxdWU/OiBib29sZWFuO1xyXG5cdGNvbXBsZXRlT25Gb2N1cz86IGJvb2xlYW47XHJcblx0ZHJvcGRvd24/OiBib29sZWFuO1xyXG5cdHNob3dFbXB0eU1lc3NhZ2U/OiBib29sZWFuO1xyXG5cdGRyb3Bkb3duTW9kZT86IHN0cmluZztcclxuXHRtdWx0aXBsZT86IGJvb2xlYW47XHJcblx0c2hvd1RyYW5zaXRpb25PcHRpb25zPzogc3RyaW5nO1xyXG5cdGhpZGVUcmFuc2l0aW9uT3B0aW9ucz86IHN0cmluZztcclxuXHRhdXRvY29tcGxldGU/OiBzdHJpbmc7XHJcblx0b3B0aW9uR3JvdXBDaGlsZHJlbj86IHN0cmluZztcclxuXHRvcHRpb25Hcm91cExhYmVsPzogc3RyaW5nO1xyXG5cdHN1Z2dlc3Rpb25zPzogYW55W107XHJcblx0b3B0aW9uTGFiZWw/OiBzdHJpbmcgfCAoKGl0ZW06IGFueSkgPT4gc3RyaW5nKTtcclxuXHRvcHRpb25WYWx1ZT86IHN0cmluZyB8ICgoaXRlbTogYW55KSA9PiBzdHJpbmcpO1xyXG5cdHNlYXJjaE1lc3NhZ2U/OiBzdHJpbmc7XHJcblx0ZW1wdHlTZWxlY3Rpb25NZXNzYWdlPzogc3RyaW5nO1xyXG5cdHNlbGVjdGlvbk1lc3NhZ2U/OiBzdHJpbmc7XHJcblx0YXV0b09wdGlvbkZvY3VzPzogYm9vbGVhbjtcclxuXHRzZWxlY3RPbkZvY3VzPzogYm9vbGVhbjtcclxuXHRzZWFyY2hMb2NhbGU/OiBib29sZWFuO1xyXG5cdG9wdGlvbkRpc2FibGVkPzogc3RyaW5nO1xyXG5cdGZvY3VzT25Ib3Zlcj86IGJvb2xlYW47XHJcblx0dHlwZWFoZWFkPzogYm9vbGVhbjtcclxuXHRyZWFkb25seT86IGJvb2xlYW47XHJcblx0YXBwZW5kVG8/OiBhbnk7XHJcblx0dGFiaW5kZXg/OiBudW1iZXI7XHJcblx0ZGF0YUtleT86IHN0cmluZztcclxuXHRkcm9wZG93bkljb24/OiBzdHJpbmc7XHJcblx0Z3JvdXA/OiBib29sZWFuO1xyXG5cdHNob3dDbGVhcj86IGJvb2xlYW47XHJcblx0ZW1wdHlNZXNzYWdlPzogYW55O1xyXG5cdGxhenk/OiBib29sZWFuO1xyXG5cdHZpcnR1YWxTY3JvbGw/OiBib29sZWFuO1xyXG5cdHZpcnR1YWxTY3JvbGxJdGVtU2l6ZT86IG51bWJlcjtcclxuXHR2aXJ0dWFsU2Nyb2xsT3B0aW9ucz86IFNjcm9sbGVyT3B0aW9ucztcclxuXHRvdmVybGF5T3B0aW9ucz86IE92ZXJsYXlPcHRpb25zO1xyXG5cdG1heGxlbmd0aD86IGFueTtcclxuXHJcblx0Y29tcGxldGVNZXRob2Q/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblNlbGVjdD86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uVW5zZWxlY3Q/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvbkZvY3VzPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25CbHVyPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25Ecm9wZG93bkNsaWNrPzogQXR0cmlidXRlRXZlbnQ7XHJcblx0b25DbGVhcj86IEF0dHJpYnV0ZUV2ZW50O1xyXG5cdG9uS2V5VXA/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvblNob3c/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvbkhpZGU/OiBBdHRyaWJ1dGVFdmVudDtcclxuXHRvbkxhenlMb2FkPzogQXR0cmlidXRlRXZlbnQ7XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnZm9ybS1hdXRvY29tcGxldGUnLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW0F1dG9Db21wbGV0ZSwgUmVhY3RpdmVGb3Jtc01vZHVsZV0sXHJcblx0dGVtcGxhdGU6IGA8cC1hdXRvY29tcGxldGVcclxuXHRcdFtpZF09XCJmaWVsZCgpPy51dWlkXCJcclxuXHRcdFtpbnB1dElkXT1cImZpZWxkKCk/LnV1aWRcIlxyXG5cdFx0W21pbkxlbmd0aF09XCJwcm9wcy5taW5MZW5ndGggPz8gMVwiXHJcblx0XHRbZGVsYXldPVwicHJvcHMuZGVsYXkgPz8gMzAwXCJcclxuXHRcdFtwYW5lbFN0eWxlXT1cInByb3BzLnBhbmVsU3R5bGVcIlxyXG5cdFx0W3BhbmVsU3R5bGVDbGFzc109XCJwcm9wcy5wYW5lbFN0eWxlQ2xhc3NcIlxyXG5cdFx0W3N0eWxlQ2xhc3NdPVwicHJvcHMuc3R5bGVDbGFzc1wiXHJcblx0XHRbaW5wdXRTdHlsZV09XCJwcm9wcy5pbnB1dFN0eWxlXCJcclxuXHRcdFtpbnB1dFN0eWxlQ2xhc3NdPVwicHJvcHMuaW5wdXRTdHlsZUNsYXNzXCJcclxuXHRcdFtwbGFjZWhvbGRlcl09XCJwcm9wcy5wbGFjZWhvbGRlclwiXHJcblx0XHRbcmVhZG9ubHldPVwicHJvcHMucmVhZG9ubHlcIlxyXG5cdFx0W3Njcm9sbEhlaWdodF09XCJwcm9wcy5zY3JvbGxIZWlnaHQgPz8gJzIwMHB4J1wiXHJcblx0XHRbbGF6eV09XCJwcm9wcy5sYXp5XCJcclxuXHRcdFt2aXJ0dWFsU2Nyb2xsXT1cInByb3BzLnZpcnR1YWxTY3JvbGxcIlxyXG5cdFx0W3ZpcnR1YWxTY3JvbGxJdGVtU2l6ZV09XCJwcm9wcy52aXJ0dWFsU2Nyb2xsSXRlbVNpemVcIlxyXG5cdFx0W3ZpcnR1YWxTY3JvbGxPcHRpb25zXT1cInByb3BzLnZpcnR1YWxTY3JvbGxPcHRpb25zXCJcclxuXHRcdFttYXhsZW5ndGhdPVwicHJvcHMubWF4bGVuZ3RoXCJcclxuXHRcdFtuYW1lXT1cInByb3BzLm5hbWVcIlxyXG5cdFx0W3NpemVdPVwicHJvcHMuc2l6ZVwiXHJcblx0XHRbYXBwZW5kVG9dPVwicHJvcHMuYXBwZW5kVG9cIlxyXG5cdFx0W2F1dG9IaWdobGlnaHRdPVwicHJvcHMuYXV0b0hpZ2hsaWdodFwiXHJcblx0XHRbZm9yY2VTZWxlY3Rpb25dPVwicHJvcHMuZm9yY2VTZWxlY3Rpb25cIlxyXG5cdFx0W3R5cGVdPVwicHJvcHMudHlwZSA/PyAndGV4dCdcIlxyXG5cdFx0W2F1dG9aSW5kZXhdPVwicHJvcHMuYXV0b1pJbmRleCA/PyB0cnVlXCJcclxuXHRcdFtiYXNlWkluZGV4XT1cInByb3BzLmJhc2VaSW5kZXggPz8gMFwiXHJcblx0XHRbYXJpYUxhYmVsXT1cInByb3BzLmFyaWFMYWJlbFwiXHJcblx0XHRbYXJpYUxhYmVsbGVkQnldPVwicHJvcHMuYXJpYUxhYmVsbGVkQnlcIlxyXG5cdFx0W2Ryb3Bkb3duQXJpYUxhYmVsXT1cInByb3BzLmRyb3Bkb3duQXJpYUxhYmVsXCJcclxuXHRcdFtkcm9wZG93bkljb25dPVwicHJvcHMuZHJvcGRvd25JY29uXCJcclxuXHRcdFt1bmlxdWVdPVwicHJvcHMudW5pcXVlID8/IHRydWVcIlxyXG5cdFx0W2dyb3VwXT1cInByb3BzLmdyb3VwXCJcclxuXHRcdFtjb21wbGV0ZU9uRm9jdXNdPVwicHJvcHMuY29tcGxldGVPbkZvY3VzXCJcclxuXHRcdFtzaG93Q2xlYXJdPVwicHJvcHMuc2hvd0NsZWFyXCJcclxuXHRcdFtkcm9wZG93bl09XCJwcm9wcy5kcm9wZG93blwiXHJcblx0XHRbc2hvd0VtcHR5TWVzc2FnZV09XCJwcm9wcy5zaG93RW1wdHlNZXNzYWdlID8/IHRydWVcIlxyXG5cdFx0W2Ryb3Bkb3duTW9kZV09XCJwcm9wcy5kcm9wZG93bk1vZGUgPz8gJ2JsYW5rJ1wiXHJcblx0XHRbbXVsdGlwbGVdPVwicHJvcHMubXVsdGlwbGVcIlxyXG5cdFx0W3RhYmluZGV4XT1cInByb3BzLnRhYmluZGV4XCJcclxuXHRcdFtkYXRhS2V5XT1cInByb3BzLmRhdGFLZXlcIlxyXG5cdFx0W2VtcHR5TWVzc2FnZV09XCJwcm9wcy5lbXB0eU1lc3NhZ2VcIlxyXG5cdFx0W3Nob3dUcmFuc2l0aW9uT3B0aW9uc109XCJwcm9wcy5zaG93VHJhbnNpdGlvbk9wdGlvbnMgPz8gJy4xMnMgY3ViaWMtYmV6aWVyKDAsIDAsIDAuMiwgMSknXCJcclxuXHRcdFtoaWRlVHJhbnNpdGlvbk9wdGlvbnNdPVwicHJvcHMuaGlkZVRyYW5zaXRpb25PcHRpb25zID8/ICcuMXMgbGluZWFyJ1wiXHJcblx0XHRbYXV0b2ZvY3VzXT1cInByb3BzLmF1dG9mb2N1c1wiXHJcblx0XHRbYXV0b2NvbXBsZXRlXT1cInByb3BzLmF1dG9jb21wbGV0ZSA/PyAnb2ZmJ1wiXHJcblx0XHRbb3B0aW9uR3JvdXBDaGlsZHJlbl09XCJwcm9wcy5vcHRpb25Hcm91cENoaWxkcmVuID8/ICdpdGVtcydcIlxyXG5cdFx0W29wdGlvbkdyb3VwTGFiZWxdPVwicHJvcHMub3B0aW9uR3JvdXBMYWJlbCA/PyAnbGFiZWwnXCJcclxuXHRcdFtvdmVybGF5T3B0aW9uc109XCJwcm9wcy5vdmVybGF5T3B0aW9uc1wiXHJcblx0XHRbc3VnZ2VzdGlvbnNdPVwicHJvcHMuc3VnZ2VzdGlvbnMgPz8gW11cIlxyXG5cdFx0W29wdGlvbkxhYmVsXT1cInByb3BzLm9wdGlvbkxhYmVsXCJcclxuXHRcdFtvcHRpb25WYWx1ZV09XCJwcm9wcy5vcHRpb25WYWx1ZVwiXHJcblx0XHRbc2VhcmNoTWVzc2FnZV09XCJwcm9wcy5zZWFyY2hNZXNzYWdlID8/ICd7MH0gcmVzdWx0cyBhcmUgYXZhaWxhYmxlJ1wiXHJcblx0XHRbZW1wdHlTZWxlY3Rpb25NZXNzYWdlXT1cInByb3BzLmVtcHR5U2VsZWN0aW9uTWVzc2FnZSA/PyAnTm8gc2VsZWN0ZWQgaXRlbSdcIlxyXG5cdFx0W3NlbGVjdGlvbk1lc3NhZ2VdPVwicHJvcHMuc2VsZWN0aW9uTWVzc2FnZSA/PyAnezB9IGl0ZW1zIHNlbGVjdGVkJ1wiXHJcblx0XHRbYXV0b09wdGlvbkZvY3VzXT1cInByb3BzLmF1dG9PcHRpb25Gb2N1c1wiXHJcblx0XHRbc2VsZWN0T25Gb2N1c109XCJwcm9wcy5zZWxlY3RPbkZvY3VzXCJcclxuXHRcdFtzZWFyY2hMb2NhbGVdPVwicHJvcHMuc2VhcmNoTG9jYWxlXCJcclxuXHRcdFtvcHRpb25EaXNhYmxlZF09XCJwcm9wcy5vcHRpb25EaXNhYmxlZFwiXHJcblx0XHRbZm9jdXNPbkhvdmVyXT1cInByb3BzLmZvY3VzT25Ib3ZlciA/PyB0cnVlXCJcclxuXHRcdFt0eXBlYWhlYWRdPVwicHJvcHMudHlwZWFoZWFkID8/IHRydWVcIlxyXG5cdFx0W3ZhcmlhbnRdPVwicHJvcHMudmFyaWFudFwiXHJcblx0XHRbZmx1aWRdPVwicHJvcHMuZmx1aWQgPz8gdHJ1ZVwiXHJcblx0XHRbY2xhc3NdPVwicHJvcHMuY2xhc3NcIlxyXG5cdFx0W3N0eWxlXT1cInByb3BzLnN0eWxlXCJcclxuXHRcdChjb21wbGV0ZU1ldGhvZCk9XCJwcm9wcy5jb21wbGV0ZU1ldGhvZD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblNlbGVjdCk9XCJwcm9wcy5vblNlbGVjdD8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvblVuc2VsZWN0KT1cInByb3BzLm9uVW5zZWxlY3Q/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25Gb2N1cyk9XCJwcm9wcy5vbkZvY3VzPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uQmx1cik9XCJwcm9wcy5vbkJsdXI/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25Ecm9wZG93bkNsaWNrKT1cInByb3BzLm9uRHJvcGRvd25DbGljaz8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvbkNsZWFyKT1cInByb3BzLm9uQ2xlYXI/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25LZXlVcCk9XCJwcm9wcy5vbktleVVwPy4oZmllbGQoKSEsICRldmVudClcIlxyXG5cdFx0KG9uU2hvdyk9XCJwcm9wcy5vblNob3c/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHQob25IaWRlKT1cInByb3BzLm9uSGlkZT8uKGZpZWxkKCkhLCAkZXZlbnQpXCJcclxuXHRcdChvbkxhenlMb2FkKT1cInByb3BzLm9uTGF6eUxvYWQ/LihmaWVsZCgpISwgJGV2ZW50KVwiXHJcblx0XHRbZm9ybUNvbnRyb2xdPVwiZmllbGQoKSEuZmllbGRDb250cm9sIVwiIC8+YCxcclxuXHRzdHlsZVVybDogJy4uLy4uL3N0eWxlcy9zdHlsZXMuc2NzcycsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBdXRvQ29tcGxldGVDb21wb25lbnQge1xyXG5cdEBWaWV3Q2hpbGQoQXV0b0NvbXBsZXRlLCB7IHJlYWQ6IEVsZW1lbnRSZWYsIHN0YXRpYzogZmFsc2UgfSkgYXV0b0NvbXBsZXRlUmVmITogRWxlbWVudFJlZjtcclxuXHRmaWVsZCA9IGlucHV0PEZvcm1GaWVsZD4oKTtcclxuXHRwcm9wczogQXV0b0NvbXBsZXRlUHJvcHMgPSB7fTtcclxuXHRjb25zdHJ1Y3RvcihcclxuXHRcdHByaXZhdGUgYWN0aW9uOiBBY3Rpb25TZXJ2aWNlLFxyXG5cdFx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG5cdCkge1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0aWYgKHRoaXMuZmllbGQoKSkge1xyXG5cdFx0XHRcdHRoaXMucHJvcHMgPSB0aGlzLmZpZWxkKCkhLmF1dG9Db21wbGV0ZVByb3BzITtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZURpc2FibGVkKCk7XHJcblx0XHRcdH1cclxuXHRcdH0pO1xyXG5cdFx0ZWZmZWN0KCgpID0+IHtcclxuXHRcdFx0Y29uc3QgbGFiZWxBY3Rpb24gPSB0aGlzLmFjdGlvbi5nZXRGaWVsZExhYmVsQWN0aW9uKCk7XHJcblx0XHRcdGlmICghbGFiZWxBY3Rpb24gfHwgbGFiZWxBY3Rpb24/LmtleSAhPSB0aGlzLmZpZWxkKCk/LnV1aWQpIHtcclxuXHRcdFx0XHRyZXR1cm47XHJcblx0XHRcdH1cclxuXHRcdFx0aWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlZW50ZXInKSB7XHJcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmF1dG9Db21wbGV0ZVJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ21vdXNlbGVhdmUnKSB7XHJcblx0XHRcdFx0dGhpcy5yZW5kZXJlci5yZW1vdmVDbGFzcyh0aGlzLmF1dG9Db21wbGV0ZVJlZi5uYXRpdmVFbGVtZW50LCAnbmctaG92ZXJlZCcpO1xyXG5cdFx0XHR9IGVsc2UgaWYgKGxhYmVsQWN0aW9uLnR5cGUgPT0gJ2NsaWNrJykge1xyXG5cdFx0XHRcdHRoaXMuYXV0b0NvbXBsZXRlUmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignaW5wdXQnKT8uZm9jdXMoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0fVxyXG5cclxuXHRoYW5kbGVEaXNhYmxlZCgpIHtcclxuXHRcdGlmICh0aGlzLnByb3BzPy5kaXNhYmxlZCkge1xyXG5cdFx0XHR0aGlzLmZpZWxkKCkhLmZpZWxkQ29udHJvbCEuZGlzYWJsZSh7IGVtaXRFdmVudDogZmFsc2UgfSk7XHJcblx0XHR9XHJcblx0fVxyXG59XHJcbiJdfQ==
@@ -0,0 +1,167 @@
1
+ import { Component, ViewChild, input, effect } from '@angular/core';
2
+ import { ReactiveFormsModule } from '@angular/forms';
3
+ import { javascript } from '@codemirror/lang-javascript';
4
+ import { html } from '@codemirror/lang-html';
5
+ import { json } from '@codemirror/lang-json';
6
+ import { EditorState, StateEffect } from '@codemirror/state';
7
+ import { EditorView, keymap, highlightSpecialChars, drawSelection, dropCursor, rectangularSelection, crosshairCursor, lineNumbers, highlightActiveLineGutter, placeholder, } from '@codemirror/view';
8
+ import { defaultHighlightStyle, syntaxHighlighting, indentOnInput, bracketMatching, foldGutter, foldKeymap } from '@codemirror/language';
9
+ import { defaultKeymap, history, historyKeymap } from '@codemirror/commands';
10
+ import { searchKeymap, highlightSelectionMatches } from '@codemirror/search';
11
+ import { autocompletion, completionKeymap, closeBrackets, closeBracketsKeymap } from '@codemirror/autocomplete';
12
+ import { lintKeymap } from '@codemirror/lint';
13
+ import * as i0 from "@angular/core";
14
+ import * as i1 from "../../service/action.service";
15
+ export class CodeMirrorComponent {
16
+ constructor(action, renderer) {
17
+ this.action = action;
18
+ this.renderer = renderer;
19
+ this.field = input();
20
+ this.props = {};
21
+ this.templateIndex = 0;
22
+ effect(() => {
23
+ if (this.field()) {
24
+ this.props = this.field().codeMirrorProps;
25
+ this.handleModelChange();
26
+ this.handleExtensions();
27
+ }
28
+ });
29
+ effect(() => {
30
+ const labelAction = this.action.getFieldLabelAction();
31
+ if (!labelAction || labelAction?.key != this.field()?.uuid) {
32
+ return;
33
+ }
34
+ if (labelAction.type == 'mouseenter') {
35
+ this.renderer.addClass(this.cmEditor, 'ng-hovered');
36
+ }
37
+ else if (labelAction.type == 'mouseleave') {
38
+ this.renderer.removeClass(this.cmEditor, 'ng-hovered');
39
+ }
40
+ else if (labelAction.type == 'click') {
41
+ this.editorView.focus();
42
+ }
43
+ else if (labelAction.type == 'dblclick') {
44
+ if (!this.props.templates || !this.props.templates.length)
45
+ return;
46
+ this.field()?.fieldControl?.setValue(this.props.templates[((this.templateIndex % this.props.templates.length) + this.props.templates.length) % this.props.templates.length], { emitEvent: true }, true);
47
+ this.templateIndex++;
48
+ }
49
+ });
50
+ }
51
+ ngAfterViewInit() {
52
+ this.editorView = new EditorView({
53
+ state: EditorState.create({
54
+ doc: this.field()?.fieldControl?.value,
55
+ }),
56
+ parent: this.codeContainer.nativeElement,
57
+ });
58
+ this.cmEditor = this.codeContainer.nativeElement.querySelector('.cm-editor');
59
+ }
60
+ ngOnDestroy() {
61
+ this.editorView.destroy();
62
+ }
63
+ handleExtensions() {
64
+ const extendsions = [
65
+ lineNumbers(),
66
+ foldGutter(),
67
+ highlightSpecialChars(),
68
+ history(),
69
+ drawSelection(),
70
+ dropCursor(),
71
+ EditorState.allowMultipleSelections.of(true),
72
+ indentOnInput(),
73
+ syntaxHighlighting(defaultHighlightStyle),
74
+ bracketMatching(),
75
+ closeBrackets(),
76
+ autocompletion(),
77
+ rectangularSelection(),
78
+ crosshairCursor(),
79
+ highlightActiveLineGutter(),
80
+ highlightSelectionMatches(),
81
+ keymap.of([
82
+ ...closeBracketsKeymap,
83
+ ...defaultKeymap,
84
+ ...searchKeymap,
85
+ ...historyKeymap,
86
+ ...foldKeymap,
87
+ ...completionKeymap,
88
+ ...lintKeymap,
89
+ ]),
90
+ EditorView.theme({
91
+ '.cm-gutters': {
92
+ backgroundColor: 'transparent',
93
+ border: 'none',
94
+ },
95
+ '.cm-activeLineGutter': {
96
+ backgroundColor: 'transparent',
97
+ },
98
+ '&': { minHeight: this.props.minHeight ?? '88px', maxHeight: this.props.maxHeight || '150px' },
99
+ '.cm-scroller': { overflow: 'auto', minHeight: this.props.minHeight ?? '88px' },
100
+ }),
101
+ this.getLanguageExtension(),
102
+ EditorView.updateListener.of((update) => {
103
+ // if (update.transactions.some((tr) => tr.isUserEvent('input'))) { }
104
+ if (update.docChanged) {
105
+ this.field()?.fieldControl?.setValue(update.state.doc.toString());
106
+ }
107
+ }),
108
+ ];
109
+ if (this.props.placeholder) {
110
+ extendsions.unshift(placeholder(this.props.placeholder));
111
+ }
112
+ if (this.props.disabled) {
113
+ extendsions.push(EditorView.editable.of(false));
114
+ }
115
+ this.editorView.dispatch({
116
+ effects: StateEffect.reconfigure.of(extendsions),
117
+ });
118
+ }
119
+ handleModelChange() {
120
+ this.field()?.fieldControl?.modelChange.subscribe((value) => {
121
+ if (!this.editorView.state.doc.length && value == null) {
122
+ return;
123
+ }
124
+ const transaction = this.editorView.state.update({
125
+ changes: { from: 0, to: this.editorView.state.doc.length, insert: value },
126
+ });
127
+ this.editorView.dispatch(transaction);
128
+ });
129
+ }
130
+ getLanguageExtension() {
131
+ switch (this.props.language) {
132
+ case 'html':
133
+ return html();
134
+ case 'javascript':
135
+ return javascript();
136
+ case 'json':
137
+ return json();
138
+ default:
139
+ return javascript();
140
+ }
141
+ }
142
+ minLines(min) {
143
+ return EditorView.updateListener.of((v) => {
144
+ const doc = v.state.doc;
145
+ const lineCount = doc.lines;
146
+ if (lineCount < min) {
147
+ const newLines = Array(min + 1 - lineCount)
148
+ .fill('')
149
+ .join('\n');
150
+ const transaction = v.state.update({
151
+ changes: { from: doc.length, insert: newLines },
152
+ });
153
+ v.view.dispatch(transaction);
154
+ }
155
+ });
156
+ }
157
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeMirrorComponent, deps: [{ token: i1.ActionService }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
158
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CodeMirrorComponent, isStandalone: true, selector: "form-codemirror", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "codeContainer", first: true, predicate: ["codeContainer"], descendants: true }], ngImport: i0, template: `<div #codeContainer></div>`, isInline: true, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }] }); }
159
+ }
160
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CodeMirrorComponent, decorators: [{
161
+ type: Component,
162
+ args: [{ selector: 'form-codemirror', standalone: true, imports: [ReactiveFormsModule], template: `<div #codeContainer></div>`, styles: [":host ::ng-deep .p-disabled,:host ::ng-deep .p-component:disabled{opacity:1}:host ::ng-deep .p-inputtext{border-width:0;border-radius:0;box-shadow:none;background:#fff;padding:0}:host ::ng-deep .p-inputtext:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputtext:not(:disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:not(:disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-inputtext:focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered .p-autocomplete-input:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-label{padding:0}:host ::ng-deep .p-select{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-select .p-select-dropdown{display:none}:host ::ng-deep .p-select .p-select-clear-icon{display:none}:host ::ng-deep .p-select:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-select-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select-open .p-select-dropdown{display:flex}:host ::ng-deep .p-select-open .p-select-clear-icon{display:flex}:host ::ng-deep .p-select:hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select:hover .p-select-dropdown{display:flex}:host ::ng-deep .p-select:hover .p-select-clear-icon{display:flex}:host ::ng-deep .p-select.ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-select.ng-hovered .p-select-dropdown{display:flex}:host ::ng-deep .p-select.ng-hovered .p-select-clear-icon{display:flex}:host ::ng-deep .p-multiselect-label{padding:0}:host ::ng-deep .p-multiselect{border-width:0;border-radius:0;background:#fff;box-shadow:none}:host ::ng-deep .p-multiselect .p-multiselect-dropdown{display:none}:host ::ng-deep .p-multiselect:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-multiselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect-open .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).p-focus .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled):hover .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-multiselect:not(.p-disabled).ng-hovered .p-multiselect-dropdown{display:flex}:host ::ng-deep .p-textarea{border-radius:0;box-shadow:none;padding:0;background:#fff;resize:none}:host ::ng-deep .p-textarea:not(.ng-valid).ng-dirty{background:var(--p-red-200)!important;border:1px solid var(--p-red-500)!important}:host ::ng-deep .p-textarea:not(:disabled):hover{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:not(:disabled).ng-hovered{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-textarea:focus{border:1px solid var(--p-primary-color);resize:vertical}:host ::ng-deep .p-treeselect-label{padding:0}:host ::ng-deep .p-treeselect{border-width:0;border-radius:0;box-shadow:none;background:#fff}:host ::ng-deep .p-treeselect .p-treeselect-dropdown{display:none}:host ::ng-deep .ng-invalid.ng-dirty>.p-treeselect{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-treeselect-open{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect-open .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled).p-focus .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-treeselect:not(.p-disabled):hover{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .p-treeselect:not(.p-disabled):hover .p-treeselect-dropdown{display:flex}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled){border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-treeselect:not(.p-disabled) .p-treeselect-dropdown{display:flex}:host ::ng-deep .p-menubar{border-width:0;padding:0}:host ::ng-deep .p-menubar-submenu{z-index:3}:host ::ng-deep .p-fileupload-advanced{border-width:0;border-radius:0;background-color:#fff}:host ::ng-deep .p-fileupload-header{padding:0}:host ::ng-deep .p-fileupload-content{padding:0;display:block;border-width:0}:host ::ng-deep .p-inputnumber:not(.ng-valid).ng-dirty>.p-inputtext{background:var(--p-red-200)!important;border-bottom:1px solid var(--p-red-500)!important}:host ::ng-deep .p-inputnumber.ng-hovered:not(.p-disabled)>.p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .ng-hovered>.p-datepicker:not(.p-disabled) .p-inputtext{border-bottom:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor{border:1px solid #cbd5e1}:host ::ng-deep .cm-editor.cm-focused{outline:none!important;border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor:hover{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-editor.ng-hovered{border:1px solid var(--p-primary-color)}:host ::ng-deep .cm-gutters{background-color:#fff;border:\"none\"}:host ::ng-deep .cm-activeLineGutter{background-color:#fff}\n"] }]
163
+ }], ctorParameters: () => [{ type: i1.ActionService }, { type: i0.Renderer2 }], propDecorators: { codeContainer: [{
164
+ type: ViewChild,
165
+ args: ['codeContainer', { static: false }]
166
+ }] } });
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kZW1pcnJvci50eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaW1tLXVpL3NyYy9saWIvZm9ybS9mb3JtLXR5cGUvY29kZW1pcnJvci50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDM0YsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3QyxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM3RCxPQUFPLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsYUFBYSxFQUNiLFVBQVUsRUFDVixvQkFBb0IsRUFDcEIsZUFBZSxFQUNmLFdBQVcsRUFDWCx5QkFBeUIsRUFDekIsV0FBVyxHQUNYLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGtCQUFrQixFQUFFLGFBQWEsRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3pJLE9BQU8sRUFBRSxhQUFhLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsY0FBYyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRWhILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBaUI5QyxNQUFNLE9BQU8sbUJBQW1CO0lBUS9CLFlBQ1MsTUFBcUIsRUFDckIsUUFBbUI7UUFEbkIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBUDVCLFVBQUssR0FBRyxLQUFLLEVBQWEsQ0FBQztRQUMzQixVQUFLLEdBQW9CLEVBQUUsQ0FBQztRQUU1QixrQkFBYSxHQUFHLENBQUMsQ0FBQztRQU1qQixNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFHLENBQUMsZUFBZ0IsQ0FBQztnQkFDNUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3pCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3pCLENBQUM7UUFDRixDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDWCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdEQsSUFBSSxDQUFDLFdBQVcsSUFBSSxXQUFXLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDNUQsT0FBTztZQUNSLENBQUM7WUFDRCxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDckQsQ0FBQztpQkFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksWUFBWSxFQUFFLENBQUM7Z0JBQzdDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsWUFBWSxDQUFDLENBQUM7WUFDeEQsQ0FBQztpQkFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksT0FBTyxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDekIsQ0FBQztpQkFBTSxJQUFJLFdBQVcsQ0FBQyxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU07b0JBQUUsT0FBTztnQkFDbEUsSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFlBQVksRUFBRSxRQUFRLENBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUNuQixDQUFDLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQ2hILEVBQ0QsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLEVBQ25CLElBQUksQ0FDSixDQUFDO2dCQUNGLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0YsQ0FBQyxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNkLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxVQUFVLENBQUM7WUFDaEMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxNQUFNLENBQUM7Z0JBQ3pCLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLEVBQUUsWUFBWSxFQUFFLEtBQUs7YUFDdEMsQ0FBQztZQUNGLE1BQU0sRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWE7U0FDeEMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVELFdBQVc7UUFDVixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxnQkFBZ0I7UUFDZixNQUFNLFdBQVcsR0FBRztZQUNuQixXQUFXLEVBQUU7WUFDYixVQUFVLEVBQUU7WUFDWixxQkFBcUIsRUFBRTtZQUN2QixPQUFPLEVBQUU7WUFDVCxhQUFhLEVBQUU7WUFDZixVQUFVLEVBQUU7WUFDWixXQUFXLENBQUMsdUJBQXVCLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQztZQUM1QyxhQUFhLEVBQUU7WUFDZixrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQztZQUN6QyxlQUFlLEVBQUU7WUFDakIsYUFBYSxFQUFFO1lBQ2YsY0FBYyxFQUFFO1lBQ2hCLG9CQUFvQixFQUFFO1lBQ3RCLGVBQWUsRUFBRTtZQUNqQix5QkFBeUIsRUFBRTtZQUMzQix5QkFBeUIsRUFBRTtZQUMzQixNQUFNLENBQUMsRUFBRSxDQUFDO2dCQUNULEdBQUcsbUJBQW1CO2dCQUN0QixHQUFHLGFBQWE7Z0JBQ2hCLEdBQUcsWUFBWTtnQkFDZixHQUFHLGFBQWE7Z0JBQ2hCLEdBQUcsVUFBVTtnQkFDYixHQUFHLGdCQUFnQjtnQkFDbkIsR0FBRyxVQUFVO2FBQ2IsQ0FBQztZQUNGLFVBQVUsQ0FBQyxLQUFLLENBQUM7Z0JBQ2hCLGFBQWEsRUFBRTtvQkFDZCxlQUFlLEVBQUUsYUFBYTtvQkFDOUIsTUFBTSxFQUFFLE1BQU07aUJBQ2Q7Z0JBQ0Qsc0JBQXNCLEVBQUU7b0JBQ3ZCLGVBQWUsRUFBRSxhQUFhO2lCQUM5QjtnQkFDRCxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLElBQUksTUFBTSxFQUFFLFNBQVMsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLFNBQVMsSUFBSSxPQUFPLEVBQUU7Z0JBQzlGLGNBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsU0FBUyxJQUFJLE1BQU0sRUFBRTthQUMvRSxDQUFDO1lBQ0YsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzNCLFVBQVUsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7Z0JBQ3ZDLHFFQUFxRTtnQkFDckUsSUFBSSxNQUFNLENBQUMsVUFBVSxFQUFFLENBQUM7b0JBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7Z0JBQ25FLENBQUM7WUFDRixDQUFDLENBQUM7U0FDRixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzVCLFdBQVcsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztRQUMxRCxDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3pCLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUNqRCxDQUFDO1FBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDeEIsT0FBTyxFQUFFLFdBQVcsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQztTQUNoRCxDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsaUJBQWlCO1FBQ2hCLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQzNELElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEtBQUssSUFBSSxJQUFJLEVBQUUsQ0FBQztnQkFDeEQsT0FBTztZQUNSLENBQUM7WUFDRCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7Z0JBQ2hELE9BQU8sRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTthQUN6RSxDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCxvQkFBb0I7UUFDbkIsUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQzdCLEtBQUssTUFBTTtnQkFDVixPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2YsS0FBSyxZQUFZO2dCQUNoQixPQUFPLFVBQVUsRUFBRSxDQUFDO1lBQ3JCLEtBQUssTUFBTTtnQkFDVixPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2Y7Z0JBQ0MsT0FBTyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0YsQ0FBQztJQUVELFFBQVEsQ0FBQyxHQUFXO1FBQ25CLE9BQU8sVUFBVSxDQUFDLGNBQWMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN6QyxNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUN4QixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDO1lBQzVCLElBQUksU0FBUyxHQUFHLEdBQUcsRUFBRSxDQUFDO2dCQUNyQixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUM7cUJBQ3pDLElBQUksQ0FBQyxFQUFFLENBQUM7cUJBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNiLE1BQU0sV0FBVyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDO29CQUNsQyxPQUFPLEVBQUUsRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFO2lCQUMvQyxDQUFDLENBQUM7Z0JBQ0gsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzsrR0ExSlcsbUJBQW1CO21HQUFuQixtQkFBbUIsK1RBSHJCLDRCQUE0Qix1aUxBRDVCLG1CQUFtQjs7NEZBSWpCLG1CQUFtQjtrQkFQL0IsU0FBUzsrQkFDQyxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxtQkFBbUIsQ0FBQyxZQUNwQiw0QkFBNEI7MEdBSVMsYUFBYTtzQkFBM0QsU0FBUzt1QkFBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBWaWV3Q2hpbGQsIGlucHV0LCBlZmZlY3QsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBGb3JtRmllbGQsIEZpZWxkUHJvcHMgfSBmcm9tICcuLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQnO1xyXG5pbXBvcnQgeyBqYXZhc2NyaXB0IH0gZnJvbSAnQGNvZGVtaXJyb3IvbGFuZy1qYXZhc2NyaXB0JztcclxuaW1wb3J0IHsgaHRtbCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmctaHRtbCc7XHJcbmltcG9ydCB7IGpzb24gfSBmcm9tICdAY29kZW1pcnJvci9sYW5nLWpzb24nO1xyXG5pbXBvcnQgeyBFZGl0b3JTdGF0ZSwgU3RhdGVFZmZlY3QgfSBmcm9tICdAY29kZW1pcnJvci9zdGF0ZSc7XHJcbmltcG9ydCB7XHJcblx0RWRpdG9yVmlldyxcclxuXHRrZXltYXAsXHJcblx0aGlnaGxpZ2h0U3BlY2lhbENoYXJzLFxyXG5cdGRyYXdTZWxlY3Rpb24sXHJcblx0ZHJvcEN1cnNvcixcclxuXHRyZWN0YW5ndWxhclNlbGVjdGlvbixcclxuXHRjcm9zc2hhaXJDdXJzb3IsXHJcblx0bGluZU51bWJlcnMsXHJcblx0aGlnaGxpZ2h0QWN0aXZlTGluZUd1dHRlcixcclxuXHRwbGFjZWhvbGRlcixcclxufSBmcm9tICdAY29kZW1pcnJvci92aWV3JztcclxuaW1wb3J0IHsgZGVmYXVsdEhpZ2hsaWdodFN0eWxlLCBzeW50YXhIaWdobGlnaHRpbmcsIGluZGVudE9uSW5wdXQsIGJyYWNrZXRNYXRjaGluZywgZm9sZEd1dHRlciwgZm9sZEtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2xhbmd1YWdlJztcclxuaW1wb3J0IHsgZGVmYXVsdEtleW1hcCwgaGlzdG9yeSwgaGlzdG9yeUtleW1hcCB9IGZyb20gJ0Bjb2RlbWlycm9yL2NvbW1hbmRzJztcclxuaW1wb3J0IHsgc2VhcmNoS2V5bWFwLCBoaWdobGlnaHRTZWxlY3Rpb25NYXRjaGVzIH0gZnJvbSAnQGNvZGVtaXJyb3Ivc2VhcmNoJztcclxuaW1wb3J0IHsgYXV0b2NvbXBsZXRpb24sIGNvbXBsZXRpb25LZXltYXAsIGNsb3NlQnJhY2tldHMsIGNsb3NlQnJhY2tldHNLZXltYXAgfSBmcm9tICdAY29kZW1pcnJvci9hdXRvY29tcGxldGUnO1xyXG5pbXBvcnQgeyBBY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZS9hY3Rpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IGxpbnRLZXltYXAgfSBmcm9tICdAY29kZW1pcnJvci9saW50JztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ29kZU1pcnJvclByb3BzIGV4dGVuZHMgRmllbGRQcm9wcyB7XHJcblx0bGFuZ3VhZ2U/OiAnaHRtbCcgfCAnamF2YXNjcmlwdCcgfCAnanNvbic7XHJcblx0bWF4SGVpZ2h0Pzogc3RyaW5nO1xyXG5cdG1pbkhlaWdodD86IHN0cmluZztcclxuXHRwbGFjZWhvbGRlcj86IHN0cmluZztcclxuXHR0ZW1wbGF0ZXM/OiBzdHJpbmdbXTtcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcblx0c2VsZWN0b3I6ICdmb3JtLWNvZGVtaXJyb3InLFxyXG5cdHN0YW5kYWxvbmU6IHRydWUsXHJcblx0aW1wb3J0czogW1JlYWN0aXZlRm9ybXNNb2R1bGVdLFxyXG5cdHRlbXBsYXRlOiBgPGRpdiAjY29kZUNvbnRhaW5lcj48L2Rpdj5gLFxyXG5cdHN0eWxlVXJsOiAnLi4vLi4vc3R5bGVzL3N0eWxlcy5zY3NzJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvZGVNaXJyb3JDb21wb25lbnQge1xyXG5cdEBWaWV3Q2hpbGQoJ2NvZGVDb250YWluZXInLCB7IHN0YXRpYzogZmFsc2UgfSkgY29kZUNvbnRhaW5lciE6IEVsZW1lbnRSZWY7XHJcblx0Y21FZGl0b3IhOiBFbGVtZW50UmVmO1xyXG5cdGZpZWxkID0gaW5wdXQ8Rm9ybUZpZWxkPigpO1xyXG5cdHByb3BzOiBDb2RlTWlycm9yUHJvcHMgPSB7fTtcclxuXHRlZGl0b3JWaWV3ITogRWRpdG9yVmlldztcclxuXHR0ZW1wbGF0ZUluZGV4ID0gMDtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIGFjdGlvbjogQWN0aW9uU2VydmljZSxcclxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuXHQpIHtcclxuXHRcdGVmZmVjdCgoKSA9PiB7XHJcblx0XHRcdGlmICh0aGlzLmZpZWxkKCkpIHtcclxuXHRcdFx0XHR0aGlzLnByb3BzID0gdGhpcy5maWVsZCgpIS5jb2RlTWlycm9yUHJvcHMhO1xyXG5cdFx0XHRcdHRoaXMuaGFuZGxlTW9kZWxDaGFuZ2UoKTtcclxuXHRcdFx0XHR0aGlzLmhhbmRsZUV4dGVuc2lvbnMoKTtcclxuXHRcdFx0fVxyXG5cdFx0fSk7XHJcblx0XHRlZmZlY3QoKCkgPT4ge1xyXG5cdFx0XHRjb25zdCBsYWJlbEFjdGlvbiA9IHRoaXMuYWN0aW9uLmdldEZpZWxkTGFiZWxBY3Rpb24oKTtcclxuXHRcdFx0aWYgKCFsYWJlbEFjdGlvbiB8fCBsYWJlbEFjdGlvbj8ua2V5ICE9IHRoaXMuZmllbGQoKT8udXVpZCkge1xyXG5cdFx0XHRcdHJldHVybjtcclxuXHRcdFx0fVxyXG5cdFx0XHRpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VlbnRlcicpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuY21FZGl0b3IsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnbW91c2VsZWF2ZScpIHtcclxuXHRcdFx0XHR0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuY21FZGl0b3IsICduZy1ob3ZlcmVkJyk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnY2xpY2snKSB7XHJcblx0XHRcdFx0dGhpcy5lZGl0b3JWaWV3LmZvY3VzKCk7XHJcblx0XHRcdH0gZWxzZSBpZiAobGFiZWxBY3Rpb24udHlwZSA9PSAnZGJsY2xpY2snKSB7XHJcblx0XHRcdFx0aWYgKCF0aGlzLnByb3BzLnRlbXBsYXRlcyB8fCAhdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSByZXR1cm47XHJcblx0XHRcdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/LnNldFZhbHVlKFxyXG5cdFx0XHRcdFx0dGhpcy5wcm9wcy50ZW1wbGF0ZXNbXHJcblx0XHRcdFx0XHRcdCgodGhpcy50ZW1wbGF0ZUluZGV4ICUgdGhpcy5wcm9wcy50ZW1wbGF0ZXMubGVuZ3RoKSArIHRoaXMucHJvcHMudGVtcGxhdGVzLmxlbmd0aCkgJSB0aGlzLnByb3BzLnRlbXBsYXRlcy5sZW5ndGhcclxuXHRcdFx0XHRcdF0sXHJcblx0XHRcdFx0XHR7IGVtaXRFdmVudDogdHJ1ZSB9LFxyXG5cdFx0XHRcdFx0dHJ1ZSxcclxuXHRcdFx0XHQpO1xyXG5cdFx0XHRcdHRoaXMudGVtcGxhdGVJbmRleCsrO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuXHRcdHRoaXMuZWRpdG9yVmlldyA9IG5ldyBFZGl0b3JWaWV3KHtcclxuXHRcdFx0c3RhdGU6IEVkaXRvclN0YXRlLmNyZWF0ZSh7XHJcblx0XHRcdFx0ZG9jOiB0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8udmFsdWUsXHJcblx0XHRcdH0pLFxyXG5cdFx0XHRwYXJlbnQ6IHRoaXMuY29kZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LFxyXG5cdFx0fSk7XHJcblx0XHR0aGlzLmNtRWRpdG9yID0gdGhpcy5jb2RlQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLmNtLWVkaXRvcicpO1xyXG5cdH1cclxuXHJcblx0bmdPbkRlc3Ryb3koKSB7XHJcblx0XHR0aGlzLmVkaXRvclZpZXcuZGVzdHJveSgpO1xyXG5cdH1cclxuXHJcblx0aGFuZGxlRXh0ZW5zaW9ucygpIHtcclxuXHRcdGNvbnN0IGV4dGVuZHNpb25zID0gW1xyXG5cdFx0XHRsaW5lTnVtYmVycygpLFxyXG5cdFx0XHRmb2xkR3V0dGVyKCksXHJcblx0XHRcdGhpZ2hsaWdodFNwZWNpYWxDaGFycygpLFxyXG5cdFx0XHRoaXN0b3J5KCksXHJcblx0XHRcdGRyYXdTZWxlY3Rpb24oKSxcclxuXHRcdFx0ZHJvcEN1cnNvcigpLFxyXG5cdFx0XHRFZGl0b3JTdGF0ZS5hbGxvd011bHRpcGxlU2VsZWN0aW9ucy5vZih0cnVlKSxcclxuXHRcdFx0aW5kZW50T25JbnB1dCgpLFxyXG5cdFx0XHRzeW50YXhIaWdobGlnaHRpbmcoZGVmYXVsdEhpZ2hsaWdodFN0eWxlKSxcclxuXHRcdFx0YnJhY2tldE1hdGNoaW5nKCksXHJcblx0XHRcdGNsb3NlQnJhY2tldHMoKSxcclxuXHRcdFx0YXV0b2NvbXBsZXRpb24oKSxcclxuXHRcdFx0cmVjdGFuZ3VsYXJTZWxlY3Rpb24oKSxcclxuXHRcdFx0Y3Jvc3NoYWlyQ3Vyc29yKCksXHJcblx0XHRcdGhpZ2hsaWdodEFjdGl2ZUxpbmVHdXR0ZXIoKSxcclxuXHRcdFx0aGlnaGxpZ2h0U2VsZWN0aW9uTWF0Y2hlcygpLFxyXG5cdFx0XHRrZXltYXAub2YoW1xyXG5cdFx0XHRcdC4uLmNsb3NlQnJhY2tldHNLZXltYXAsXHJcblx0XHRcdFx0Li4uZGVmYXVsdEtleW1hcCxcclxuXHRcdFx0XHQuLi5zZWFyY2hLZXltYXAsXHJcblx0XHRcdFx0Li4uaGlzdG9yeUtleW1hcCxcclxuXHRcdFx0XHQuLi5mb2xkS2V5bWFwLFxyXG5cdFx0XHRcdC4uLmNvbXBsZXRpb25LZXltYXAsXHJcblx0XHRcdFx0Li4ubGludEtleW1hcCxcclxuXHRcdFx0XSksXHJcblx0XHRcdEVkaXRvclZpZXcudGhlbWUoe1xyXG5cdFx0XHRcdCcuY20tZ3V0dGVycyc6IHtcclxuXHRcdFx0XHRcdGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcclxuXHRcdFx0XHRcdGJvcmRlcjogJ25vbmUnLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0Jy5jbS1hY3RpdmVMaW5lR3V0dGVyJzoge1xyXG5cdFx0XHRcdFx0YmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxyXG5cdFx0XHRcdH0sXHJcblx0XHRcdFx0JyYnOiB7IG1pbkhlaWdodDogdGhpcy5wcm9wcy5taW5IZWlnaHQgPz8gJzg4cHgnLCBtYXhIZWlnaHQ6IHRoaXMucHJvcHMubWF4SGVpZ2h0IHx8ICcxNTBweCcgfSxcclxuXHRcdFx0XHQnLmNtLXNjcm9sbGVyJzogeyBvdmVyZmxvdzogJ2F1dG8nLCBtaW5IZWlnaHQ6IHRoaXMucHJvcHMubWluSGVpZ2h0ID8/ICc4OHB4JyB9LFxyXG5cdFx0XHR9KSxcclxuXHRcdFx0dGhpcy5nZXRMYW5ndWFnZUV4dGVuc2lvbigpLFxyXG5cdFx0XHRFZGl0b3JWaWV3LnVwZGF0ZUxpc3RlbmVyLm9mKCh1cGRhdGUpID0+IHtcclxuXHRcdFx0XHQvLyBpZiAodXBkYXRlLnRyYW5zYWN0aW9ucy5zb21lKCh0cikgPT4gdHIuaXNVc2VyRXZlbnQoJ2lucHV0JykpKSB7XHR9XHJcblx0XHRcdFx0aWYgKHVwZGF0ZS5kb2NDaGFuZ2VkKSB7XHJcblx0XHRcdFx0XHR0aGlzLmZpZWxkKCk/LmZpZWxkQ29udHJvbD8uc2V0VmFsdWUodXBkYXRlLnN0YXRlLmRvYy50b1N0cmluZygpKTtcclxuXHRcdFx0XHR9XHJcblx0XHRcdH0pLFxyXG5cdFx0XTtcclxuXHRcdGlmICh0aGlzLnByb3BzLnBsYWNlaG9sZGVyKSB7XHJcblx0XHRcdGV4dGVuZHNpb25zLnVuc2hpZnQocGxhY2Vob2xkZXIodGhpcy5wcm9wcy5wbGFjZWhvbGRlcikpO1xyXG5cdFx0fVxyXG5cdFx0aWYgKHRoaXMucHJvcHMuZGlzYWJsZWQpIHtcclxuXHRcdFx0ZXh0ZW5kc2lvbnMucHVzaChFZGl0b3JWaWV3LmVkaXRhYmxlLm9mKGZhbHNlKSk7XHJcblx0XHR9XHJcblx0XHR0aGlzLmVkaXRvclZpZXcuZGlzcGF0Y2goe1xyXG5cdFx0XHRlZmZlY3RzOiBTdGF0ZUVmZmVjdC5yZWNvbmZpZ3VyZS5vZihleHRlbmRzaW9ucyksXHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGhhbmRsZU1vZGVsQ2hhbmdlKCkge1xyXG5cdFx0dGhpcy5maWVsZCgpPy5maWVsZENvbnRyb2w/Lm1vZGVsQ2hhbmdlLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuXHRcdFx0aWYgKCF0aGlzLmVkaXRvclZpZXcuc3RhdGUuZG9jLmxlbmd0aCAmJiB2YWx1ZSA9PSBudWxsKSB7XHJcblx0XHRcdFx0cmV0dXJuO1xyXG5cdFx0XHR9XHJcblx0XHRcdGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5lZGl0b3JWaWV3LnN0YXRlLnVwZGF0ZSh7XHJcblx0XHRcdFx0Y2hhbmdlczogeyBmcm9tOiAwLCB0bzogdGhpcy5lZGl0b3JWaWV3LnN0YXRlLmRvYy5sZW5ndGgsIGluc2VydDogdmFsdWUgfSxcclxuXHRcdFx0fSk7XHJcblx0XHRcdHRoaXMuZWRpdG9yVmlldy5kaXNwYXRjaCh0cmFuc2FjdGlvbik7XHJcblx0XHR9KTtcclxuXHR9XHJcblxyXG5cdGdldExhbmd1YWdlRXh0ZW5zaW9uKCkge1xyXG5cdFx0c3dpdGNoICh0aGlzLnByb3BzLmxhbmd1YWdlKSB7XHJcblx0XHRcdGNhc2UgJ2h0bWwnOlxyXG5cdFx0XHRcdHJldHVybiBodG1sKCk7XHJcblx0XHRcdGNhc2UgJ2phdmFzY3JpcHQnOlxyXG5cdFx0XHRcdHJldHVybiBqYXZhc2NyaXB0KCk7XHJcblx0XHRcdGNhc2UgJ2pzb24nOlxyXG5cdFx0XHRcdHJldHVybiBqc29uKCk7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0cmV0dXJuIGphdmFzY3JpcHQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG1pbkxpbmVzKG1pbjogbnVtYmVyKSB7XHJcblx0XHRyZXR1cm4gRWRpdG9yVmlldy51cGRhdGVMaXN0ZW5lci5vZigodikgPT4ge1xyXG5cdFx0XHRjb25zdCBkb2MgPSB2LnN0YXRlLmRvYztcclxuXHRcdFx0Y29uc3QgbGluZUNvdW50ID0gZG9jLmxpbmVzO1xyXG5cdFx0XHRpZiAobGluZUNvdW50IDwgbWluKSB7XHJcblx0XHRcdFx0Y29uc3QgbmV3TGluZXMgPSBBcnJheShtaW4gKyAxIC0gbGluZUNvdW50KVxyXG5cdFx0XHRcdFx0LmZpbGwoJycpXHJcblx0XHRcdFx0XHQuam9pbignXFxuJyk7XHJcblx0XHRcdFx0Y29uc3QgdHJhbnNhY3Rpb24gPSB2LnN0YXRlLnVwZGF0ZSh7XHJcblx0XHRcdFx0XHRjaGFuZ2VzOiB7IGZyb206IGRvYy5sZW5ndGgsIGluc2VydDogbmV3TGluZXMgfSxcclxuXHRcdFx0XHR9KTtcclxuXHRcdFx0XHR2LnZpZXcuZGlzcGF0Y2godHJhbnNhY3Rpb24pO1xyXG5cdFx0XHR9XHJcblx0XHR9KTtcclxuXHR9XHJcbn1cclxuIl19