@one-grid-core/angular 0.1.0-beta.5 → 0.2.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 (66) hide show
  1. package/README.md +49 -4
  2. package/esm2022/lib/components/one-grid/one-grid.component.mjs +67 -16
  3. package/esm2022/lib/components/one-grid-body/one-grid-body.component.mjs +282 -30
  4. package/esm2022/lib/components/one-grid-cell-group-renderer/one-grid-cell-group-renderer.component.mjs +10 -7
  5. package/esm2022/lib/components/one-grid-cell-option-menu/one-grid-cell-option-menu.component.mjs +60 -4
  6. package/esm2022/lib/components/one-grid-checkbox-header/one-grid-checkbox-header.component.mjs +14 -5
  7. package/esm2022/lib/components/one-grid-header/one-grid-header.component.mjs +50 -13
  8. package/esm2022/lib/components/one-grid-pagination/one-grid-pagination.component.mjs +39 -15
  9. package/esm2022/lib/components/one-grid-row-action/one-grid-row-action.component.mjs +54 -8
  10. package/esm2022/lib/components/one-grid-row-drag-handle/one-grid-row-drag-handle.component.mjs +110 -0
  11. package/esm2022/lib/core/directives/one-cell-renderer-component.directive.mjs +9 -2
  12. package/esm2022/lib/core/directives/one-cell-text-expand.directive.mjs +33 -51
  13. package/esm2022/lib/core/instants/one-grid-api.class.mjs +429 -166
  14. package/esm2022/lib/core/instants/one-row-node.class.mjs +103 -37
  15. package/esm2022/lib/core/models/one-column-def-types.model.mjs +1 -1
  16. package/esm2022/lib/core/models/one-event-types.model.mjs +1 -1
  17. package/esm2022/lib/core/models/one-grid-types.model.mjs +1 -1
  18. package/esm2022/lib/core/models/one-row-drag.model.mjs +2 -0
  19. package/esm2022/lib/core/models/one-row.model.mjs +1 -1
  20. package/esm2022/lib/core/models/one-tree-data.model.mjs +1 -1
  21. package/esm2022/lib/core/models/one-validation.model.mjs +1 -1
  22. package/esm2022/lib/core/pipes/cell-field-value-empty.pipe.mjs +8 -3
  23. package/esm2022/lib/core/pipes/column-sort-state.pipe.mjs +3 -1
  24. package/esm2022/lib/core/services/og-column.service.mjs +120 -13
  25. package/esm2022/lib/core/services/one-grid-cell.service.mjs +123 -20
  26. package/esm2022/lib/core/services/one-grid-row-drag.service.mjs +351 -0
  27. package/esm2022/lib/core/services/one-grid-selection.service.mjs +19 -6
  28. package/esm2022/lib/helpers/one-column-def.helper.mjs +27 -2
  29. package/esm2022/lib/helpers/one-filter.helper.mjs +71 -12
  30. package/esm2022/lib/helpers/one-validation.helper.mjs +7 -2
  31. package/esm2022/lib/index.mjs +8 -1
  32. package/esm2022/lib/one-grid.module.mjs +7 -16
  33. package/fesm2022/one-grid-core-angular.mjs +2046 -503
  34. package/fesm2022/one-grid-core-angular.mjs.map +1 -1
  35. package/lib/components/one-grid/one-grid.component.d.ts +16 -1
  36. package/lib/components/one-grid-body/one-grid-body.component.d.ts +132 -5
  37. package/lib/components/one-grid-cell-group-renderer/one-grid-cell-group-renderer.component.d.ts +6 -1
  38. package/lib/components/one-grid-cell-option-menu/one-grid-cell-option-menu.component.d.ts +19 -2
  39. package/lib/components/one-grid-checkbox-header/one-grid-checkbox-header.component.d.ts +5 -2
  40. package/lib/components/one-grid-header/one-grid-header.component.d.ts +15 -7
  41. package/lib/components/one-grid-pagination/one-grid-pagination.component.d.ts +24 -5
  42. package/lib/components/one-grid-row-action/one-grid-row-action.component.d.ts +44 -0
  43. package/lib/components/one-grid-row-drag-handle/one-grid-row-drag-handle.component.d.ts +39 -0
  44. package/lib/core/directives/one-cell-text-expand.directive.d.ts +21 -9
  45. package/lib/core/instants/one-grid-api.class.d.ts +212 -26
  46. package/lib/core/instants/one-row-node.class.d.ts +67 -14
  47. package/lib/core/models/one-column-def-types.model.d.ts +89 -15
  48. package/lib/core/models/one-event-types.model.d.ts +24 -1
  49. package/lib/core/models/one-grid-types.model.d.ts +36 -1
  50. package/lib/core/models/one-row-drag.model.d.ts +44 -0
  51. package/lib/core/models/one-row.model.d.ts +0 -5
  52. package/lib/core/models/one-tree-data.model.d.ts +13 -0
  53. package/lib/core/models/one-validation.model.d.ts +12 -2
  54. package/lib/core/pipes/column-sort-state.pipe.d.ts +1 -1
  55. package/lib/core/services/og-column.service.d.ts +44 -3
  56. package/lib/core/services/one-grid-cell.service.d.ts +52 -4
  57. package/lib/core/services/one-grid-row-drag.service.d.ts +113 -0
  58. package/lib/core/services/one-grid-selection.service.d.ts +9 -0
  59. package/lib/helpers/one-column-def.helper.d.ts +19 -1
  60. package/lib/helpers/one-filter.helper.d.ts +29 -4
  61. package/lib/index.d.ts +7 -0
  62. package/lib/one-grid.module.d.ts +17 -19
  63. package/package.json +1 -2
  64. package/scss/_one-grid.scss +389 -17
  65. package/esm2022/lib/core/pipes/cell-disable-resolver.pipe.mjs +0 -26
  66. package/lib/core/pipes/cell-disable-resolver.pipe.d.ts +0 -9
@@ -0,0 +1,110 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../core/services/one-grid-row-drag.service";
4
+ import * as i2 from "lucide-angular";
5
+ /** Why the handle is disabled, in words a user can act on. */
6
+ const SUPPRESSED_TEXT = {
7
+ sorted: 'Rows cannot be reordered while a sort is applied. Clear the sort to reorder.',
8
+ filtered: 'Rows cannot be reordered while a filter is applied. Clear the filter to reorder.',
9
+ treeData: 'Rows cannot be reordered in a tree grid.',
10
+ };
11
+ /**
12
+ * The grab handle for one row.
13
+ *
14
+ * A real `<button>`, not a styled div: it has to be focusable and operable from
15
+ * the keyboard, because WCAG 2.5.7 requires everything achievable by dragging
16
+ * to have a non-dragging alternative. Space picks the row up, the arrows move
17
+ * it, space drops it and escape puts it back.
18
+ *
19
+ * When reordering is unavailable the handle is disabled and says why, rather
20
+ * than disappearing — a control that vanishes when the user sorts looks like a
21
+ * bug, and one that silently does nothing is worse.
22
+ */
23
+ export class OneGridRowDragHandleComponent {
24
+ constructor(dragService) {
25
+ this.dragService = dragService;
26
+ /** Non-null when the grid's order is not its own; see the model docs. */
27
+ this.suppressedReason = null;
28
+ this.dragEnd = new EventEmitter();
29
+ }
30
+ get disabled() {
31
+ return this.suppressedReason !== null;
32
+ }
33
+ get label() {
34
+ if (this.suppressedReason)
35
+ return SUPPRESSED_TEXT[this.suppressedReason];
36
+ return this.grabbed
37
+ ? 'Moving row. Arrow keys to move, space to drop, escape to cancel.'
38
+ : 'Drag to reorder row, or press space to move it with the arrow keys.';
39
+ }
40
+ /** True while this specific row is the one being moved. */
41
+ get grabbed() {
42
+ return this.dragService.state?.rowId === this.node.rowId;
43
+ }
44
+ onPointerDown(event) {
45
+ if (this.disabled)
46
+ return;
47
+ // The body starts a cell range selection on mousedown; the handle is not
48
+ // part of that, and a press here must not also select.
49
+ event.stopPropagation();
50
+ this.dragService.startPointerDrag(event, this.node, { onEnd: (result) => this.emit(result) });
51
+ }
52
+ onKeyDown(event) {
53
+ if (this.disabled)
54
+ return;
55
+ switch (event.key) {
56
+ case ' ':
57
+ case 'Enter':
58
+ event.preventDefault();
59
+ this.dragService.toggleKeyboardDrag(this.node, { onEnd: (result) => this.emit(result) });
60
+ return;
61
+ case 'ArrowUp':
62
+ if (!this.grabbed)
63
+ return;
64
+ event.preventDefault();
65
+ this.dragService.moveKeyboard(-1);
66
+ return;
67
+ case 'ArrowDown':
68
+ if (!this.grabbed)
69
+ return;
70
+ event.preventDefault();
71
+ this.dragService.moveKeyboard(1);
72
+ return;
73
+ case 'Escape':
74
+ if (!this.grabbed)
75
+ return;
76
+ event.preventDefault();
77
+ this.dragService.cancel();
78
+ return;
79
+ default:
80
+ return;
81
+ }
82
+ }
83
+ /**
84
+ * A row that is picked up and dropped where it started produces no event.
85
+ * Blur while grabbed would otherwise strand the row mid-move, so it cancels.
86
+ */
87
+ onBlur() {
88
+ if (this.grabbed && this.dragService.state?.source === 'keyboard') {
89
+ this.dragService.cancel();
90
+ }
91
+ }
92
+ emit(result) {
93
+ if (result)
94
+ this.dragEnd.emit(result);
95
+ }
96
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowDragHandleComponent, deps: [{ token: i1.OneGridRowDragService }], target: i0.ɵɵFactoryTarget.Component }); }
97
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: OneGridRowDragHandleComponent, selector: "one-grid-row-drag-handle", inputs: { node: "node", suppressedReason: "suppressedReason" }, outputs: { dragEnd: "dragEnd" }, ngImport: i0, template: "<button\n type=\"button\"\n class=\"one-row-drag-handle\"\n [class.one-row-drag-handle-grabbed]=\"grabbed\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [attr.aria-pressed]=\"disabled ? null : grabbed\"\n [title]=\"label\"\n (pointerdown)=\"onPointerDown($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onBlur()\"\n (click)=\"$event.stopPropagation()\"\n (dblclick)=\"$event.stopPropagation()\">\n <lucide-icon name=\"grip-vertical\" [size]=\"14\" [strokeWidth]=\"2\"></lucide-icon>\n</button>\n", styles: [":host{display:inline-flex;align-items:center}\n"], dependencies: [{ kind: "component", type: i2.LucideAngularComponent, selector: "lucide-angular, lucide-icon, i-lucide, span-lucide", inputs: ["class", "name", "img", "color", "absoluteStrokeWidth", "size", "strokeWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
98
+ }
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneGridRowDragHandleComponent, decorators: [{
100
+ type: Component,
101
+ args: [{ standalone: false, selector: 'one-grid-row-drag-handle', changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\n type=\"button\"\n class=\"one-row-drag-handle\"\n [class.one-row-drag-handle-grabbed]=\"grabbed\"\n [disabled]=\"disabled\"\n [attr.aria-label]=\"label\"\n [attr.aria-disabled]=\"disabled ? 'true' : null\"\n [attr.aria-pressed]=\"disabled ? null : grabbed\"\n [title]=\"label\"\n (pointerdown)=\"onPointerDown($event)\"\n (keydown)=\"onKeyDown($event)\"\n (blur)=\"onBlur()\"\n (click)=\"$event.stopPropagation()\"\n (dblclick)=\"$event.stopPropagation()\">\n <lucide-icon name=\"grip-vertical\" [size]=\"14\" [strokeWidth]=\"2\"></lucide-icon>\n</button>\n", styles: [":host{display:inline-flex;align-items:center}\n"] }]
102
+ }], ctorParameters: () => [{ type: i1.OneGridRowDragService }], propDecorators: { node: [{
103
+ type: Input,
104
+ args: [{ required: true }]
105
+ }], suppressedReason: [{
106
+ type: Input
107
+ }], dragEnd: [{
108
+ type: Output
109
+ }] } });
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWdyaWQtcm93LWRyYWctaGFuZGxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9vbmUtZ3JpZC1yb3ctZHJhZy1oYW5kbGUvb25lLWdyaWQtcm93LWRyYWctaGFuZGxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29tcG9uZW50cy9vbmUtZ3JpZC1yb3ctZHJhZy1oYW5kbGUvb25lLWdyaWQtcm93LWRyYWctaGFuZGxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7QUFLaEcsOERBQThEO0FBQzlELE1BQU0sZUFBZSxHQUErQztJQUNoRSxNQUFNLEVBQUUsOEVBQThFO0lBQ3RGLFFBQVEsRUFBRSxrRkFBa0Y7SUFDNUYsUUFBUSxFQUFFLDBDQUEwQztDQUN2RCxDQUFDO0FBRUY7Ozs7Ozs7Ozs7O0dBV0c7QUFRSCxNQUFNLE9BQU8sNkJBQTZCO0lBU3RDLFlBQTZCLFdBQXFDO1FBQXJDLGdCQUFXLEdBQVgsV0FBVyxDQUEwQjtRQUxsRSx5RUFBeUU7UUFDaEUscUJBQWdCLEdBQXNDLElBQUksQ0FBQztRQUUxRCxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQXNCLENBQUM7SUFFVSxDQUFDO0lBRXRFLElBQWMsUUFBUTtRQUVsQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsS0FBSyxJQUFJLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQWMsS0FBSztRQUVmLElBQUksSUFBSSxDQUFDLGdCQUFnQjtZQUFFLE9BQU8sZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRXpFLE9BQU8s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bmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPbmVSb3dOb2RlIH0gZnJvbSAnLi4vLi4vY29yZS9pbnN0YW50cy9vbmUtcm93LW5vZGUuY2xhc3MnO1xuaW1wb3J0IHsgT25lR3JpZFJvd0RyYWdTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9vbmUtZ3JpZC1yb3ctZHJhZy5zZXJ2aWNlJztcbmltcG9ydCB7IE9uZVJvd0RyYWdFdmVudCwgT25lUm93RHJhZ1N1cHByZXNzZWRSZWFzb24gfSBmcm9tICcuLi8uLi9jb3JlL21vZGVscy9vbmUtcm93LWRyYWcubW9kZWwnO1xuXG4vKiogV2h5IHRoZSBoYW5kbGUgaXMgZGlzYWJsZWQsIGluIHdvcmRzIGEgdXNlciBjYW4gYWN0IG9uLiAqL1xuY29uc3QgU1VQUFJFU1NFRF9URVhUOiBSZWNvcmQ8T25lUm93RHJhZ1N1cHByZXNzZWRSZWFzb24sIHN0cmluZz4gPSB7XG4gICAgc29ydGVkOiAnUm93cyBjYW5ub3QgYmUgcmVvcmRlcmVkIHdoaWxlIGEgc29ydCBpcyBhcHBsaWVkLiBDbGVhciB0aGUgc29ydCB0byByZW9yZGVyLicsXG4gICAgZmlsdGVyZWQ6ICdSb3dzIGNhbm5vdCBiZSByZW9yZGVyZWQgd2hpbGUgYSBmaWx0ZXIgaXMgYXBwbGllZC4gQ2xlYXIgdGhlIGZpbHRlciB0byByZW9yZGVyLicsXG4gICAgdHJlZURhdGE6ICdSb3dzIGNhbm5vdCBiZSByZW9yZGVyZWQgaW4gYSB0cmVlIGdyaWQuJyxcbn07XG5cbi8qKlxuICogVGhlIGdyYWIgaGFuZGxlIGZvciBvbmUgcm93LlxuICpcbiAqIEEgcmVhbCBgPGJ1dHRvbj5gLCBub3QgYSBzdHlsZWQgZGl2OiBpdCBoYXMgdG8gYmUgZm9jdXNhYmxlIGFuZCBvcGVyYWJsZSBmcm9tXG4gKiB0aGUga2V5Ym9hcmQsIGJlY2F1c2UgV0NBRyAyLjUuNyByZXF1aXJlcyBldmVyeXRoaW5nIGFjaGlldmFibGUgYnkgZHJhZ2dpbmdcbiAqIHRvIGhhdmUgYSBub24tZHJhZ2dpbmcgYWx0ZXJuYXRpdmUuIFNwYWNlIHBpY2tzIHRoZSByb3cgdXAsIHRoZSBhcnJvd3MgbW92ZVxuICogaXQsIHNwYWNlIGRyb3BzIGl0IGFuZCBlc2NhcGUgcHV0cyBpdCBiYWNrLlxuICpcbiAqIFdoZW4gcmVvcmRlcmluZyBpcyB1bmF2YWlsYWJsZSB0aGUgaGFuZGxlIGlzIGRpc2FibGVkIGFuZCBzYXlzIHdoeSwgcmF0aGVyXG4gKiB0aGFuIGRpc2FwcGVhcmluZyDigJQgYSBjb250cm9sIHRoYXQgdmFuaXNoZXMgd2hlbiB0aGUgdXNlciBzb3J0cyBsb29rcyBsaWtlIGFcbiAqIGJ1ZywgYW5kIG9uZSB0aGF0IHNpbGVudGx5IGRvZXMgbm90aGluZyBpcyB3b3JzZS5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc3RhbmRhbG9uZTogZmFsc2UsXG4gICAgc2VsZWN0b3I6ICdvbmUtZ3JpZC1yb3ctZHJhZy1oYW5kbGUnLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9vbmUtZ3JpZC1yb3ctZHJhZy1oYW5kbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsOiAnLi9vbmUtZ3JpZC1yb3ctZHJhZy1oYW5kbGUuY29tcG9uZW50LnNjc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBPbmVHcmlkUm93RHJhZ0hhbmRsZUNvbXBvbmVudDxUPiB7XG5cbiAgICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBub2RlITogT25lUm93Tm9kZTxUPjtcblxuICAgIC8qKiBOb24tbnVsbCB3aGVuIHRoZSBncmlkJ3Mgb3JkZXIgaXMgbm90IGl0cyBvd247IHNlZSB0aGUgbW9kZWwgZG9jcy4gKi9cbiAgICBASW5wdXQoKSBzdXBwcmVzc2VkUmVhc29uOiBPbmVSb3dEcmFnU3VwcHJlc3NlZFJlYXNvbiB8IG51bGwgPSBudWxsO1xuXG4gICAgQE91dHB1dCgpIGRyYWdFbmQgPSBuZXcgRXZlbnRFbWl0dGVyPE9uZVJvd0RyYWdFdmVudDxUPj4oKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZHJhZ1NlcnZpY2U6IE9uZUdyaWRSb3dEcmFnU2VydmljZTxUPikge31cblxuICAgIHByb3RlY3RlZCBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuc3VwcHJlc3NlZFJlYXNvbiAhPT0gbnVsbDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGxhYmVsKCk6IHN0cmluZyB7XG5cbiAgICAgICAgaWYgKHRoaXMuc3VwcHJlc3NlZFJlYXNvbikgcmV0dXJuIFNVUFBSRVNTRURfVEVYVFt0aGlzLnN1cHByZXNzZWRSZWFzb25dO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmdyYWJiZWRcbiAgICAgICAgICAgID8gJ01vdmluZyByb3cuIEFycm93IGtleXMgdG8gbW92ZSwgc3BhY2UgdG8gZHJvcCwgZXNjYXBlIHRvIGNhbmNlbC4nXG4gICAgICAgICAgICA6ICdEcmFnIHRvIHJlb3JkZXIgcm93LCBvciBwcmVzcyBzcGFjZSB0byBtb3ZlIGl0IHdpdGggdGhlIGFycm93IGtleXMuJztcbiAgICB9XG5cbiAgICAvKiogVHJ1ZSB3aGlsZSB0aGlzIHNwZWNpZmljIHJvdyBpcyB0aGUgb25lIGJlaW5nIG1vdmVkLiAqL1xuICAgIHByb3RlY3RlZCBnZXQgZ3JhYmJlZCgpOiBib29sZWFuIHtcblxuICAgICAgICByZXR1cm4gdGhpcy5kcmFnU2VydmljZS5zdGF0ZT8ucm93SWQgPT09IHRoaXMubm9kZS5yb3dJZDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Qb2ludGVyRG93bihldmVudDogUG9pbnRlckV2ZW50KTogdm9pZCB7XG5cbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcblxuICAgICAgICAvLyBUaGUgYm9keSBzdGFydHMgYSBjZWxsIHJhbmdlIHNlbGVjdGlvbiBvbiBtb3VzZWRvd247IHRoZSBoYW5kbGUgaXMgbm90XG4gICAgICAgIC8vIHBhcnQgb2YgdGhhdCwgYW5kIGEgcHJlc3MgaGVyZSBtdXN0IG5vdCBhbHNvIHNlbGVjdC5cbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAgICAgdGhpcy5kcmFnU2VydmljZS5zdGFydFBvaW50ZXJEcmFnKGV2ZW50LCB0aGlzLm5vZGUsIHsgb25FbmQ6IChyZXN1bHQpID0+IHRoaXMuZW1pdChyZXN1bHQpIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbktleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcblxuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xuXG4gICAgICAgIHN3aXRjaCAoZXZlbnQua2V5KSB7XG5cbiAgICAgICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kcmFnU2VydmljZS50b2dnbGVLZXlib2FyZERyYWcodGhpcy5ub2RlLCB7IG9uRW5kOiAocmVzdWx0KSA9PiB0aGlzLmVtaXQocmVzdWx0KSB9KTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIGNhc2UgJ0Fycm93VXAnOlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5ncmFiYmVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdTZXJ2aWNlLm1vdmVLZXlib2FyZCgtMSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgICBjYXNlICdBcnJvd0Rvd24nOlxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5ncmFiYmVkKSByZXR1cm47XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmRyYWdTZXJ2aWNlLm1vdmVLZXlib2FyZCgxKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG5cbiAgICAgICAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLmdyYWJiZWQpIHJldHVybjtcbiAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuZHJhZ1NlcnZpY2UuY2FuY2VsKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuXG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEEgcm93IHRoYXQgaXMgcGlja2VkIHVwIGFuZCBkcm9wcGVkIHdoZXJlIGl0IHN0YXJ0ZWQgcHJvZHVjZXMgbm8gZXZlbnQuXG4gICAgICogQmx1ciB3aGlsZSBncmFiYmVkIHdvdWxkIG90aGVyd2lzZSBzdHJhbmQgdGhlIHJvdyBtaWQtbW92ZSwgc28gaXQgY2FuY2Vscy5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgb25CbHVyKCk6IHZvaWQge1xuXG4gICAgICAgIGlmICh0aGlzLmdyYWJiZWQgJiYgdGhpcy5kcmFnU2VydmljZS5zdGF0ZT8uc291cmNlID09PSAna2V5Ym9hcmQnKSB7XG5cbiAgICAgICAgICAgIHRoaXMuZHJhZ1NlcnZpY2UuY2FuY2VsKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGVtaXQocmVzdWx0OiBPbmVSb3dEcmFnRXZlbnQ8VD4gfCBudWxsKTogdm9pZCB7XG5cbiAgICAgICAgaWYgKHJlc3VsdCkgdGhpcy5kcmFnRW5kLmVtaXQocmVzdWx0KTtcbiAgICB9XG59XG4iLCI8YnV0dG9uXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJvbmUtcm93LWRyYWctaGFuZGxlXCJcbiAgICBbY2xhc3Mub25lLXJvdy1kcmFnLWhhbmRsZS1ncmFiYmVkXT1cImdyYWJiZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICd0cnVlJyA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtcHJlc3NlZF09XCJkaXNhYmxlZCA/IG51bGwgOiBncmFiYmVkXCJcbiAgICBbdGl0bGVdPVwibGFiZWxcIlxuICAgIChwb2ludGVyZG93bik9XCJvblBvaW50ZXJEb3duKCRldmVudClcIlxuICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQpXCJcbiAgICAoYmx1cik9XCJvbkJsdXIoKVwiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgKGRibGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiPlxuICAgIDxsdWNpZGUtaWNvbiBuYW1lPVwiZ3JpcC12ZXJ0aWNhbFwiIFtzaXplXT1cIjE0XCIgW3N0cm9rZVdpZHRoXT1cIjJcIj48L2x1Y2lkZS1pY29uPlxuPC9idXR0b24+XG4iXX0=
@@ -37,8 +37,15 @@ export class OneCellRendererComponentDirective {
37
37
  return;
38
38
  const instance = this.compRef.instance;
39
39
  if (typeof instance.oneInit === 'function') {
40
+ // The body supplies `value` already, and it honours the column's
41
+ // valueGetter. Only derive it here when nothing did — this used to
42
+ // overwrite unconditionally with the raw field, so a column with both a
43
+ // valueGetter and a component renderer showed the underlying field
44
+ // instead of the value every other part of the grid displays.
40
45
  const newParams = { ...this.params };
41
- newParams.value = getFieldValue(this.params.data, this.params?.columnDef?.field) ?? null;
46
+ if (newParams.value === undefined) {
47
+ newParams.value = getFieldValue(this.params.data, this.params?.columnDef?.field) ?? null;
48
+ }
42
49
  instance.oneInit(newParams);
43
50
  }
44
51
  else {
@@ -74,4 +81,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
74
81
  type: Input,
75
82
  args: [{ required: true }]
76
83
  }] } });
77
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNlbGwtcmVuZGVyZXItY29tcG9uZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29yZS9kaXJlY3RpdmVzL29uZS1jZWxsLXJlbmRlcmVyLWNvbXBvbmVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsS0FBSyxFQUF1RSxNQUFNLGVBQWUsQ0FBQztBQUdwSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBTTlELE1BQU0sT0FBTyxpQ0FBaUM7SUFRNUMsWUFBb0IsR0FBcUI7UUFBckIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFGakMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFFZ0IsQ0FBQztJQUU3QyxRQUFRO1FBRU4sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUU5QixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRTFELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV4QyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFFckIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFFeEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLENBQUM7YUFBTSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBRXpCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsV0FBVyxHQUFHLEtBQUs7UUFFakQsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUI7WUFBRSxPQUFPO1FBRXhDLElBQUksV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLHFCQUFxQjtRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRO1lBQUUsT0FBTztRQUVwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQW9DLENBQUM7UUFFbkUsSUFBSSxPQUFPLFFBQVEsQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFFM0MsTUFBTSxTQUFTLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVyQyxTQUFTLENBQUMsS0FBSyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsSUFBSSxJQUFJLENBQUM7WUFFekYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU5QixDQUFDO2FBQU0sQ0FBQztZQUVOLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUN2QyxDQUFDO1FBRUQsMkNBQTJDO1FBQzNDLHdDQUF3QztRQUV4QyxvREFBb0Q7UUFDcEQsSUFBSTtJQUNOLENBQUM7SUFFTyxnQkFBZ0I7UUFFdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFFakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUV2QixJQUFJLENBQUMsT0FBTyxHQUFHLFNBQVMsQ0FBQztRQUMzQixDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFFVCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUMxQixDQUFDOytHQXhGVSxpQ0FBaUM7bUdBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFKN0MsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsS0FBSztvQkFDakIsUUFBUSxFQUFFLDRCQUE0QjtpQkFDdkM7cUZBRzRCLHFCQUFxQjtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsTUFBTTtzQkFBaEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnRSZWYsIERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMsIFR5cGUsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9uZUNlbGxSZW5kZXJlclBhcmFtcyB9IGZyb20gJy4uL21vZGVscy9vbmUtY29sdW1uLWRlZi10eXBlcy5tb2RlbCc7XG5pbXBvcnQgeyBPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQgfSBmcm9tICcuLi9tb2RlbHMvb25lLXRyZWUtZGF0YS5tb2RlbCc7XG5pbXBvcnQgeyBnZXRGaWVsZFZhbHVlIH0gZnJvbSAnLi4vLi4vaGVscGVycy9vbmUtY2VsbC5oZWxwZXInO1xuXG5ARGlyZWN0aXZlKHtcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIHNlbGVjdG9yOiAnW29uZUNlbGxSZW5kZXJlckNvbXBvbmVudF0nXG59KVxuZXhwb3J0IGNsYXNzIE9uZUNlbGxSZW5kZXJlckNvbXBvbmVudERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGNlbGxSZW5kZXJlckNvbXBvbmVudCE6IFR5cGU8T25lQ2VsbFJlbmRlcmVyQ29tcG9uZW50PjtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgcGFyYW1zOiBPbmVDZWxsUmVuZGVyZXJQYXJhbXM7XG5cbiAgcHJpdmF0ZSBjb21wUmVmPzogQ29tcG9uZW50UmVmPE9uZUNlbGxSZW5kZXJlckNvbXBvbmVudD47XG4gIHByaXZhdGUgaW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHZjcjogVmlld0NvbnRhaW5lclJlZikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIHRoaXMuaW5pdGlhbGl6ZWQgPSB0cnVlO1xuXG4gICAgdGhpcy5jcmVhdGVPclVwZGF0ZUNvbXBvbmVudCh0cnVlKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcblxuICAgIGlmICghdGhpcy5pbml0aWFsaXplZCkgcmV0dXJuO1xuXG4gICAgY29uc3QgY29tcG9uZW50Q2hhbmdlZCA9IGNoYW5nZXNbJ2NlbGxSZW5kZXJlckNvbXBvbmVudCddO1xuICAgIFxuICAgIGNvbnN0IHBhcmFtc0NoYW5nZWQgPSBjaGFuZ2VzWydwYXJhbXMnXTtcblxuICAgIGlmIChjb21wb25lbnRDaGFuZ2VkKSB7XG5cbiAgICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudCgpO1xuXG4gICAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlQ29tcG9uZW50KHRydWUpO1xuXG4gICAgfSBlbHNlIGlmIChwYXJhbXNDaGFuZ2VkKSB7XG5cbiAgICAgIHRoaXMudXBkYXRlQ29tcG9uZW50SW5wdXRzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVPclVwZGF0ZUNvbXBvbmVudChmb3JjZUNyZWF0ZSA9IGZhbHNlKTogdm9pZCB7XG5cbiAgICBpZiAoIXRoaXMuY2VsbFJlbmRlcmVyQ29tcG9uZW50KSByZXR1cm47XG5cbiAgICBpZiAoZm9yY2VDcmVhdGUgfHwgIXRoaXMuY29tcFJlZikge1xuICAgICAgdGhpcy52Y3IuY2xlYXIoKTtcbiAgICAgIHRoaXMuY29tcFJlZiA9IHRoaXMudmNyLmNyZWF0ZUNvbXBvbmVudCh0aGlzLmNlbGxSZW5kZXJlckNvbXBvbmVudCk7XG4gICAgfVxuXG4gICAgdGhpcy51cGRhdGVDb21wb25lbnRJbnB1dHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlQ29tcG9uZW50SW5wdXRzKCk6IHZvaWQge1xuXG4gICAgaWYgKCF0aGlzLmNvbXBSZWY/Lmluc3RhbmNlKSByZXR1cm47XG5cbiAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMuY29tcFJlZi5pbnN0YW5jZSBhcyBPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQ7XG5cbiAgICBpZiAodHlwZW9mIGluc3RhbmNlLm9uZUluaXQgPT09ICdmdW5jdGlvbicpIHtcblxuICAgICAgY29uc3QgbmV3UGFyYW1zID0geyAuLi50aGlzLnBhcmFtcyB9O1xuXG4gICAgICBuZXdQYXJhbXMudmFsdWUgPSBnZXRGaWVsZFZhbHVlKHRoaXMucGFyYW1zLmRhdGEsIHRoaXMucGFyYW1zPy5jb2x1bW5EZWY/LmZpZWxkKSA/PyBudWxsO1xuXG4gICAgICBpbnN0YW5jZS5vbmVJbml0KG5ld1BhcmFtcyk7XG5cbiAgICB9IGVsc2Uge1xuXG4gICAgICBPYmplY3QuYXNzaWduKGluc3RhbmNlLCB0aGlzLnBhcmFtcyk7XG4gICAgfVxuXG4gICAgLy8gT3B0aW9uYWw6IGNhbGwgY2hhbmdlIGRldGVjdG9yIGlmIG5lZWRlZFxuICAgIC8vIGlmICh0aGlzLmNvbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYpIHtcblxuICAgIC8vICAgdGhpcy5jb21wUmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcbiAgICAvLyB9XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lDb21wb25lbnQoKTogdm9pZCB7XG5cbiAgICBpZiAodGhpcy5jb21wUmVmKSB7XG5cbiAgICAgIHRoaXMuY29tcFJlZi5kZXN0cm95KCk7XG5cbiAgICAgIHRoaXMuY29tcFJlZiA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcblxuICAgIHRoaXMuZGVzdHJveUNvbXBvbmVudCgpO1xuICB9XG59Il19
84
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNlbGwtcmVuZGVyZXItY29tcG9uZW50LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL29uZS1ncmlkL3NyYy9saWIvY29yZS9kaXJlY3RpdmVzL29uZS1jZWxsLXJlbmRlcmVyLWNvbXBvbmVudC5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixTQUFTLEVBQUUsS0FBSyxFQUF1RSxNQUFNLGVBQWUsQ0FBQztBQUdwSSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7O0FBTTlELE1BQU0sT0FBTyxpQ0FBaUM7SUFRNUMsWUFBb0IsR0FBcUI7UUFBckIsUUFBRyxHQUFILEdBQUcsQ0FBa0I7UUFGakMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7SUFFZ0IsQ0FBQztJQUU3QyxRQUFRO1FBRU4sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFFeEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFFaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXO1lBQUUsT0FBTztRQUU5QixNQUFNLGdCQUFnQixHQUFHLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBRTFELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV4QyxJQUFJLGdCQUFnQixFQUFFLENBQUM7WUFFckIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7WUFFeEIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXJDLENBQUM7YUFBTSxJQUFJLGFBQWEsRUFBRSxDQUFDO1lBRXpCLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQy9CLENBQUM7SUFDSCxDQUFDO0lBRU8sdUJBQXVCLENBQUMsV0FBVyxHQUFHLEtBQUs7UUFFakQsSUFBSSxDQUFDLElBQUksQ0FBQyxxQkFBcUI7WUFBRSxPQUFPO1FBRXhDLElBQUksV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2pDLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDakIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUN0RSxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDL0IsQ0FBQztJQUVPLHFCQUFxQjtRQUUzQixJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRO1lBQUUsT0FBTztRQUVwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQW9DLENBQUM7UUFFbkUsSUFBSSxPQUFPLFFBQVEsQ0FBQyxPQUFPLEtBQUssVUFBVSxFQUFFLENBQUM7WUFFM0MsaUVBQWlFO1lBQ2pFLG1FQUFtRTtZQUNuRSx3RUFBd0U7WUFDeEUsbUVBQW1FO1lBQ25FLDhEQUE4RDtZQUM5RCxNQUFNLFNBQVMsR0FBRyxFQUFFLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRXJDLElBQUksU0FBUyxDQUFDLEtBQUssS0FBSyxTQUFTLEVBQUUsQ0FBQztnQkFFbEMsU0FBUyxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxTQUFTLEVBQUUsS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDO1lBQzNGLENBQUM7WUFFRCxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlCLENBQUM7YUFBTSxDQUFDO1lBRU4sTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFFRCwyQ0FBMkM7UUFDM0Msd0NBQXdDO1FBRXhDLG9EQUFvRDtRQUNwRCxJQUFJO0lBQ04sQ0FBQztJQUVPLGdCQUFnQjtRQUV0QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUVqQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBRXZCLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxDQUFDO1FBQzNCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUVULElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBQzFCLENBQUM7K0dBaEdVLGlDQUFpQzttR0FBakMsaUNBQWlDOzs0RkFBakMsaUNBQWlDO2tCQUo3QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxLQUFLO29CQUNqQixRQUFRLEVBQUUsNEJBQTRCO2lCQUN2QztxRkFHNEIscUJBQXFCO3NCQUEvQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxNQUFNO3NCQUFoQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgRGlyZWN0aXZlLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgU2ltcGxlQ2hhbmdlcywgVHlwZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT25lQ2VsbFJlbmRlcmVyUGFyYW1zIH0gZnJvbSAnLi4vbW9kZWxzL29uZS1jb2x1bW4tZGVmLXR5cGVzLm1vZGVsJztcbmltcG9ydCB7IE9uZUNlbGxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL21vZGVscy9vbmUtdHJlZS1kYXRhLm1vZGVsJztcbmltcG9ydCB7IGdldEZpZWxkVmFsdWUgfSBmcm9tICcuLi8uLi9oZWxwZXJzL29uZS1jZWxsLmhlbHBlcic7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgc2VsZWN0b3I6ICdbb25lQ2VsbFJlbmRlcmVyQ29tcG9uZW50XSdcbn0pXG5leHBvcnQgY2xhc3MgT25lQ2VsbFJlbmRlcmVyQ29tcG9uZW50RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgY2VsbFJlbmRlcmVyQ29tcG9uZW50ITogVHlwZTxPbmVDZWxsUmVuZGVyZXJDb21wb25lbnQ+O1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBwYXJhbXM6IE9uZUNlbGxSZW5kZXJlclBhcmFtcztcblxuICBwcml2YXRlIGNvbXBSZWY/OiBDb21wb25lbnRSZWY8T25lQ2VsbFJlbmRlcmVyQ29tcG9uZW50PjtcbiAgcHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgdmNyOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuXG4gICAgdGhpcy5pbml0aWFsaXplZCA9IHRydWU7XG5cbiAgICB0aGlzLmNyZWF0ZU9yVXBkYXRlQ29tcG9uZW50KHRydWUpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuXG4gICAgaWYgKCF0aGlzLmluaXRpYWxpemVkKSByZXR1cm47XG5cbiAgICBjb25zdCBjb21wb25lbnRDaGFuZ2VkID0gY2hhbmdlc1snY2VsbFJlbmRlcmVyQ29tcG9uZW50J107XG4gICAgXG4gICAgY29uc3QgcGFyYW1zQ2hhbmdlZCA9IGNoYW5nZXNbJ3BhcmFtcyddO1xuXG4gICAgaWYgKGNvbXBvbmVudENoYW5nZWQpIHtcblxuICAgICAgdGhpcy5kZXN0cm95Q29tcG9uZW50KCk7XG5cbiAgICAgIHRoaXMuY3JlYXRlT3JVcGRhdGVDb21wb25lbnQodHJ1ZSk7XG5cbiAgICB9IGVsc2UgaWYgKHBhcmFtc0NoYW5nZWQpIHtcblxuICAgICAgdGhpcy51cGRhdGVDb21wb25lbnRJbnB1dHMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZU9yVXBkYXRlQ29tcG9uZW50KGZvcmNlQ3JlYXRlID0gZmFsc2UpOiB2b2lkIHtcblxuICAgIGlmICghdGhpcy5jZWxsUmVuZGVyZXJDb21wb25lbnQpIHJldHVybjtcblxuICAgIGlmIChmb3JjZUNyZWF0ZSB8fCAhdGhpcy5jb21wUmVmKSB7XG4gICAgICB0aGlzLnZjci5jbGVhcigpO1xuICAgICAgdGhpcy5jb21wUmVmID0gdGhpcy52Y3IuY3JlYXRlQ29tcG9uZW50KHRoaXMuY2VsbFJlbmRlcmVyQ29tcG9uZW50KTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZUNvbXBvbmVudElucHV0cygpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVDb21wb25lbnRJbnB1dHMoKTogdm9pZCB7XG5cbiAgICBpZiAoIXRoaXMuY29tcFJlZj8uaW5zdGFuY2UpIHJldHVybjtcblxuICAgIGNvbnN0IGluc3RhbmNlID0gdGhpcy5jb21wUmVmLmluc3RhbmNlIGFzIE9uZUNlbGxSZW5kZXJlckNvbXBvbmVudDtcblxuICAgIGlmICh0eXBlb2YgaW5zdGFuY2Uub25lSW5pdCA9PT0gJ2Z1bmN0aW9uJykge1xuXG4gICAgICAvLyBUaGUgYm9keSBzdXBwbGllcyBgdmFsdWVgIGFscmVhZHksIGFuZCBpdCBob25vdXJzIHRoZSBjb2x1bW4nc1xuICAgICAgLy8gdmFsdWVHZXR0ZXIuIE9ubHkgZGVyaXZlIGl0IGhlcmUgd2hlbiBub3RoaW5nIGRpZCDigJQgdGhpcyB1c2VkIHRvXG4gICAgICAvLyBvdmVyd3JpdGUgdW5jb25kaXRpb25hbGx5IHdpdGggdGhlIHJhdyBmaWVsZCwgc28gYSBjb2x1bW4gd2l0aCBib3RoIGFcbiAgICAgIC8vIHZhbHVlR2V0dGVyIGFuZCBhIGNvbXBvbmVudCByZW5kZXJlciBzaG93ZWQgdGhlIHVuZGVybHlpbmcgZmllbGRcbiAgICAgIC8vIGluc3RlYWQgb2YgdGhlIHZhbHVlIGV2ZXJ5IG90aGVyIHBhcnQgb2YgdGhlIGdyaWQgZGlzcGxheXMuXG4gICAgICBjb25zdCBuZXdQYXJhbXMgPSB7IC4uLnRoaXMucGFyYW1zIH07XG5cbiAgICAgIGlmIChuZXdQYXJhbXMudmFsdWUgPT09IHVuZGVmaW5lZCkge1xuXG4gICAgICAgIG5ld1BhcmFtcy52YWx1ZSA9IGdldEZpZWxkVmFsdWUodGhpcy5wYXJhbXMuZGF0YSwgdGhpcy5wYXJhbXM/LmNvbHVtbkRlZj8uZmllbGQpID8/IG51bGw7XG4gICAgICB9XG5cbiAgICAgIGluc3RhbmNlLm9uZUluaXQobmV3UGFyYW1zKTtcblxuICAgIH0gZWxzZSB7XG5cbiAgICAgIE9iamVjdC5hc3NpZ24oaW5zdGFuY2UsIHRoaXMucGFyYW1zKTtcbiAgICB9XG5cbiAgICAvLyBPcHRpb25hbDogY2FsbCBjaGFuZ2UgZGV0ZWN0b3IgaWYgbmVlZGVkXG4gICAgLy8gaWYgKHRoaXMuY29tcFJlZi5jaGFuZ2VEZXRlY3RvclJlZikge1xuXG4gICAgLy8gICB0aGlzLmNvbXBSZWYuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIC8vIH1cbiAgfVxuXG4gIHByaXZhdGUgZGVzdHJveUNvbXBvbmVudCgpOiB2b2lkIHtcblxuICAgIGlmICh0aGlzLmNvbXBSZWYpIHtcblxuICAgICAgdGhpcy5jb21wUmVmLmRlc3Ryb3koKTtcblxuICAgICAgdGhpcy5jb21wUmVmID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuXG4gICAgdGhpcy5kZXN0cm95Q29tcG9uZW50KCk7XG4gIH1cbn0iXX0=
@@ -1,67 +1,52 @@
1
1
  import { Directive, HostListener } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
+ /**
4
+ * Reveals a truncated cell in full while the pointer rests on it.
5
+ *
6
+ * Presentation lives in the stylesheet, under `.one-cell-text-expanded`. It
7
+ * used to be applied as inline styles here, one of which was
8
+ * `background: var(--ins-card-bg)` — a token from the application this library
9
+ * was extracted from, which no consumer defines. The expanded cell therefore
10
+ * had a transparent background and its text overlapped the next column. The
11
+ * inline rules also set `z-index` on a statically positioned element, where it
12
+ * does nothing.
13
+ *
14
+ * Overflow is measured on hover rather than after every view check. The old
15
+ * version measured on init and on every text change, and reading `scrollWidth`
16
+ * forces a synchronous layout — several hundred of them per render for a
17
+ * normal viewport, to answer a question only the hovered cell ever asks.
18
+ */
3
19
  export class OneCellTextExpandDirective {
20
+ static { this.EXPANDED_CLASS = 'one-cell-text-expanded'; }
21
+ static { this.HOVER_DELAY_MS = 800; }
4
22
  constructor(cell, renderer) {
5
23
  this.cell = cell;
6
24
  this.renderer = renderer;
7
- this.overflowing = false;
8
- this.lastText = null;
9
- }
10
- ngAfterViewInit() {
11
- this.checkOverflow();
12
- this.lastText = this.cell.nativeElement.textContent;
13
- }
14
- ngAfterViewChecked() {
15
- const currentText = this.cell.nativeElement.textContent;
16
- if (this.lastText !== currentText) {
17
- this.lastText = currentText;
18
- this.checkOverflow();
19
- this.collapse();
20
- }
21
- }
22
- ngOnDestroy() {
23
- clearTimeout(this.timer);
24
- this.collapse();
25
- }
26
- checkOverflow() {
27
- const cell = this.cell.nativeElement;
28
- this.overflowing = cell.scrollWidth > cell.clientWidth;
29
- }
30
- onResize() {
31
- this.checkOverflow();
32
25
  }
33
26
  onMouseEnter() {
34
- if (!this.overflowing)
27
+ const element = this.cell.nativeElement;
28
+ // Measured here, so the layout read happens once for the cell being
29
+ // hovered instead of for every cell on screen.
30
+ if (element.scrollWidth <= element.clientWidth)
35
31
  return;
36
- this.timer = setTimeout(() => this.expand(), 800);
32
+ this.timer = setTimeout(() => this.expand(), OneCellTextExpandDirective.HOVER_DELAY_MS);
37
33
  }
38
34
  onMouseLeave() {
39
- clearTimeout(this.timer);
35
+ this.collapse();
36
+ }
37
+ ngOnDestroy() {
40
38
  this.collapse();
41
39
  }
42
40
  expand() {
43
- const cell = this.cell.nativeElement;
44
- this.renderer.setStyle(cell, 'overflow', 'visible');
45
- this.renderer.setStyle(cell, 'text-overflow', 'unset');
46
- this.renderer.setStyle(cell, 'z-index', '1000');
47
- this.renderer.setStyle(cell, 'background', 'var(--ins-card-bg)');
48
- this.renderer.setStyle(cell, 'white-space', 'nowrap');
49
- this.renderer.setStyle(cell, 'transition', 'width 0.3s ease');
50
- this.renderer.setStyle(cell, 'padding', '4px 8px');
51
- this.renderer.setStyle(cell, 'border-radius', '4px');
41
+ this.renderer.addClass(this.cell.nativeElement, OneCellTextExpandDirective.EXPANDED_CLASS);
52
42
  }
53
43
  collapse() {
54
- const cell = this.cell.nativeElement;
55
- this.renderer.setStyle(cell, 'white-space', 'nowrap');
56
- this.renderer.setStyle(cell, 'overflow', 'hidden');
57
- this.renderer.setStyle(cell, 'text-overflow', 'ellipsis');
58
- this.renderer.removeStyle(cell, 'z-index');
59
- this.renderer.removeStyle(cell, 'background');
60
- this.renderer.removeStyle(cell, 'padding');
61
- this.renderer.removeStyle(cell, 'border-radius');
44
+ clearTimeout(this.timer);
45
+ this.timer = undefined;
46
+ this.renderer.removeClass(this.cell.nativeElement, OneCellTextExpandDirective.EXPANDED_CLASS);
62
47
  }
63
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneCellTextExpandDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive }); }
64
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: OneCellTextExpandDirective, selector: "[oneCellTextExpand]", host: { listeners: { "window:resize": "onResize()", "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 }); }
49
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: OneCellTextExpandDirective, selector: "[oneCellTextExpand]", host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0 }); }
65
50
  }
66
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: OneCellTextExpandDirective, decorators: [{
67
52
  type: Directive,
@@ -69,14 +54,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
69
54
  standalone: false,
70
55
  selector: '[oneCellTextExpand]'
71
56
  }]
72
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { onResize: [{
73
- type: HostListener,
74
- args: ['window:resize']
75
- }], onMouseEnter: [{
57
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }], propDecorators: { onMouseEnter: [{
76
58
  type: HostListener,
77
59
  args: ['mouseenter']
78
60
  }], onMouseLeave: [{
79
61
  type: HostListener,
80
62
  args: ['mouseleave']
81
63
  }] } });
82
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNlbGwtdGV4dC1leHBhbmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lLWdyaWQvc3JjL2xpYi9jb3JlL2RpcmVjdGl2ZXMvb25lLWNlbGwtdGV4dC1leHBhbmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUMsU0FBUyxFQUFjLFlBQVksRUFBd0IsTUFBTSxlQUFlLENBQUM7O0FBTTNILE1BQU0sT0FBTywwQkFBMEI7SUFNckMsWUFBb0IsSUFBNkIsRUFBVSxRQUFtQjtRQUExRCxTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7UUFKdEUsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFFcEIsYUFBUSxHQUFrQixJQUFJLENBQUM7SUFFMEMsQ0FBQztJQUVsRixlQUFlO1FBRWIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO0lBQ3RELENBQUM7SUFFRCxrQkFBa0I7UUFFaEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxDQUFDO1FBRXhELElBQUksSUFBSSxDQUFDLFFBQVEsS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUVsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztZQUU1QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFFckIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUVULFlBQVksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFekIsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxhQUFhO1FBRW5CLE1BQU0sSUFBSSxH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c0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3Q2hlY2tlZCwgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIE9uRGVzdHJveSwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgc2VsZWN0b3I6ICdbb25lQ2VsbFRleHRFeHBhbmRdJ1xufSlcbmV4cG9ydCBjbGFzcyBPbmVDZWxsVGV4dEV4cGFuZERpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIEFmdGVyVmlld0NoZWNrZWQsIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBvdmVyZmxvd2luZyA9IGZhbHNlO1xuICBwcml2YXRlIHRpbWVyOiBhbnk7XG4gIHByaXZhdGUgbGFzdFRleHQ6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2VsbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG5cbiAgICB0aGlzLmNoZWNrT3ZlcmZsb3coKTtcblxuICAgIHRoaXMubGFzdFRleHQgPSB0aGlzLmNlbGwubmF0aXZlRWxlbWVudC50ZXh0Q29udGVudDtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3Q2hlY2tlZCgpIHtcblxuICAgIGNvbnN0IGN1cnJlbnRUZXh0ID0gdGhpcy5jZWxsLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQ7XG5cbiAgICBpZiAodGhpcy5sYXN0VGV4dCAhPT0gY3VycmVudFRleHQpIHtcblxuICAgICAgdGhpcy5sYXN0VGV4dCA9IGN1cnJlbnRUZXh0O1xuXG4gICAgICB0aGlzLmNoZWNrT3ZlcmZsb3coKTtcblxuICAgICAgdGhpcy5jb2xsYXBzZSgpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuXG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZXIpO1xuXG4gICAgdGhpcy5jb2xsYXBzZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjaGVja092ZXJmbG93KCkge1xuXG4gICAgY29uc3QgY2VsbCA9IHRoaXMuY2VsbC5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy5vdmVyZmxvd2luZyA9IGNlbGwuc2Nyb2xsV2lkdGggPiBjZWxsLmNsaWVudFdpZHRoO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uUmVzaXplKCkge1xuXG4gICAgdGhpcy5jaGVja092ZXJmbG93KCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgb25Nb3VzZUVudGVyKCkge1xuXG4gICAgaWYgKCF0aGlzLm92ZXJmbG93aW5nKSByZXR1cm47XG5cbiAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dCgoKSA9PiB0aGlzLmV4cGFuZCgpLCA4MDApO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpIHtcblxuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcblxuICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kKCkge1xuXG4gICAgY29uc3QgY2VsbCA9IHRoaXMuY2VsbC5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjZWxsLCAnb3ZlcmZsb3cnLCAndmlzaWJsZScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY2VsbCwgJ3RleHQtb3ZlcmZsb3cnLCAndW5zZXQnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGNlbGwsICd6LWluZGV4JywgJzEwMDAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGNlbGwsICdiYWNrZ3JvdW5kJywgJ3ZhcigtLWlucy1jYXJkLWJnKScpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY2VsbCwgJ3doaXRlLXNwYWNlJywgJ25vd3JhcCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoY2VsbCwgJ3RyYW5zaXRpb24nLCAnd2lkdGggMC4zcyBlYXNlJyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjZWxsLCAncGFkZGluZycsICc0cHggOHB4Jyk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShjZWxsLCAnYm9yZGVyLXJhZGl1cycsICc0cHgnKTtcbiAgfVxuXG4gIHByaXZhdGUgY29sbGFwc2UoKSB7XG5cbiAgICBjb25zdCBjZWxsID0gdGhpcy5jZWxsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGNlbGwsICd3aGl0ZS1zcGFjZScsICdub3dyYXAnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGNlbGwsICdvdmVyZmxvdycsICdoaWRkZW4nKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGNlbGwsICd0ZXh0LW92ZXJmbG93JywgJ2VsbGlwc2lzJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShjZWxsLCAnei1pbmRleCcpO1xuICAgIHRoaXMucmVuZGVyZXIucmVtb3ZlU3R5bGUoY2VsbCwgJ2JhY2tncm91bmQnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZVN0eWxlKGNlbGwsICdwYWRkaW5nJyk7XG4gICAgdGhpcy5yZW5kZXJlci5yZW1vdmVTdHlsZShjZWxsLCAnYm9yZGVyLXJhZGl1cycpO1xuICB9XG59XG4iXX0=
64
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25lLWNlbGwtdGV4dC1leHBhbmQuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvb25lLWdyaWQvc3JjL2xpYi9jb3JlL2RpcmVjdGl2ZXMvb25lLWNlbGwtdGV4dC1leHBhbmQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUF3QixNQUFNLGVBQWUsQ0FBQzs7QUFFMUY7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBS0gsTUFBTSxPQUFPLDBCQUEwQjthQUViLG1CQUFjLEdBQUcsd0JBQXdCLEFBQTNCLENBQTRCO2FBQzFDLG1CQUFjLEdBQUcsR0FBRyxBQUFOLENBQU87SUFJN0MsWUFBb0IsSUFBNkIsRUFBVSxRQUFtQjtRQUExRCxTQUFJLEdBQUosSUFBSSxDQUF5QjtRQUFVLGFBQVEsR0FBUixRQUFRLENBQVc7SUFBRyxDQUFDO0lBR2xGLFlBQVk7UUFFVixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUV4QyxvRUFBb0U7UUFDcEUsK0NBQStDO1FBQy9DLElBQUksT0FBTyxDQUFDLFdBQVcsSUFBSSxPQUFPLENBQUMsV0FBVztZQUFFLE9BQU87UUFFdkQsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLDBCQUEwQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQzFGLENBQUM7SUFHRCxZQUFZO1FBRVYsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxXQUFXO1FBRVQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFTyxNQUFNO1FBRVosSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsMEJBQTBCLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVPLFFBQVE7UUFFZCxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpCLElBQUksQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBRXZCLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxFQUFFLDBCQUEwQixDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2hHLENBQUM7K0dBNUNVLDBCQUEwQjttR0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNULFVBQVUsRUFBRSxLQUFLO29CQUNqQixRQUFRLEVBQUUscUJBQXFCO2lCQUNoQzt1R0FXQyxZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFhMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25EZXN0cm95LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBSZXZlYWxzIGEgdHJ1bmNhdGVkIGNlbGwgaW4gZnVsbCB3aGlsZSB0aGUgcG9pbnRlciByZXN0cyBvbiBpdC5cbiAqXG4gKiBQcmVzZW50YXRpb24gbGl2ZXMgaW4gdGhlIHN0eWxlc2hlZXQsIHVuZGVyIGAub25lLWNlbGwtdGV4dC1leHBhbmRlZGAuIEl0XG4gKiB1c2VkIHRvIGJlIGFwcGxpZWQgYXMgaW5saW5lIHN0eWxlcyBoZXJlLCBvbmUgb2Ygd2hpY2ggd2FzXG4gKiBgYmFja2dyb3VuZDogdmFyKC0taW5zLWNhcmQtYmcpYCDigJQgYSB0b2tlbiBmcm9tIHRoZSBhcHBsaWNhdGlvbiB0aGlzIGxpYnJhcnlcbiAqIHdhcyBleHRyYWN0ZWQgZnJvbSwgd2hpY2ggbm8gY29uc3VtZXIgZGVmaW5lcy4gVGhlIGV4cGFuZGVkIGNlbGwgdGhlcmVmb3JlXG4gKiBoYWQgYSB0cmFuc3BhcmVudCBiYWNrZ3JvdW5kIGFuZCBpdHMgdGV4dCBvdmVybGFwcGVkIHRoZSBuZXh0IGNvbHVtbi4gVGhlXG4gKiBpbmxpbmUgcnVsZXMgYWxzbyBzZXQgYHotaW5kZXhgIG9uIGEgc3RhdGljYWxseSBwb3NpdGlvbmVkIGVsZW1lbnQsIHdoZXJlIGl0XG4gKiBkb2VzIG5vdGhpbmcuXG4gKlxuICogT3ZlcmZsb3cgaXMgbWVhc3VyZWQgb24gaG92ZXIgcmF0aGVyIHRoYW4gYWZ0ZXIgZXZlcnkgdmlldyBjaGVjay4gVGhlIG9sZFxuICogdmVyc2lvbiBtZWFzdXJlZCBvbiBpbml0IGFuZCBvbiBldmVyeSB0ZXh0IGNoYW5nZSwgYW5kIHJlYWRpbmcgYHNjcm9sbFdpZHRoYFxuICogZm9yY2VzIGEgc3luY2hyb25vdXMgbGF5b3V0IOKAlCBzZXZlcmFsIGh1bmRyZWQgb2YgdGhlbSBwZXIgcmVuZGVyIGZvciBhXG4gKiBub3JtYWwgdmlld3BvcnQsIHRvIGFuc3dlciBhIHF1ZXN0aW9uIG9ubHkgdGhlIGhvdmVyZWQgY2VsbCBldmVyIGFza3MuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzdGFuZGFsb25lOiBmYWxzZSxcbiAgc2VsZWN0b3I6ICdbb25lQ2VsbFRleHRFeHBhbmRdJ1xufSlcbmV4cG9ydCBjbGFzcyBPbmVDZWxsVGV4dEV4cGFuZERpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRVhQQU5ERURfQ0xBU1MgPSAnb25lLWNlbGwtdGV4dC1leHBhbmRlZCc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEhPVkVSX0RFTEFZX01TID0gODAwO1xuXG4gIHByaXZhdGUgdGltZXI6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2VsbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge31cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgb25Nb3VzZUVudGVyKCk6IHZvaWQge1xuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuY2VsbC5uYXRpdmVFbGVtZW50O1xuXG4gICAgLy8gTWVhc3VyZWQgaGVyZSwgc28gdGhlIGxheW91dCByZWFkIGhhcHBlbnMgb25jZSBmb3IgdGhlIGNlbGwgYmVpbmdcbiAgICAvLyBob3ZlcmVkIGluc3RlYWQgb2YgZm9yIGV2ZXJ5IGNlbGwgb24gc2NyZWVuLlxuICAgIGlmIChlbGVtZW50LnNjcm9sbFdpZHRoIDw9IGVsZW1lbnQuY2xpZW50V2lkdGgpIHJldHVybjtcblxuICAgIHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuZXhwYW5kKCksIE9uZUNlbGxUZXh0RXhwYW5kRGlyZWN0aXZlLkhPVkVSX0RFTEFZX01TKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlbGVhdmUnKVxuICBvbk1vdXNlTGVhdmUoKTogdm9pZCB7XG5cbiAgICB0aGlzLmNvbGxhcHNlKCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcblxuICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgZXhwYW5kKCk6IHZvaWQge1xuXG4gICAgdGhpcy5yZW5kZXJlci5hZGRDbGFzcyh0aGlzLmNlbGwubmF0aXZlRWxlbWVudCwgT25lQ2VsbFRleHRFeHBhbmREaXJlY3RpdmUuRVhQQU5ERURfQ0xBU1MpO1xuICB9XG5cbiAgcHJpdmF0ZSBjb2xsYXBzZSgpOiB2b2lkIHtcblxuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcblxuICAgIHRoaXMudGltZXIgPSB1bmRlZmluZWQ7XG5cbiAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuY2VsbC5uYXRpdmVFbGVtZW50LCBPbmVDZWxsVGV4dEV4cGFuZERpcmVjdGl2ZS5FWFBBTkRFRF9DTEFTUyk7XG4gIH1cbn1cbiJdfQ==