@ai-table/grid 0.0.72 → 0.1.0

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 (232) hide show
  1. package/angular-konva/components/container.component.d.ts.map +1 -1
  2. package/angular-konva/components/shape.component.d.ts.map +1 -1
  3. package/angular-konva/components/stage.component.d.ts.map +1 -1
  4. package/components/cell-editors/abstract-cell-editor.component.d.ts.map +1 -1
  5. package/components/cell-editors/date/date-editor.component.d.ts.map +1 -1
  6. package/components/cell-editors/link/edit-link/edit-link.component.d.ts.map +1 -1
  7. package/components/cell-editors/link/link-editor.component.d.ts.map +1 -1
  8. package/components/cell-editors/number/number-editor.component.d.ts.map +1 -1
  9. package/components/cell-editors/select/select-editor.component.d.ts.map +1 -1
  10. package/components/cell-editors/text/text-editor.component.d.ts.map +1 -1
  11. package/components/cell-views/select/option.component.d.ts.map +1 -1
  12. package/components/context-menu/context-menu.component.d.ts.map +1 -1
  13. package/components/drag/drag.component.d.ts.map +1 -1
  14. package/components/field-menu/field-menu.component.d.ts.map +1 -1
  15. package/components/field-setting/field-setting.component.d.ts.map +1 -1
  16. package/core/context.d.ts +2 -0
  17. package/core/context.d.ts.map +1 -1
  18. package/core/types/ai-table.d.ts.map +1 -1
  19. package/core/utils/field.d.ts.map +1 -1
  20. package/core/utils/queries.d.ts.map +1 -1
  21. package/core/utils/short-id.d.ts.map +1 -1
  22. package/dom-grid.component.d.ts.map +1 -1
  23. package/fesm2022/ai-table-grid.mjs +322 -310
  24. package/fesm2022/ai-table-grid.mjs.map +1 -1
  25. package/grid-base.component.d.ts +3 -1
  26. package/grid-base.component.d.ts.map +1 -1
  27. package/grid.component.d.ts +1 -1
  28. package/grid.component.d.ts.map +1 -1
  29. package/package.json +3 -5
  30. package/pipes/grid.pipe.d.ts.map +1 -1
  31. package/renderer/components/action-icon.component.d.ts.map +1 -1
  32. package/renderer/components/add-field-column.component.d.ts.map +1 -1
  33. package/renderer/components/cells/attachment.component.d.ts.map +1 -1
  34. package/renderer/components/cells/link.component.d.ts.map +1 -1
  35. package/renderer/components/cells/progress.component.d.ts.map +1 -1
  36. package/renderer/components/cells/rate.component.d.ts.map +1 -1
  37. package/renderer/components/cells/rich-text.component.d.ts.map +1 -1
  38. package/renderer/components/cells.component.d.ts.map +1 -1
  39. package/renderer/components/field-head.component.d.ts +2 -2
  40. package/renderer/components/field-head.component.d.ts.map +1 -1
  41. package/renderer/components/field-icon.component.d.ts.map +1 -1
  42. package/renderer/components/frozen-cells.component.d.ts.map +1 -1
  43. package/renderer/components/frozen-heads.component.d.ts +1 -1
  44. package/renderer/components/frozen-heads.component.d.ts.map +1 -1
  45. package/renderer/components/frozen-placeholder-cells.component.d.ts.map +1 -1
  46. package/renderer/components/heads.component.d.ts +1 -1
  47. package/renderer/components/heads.component.d.ts.map +1 -1
  48. package/renderer/components/hover-cell.component.d.ts.map +1 -1
  49. package/renderer/components/hover-row-heads.component.d.ts.map +1 -1
  50. package/renderer/components/icon.component.d.ts.map +1 -1
  51. package/renderer/components/other-rows.component.d.ts.map +1 -1
  52. package/renderer/components/placeholder-cells.component.d.ts.map +1 -1
  53. package/renderer/components/text.component.d.ts.map +1 -1
  54. package/renderer/creations/create-active-cell-border.d.ts.map +1 -1
  55. package/renderer/creations/create-cells.d.ts.map +1 -1
  56. package/renderer/creations/create-heads.d.ts.map +1 -1
  57. package/renderer/drawers/add-row-layout-drawer.d.ts +1 -1
  58. package/renderer/drawers/add-row-layout-drawer.d.ts.map +1 -1
  59. package/renderer/drawers/cell-drawer.d.ts.map +1 -1
  60. package/renderer/drawers/drawer.d.ts +1 -1
  61. package/renderer/renderer.component.d.ts +5 -4
  62. package/renderer/renderer.component.d.ts.map +1 -1
  63. package/types/cell.d.ts +2 -0
  64. package/types/cell.d.ts.map +1 -1
  65. package/types/component-config.d.ts +2 -0
  66. package/types/component-config.d.ts.map +1 -1
  67. package/types/grid.d.ts +4 -0
  68. package/types/grid.d.ts.map +1 -1
  69. package/types/row.d.ts +1 -0
  70. package/types/row.d.ts.map +1 -1
  71. package/utils/build.d.ts.map +1 -1
  72. package/utils/clipboard/clipboard.d.ts.map +1 -1
  73. package/utils/clipboard/copy.d.ts.map +1 -1
  74. package/utils/clipboard/paste.d.ts +5 -1
  75. package/utils/clipboard/paste.d.ts.map +1 -1
  76. package/utils/common.d.ts.map +1 -1
  77. package/utils/field/model/date.d.ts.map +1 -1
  78. package/utils/field/model/link.d.ts.map +1 -1
  79. package/utils/field/model/progress.d.ts.map +1 -1
  80. package/utils/field/model/text.d.ts.map +1 -1
  81. package/utils/get-text-width.d.ts.map +1 -1
  82. package/utils/i18n.d.ts +2 -0
  83. package/utils/i18n.d.ts.map +1 -1
  84. package/utils/match-keywords.d.ts.map +1 -1
  85. package/utils/position.d.ts.map +1 -1
  86. package/utils/style.d.ts.map +1 -1
  87. package/utils/text-measure.d.ts.map +1 -1
  88. package/utils/visible-range.d.ts.map +1 -1
  89. package/esm2022/ai-table-grid.mjs +0 -5
  90. package/esm2022/angular-konva/components/container.component.mjs +0 -29
  91. package/esm2022/angular-konva/components/container.token.mjs +0 -3
  92. package/esm2022/angular-konva/components/index.mjs +0 -4
  93. package/esm2022/angular-konva/components/shape.component.mjs +0 -142
  94. package/esm2022/angular-konva/components/stage.component.mjs +0 -123
  95. package/esm2022/angular-konva/index.mjs +0 -5
  96. package/esm2022/angular-konva/interfaces/component.mjs +0 -4
  97. package/esm2022/angular-konva/interfaces/config.mjs +0 -2
  98. package/esm2022/angular-konva/interfaces/event-object.mjs +0 -2
  99. package/esm2022/angular-konva/interfaces/index.mjs +0 -5
  100. package/esm2022/angular-konva/interfaces/shape.mjs +0 -42
  101. package/esm2022/angular-konva/utils/apply-node-props.mjs +0 -67
  102. package/esm2022/angular-konva/utils/common.mjs +0 -48
  103. package/esm2022/angular-konva/utils/index.mjs +0 -5
  104. package/esm2022/angular-konva/utils/types.mjs +0 -2
  105. package/esm2022/angular-konva/utils/update-picture.mjs +0 -7
  106. package/esm2022/components/cell-editors/abstract-cell-editor.component.mjs +0 -56
  107. package/esm2022/components/cell-editors/date/date-editor.component.mjs +0 -87
  108. package/esm2022/components/cell-editors/link/edit-link/edit-link.component.mjs +0 -81
  109. package/esm2022/components/cell-editors/link/link-editor.component.mjs +0 -122
  110. package/esm2022/components/cell-editors/number/number-editor.component.mjs +0 -41
  111. package/esm2022/components/cell-editors/select/select-editor.component.mjs +0 -74
  112. package/esm2022/components/cell-editors/text/text-editor.component.mjs +0 -76
  113. package/esm2022/components/cell-views/select/option.component.mjs +0 -28
  114. package/esm2022/components/context-menu/context-menu.component.mjs +0 -42
  115. package/esm2022/components/drag/drag.component.mjs +0 -300
  116. package/esm2022/components/field-menu/field-menu.component.mjs +0 -47
  117. package/esm2022/components/field-setting/field-setting.component.mjs +0 -142
  118. package/esm2022/components/index.mjs +0 -10
  119. package/esm2022/constants/colors.mjs +0 -19
  120. package/esm2022/constants/editor.mjs +0 -11
  121. package/esm2022/constants/file-icon.mjs +0 -342
  122. package/esm2022/constants/grid.mjs +0 -35
  123. package/esm2022/constants/icon.mjs +0 -30
  124. package/esm2022/constants/index.mjs +0 -7
  125. package/esm2022/constants/table.mjs +0 -78
  126. package/esm2022/constants/text.mjs +0 -23
  127. package/esm2022/core/constants/field.mjs +0 -107
  128. package/esm2022/core/context.mjs +0 -29
  129. package/esm2022/core/coordinate.mjs +0 -222
  130. package/esm2022/core/index.mjs +0 -6
  131. package/esm2022/core/types/ai-table.mjs +0 -57
  132. package/esm2022/core/types/core.mjs +0 -2
  133. package/esm2022/core/types/index.mjs +0 -3
  134. package/esm2022/core/utils/common.mjs +0 -45
  135. package/esm2022/core/utils/field.mjs +0 -64
  136. package/esm2022/core/utils/id-creator.mjs +0 -21
  137. package/esm2022/core/utils/index.mjs +0 -5
  138. package/esm2022/core/utils/queries.mjs +0 -80
  139. package/esm2022/core/utils/short-id.mjs +0 -53
  140. package/esm2022/dom-grid.component.mjs +0 -80
  141. package/esm2022/grid-base.component.mjs +0 -145
  142. package/esm2022/grid.component.mjs +0 -649
  143. package/esm2022/index.mjs +0 -2
  144. package/esm2022/pipes/grid.pipe.mjs +0 -110
  145. package/esm2022/pipes/index.mjs +0 -2
  146. package/esm2022/public-api.mjs +0 -12
  147. package/esm2022/renderer/components/action-icon.component.mjs +0 -117
  148. package/esm2022/renderer/components/add-field-column.component.mjs +0 -88
  149. package/esm2022/renderer/components/cells/attachment.component.mjs +0 -107
  150. package/esm2022/renderer/components/cells/cells.mjs +0 -6
  151. package/esm2022/renderer/components/cells/index.mjs +0 -7
  152. package/esm2022/renderer/components/cells/link.component.mjs +0 -89
  153. package/esm2022/renderer/components/cells/progress.component.mjs +0 -268
  154. package/esm2022/renderer/components/cells/rate.component.mjs +0 -153
  155. package/esm2022/renderer/components/cells/rich-text.component.mjs +0 -95
  156. package/esm2022/renderer/components/cells.component.mjs +0 -35
  157. package/esm2022/renderer/components/field-head.component.mjs +0 -146
  158. package/esm2022/renderer/components/field-icon.component.mjs +0 -72
  159. package/esm2022/renderer/components/frozen-cells.component.mjs +0 -36
  160. package/esm2022/renderer/components/frozen-heads.component.mjs +0 -214
  161. package/esm2022/renderer/components/frozen-placeholder-cells.component.mjs +0 -38
  162. package/esm2022/renderer/components/heads.component.mjs +0 -38
  163. package/esm2022/renderer/components/hover-cell.component.mjs +0 -104
  164. package/esm2022/renderer/components/hover-row-heads.component.mjs +0 -132
  165. package/esm2022/renderer/components/icon.component.mjs +0 -84
  166. package/esm2022/renderer/components/index.mjs +0 -15
  167. package/esm2022/renderer/components/other-rows.component.mjs +0 -68
  168. package/esm2022/renderer/components/placeholder-cells.component.mjs +0 -33
  169. package/esm2022/renderer/components/text.component.mjs +0 -67
  170. package/esm2022/renderer/creations/create-active-cell-border.mjs +0 -70
  171. package/esm2022/renderer/creations/create-cells.mjs +0 -190
  172. package/esm2022/renderer/creations/create-heads.mjs +0 -51
  173. package/esm2022/renderer/drawers/add-row-layout-drawer.mjs +0 -98
  174. package/esm2022/renderer/drawers/cell-drawer.mjs +0 -673
  175. package/esm2022/renderer/drawers/drawer.mjs +0 -947
  176. package/esm2022/renderer/drawers/layout-drawer.mjs +0 -64
  177. package/esm2022/renderer/drawers/record-row-layout-drawer.mjs +0 -131
  178. package/esm2022/renderer/index.mjs +0 -4
  179. package/esm2022/renderer/interfaces/hover-cell.mjs +0 -4
  180. package/esm2022/renderer/interfaces/index.mjs +0 -2
  181. package/esm2022/renderer/renderer.component.mjs +0 -197
  182. package/esm2022/services/event.service.mjs +0 -241
  183. package/esm2022/services/field.service.mjs +0 -56
  184. package/esm2022/services/index.mjs +0 -4
  185. package/esm2022/services/selection.service.mjs +0 -151
  186. package/esm2022/types/avatar.mjs +0 -27
  187. package/esm2022/types/canvas.mjs +0 -2
  188. package/esm2022/types/cell.mjs +0 -2
  189. package/esm2022/types/clipboard.mjs +0 -2
  190. package/esm2022/types/component-config.mjs +0 -7
  191. package/esm2022/types/field.mjs +0 -2
  192. package/esm2022/types/grid.mjs +0 -17
  193. package/esm2022/types/index.mjs +0 -10
  194. package/esm2022/types/layout.mjs +0 -2
  195. package/esm2022/types/row.mjs +0 -6
  196. package/esm2022/utils/build.mjs +0 -39
  197. package/esm2022/utils/cell.mjs +0 -80
  198. package/esm2022/utils/clear-cells.mjs +0 -23
  199. package/esm2022/utils/clipboard/clipboard.mjs +0 -88
  200. package/esm2022/utils/clipboard/copy.mjs +0 -99
  201. package/esm2022/utils/clipboard/extract.mjs +0 -38
  202. package/esm2022/utils/clipboard/index.mjs +0 -5
  203. package/esm2022/utils/clipboard/paste.mjs +0 -188
  204. package/esm2022/utils/common.mjs +0 -50
  205. package/esm2022/utils/field/field-operable.mjs +0 -2
  206. package/esm2022/utils/field/field.mjs +0 -20
  207. package/esm2022/utils/field/index.mjs +0 -4
  208. package/esm2022/utils/field/model/attachment.mjs +0 -56
  209. package/esm2022/utils/field/model/date.mjs +0 -141
  210. package/esm2022/utils/field/model/index.mjs +0 -12
  211. package/esm2022/utils/field/model/link.mjs +0 -56
  212. package/esm2022/utils/field/model/member.mjs +0 -81
  213. package/esm2022/utils/field/model/number.mjs +0 -59
  214. package/esm2022/utils/field/model/progress.mjs +0 -69
  215. package/esm2022/utils/field/model/rate.mjs +0 -58
  216. package/esm2022/utils/field/model/rich-text.mjs +0 -39
  217. package/esm2022/utils/field/model/select.mjs +0 -131
  218. package/esm2022/utils/field/model/text.mjs +0 -32
  219. package/esm2022/utils/field/operate.mjs +0 -73
  220. package/esm2022/utils/file.mjs +0 -116
  221. package/esm2022/utils/get-placeholder-cells.mjs +0 -66
  222. package/esm2022/utils/get-text-width.mjs +0 -30
  223. package/esm2022/utils/hover-cell.mjs +0 -25
  224. package/esm2022/utils/i18n.mjs +0 -87
  225. package/esm2022/utils/image-cache.mjs +0 -57
  226. package/esm2022/utils/index.mjs +0 -19
  227. package/esm2022/utils/match-keywords.mjs +0 -15
  228. package/esm2022/utils/os.mjs +0 -16
  229. package/esm2022/utils/position.mjs +0 -48
  230. package/esm2022/utils/style.mjs +0 -37
  231. package/esm2022/utils/text-measure.mjs +0 -122
  232. package/esm2022/utils/visible-range.mjs +0 -42
@@ -1,74 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, computed } from '@angular/core';
3
- import { FormsModule } from '@angular/forms';
4
- import { ThyEmptyModule } from 'ngx-tethys/empty';
5
- import { ThySelect, ThySelectModule } from 'ngx-tethys/select';
6
- import { ThyOption } from 'ngx-tethys/shared';
7
- import { ThyTooltipModule } from 'ngx-tethys/tooltip';
8
- import { AITableSelectOptionStyle } from '@ai-table/utils';
9
- import { SelectOptionComponent } from '../../cell-views/select/option.component';
10
- import { AbstractEditCellEditor } from '../abstract-cell-editor.component';
11
- import { ThyFormModule } from 'ngx-tethys/form';
12
- import { AITableQueries } from '../../../core';
13
- import * as i0 from "@angular/core";
14
- import * as i1 from "@angular/forms";
15
- export class SelectCellEditorComponent extends AbstractEditCellEditor {
16
- get isMultiple() {
17
- return !!this.field().settings.is_multiple;
18
- }
19
- constructor() {
20
- super();
21
- this.selectOptions = computed(() => {
22
- return this.field().settings.options;
23
- });
24
- this.preset = computed(() => {
25
- return this.field().settings.is_multiple && this.field().settings.option_style === AITableSelectOptionStyle.tag ? 'tag' : '';
26
- });
27
- }
28
- ngOnInit() {
29
- this.modelValue = computed(() => {
30
- const value = AITableQueries.getFieldValue(this.aiTable, [this.record()._id, this.field()._id]);
31
- if (!this.isMultiple) {
32
- return value?.length > 0 ? value[0] : null;
33
- }
34
- return value || [];
35
- })();
36
- }
37
- onOpenChange(value) {
38
- if (!value) {
39
- this.closePopover();
40
- }
41
- }
42
- onModelChange(event) {
43
- this.updateValueFn();
44
- }
45
- updateValueFn() {
46
- const value = (this.isMultiple ? this.modelValue : (this.modelValue && [this.modelValue]) || []);
47
- const originValue = AITableQueries.getFieldValue(this.aiTable, [this.record()._id, this.field()._id]);
48
- if (!value.every((v, i) => v === originValue[i]) || value.length !== originValue.length) {
49
- this.updateFieldValue.emit({
50
- value: value,
51
- path: [this.record()._id, this.field()._id]
52
- });
53
- }
54
- }
55
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SelectCellEditorComponent, isStandalone: true, selector: "select-cell-editor", host: { classAttribute: "d-block h-100 select-cell-editor" }, usesInheritance: true, ngImport: i0, template: "<thy-select\n [(ngModel)]=\"modelValue\"\n [thyAutoExpand]=\"true\"\n [thyAllowClear]=\"true\"\n [thyPlaceHolder]=\"''\"\n [thyPreset]=\"preset()\"\n [thyMode]=\"field().settings.is_multiple ? 'multiple' : ''\"\n (ngModelChange)=\"onModelChange($event)\"\n (thyOnExpandStatusChange)=\"onOpenChange($event)\"\n>\n <ng-template #selectedDisplay let-option>\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </ng-template>\n @for (option of selectOptions(); track option._id) {\n <thy-option [thyValue]=\"option._id\" [thyRawValue]=\"option\" [thyShowOptionCustom]=\"true\" [thyLabelText]=\"option.text\">\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </thy-option>\n }\n</thy-select>\n", dependencies: [{ kind: "component", type: ThySelect, selector: "thy-select,thy-custom-select", inputs: ["thyDropdownWidthMode", "thyShowSearch", "thyPlaceHolder", "thyServerSearch", "thyLoadState", "thyAutoActiveFirstItem", "thyMode", "thySize", "thyEmptyStateText", "thyEmptySearchMessageText", "thyEnableScrollLoad", "thyAllowClear", "thyDisabled", "thySortComparator", "thyFooterTemplate", "thyPlacement", "thyOrigin", "thyFooterClass", "thyAutoExpand", "thyHasBackdrop", "thyMaxTagCount", "thyBorderless", "thyOptions", "thyPreset"], outputs: ["thyOnSearch", "thyOnScrollToBottom", "thyOnExpandStatusChange"], exportAs: ["thySelect"] }, { kind: "component", type: ThyOption, selector: "thy-option", inputs: ["thyValue", "thyRawValue", "thyLabelText", "thyShowOptionCustom", "thySearchKey", "thyDisabled"], outputs: ["selectionChange", "visibleChange"] }, { kind: "ngmodule", type: ThyTooltipModule }, { kind: "component", type: SelectOptionComponent, selector: "select-option", inputs: ["field", "displayOption"] }, { kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ThyEmptyModule }, { kind: "ngmodule", type: ThyFormModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ThySelectModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
57
- }
58
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectCellEditorComponent, decorators: [{
59
- type: Component,
60
- args: [{ selector: 'select-cell-editor', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
61
- class: 'd-block h-100 select-cell-editor'
62
- }, imports: [
63
- ThySelect,
64
- ThyOption,
65
- ThyTooltipModule,
66
- SelectOptionComponent,
67
- CommonModule,
68
- ThyEmptyModule,
69
- ThyFormModule,
70
- FormsModule,
71
- ThySelectModule
72
- ], template: "<thy-select\n [(ngModel)]=\"modelValue\"\n [thyAutoExpand]=\"true\"\n [thyAllowClear]=\"true\"\n [thyPlaceHolder]=\"''\"\n [thyPreset]=\"preset()\"\n [thyMode]=\"field().settings.is_multiple ? 'multiple' : ''\"\n (ngModelChange)=\"onModelChange($event)\"\n (thyOnExpandStatusChange)=\"onOpenChange($event)\"\n>\n <ng-template #selectedDisplay let-option>\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </ng-template>\n @for (option of selectOptions(); track option._id) {\n <thy-option [thyValue]=\"option._id\" [thyRawValue]=\"option\" [thyShowOptionCustom]=\"true\" [thyLabelText]=\"option.text\">\n <select-option [field]=\"field()\" [displayOption]=\"option\"></select-option>\n </thy-option>\n }\n</thy-select>\n" }]
73
- }], ctorParameters: () => [] });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWVkaXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2NlbGwtZWRpdG9ycy9zZWxlY3Qvc2VsZWN0LWVkaXRvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2NlbGwtZWRpdG9ycy9zZWxlY3Qvc2VsZWN0LWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM5QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNqRixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBcUIvQyxNQUFNLE9BQU8seUJBQTBCLFNBQVEsc0JBQTZEO0lBU3hHLElBQUksVUFBVTtRQUNWLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDO0lBQy9DLENBQUM7SUFFRDtRQUNJLEtBQUssRUFBRSxDQUFDO1FBYlosa0JBQWEsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQzFCLE9BQU8sSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFFSCxXQUFNLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxRQUFRLENBQUMsWUFBWSxLQUFLLHdCQUF3QixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDakksQ0FBQyxDQUFDLENBQUM7SUFRSCxDQUFDO0lBRVEsUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUM1QixNQUFNLEtBQUssR0FBRyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hHLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ25CLE9BQU8sS0FBSyxFQUFFLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQy9DLENBQUM7WUFDRCxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNULENBQUM7SUFFRCxZQUFZLENBQUMsS0FBYztRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDeEIsQ0FBQztJQUNMLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGFBQWE7UUFDVCxNQUFNLEtBQUssR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsSUFBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBYSxDQUFDO1FBQzNILE1BQU0sV0FBVyxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFhLENBQUM7UUFDbEgsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLE1BQU0sS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEYsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQztnQkFDdkIsS0FBSyxFQUFFLEtBQUs7Z0JBQ1osSUFBSSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsR0FBRyxDQUFDO2FBQzlDLENBQUMsQ0FBQztRQUNQLENBQUM7SUFDTCxDQUFDOytHQTlDUSx5QkFBeUI7bUdBQXpCLHlCQUF5QixtS0NqQ3RDLHV6QkFtQkEsNENER1EsU0FBUyx5bUJBQ1QsU0FBUyxnTkFDVCxnQkFBZ0IsK0JBQ2hCLHFCQUFxQiw2RkFDckIsWUFBWSw4QkFDWixjQUFjLDhCQUNkLGFBQWEsOEJBQ2IsV0FBVyw4VkFDWCxlQUFlOzs0RkFHVix5QkFBeUI7a0JBcEJyQyxTQUFTOytCQUNJLG9CQUFvQixjQUVsQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sUUFDekM7d0JBQ0YsS0FBSyxFQUFFLGtDQUFrQztxQkFDNUMsV0FDUTt3QkFDTCxTQUFTO3dCQUNULFNBQVM7d0JBQ1QsZ0JBQWdCO3dCQUNoQixxQkFBcUI7d0JBQ3JCLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxhQUFhO3dCQUNiLFdBQVc7d0JBQ1gsZUFBZTtxQkFDbEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVGh5RW1wdHlNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2VtcHR5JztcbmltcG9ydCB7IFRoeVNlbGVjdCwgVGh5U2VsZWN0TW9kdWxlIH0gZnJvbSAnbmd4LXRldGh5cy9zZWxlY3QnO1xuaW1wb3J0IHsgVGh5T3B0aW9uIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgVGh5VG9vbHRpcE1vZHVsZSB9IGZyb20gJ25neC10ZXRoeXMvdG9vbHRpcCc7XG5pbXBvcnQgeyBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUgfSBmcm9tICdAYWktdGFibGUvdXRpbHMnO1xuaW1wb3J0IHsgQUlUYWJsZVNlbGVjdEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgU2VsZWN0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY2VsbC12aWV3cy9zZWxlY3Qvb3B0aW9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBYnN0cmFjdEVkaXRDZWxsRWRpdG9yIH0gZnJvbSAnLi4vYWJzdHJhY3QtY2VsbC1lZGl0b3IuY29tcG9uZW50JztcbmltcG9ydCB7IFRoeUZvcm1Nb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL2Zvcm0nO1xuaW1wb3J0IHsgQUlUYWJsZVF1ZXJpZXMgfSBmcm9tICcuLi8uLi8uLi9jb3JlJztcbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnc2VsZWN0LWNlbGwtZWRpdG9yJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWVkaXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnZC1ibG9jayBoLTEwMCBzZWxlY3QtY2VsbC1lZGl0b3InXG4gICAgfSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIFRoeVNlbGVjdCxcbiAgICAgICAgVGh5T3B0aW9uLFxuICAgICAgICBUaHlUb29sdGlwTW9kdWxlLFxuICAgICAgICBTZWxlY3RPcHRpb25Db21wb25lbnQsXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgVGh5RW1wdHlNb2R1bGUsXG4gICAgICAgIFRoeUZvcm1Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBUaHlTZWxlY3RNb2R1bGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIFNlbGVjdENlbGxFZGl0b3JDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEVkaXRDZWxsRWRpdG9yPHN0cmluZ1tdIHwgc3RyaW5nLCBBSVRhYmxlU2VsZWN0RmllbGQ+IHtcbiAgICBzZWxlY3RPcHRpb25zID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5maWVsZCgpLnNldHRpbmdzLm9wdGlvbnM7XG4gICAgfSk7XG5cbiAgICBwcmVzZXQgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLmZpZWxkKCkuc2V0dGluZ3MuaXNfbXVsdGlwbGUgJiYgdGhpcy5maWVsZCgpLnNldHRpbmdzLm9wdGlvbl9zdHlsZSA9PT0gQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlLnRhZyA/ICd0YWcnIDogJyc7XG4gICAgfSk7XG5cbiAgICBnZXQgaXNNdWx0aXBsZSgpIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5maWVsZCgpLnNldHRpbmdzLmlzX211bHRpcGxlO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLm1vZGVsVmFsdWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YWx1ZSA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkVmFsdWUodGhpcy5haVRhYmxlLCBbdGhpcy5yZWNvcmQoKS5faWQsIHRoaXMuZmllbGQoKS5faWRdKTtcbiAgICAgICAgICAgIGlmICghdGhpcy5pc011bHRpcGxlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlPy5sZW5ndGggPiAwID8gdmFsdWVbMF0gOiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlIHx8IFtdO1xuICAgICAgICB9KSgpO1xuICAgIH1cblxuICAgIG9uT3BlbkNoYW5nZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25Nb2RlbENoYW5nZShldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMudXBkYXRlVmFsdWVGbigpO1xuICAgIH1cblxuICAgIHVwZGF0ZVZhbHVlRm4oKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gKHRoaXMuaXNNdWx0aXBsZSA/IHRoaXMubW9kZWxWYWx1ZSA6ICh0aGlzLm1vZGVsVmFsdWUgJiYgKFt0aGlzLm1vZGVsVmFsdWVdIGFzIHN0cmluZ1tdKSkgfHwgW10pIGFzIHN0cmluZ1tdO1xuICAgICAgICBjb25zdCBvcmlnaW5WYWx1ZSA9IEFJVGFibGVRdWVyaWVzLmdldEZpZWxkVmFsdWUodGhpcy5haVRhYmxlLCBbdGhpcy5yZWNvcmQoKS5faWQsIHRoaXMuZmllbGQoKS5faWRdKSBhcyBzdHJpbmdbXTtcbiAgICAgICAgaWYgKCF2YWx1ZS5ldmVyeSgodiwgaSkgPT4gdiA9PT0gb3JpZ2luVmFsdWVbaV0pIHx8IHZhbHVlLmxlbmd0aCAhPT0gb3JpZ2luVmFsdWUubGVuZ3RoKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUZpZWxkVmFsdWUuZW1pdCh7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLFxuICAgICAgICAgICAgICAgIHBhdGg6IFt0aGlzLnJlY29yZCgpLl9pZCwgdGhpcy5maWVsZCgpLl9pZF1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPHRoeS1zZWxlY3RcbiAgICBbKG5nTW9kZWwpXT1cIm1vZGVsVmFsdWVcIlxuICAgIFt0aHlBdXRvRXhwYW5kXT1cInRydWVcIlxuICAgIFt0aHlBbGxvd0NsZWFyXT1cInRydWVcIlxuICAgIFt0aHlQbGFjZUhvbGRlcl09XCInJ1wiXG4gICAgW3RoeVByZXNldF09XCJwcmVzZXQoKVwiXG4gICAgW3RoeU1vZGVdPVwiZmllbGQoKS5zZXR0aW5ncy5pc19tdWx0aXBsZSA/ICdtdWx0aXBsZScgOiAnJ1wiXG4gICAgKG5nTW9kZWxDaGFuZ2UpPVwib25Nb2RlbENoYW5nZSgkZXZlbnQpXCJcbiAgICAodGh5T25FeHBhbmRTdGF0dXNDaGFuZ2UpPVwib25PcGVuQ2hhbmdlKCRldmVudClcIlxuPlxuICAgIDxuZy10ZW1wbGF0ZSAjc2VsZWN0ZWREaXNwbGF5IGxldC1vcHRpb24+XG4gICAgICAgIDxzZWxlY3Qtb3B0aW9uIFtmaWVsZF09XCJmaWVsZCgpXCIgW2Rpc3BsYXlPcHRpb25dPVwib3B0aW9uXCI+PC9zZWxlY3Qtb3B0aW9uPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gICAgQGZvciAob3B0aW9uIG9mIHNlbGVjdE9wdGlvbnMoKTsgdHJhY2sgb3B0aW9uLl9pZCkge1xuICAgICAgICA8dGh5LW9wdGlvbiBbdGh5VmFsdWVdPVwib3B0aW9uLl9pZFwiIFt0aHlSYXdWYWx1ZV09XCJvcHRpb25cIiBbdGh5U2hvd09wdGlvbkN1c3RvbV09XCJ0cnVlXCIgW3RoeUxhYmVsVGV4dF09XCJvcHRpb24udGV4dFwiPlxuICAgICAgICAgICAgPHNlbGVjdC1vcHRpb24gW2ZpZWxkXT1cImZpZWxkKClcIiBbZGlzcGxheU9wdGlvbl09XCJvcHRpb25cIj48L3NlbGVjdC1vcHRpb24+XG4gICAgICAgIDwvdGh5LW9wdGlvbj5cbiAgICB9XG48L3RoeS1zZWxlY3Q+XG4iXX0=
@@ -1,76 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, inject, Renderer2 } from '@angular/core';
2
- import { FormsModule } from '@angular/forms';
3
- import { ThyInputDirective } from 'ngx-tethys/input';
4
- import { ThyAutofocusDirective, ThyEnterDirective } from 'ngx-tethys/shared';
5
- import { AbstractEditCellEditor } from '../abstract-cell-editor.component';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/forms";
8
- export class TextCellEditorComponent extends AbstractEditCellEditor {
9
- constructor() {
10
- super();
11
- this.render2 = inject(Renderer2);
12
- this.maxHeight = 148;
13
- this.minHeight = 24;
14
- }
15
- ngAfterViewInit() {
16
- setTimeout(() => {
17
- this.updateStyle();
18
- });
19
- }
20
- updateStyle() {
21
- const textarea = this.elementRef.nativeElement.querySelector('textarea');
22
- if (textarea) {
23
- this.render2.setStyle(textarea, 'height', 'auto');
24
- const scrollHeight = textarea.scrollHeight;
25
- const newHeight = Math.max(this.minHeight, Math.min(scrollHeight, this.maxHeight)) + 4;
26
- this.render2.setStyle(textarea, 'max-height', `${this.maxHeight}px`);
27
- this.render2.setStyle(textarea, 'height', `${newHeight}px`);
28
- this.render2.setStyle(textarea, 'resize', 'none');
29
- }
30
- }
31
- valueChange() {
32
- this.updateStyle();
33
- }
34
- updateValue() {
35
- super.update();
36
- this.closePopover();
37
- }
38
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextCellEditorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
39
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: TextCellEditorComponent, isStandalone: true, selector: "text-cell-editor", host: { classAttribute: "text-cell-editor" }, usesInheritance: true, ngImport: i0, template: `
40
- <textarea
41
- placeholder=""
42
- rows="1"
43
- thyInput
44
- [thyAutofocus]="true"
45
- [(ngModel)]="modelValue"
46
- (ngModelChange)="valueChange()"
47
- (thyEnter)="updateValue()"
48
- (blur)="updateValue()"
49
- ></textarea>
50
- `, isInline: true, dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: ThyAutofocusDirective, selector: "input[thyAutofocus],textarea[thyAutofocus]", inputs: ["thyAutofocus", "thyAutoSelect"] }, { kind: "directive", type: ThyInputDirective, selector: "input[thyInput], select[thyInput], textarea[thyInput]", inputs: ["thySize"], exportAs: ["thyInput"] }, { kind: "directive", type: ThyEnterDirective, selector: "[thyEnter]", outputs: ["thyEnter"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
51
- }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextCellEditorComponent, decorators: [{
53
- type: Component,
54
- args: [{
55
- selector: 'text-cell-editor',
56
- template: `
57
- <textarea
58
- placeholder=""
59
- rows="1"
60
- thyInput
61
- [thyAutofocus]="true"
62
- [(ngModel)]="modelValue"
63
- (ngModelChange)="valueChange()"
64
- (thyEnter)="updateValue()"
65
- (blur)="updateValue()"
66
- ></textarea>
67
- `,
68
- standalone: true,
69
- changeDetection: ChangeDetectionStrategy.OnPush,
70
- imports: [FormsModule, ThyAutofocusDirective, ThyInputDirective, ThyEnterDirective],
71
- host: {
72
- class: 'text-cell-editor'
73
- }
74
- }]
75
- }], ctorParameters: () => [] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvZ3JpZC9zcmMvY29tcG9uZW50cy9jZWxsLWVkaXRvcnMvdGV4dC90ZXh0LWVkaXRvci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDckQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDN0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7OztBQXVCM0UsTUFBTSxPQUFPLHVCQUF3QixTQUFRLHNCQUE4QjtJQU12RTtRQUNJLEtBQUssRUFBRSxDQUFDO1FBTkosWUFBTyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1QixjQUFTLEdBQUcsR0FBRyxDQUFDO1FBRWhCLGNBQVMsR0FBRyxFQUFFLENBQUM7SUFJdkIsQ0FBQztJQUVELGVBQWU7UUFDWCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ1osSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3ZCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFdBQVc7UUFDUCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekUsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7WUFDbEQsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLFlBQVksQ0FBQztZQUMzQyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBRXZGLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsQ0FBQztZQUNyRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLEdBQUcsU0FBUyxJQUFJLENBQUMsQ0FBQztZQUM1RCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNQLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNmLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN4QixDQUFDOytHQXBDUSx1QkFBdUI7bUdBQXZCLHVCQUF1QixpSkFuQnRCOzs7Ozs7Ozs7OztLQVdULDJEQUdTLFdBQVcsK21CQUFFLHFCQUFxQixrSUFBRSxpQkFBaUIsK0lBQUUsaUJBQWlCOzs0RkFLekUsdUJBQXVCO2tCQXJCbkMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsa0JBQWtCO29CQUM1QixRQUFRLEVBQUU7Ozs7Ozs7Ozs7O0tBV1Q7b0JBQ0QsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO29CQUMvQyxPQUFPLEVBQUUsQ0FBQyxXQUFXLEVBQUUscUJBQXFCLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLENBQUM7b0JBQ25GLElBQUksRUFBRTt3QkFDRixLQUFLLEVBQUUsa0JBQWtCO3FCQUM1QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRoeUlucHV0RGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9pbnB1dCc7XG5pbXBvcnQgeyBUaHlBdXRvZm9jdXNEaXJlY3RpdmUsIFRoeUVudGVyRGlyZWN0aXZlIH0gZnJvbSAnbmd4LXRldGh5cy9zaGFyZWQnO1xuaW1wb3J0IHsgQWJzdHJhY3RFZGl0Q2VsbEVkaXRvciB9IGZyb20gJy4uL2Fic3RyYWN0LWNlbGwtZWRpdG9yLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndGV4dC1jZWxsLWVkaXRvcicsXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgPHRleHRhcmVhXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlwiXG4gICAgICAgICAgICByb3dzPVwiMVwiXG4gICAgICAgICAgICB0aHlJbnB1dFxuICAgICAgICAgICAgW3RoeUF1dG9mb2N1c109XCJ0cnVlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwibW9kZWxWYWx1ZVwiXG4gICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ2YWx1ZUNoYW5nZSgpXCJcbiAgICAgICAgICAgICh0aHlFbnRlcik9XCJ1cGRhdGVWYWx1ZSgpXCJcbiAgICAgICAgICAgIChibHVyKT1cInVwZGF0ZVZhbHVlKClcIlxuICAgICAgICA+PC90ZXh0YXJlYT5cbiAgICBgLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBUaHlBdXRvZm9jdXNEaXJlY3RpdmUsIFRoeUlucHV0RGlyZWN0aXZlLCBUaHlFbnRlckRpcmVjdGl2ZV0sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3RleHQtY2VsbC1lZGl0b3InXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBUZXh0Q2VsbEVkaXRvckNvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0RWRpdENlbGxFZGl0b3I8c3RyaW5nPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByaXZhdGUgcmVuZGVyMiA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgbWF4SGVpZ2h0ID0gMTQ4O1xuXG4gICAgcHJpdmF0ZSBtaW5IZWlnaHQgPSAyNDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHVwZGF0ZVN0eWxlKCkge1xuICAgICAgICBjb25zdCB0ZXh0YXJlYSA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3RleHRhcmVhJyk7XG4gICAgICAgIGlmICh0ZXh0YXJlYSkge1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIyLnNldFN0eWxlKHRleHRhcmVhLCAnaGVpZ2h0JywgJ2F1dG8nKTtcbiAgICAgICAgICAgIGNvbnN0IHNjcm9sbEhlaWdodCA9IHRleHRhcmVhLnNjcm9sbEhlaWdodDtcbiAgICAgICAgICAgIGNvbnN0IG5ld0hlaWdodCA9IE1hdGgubWF4KHRoaXMubWluSGVpZ2h0LCBNYXRoLm1pbihzY3JvbGxIZWlnaHQsIHRoaXMubWF4SGVpZ2h0KSkgKyA0O1xuXG4gICAgICAgICAgICB0aGlzLnJlbmRlcjIuc2V0U3R5bGUodGV4dGFyZWEsICdtYXgtaGVpZ2h0JywgYCR7dGhpcy5tYXhIZWlnaHR9cHhgKTtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyMi5zZXRTdHlsZSh0ZXh0YXJlYSwgJ2hlaWdodCcsIGAke25ld0hlaWdodH1weGApO1xuICAgICAgICAgICAgdGhpcy5yZW5kZXIyLnNldFN0eWxlKHRleHRhcmVhLCAncmVzaXplJywgJ25vbmUnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHZhbHVlQ2hhbmdlKCkge1xuICAgICAgICB0aGlzLnVwZGF0ZVN0eWxlKCk7XG4gICAgfVxuXG4gICAgdXBkYXRlVmFsdWUoKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZSgpO1xuICAgICAgICB0aGlzLmNsb3NlUG9wb3ZlcigpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,28 +0,0 @@
1
- import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';
2
- import { ThyDot } from 'ngx-tethys/dot';
3
- import { ThyFlexibleText } from 'ngx-tethys/flexible-text';
4
- import { ThyIcon } from 'ngx-tethys/icon';
5
- import { ThyTag } from 'ngx-tethys/tag';
6
- import { ThyTooltipModule } from 'ngx-tethys/tooltip';
7
- import { AITableSelectOptionStyle } from '@ai-table/utils';
8
- import * as i0 from "@angular/core";
9
- export class SelectOptionComponent {
10
- constructor() {
11
- this.field = input.required();
12
- this.displayOption = input.required();
13
- this.optionStyle = computed(() => {
14
- return this.field().settings.option_style || AITableSelectOptionStyle.text;
15
- });
16
- this.AITableSelectOptionStyle = AITableSelectOptionStyle;
17
- }
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectOptionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
19
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: SelectOptionComponent, isStandalone: true, selector: "select-option", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, displayOption: { classPropertyName: "displayOption", publicName: "displayOption", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "class.select-option-tag": "optionStyle === AITableSelectOptionStyle.tag" }, classAttribute: "select-option thy-text" }, ngImport: i0, template: "@if (displayOption(); as displayOption) {\n @switch (optionStyle()) {\n @case (AITableSelectOptionStyle.dot) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot [thyColor]=\"color\" [thySize]=\"'md'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @case (AITableSelectOptionStyle.tag) {\n @if (displayOption.bg_color || displayOption.color || 'default'; as color) {\n <thy-tag thyTheme=\"fill\" thyShape=\"pill\" [thyColor]=\"color\">\n @if (displayOption['icon']) {\n <thy-icon class=\"text-white\" [thyIconName]=\"displayOption['icon']\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n </thy-tag>\n }\n }\n @case (AITableSelectOptionStyle.piece) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot thyShape=\"square\" [thyColor]=\"color\" [thySize]=\"'md'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @default {\n @if (displayOption['icon']) {\n <thy-icon [thyIconName]=\"displayOption['icon']\" [style.color]=\"displayOption.color\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n }\n}\n", dependencies: [{ kind: "component", type: ThyTag, selector: "thy-tag,[thyTag]", inputs: ["thyTag", "thyShape", "thyColor", "thyTheme", "thySize", "thyHoverable"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "ngmodule", type: ThyTooltipModule }, { kind: "component", type: ThyDot, selector: "thy-dot,[thy-dot],[thyDot]", inputs: ["thyColor", "thySize", "thyTheme", "thyShape"] }, { kind: "component", type: ThyFlexibleText, selector: "thy-flexible-text,[thyFlexibleText]", inputs: ["thyTooltipTrigger", "thyContainerClass", "thyTooltipContent", "thyTooltipPlacement", "thyTooltipOffset"], exportAs: ["thyFlexibleText"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
20
- }
21
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectOptionComponent, decorators: [{
22
- type: Component,
23
- args: [{ selector: 'select-option', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
24
- class: 'select-option thy-text',
25
- '[class.select-option-tag]': 'optionStyle === AITableSelectOptionStyle.tag'
26
- }, imports: [ThyTag, ThyIcon, ThyTooltipModule, ThyDot, ThyFlexibleText], template: "@if (displayOption(); as displayOption) {\n @switch (optionStyle()) {\n @case (AITableSelectOptionStyle.dot) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot [thyColor]=\"color\" [thySize]=\"'md'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @case (AITableSelectOptionStyle.tag) {\n @if (displayOption.bg_color || displayOption.color || 'default'; as color) {\n <thy-tag thyTheme=\"fill\" thyShape=\"pill\" [thyColor]=\"color\">\n @if (displayOption['icon']) {\n <thy-icon class=\"text-white\" [thyIconName]=\"displayOption['icon']\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n </thy-tag>\n }\n }\n @case (AITableSelectOptionStyle.piece) {\n @if (displayOption.bg_color || displayOption.color; as color) {\n <thy-dot thyShape=\"square\" [thyColor]=\"color\" [thySize]=\"'md'\" class=\"mr-2\"></thy-dot>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n @default {\n @if (displayOption['icon']) {\n <thy-icon [thyIconName]=\"displayOption['icon']\" [style.color]=\"displayOption.color\"></thy-icon>\n }\n <span thyFlexibleText [thyTooltipContent]=\"displayOption.text\">{{ displayOption.text }}</span>\n }\n }\n}\n" }]
27
- }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvbXBvbmVudHMvY2VsbC12aWV3cy9zZWxlY3Qvb3B0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvbXBvbmVudHMvY2VsbC12aWV3cy9zZWxlY3Qvb3B0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRixPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdEQsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWM5RixNQUFNLE9BQU8scUJBQXFCO0lBWGxDO1FBWUksVUFBSyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWdCLENBQUM7UUFFdkMsa0JBQWEsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUF1QixDQUFDO1FBRXRELGdCQUFXLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRTtZQUN4QixPQUFRLElBQUksQ0FBQyxLQUFLLEVBQXlCLENBQUMsUUFBUSxDQUFDLFlBQVksSUFBSSx3QkFBd0IsQ0FBQyxJQUFJLENBQUM7UUFDdkcsQ0FBQyxDQUFDLENBQUM7UUFFSCw2QkFBd0IsR0FBRyx3QkFBd0IsQ0FBQztLQUN2RDsrR0FWWSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwwZUNwQmxDLDBxREFnQ0EsNENEZGMsTUFBTSxnSkFBRSxPQUFPLHFNQUFFLGdCQUFnQiwrQkFBRSxNQUFNLGdJQUFFLGVBQWU7OzRGQUUzRCxxQkFBcUI7a0JBWGpDLFNBQVM7K0JBQ0ksZUFBZSxjQUViLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxRQUN6Qzt3QkFDRixLQUFLLEVBQUUsd0JBQXdCO3dCQUMvQiwyQkFBMkIsRUFBRSw4Q0FBOEM7cUJBQzlFLFdBQ1EsQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxlQUFlLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRoeURvdCB9IGZyb20gJ25neC10ZXRoeXMvZG90JztcbmltcG9ydCB7IFRoeUZsZXhpYmxlVGV4dCB9IGZyb20gJ25neC10ZXRoeXMvZmxleGlibGUtdGV4dCc7XG5pbXBvcnQgeyBUaHlJY29uIH0gZnJvbSAnbmd4LXRldGh5cy9pY29uJztcbmltcG9ydCB7IFRoeVRhZyB9IGZyb20gJ25neC10ZXRoeXMvdGFnJztcbmltcG9ydCB7IFRoeVRvb2x0aXBNb2R1bGUgfSBmcm9tICduZ3gtdGV0aHlzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQUlUYWJsZUZpZWxkLCBBSVRhYmxlU2VsZWN0T3B0aW9uLCBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUgfSBmcm9tICdAYWktdGFibGUvdXRpbHMnO1xuaW1wb3J0IHsgQUlUYWJsZVNlbGVjdEZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vdHlwZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NlbGVjdC1vcHRpb24nLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ3NlbGVjdC1vcHRpb24gdGh5LXRleHQnLFxuICAgICAgICAnW2NsYXNzLnNlbGVjdC1vcHRpb24tdGFnXSc6ICdvcHRpb25TdHlsZSA9PT0gQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlLnRhZydcbiAgICB9LFxuICAgIGltcG9ydHM6IFtUaHlUYWcsIFRoeUljb24sIFRoeVRvb2x0aXBNb2R1bGUsIFRoeURvdCwgVGh5RmxleGlibGVUZXh0XVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RPcHRpb25Db21wb25lbnQge1xuICAgIGZpZWxkID0gaW5wdXQucmVxdWlyZWQ8QUlUYWJsZUZpZWxkPigpO1xuXG4gICAgZGlzcGxheU9wdGlvbiA9IGlucHV0LnJlcXVpcmVkPEFJVGFibGVTZWxlY3RPcHRpb24+KCk7XG5cbiAgICBvcHRpb25TdHlsZSA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmZpZWxkKCkgYXMgQUlUYWJsZVNlbGVjdEZpZWxkKS5zZXR0aW5ncy5vcHRpb25fc3R5bGUgfHwgQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlLnRleHQ7XG4gICAgfSk7XG5cbiAgICBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGUgPSBBSVRhYmxlU2VsZWN0T3B0aW9uU3R5bGU7XG59XG4iLCJAaWYgKGRpc3BsYXlPcHRpb24oKTsgYXMgZGlzcGxheU9wdGlvbikge1xuICAgIEBzd2l0Y2ggKG9wdGlvblN0eWxlKCkpIHtcbiAgICAgICAgQGNhc2UgKEFJVGFibGVTZWxlY3RPcHRpb25TdHlsZS5kb3QpIHtcbiAgICAgICAgICAgIEBpZiAoZGlzcGxheU9wdGlvbi5iZ19jb2xvciB8fCBkaXNwbGF5T3B0aW9uLmNvbG9yOyBhcyBjb2xvcikge1xuICAgICAgICAgICAgICAgIDx0aHktZG90IFt0aHlDb2xvcl09XCJjb2xvclwiIFt0aHlTaXplXT1cIidtZCdcIiBjbGFzcz1cIm1yLTJcIj48L3RoeS1kb3Q+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3BhbiB0aHlGbGV4aWJsZVRleHQgW3RoeVRvb2x0aXBDb250ZW50XT1cImRpc3BsYXlPcHRpb24udGV4dFwiPnt7IGRpc3BsYXlPcHRpb24udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlLnRhZykge1xuICAgICAgICAgICAgQGlmIChkaXNwbGF5T3B0aW9uLmJnX2NvbG9yIHx8IGRpc3BsYXlPcHRpb24uY29sb3IgfHwgJ2RlZmF1bHQnOyBhcyBjb2xvcikge1xuICAgICAgICAgICAgICAgIDx0aHktdGFnIHRoeVRoZW1lPVwiZmlsbFwiIHRoeVNoYXBlPVwicGlsbFwiIFt0aHlDb2xvcl09XCJjb2xvclwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKGRpc3BsYXlPcHRpb25bJ2ljb24nXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHRoeS1pY29uIGNsYXNzPVwidGV4dC13aGl0ZVwiIFt0aHlJY29uTmFtZV09XCJkaXNwbGF5T3B0aW9uWydpY29uJ11cIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIHRoeUZsZXhpYmxlVGV4dCBbdGh5VG9vbHRpcENvbnRlbnRdPVwiZGlzcGxheU9wdGlvbi50ZXh0XCI+e3sgZGlzcGxheU9wdGlvbi50ZXh0IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvdGh5LXRhZz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBAY2FzZSAoQUlUYWJsZVNlbGVjdE9wdGlvblN0eWxlLnBpZWNlKSB7XG4gICAgICAgICAgICBAaWYgKGRpc3BsYXlPcHRpb24uYmdfY29sb3IgfHwgZGlzcGxheU9wdGlvbi5jb2xvcjsgYXMgY29sb3IpIHtcbiAgICAgICAgICAgICAgICA8dGh5LWRvdCB0aHlTaGFwZT1cInNxdWFyZVwiIFt0aHlDb2xvcl09XCJjb2xvclwiIFt0aHlTaXplXT1cIidtZCdcIiBjbGFzcz1cIm1yLTJcIj48L3RoeS1kb3Q+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8c3BhbiB0aHlGbGV4aWJsZVRleHQgW3RoeVRvb2x0aXBDb250ZW50XT1cImRpc3BsYXlPcHRpb24udGV4dFwiPnt7IGRpc3BsYXlPcHRpb24udGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgICBAZGVmYXVsdCB7XG4gICAgICAgICAgICBAaWYgKGRpc3BsYXlPcHRpb25bJ2ljb24nXSkge1xuICAgICAgICAgICAgICAgIDx0aHktaWNvbiBbdGh5SWNvbk5hbWVdPVwiZGlzcGxheU9wdGlvblsnaWNvbiddXCIgW3N0eWxlLmNvbG9yXT1cImRpc3BsYXlPcHRpb24uY29sb3JcIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPHNwYW4gdGh5RmxleGlibGVUZXh0IFt0aHlUb29sdGlwQ29udGVudF09XCJkaXNwbGF5T3B0aW9uLnRleHRcIj57eyBkaXNwbGF5T3B0aW9uLnRleHQgfX08L3NwYW4+XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
@@ -1,42 +0,0 @@
1
- import { NgClass } from '@angular/common';
2
- import { ChangeDetectionStrategy, Component, inject, input } from '@angular/core';
3
- import { ThyDropdownAbstractMenu, ThyDropdownMenuItemDirective, ThyDropdownMenuItemNameDirective, ThyDropdownMenuItemIconDirective, ThyDropdownMenuItemMetaDirective } from 'ngx-tethys/dropdown';
4
- import { ThyIcon } from 'ngx-tethys/icon';
5
- import { ThyDivider } from 'ngx-tethys/divider';
6
- import { AITableGridSelectionService } from '../../services/selection.service';
7
- import { ThyNotifyService } from 'ngx-tethys/notify';
8
- import * as i0 from "@angular/core";
9
- export class AITableContextMenu extends ThyDropdownAbstractMenu {
10
- constructor() {
11
- super(...arguments);
12
- this.aiTableGridSelectionService = inject(AITableGridSelectionService);
13
- this.notifyService = inject(ThyNotifyService);
14
- this.aiTable = input.required();
15
- this.menuItems = input.required();
16
- this.targetName = input.required();
17
- this.position = input.required();
18
- }
19
- execute(menu) {
20
- if ((menu.disabled && !menu.disabled(this.aiTable(), this.targetName(), this.position())) || !menu.disabled) {
21
- menu.exec &&
22
- menu.exec(this.aiTable(), this.targetName(), this.position(), this.aiTableGridSelectionService, this.notifyService);
23
- }
24
- }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableContextMenu, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: AITableContextMenu, isStandalone: true, selector: "ai-table-context-menu", inputs: { aiTable: { classPropertyName: "aiTable", publicName: "aiTable", isSignal: true, isRequired: true, transformFunction: null }, menuItems: { classPropertyName: "menuItems", publicName: "menuItems", isSignal: true, isRequired: true, transformFunction: null }, targetName: { classPropertyName: "targetName", publicName: "targetName", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "context-menu" }, usesInheritance: true, ngImport: i0, template: "@for (menu of menuItems(); track $index) {\n @if ((menu.hidden && !menu.hidden(aiTable(), targetName(), position())) || !menu.hidden) {\n @if (menu.type === 'divider') {\n <thy-divider thyStyle=\"solid\"></thy-divider>\n } @else {\n @let disabled = !!(menu.disabled && menu.disabled(aiTable(), targetName(), position()));\n @let isRemoveRecords = menu.type === 'removeRecords';\n @let isPreventClearSelection = menu.type === 'copyCells' || menu.type === 'pasteCells' || menu.type === 'removeRecords';\n\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n 'remove-record': isRemoveRecords && !disabled,\n 'ai-table-prevent-clear-selection': isPreventClearSelection && !disabled\n }\"\n (click)=\"execute(menu)\"\n [thyDisabled]=\"disabled\"\n >\n <thy-icon thyDropdownMenuItemIcon [thyIconName]=\"menu.icon!\"></thy-icon>\n <span thyDropdownMenuItemName>{{ menu.name }}</span>\n <span thyDropdownMenuItemMeta class=\"text-desc\">{{ menu.shortcutKey }}</span>\n </a>\n }\n }\n}\n", dependencies: [{ kind: "directive", type: ThyDropdownMenuItemDirective, selector: "[thyDropdownMenuItem]", inputs: ["thyType", "thyDisabled"] }, { kind: "directive", type: ThyDropdownMenuItemNameDirective, selector: "[thyDropdownMenuItemName]" }, { kind: "directive", type: ThyDropdownMenuItemIconDirective, selector: "[thyDropdownMenuItemIcon]" }, { kind: "directive", type: ThyDropdownMenuItemMetaDirective, selector: "[thyDropdownMenuItemMeta]" }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: ThyDivider, selector: "thy-divider", inputs: ["thyVertical", "thyStyle", "thyColor", "thyText", "thyTextDirection", "thyDeeper"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AITableContextMenu, decorators: [{
29
- type: Component,
30
- args: [{ selector: 'ai-table-context-menu', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, host: {
31
- class: 'context-menu'
32
- }, imports: [
33
- ThyDropdownMenuItemDirective,
34
- ThyDropdownMenuItemNameDirective,
35
- ThyDropdownMenuItemIconDirective,
36
- ThyDropdownMenuItemMetaDirective,
37
- ThyIcon,
38
- NgClass,
39
- ThyDivider
40
- ], template: "@for (menu of menuItems(); track $index) {\n @if ((menu.hidden && !menu.hidden(aiTable(), targetName(), position())) || !menu.hidden) {\n @if (menu.type === 'divider') {\n <thy-divider thyStyle=\"solid\"></thy-divider>\n } @else {\n @let disabled = !!(menu.disabled && menu.disabled(aiTable(), targetName(), position()));\n @let isRemoveRecords = menu.type === 'removeRecords';\n @let isPreventClearSelection = menu.type === 'copyCells' || menu.type === 'pasteCells' || menu.type === 'removeRecords';\n\n <a\n thyDropdownMenuItem\n href=\"javascript:;\"\n [ngClass]=\"{\n 'remove-record': isRemoveRecords && !disabled,\n 'ai-table-prevent-clear-selection': isPreventClearSelection && !disabled\n }\"\n (click)=\"execute(menu)\"\n [thyDisabled]=\"disabled\"\n >\n <thy-icon thyDropdownMenuItemIcon [thyIconName]=\"menu.icon!\"></thy-icon>\n <span thyDropdownMenuItemName>{{ menu.name }}</span>\n <span thyDropdownMenuItemMeta class=\"text-desc\">{{ menu.shortcutKey }}</span>\n </a>\n }\n }\n}\n" }]
41
- }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC1tZW51LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2dyaWQvc3JjL2NvbXBvbmVudHMvY29udGV4dC1tZW51L2NvbnRleHQtbWVudS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9ncmlkL3NyYy9jb21wb25lbnRzL2NvbnRleHQtbWVudS9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLDRCQUE0QixFQUM1QixnQ0FBZ0MsRUFDaEMsZ0NBQWdDLEVBQ2hDLGdDQUFnQyxFQUNuQyxNQUFNLHFCQUFxQixDQUFDO0FBQzdCLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMxQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFHaEQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBb0JyRCxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsdUJBQXVCO0lBbEIvRDs7UUFtQkksZ0NBQTJCLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFbEUsa0JBQWEsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUV6QyxZQUFPLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVyxDQUFDO1FBRXBDLGNBQVMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUE0QixDQUFDO1FBRXZELGVBQVUsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFVLENBQUM7UUFFdEMsYUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQTRCLENBQUM7S0FRekQ7SUFORyxPQUFPLENBQUMsSUFBNEI7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUMxRyxJQUFJLENBQUMsSUFBSTtnQkFDTCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDNUgsQ0FBQztJQUNMLENBQUM7K0dBbEJRLGtCQUFrQjttR0FBbEIsa0JBQWtCLG9xQkNsQy9CLHl2Q0EwQkEsNENERFEsNEJBQTRCLHNHQUM1QixnQ0FBZ0Msc0VBQ2hDLGdDQUFnQyxzRUFDaEMsZ0NBQWdDLHNFQUNoQyxPQUFPLHNNQUNQLE9BQU8sb0ZBQ1AsVUFBVTs7NEZBR0wsa0JBQWtCO2tCQWxCOUIsU0FBUzsrQkFDSSx1QkFBdUIsY0FFckIsSUFBSSxtQkFDQyx1QkFBdUIsQ0FBQyxNQUFNLFFBQ3pDO3dCQUNGLEtBQUssRUFBRSxjQUFjO3FCQUN4QixXQUNRO3dCQUNMLDRCQUE0Qjt3QkFDNUIsZ0NBQWdDO3dCQUNoQyxnQ0FBZ0M7d0JBQ2hDLGdDQUFnQzt3QkFDaEMsT0FBTzt3QkFDUCxPQUFPO3dCQUNQLFVBQVU7cUJBQ2IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGluamVjdCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gICAgVGh5RHJvcGRvd25BYnN0cmFjdE1lbnUsXG4gICAgVGh5RHJvcGRvd25NZW51SXRlbURpcmVjdGl2ZSxcbiAgICBUaHlEcm9wZG93bk1lbnVJdGVtTmFtZURpcmVjdGl2ZSxcbiAgICBUaHlEcm9wZG93bk1lbnVJdGVtSWNvbkRpcmVjdGl2ZSxcbiAgICBUaHlEcm9wZG93bk1lbnVJdGVtTWV0YURpcmVjdGl2ZVxufSBmcm9tICduZ3gtdGV0aHlzL2Ryb3Bkb3duJztcbmltcG9ydCB7IFRoeUljb24gfSBmcm9tICduZ3gtdGV0aHlzL2ljb24nO1xuaW1wb3J0IHsgVGh5RGl2aWRlciB9IGZyb20gJ25neC10ZXRoeXMvZGl2aWRlcic7XG5pbXBvcnQgeyBBSVRhYmxlIH0gZnJvbSAnLi4vLi4vY29yZSc7XG5pbXBvcnQgeyBBSVRhYmxlQ29udGV4dE1lbnVJdGVtIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgQUlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgVGh5Tm90aWZ5U2VydmljZSB9IGZyb20gJ25neC10ZXRoeXMvbm90aWZ5JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhaS10YWJsZS1jb250ZXh0LW1lbnUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9jb250ZXh0LW1lbnUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ2NvbnRleHQtbWVudSdcbiAgICB9LFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgVGh5RHJvcGRvd25NZW51SXRlbURpcmVjdGl2ZSxcbiAgICAgICAgVGh5RHJvcGRvd25NZW51SXRlbU5hbWVEaXJlY3RpdmUsXG4gICAgICAgIFRoeURyb3Bkb3duTWVudUl0ZW1JY29uRGlyZWN0aXZlLFxuICAgICAgICBUaHlEcm9wZG93bk1lbnVJdGVtTWV0YURpcmVjdGl2ZSxcbiAgICAgICAgVGh5SWNvbixcbiAgICAgICAgTmdDbGFzcyxcbiAgICAgICAgVGh5RGl2aWRlclxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQUlUYWJsZUNvbnRleHRNZW51IGV4dGVuZHMgVGh5RHJvcGRvd25BYnN0cmFjdE1lbnUge1xuICAgIGFpVGFibGVHcmlkU2VsZWN0aW9uU2VydmljZSA9IGluamVjdChBSVRhYmxlR3JpZFNlbGVjdGlvblNlcnZpY2UpO1xuXG4gICAgbm90aWZ5U2VydmljZSA9IGluamVjdChUaHlOb3RpZnlTZXJ2aWNlKTtcblxuICAgIGFpVGFibGUgPSBpbnB1dC5yZXF1aXJlZDxBSVRhYmxlPigpO1xuXG4gICAgbWVudUl0ZW1zID0gaW5wdXQucmVxdWlyZWQ8QUlUYWJsZUNvbnRleHRNZW51SXRlbVtdPigpO1xuXG4gICAgdGFyZ2V0TmFtZSA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcblxuICAgIHBvc2l0aW9uID0gaW5wdXQucmVxdWlyZWQ8eyB4OiBudW1iZXI7IHk6IG51bWJlciB9PigpO1xuXG4gICAgZXhlY3V0ZShtZW51OiBBSVRhYmxlQ29udGV4dE1lbnVJdGVtKSB7XG4gICAgICAgIGlmICgobWVudS5kaXNhYmxlZCAmJiAhbWVudS5kaXNhYmxlZCh0aGlzLmFpVGFibGUoKSwgdGhpcy50YXJnZXROYW1lKCksIHRoaXMucG9zaXRpb24oKSkpIHx8ICFtZW51LmRpc2FibGVkKSB7XG4gICAgICAgICAgICBtZW51LmV4ZWMgJiZcbiAgICAgICAgICAgICAgICBtZW51LmV4ZWModGhpcy5haVRhYmxlKCksIHRoaXMudGFyZ2V0TmFtZSgpLCB0aGlzLnBvc2l0aW9uKCksIHRoaXMuYWlUYWJsZUdyaWRTZWxlY3Rpb25TZXJ2aWNlLCB0aGlzLm5vdGlmeVNlcnZpY2UpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiQGZvciAobWVudSBvZiBtZW51SXRlbXMoKTsgdHJhY2sgJGluZGV4KSB7XG4gICAgQGlmICgobWVudS5oaWRkZW4gJiYgIW1lbnUuaGlkZGVuKGFpVGFibGUoKSwgdGFyZ2V0TmFtZSgpLCBwb3NpdGlvbigpKSkgfHwgIW1lbnUuaGlkZGVuKSB7XG4gICAgICAgIEBpZiAobWVudS50eXBlID09PSAnZGl2aWRlcicpIHtcbiAgICAgICAgICAgIDx0aHktZGl2aWRlciB0aHlTdHlsZT1cInNvbGlkXCI+PC90aHktZGl2aWRlcj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICBAbGV0IGRpc2FibGVkID0gISEobWVudS5kaXNhYmxlZCAmJiBtZW51LmRpc2FibGVkKGFpVGFibGUoKSwgdGFyZ2V0TmFtZSgpLCBwb3NpdGlvbigpKSk7XG4gICAgICAgICAgICBAbGV0IGlzUmVtb3ZlUmVjb3JkcyA9IG1lbnUudHlwZSA9PT0gJ3JlbW92ZVJlY29yZHMnO1xuICAgICAgICAgICAgQGxldCBpc1ByZXZlbnRDbGVhclNlbGVjdGlvbiA9IG1lbnUudHlwZSA9PT0gJ2NvcHlDZWxscycgfHwgbWVudS50eXBlID09PSAncGFzdGVDZWxscycgfHwgbWVudS50eXBlID09PSAncmVtb3ZlUmVjb3Jkcyc7XG5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgdGh5RHJvcGRvd25NZW51SXRlbVxuICAgICAgICAgICAgICAgIGhyZWY9XCJqYXZhc2NyaXB0OjtcIlxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAgICAgJ3JlbW92ZS1yZWNvcmQnOiBpc1JlbW92ZVJlY29yZHMgJiYgIWRpc2FibGVkLFxuICAgICAgICAgICAgICAgICAgICAnYWktdGFibGUtcHJldmVudC1jbGVhci1zZWxlY3Rpb24nOiBpc1ByZXZlbnRDbGVhclNlbGVjdGlvbiAmJiAhZGlzYWJsZWRcbiAgICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwiZXhlY3V0ZShtZW51KVwiXG4gICAgICAgICAgICAgICAgW3RoeURpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dGh5LWljb24gdGh5RHJvcGRvd25NZW51SXRlbUljb24gW3RoeUljb25OYW1lXT1cIm1lbnUuaWNvbiFcIj48L3RoeS1pY29uPlxuICAgICAgICAgICAgICAgIDxzcGFuIHRoeURyb3Bkb3duTWVudUl0ZW1OYW1lPnt7IG1lbnUubmFtZSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiB0aHlEcm9wZG93bk1lbnVJdGVtTWV0YSBjbGFzcz1cInRleHQtZGVzY1wiPnt7IG1lbnUuc2hvcnRjdXRLZXkgfX08L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=