@angular/cdk-experimental 19.0.0-next.1 → 19.0.0-next.10

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 (81) hide show
  1. package/column-resize/index.d.ts +5 -12
  2. package/combobox/index.d.ts +5 -11
  3. package/fesm2022/cdk-experimental.mjs +1 -1
  4. package/fesm2022/cdk-experimental.mjs.map +1 -1
  5. package/fesm2022/column-resize.mjs +109 -128
  6. package/fesm2022/column-resize.mjs.map +1 -1
  7. package/fesm2022/combobox.mjs +38 -49
  8. package/fesm2022/combobox.mjs.map +1 -1
  9. package/fesm2022/popover-edit.mjs +121 -133
  10. package/fesm2022/popover-edit.mjs.map +1 -1
  11. package/fesm2022/scrolling.mjs +7 -8
  12. package/fesm2022/scrolling.mjs.map +1 -1
  13. package/fesm2022/selection.mjs +43 -81
  14. package/fesm2022/selection.mjs.map +1 -1
  15. package/fesm2022/table-scroll-container.mjs +17 -31
  16. package/fesm2022/table-scroll-container.mjs.map +1 -1
  17. package/package.json +2 -16
  18. package/popover-edit/index.d.ts +11 -19
  19. package/selection/index.d.ts +6 -10
  20. package/table-scroll-container/index.d.ts +3 -6
  21. package/esm2022/column-resize/column-resize-directives/column-resize-flex.mjs +0 -43
  22. package/esm2022/column-resize/column-resize-directives/column-resize.mjs +0 -43
  23. package/esm2022/column-resize/column-resize-directives/constants.mjs +0 -21
  24. package/esm2022/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +0 -49
  25. package/esm2022/column-resize/column-resize-directives/default-enabled-column-resize.mjs +0 -49
  26. package/esm2022/column-resize/column-resize-module.mjs +0 -46
  27. package/esm2022/column-resize/column-resize-notifier.mjs +0 -52
  28. package/esm2022/column-resize/column-resize.mjs +0 -82
  29. package/esm2022/column-resize/column-resize_public_index.mjs +0 -5
  30. package/esm2022/column-resize/column-size-store.mjs +0 -20
  31. package/esm2022/column-resize/event-dispatcher.mjs +0 -70
  32. package/esm2022/column-resize/index.mjs +0 -9
  33. package/esm2022/column-resize/overlay-handle.mjs +0 -146
  34. package/esm2022/column-resize/public-api.mjs +0 -21
  35. package/esm2022/column-resize/resizable.mjs +0 -199
  36. package/esm2022/column-resize/resize-ref.mjs +0 -17
  37. package/esm2022/column-resize/resize-strategy.mjs +0 -239
  38. package/esm2022/column-resize/selectors.mjs +0 -13
  39. package/esm2022/combobox/combobox-module.mjs +0 -26
  40. package/esm2022/combobox/combobox-popup.mjs +0 -73
  41. package/esm2022/combobox/combobox.mjs +0 -281
  42. package/esm2022/combobox/combobox_public_index.mjs +0 -5
  43. package/esm2022/combobox/index.mjs +0 -9
  44. package/esm2022/combobox/public-api.mjs +0 -11
  45. package/esm2022/index.mjs +0 -9
  46. package/esm2022/popover-edit/constants.mjs +0 -20
  47. package/esm2022/popover-edit/edit-event-dispatcher.mjs +0 -227
  48. package/esm2022/popover-edit/edit-ref.mjs +0 -83
  49. package/esm2022/popover-edit/edit-services.mjs +0 -45
  50. package/esm2022/popover-edit/focus-dispatcher.mjs +0 -82
  51. package/esm2022/popover-edit/focus-escape-notifier.mjs +0 -69
  52. package/esm2022/popover-edit/form-value-container.mjs +0 -33
  53. package/esm2022/popover-edit/index.mjs +0 -9
  54. package/esm2022/popover-edit/lens-directives.mjs +0 -185
  55. package/esm2022/popover-edit/polyfill.mjs +0 -19
  56. package/esm2022/popover-edit/popover-edit-module.mjs +0 -49
  57. package/esm2022/popover-edit/popover-edit_public_index.mjs +0 -5
  58. package/esm2022/popover-edit/public-api.mjs +0 -18
  59. package/esm2022/popover-edit/table-directives.mjs +0 -441
  60. package/esm2022/public-api.mjs +0 -9
  61. package/esm2022/scrolling/auto-size-virtual-scroll.mjs +0 -422
  62. package/esm2022/scrolling/index.mjs +0 -9
  63. package/esm2022/scrolling/public-api.mjs +0 -10
  64. package/esm2022/scrolling/scrolling-module.mjs +0 -23
  65. package/esm2022/scrolling/scrolling_public_index.mjs +0 -5
  66. package/esm2022/selection/index.mjs +0 -9
  67. package/esm2022/selection/public-api.mjs +0 -15
  68. package/esm2022/selection/row-selection.mjs +0 -52
  69. package/esm2022/selection/select-all.mjs +0 -101
  70. package/esm2022/selection/selection-column.mjs +0 -147
  71. package/esm2022/selection/selection-module.mjs +0 -44
  72. package/esm2022/selection/selection-set.mjs +0 -80
  73. package/esm2022/selection/selection-toggle.mjs +0 -101
  74. package/esm2022/selection/selection.mjs +0 -187
  75. package/esm2022/selection/selection_public_index.mjs +0 -5
  76. package/esm2022/table-scroll-container/index.mjs +0 -9
  77. package/esm2022/table-scroll-container/public-api.mjs +0 -10
  78. package/esm2022/table-scroll-container/table-scroll-container-module.mjs +0 -23
  79. package/esm2022/table-scroll-container/table-scroll-container.mjs +0 -141
  80. package/esm2022/table-scroll-container/table-scroll-container_public_index.mjs +0 -5
  81. package/esm2022/version.mjs +0 -11
@@ -1,281 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- import { Directionality } from '@angular/cdk/bidi';
9
- import { coerceArray, coerceBooleanProperty } from '@angular/cdk/coercion';
10
- import { DOWN_ARROW, ENTER, ESCAPE, TAB } from '@angular/cdk/keycodes';
11
- import { Overlay, OverlayConfig, } from '@angular/cdk/overlay';
12
- import { _getEventTarget } from '@angular/cdk/platform';
13
- import { TemplatePortal } from '@angular/cdk/portal';
14
- import { DOCUMENT } from '@angular/common';
15
- import { ChangeDetectorRef, Directive, ElementRef, EventEmitter, Inject, InjectionToken, Injector, Input, Optional, Output, TemplateRef, ViewContainerRef, inject, } from '@angular/core';
16
- import * as i0 from "@angular/core";
17
- import * as i1 from "@angular/cdk/overlay";
18
- import * as i2 from "@angular/cdk/bidi";
19
- const allowedOpenActions = ['focus', 'click', 'downKey', 'toggle'];
20
- export const CDK_COMBOBOX = new InjectionToken('CDK_COMBOBOX');
21
- export class CdkCombobox {
22
- get disabled() {
23
- return this._disabled;
24
- }
25
- set disabled(value) {
26
- this._disabled = coerceBooleanProperty(value);
27
- }
28
- get openActions() {
29
- return this._openActions;
30
- }
31
- set openActions(action) {
32
- this._openActions = this._coerceOpenActionProperty(action);
33
- }
34
- /** Whether the textContent is automatically updated upon change of the combobox value. */
35
- get autoSetText() {
36
- return this._autoSetText;
37
- }
38
- set autoSetText(value) {
39
- this._autoSetText = coerceBooleanProperty(value);
40
- }
41
- constructor(_elementRef, _overlay, _viewContainerRef, _injector, _doc, _directionality) {
42
- this._elementRef = _elementRef;
43
- this._overlay = _overlay;
44
- this._viewContainerRef = _viewContainerRef;
45
- this._injector = _injector;
46
- this._doc = _doc;
47
- this._directionality = _directionality;
48
- this._disabled = false;
49
- this._openActions = ['click'];
50
- this._autoSetText = true;
51
- this.opened = new EventEmitter();
52
- this.closed = new EventEmitter();
53
- this.panelValueChanged = new EventEmitter();
54
- this.contentId = '';
55
- this._changeDetectorRef = inject(ChangeDetectorRef);
56
- }
57
- ngOnDestroy() {
58
- if (this._overlayRef) {
59
- this._overlayRef.dispose();
60
- }
61
- this.opened.complete();
62
- this.closed.complete();
63
- this.panelValueChanged.complete();
64
- }
65
- _keydown(event) {
66
- const { keyCode } = event;
67
- if (keyCode === DOWN_ARROW) {
68
- if (this.isOpen()) {
69
- // TODO: instead of using a focus function, potentially use cdk/a11y focus trapping
70
- this._doc.getElementById(this.contentId)?.focus();
71
- }
72
- else if (this._openActions.indexOf('downKey') !== -1) {
73
- this.open();
74
- }
75
- }
76
- else if (keyCode === ENTER) {
77
- if (this._openActions.indexOf('toggle') !== -1) {
78
- this.toggle();
79
- }
80
- else if (this._openActions.indexOf('click') !== -1) {
81
- this.open();
82
- }
83
- }
84
- else if (keyCode === ESCAPE) {
85
- event.preventDefault();
86
- this.close();
87
- }
88
- else if (keyCode === TAB) {
89
- this.close();
90
- }
91
- }
92
- /** Handles click or focus interactions. */
93
- _handleInteractions(interaction) {
94
- if (interaction === 'click') {
95
- if (this._openActions.indexOf('toggle') !== -1) {
96
- this.toggle();
97
- }
98
- else if (this._openActions.indexOf('click') !== -1) {
99
- this.open();
100
- }
101
- }
102
- else if (interaction === 'focus') {
103
- if (this._openActions.indexOf('focus') !== -1) {
104
- this.open();
105
- }
106
- }
107
- }
108
- /** Given a click in the document, determines if the click was inside a combobox. */
109
- _attemptClose(event) {
110
- if (this.isOpen()) {
111
- let target = _getEventTarget(event);
112
- while (target instanceof Element) {
113
- if (target.className.indexOf('cdk-combobox') !== -1) {
114
- return;
115
- }
116
- target = target.parentElement;
117
- }
118
- }
119
- this.close();
120
- }
121
- /** Toggles the open state of the panel. */
122
- toggle() {
123
- if (this.hasPanel()) {
124
- this.isOpen() ? this.close() : this.open();
125
- }
126
- }
127
- /** If the combobox is closed and not disabled, opens the panel. */
128
- open() {
129
- if (!this.isOpen() && !this.disabled) {
130
- this.opened.next();
131
- this._overlayRef = this._overlayRef || this._overlay.create(this._getOverlayConfig());
132
- this._overlayRef.attach(this._getPanelContent());
133
- this._changeDetectorRef.markForCheck();
134
- if (!this._isTextTrigger()) {
135
- // TODO: instead of using a focus function, potentially use cdk/a11y focus trapping
136
- this._doc.getElementById(this.contentId)?.focus();
137
- }
138
- }
139
- }
140
- /** If the combobox is open and not disabled, closes the panel. */
141
- close() {
142
- if (this.isOpen() && !this.disabled) {
143
- this.closed.next();
144
- this._overlayRef.detach();
145
- this._changeDetectorRef.markForCheck();
146
- }
147
- }
148
- /** Returns true if panel is currently opened. */
149
- isOpen() {
150
- return this._overlayRef ? this._overlayRef.hasAttached() : false;
151
- }
152
- /** Returns true if combobox has a child panel. */
153
- hasPanel() {
154
- return !!this._panelTemplateRef;
155
- }
156
- _getTabIndex() {
157
- return this.disabled ? null : '0';
158
- }
159
- _setComboboxValue(value) {
160
- const valueChanged = this.value !== value;
161
- this.value = value;
162
- if (valueChanged) {
163
- this.panelValueChanged.emit(coerceArray(value));
164
- if (this._autoSetText) {
165
- this._setTextContent(value);
166
- }
167
- }
168
- }
169
- updateAndClose(value) {
170
- this._setComboboxValue(value);
171
- this.close();
172
- }
173
- _setTextContent(content) {
174
- const contentArray = coerceArray(content);
175
- this._elementRef.nativeElement.textContent = contentArray.join(' ');
176
- }
177
- _isTextTrigger() {
178
- // TODO: Should check if the trigger is contenteditable.
179
- const tagName = this._elementRef.nativeElement.tagName.toLowerCase();
180
- return tagName === 'input' || tagName === 'textarea' ? true : false;
181
- }
182
- _getOverlayConfig() {
183
- return new OverlayConfig({
184
- positionStrategy: this._getOverlayPositionStrategy(),
185
- scrollStrategy: this._overlay.scrollStrategies.block(),
186
- direction: this._directionality,
187
- });
188
- }
189
- _getOverlayPositionStrategy() {
190
- return this._overlay
191
- .position()
192
- .flexibleConnectedTo(this._elementRef)
193
- .withPositions(this._getOverlayPositions());
194
- }
195
- _getOverlayPositions() {
196
- return [
197
- { originX: 'start', originY: 'bottom', overlayX: 'start', overlayY: 'top' },
198
- { originX: 'start', originY: 'top', overlayX: 'start', overlayY: 'bottom' },
199
- { originX: 'end', originY: 'bottom', overlayX: 'end', overlayY: 'top' },
200
- { originX: 'end', originY: 'top', overlayX: 'end', overlayY: 'bottom' },
201
- ];
202
- }
203
- _getPanelInjector() {
204
- return this._injector;
205
- }
206
- _getPanelContent() {
207
- const hasPanelChanged = this._panelTemplateRef !== this._panelPortal?.templateRef;
208
- if (this._panelTemplateRef && (!this._panelPortal || hasPanelChanged)) {
209
- this._panelPortal = new TemplatePortal(this._panelTemplateRef, this._viewContainerRef, undefined, this._getPanelInjector());
210
- }
211
- return this._panelPortal;
212
- }
213
- _coerceOpenActionProperty(input) {
214
- let actions = typeof input === 'string' ? input.trim().split(/[ ,]+/) : input;
215
- if ((typeof ngDevMode === 'undefined' || ngDevMode) &&
216
- actions?.some(a => allowedOpenActions.indexOf(a) === -1)) {
217
- throw Error(`${input} is not a support open action for CdkCombobox`);
218
- }
219
- return actions;
220
- }
221
- /** Registers the content's id and the content type with the panel. */
222
- _registerContent(contentId, contentType) {
223
- if ((typeof ngDevMode === 'undefined' || ngDevMode) &&
224
- contentType !== 'listbox' &&
225
- contentType !== 'dialog') {
226
- throw Error('CdkComboboxPanel currently only supports listbox or dialog content.');
227
- }
228
- this.contentId = contentId;
229
- this.contentType = contentType;
230
- }
231
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkCombobox, deps: [{ token: i0.ElementRef }, { token: i1.Overlay }, { token: i0.ViewContainerRef }, { token: i0.Injector }, { token: DOCUMENT }, { token: i2.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
232
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.0-next.2", type: CdkCombobox, isStandalone: true, selector: "[cdkCombobox]", inputs: { _panelTemplateRef: ["cdkComboboxTriggerFor", "_panelTemplateRef"], value: "value", disabled: "disabled", openActions: "openActions", autoSetText: "autoSetText" }, outputs: { opened: "comboboxPanelOpened", closed: "comboboxPanelClosed", panelValueChanged: "panelValueChanged" }, host: { attributes: { "role": "combobox" }, listeners: { "click": "_handleInteractions(\"click\")", "focus": "_handleInteractions(\"focus\")", "keydown": "_keydown($event)", "document:click": "_attemptClose($event)" }, properties: { "attr.aria-disabled": "disabled", "attr.aria-owns": "contentId", "attr.aria-haspopup": "contentType", "attr.aria-expanded": "isOpen()", "attr.tabindex": "_getTabIndex()" }, classAttribute: "cdk-combobox" }, providers: [{ provide: CDK_COMBOBOX, useExisting: CdkCombobox }], exportAs: ["cdkCombobox"], ngImport: i0 }); }
233
- }
234
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0-next.2", ngImport: i0, type: CdkCombobox, decorators: [{
235
- type: Directive,
236
- args: [{
237
- selector: '[cdkCombobox]',
238
- exportAs: 'cdkCombobox',
239
- host: {
240
- 'role': 'combobox',
241
- 'class': 'cdk-combobox',
242
- '(click)': '_handleInteractions("click")',
243
- '(focus)': '_handleInteractions("focus")',
244
- '(keydown)': '_keydown($event)',
245
- '(document:click)': '_attemptClose($event)',
246
- '[attr.aria-disabled]': 'disabled',
247
- '[attr.aria-owns]': 'contentId',
248
- '[attr.aria-haspopup]': 'contentType',
249
- '[attr.aria-expanded]': 'isOpen()',
250
- '[attr.tabindex]': '_getTabIndex()',
251
- },
252
- providers: [{ provide: CDK_COMBOBOX, useExisting: CdkCombobox }],
253
- standalone: true,
254
- }]
255
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1.Overlay }, { type: i0.ViewContainerRef }, { type: i0.Injector }, { type: undefined, decorators: [{
256
- type: Inject,
257
- args: [DOCUMENT]
258
- }] }, { type: i2.Directionality, decorators: [{
259
- type: Optional
260
- }] }], propDecorators: { _panelTemplateRef: [{
261
- type: Input,
262
- args: ['cdkComboboxTriggerFor']
263
- }], value: [{
264
- type: Input
265
- }], disabled: [{
266
- type: Input
267
- }], openActions: [{
268
- type: Input
269
- }], autoSetText: [{
270
- type: Input
271
- }], opened: [{
272
- type: Output,
273
- args: ['comboboxPanelOpened']
274
- }], closed: [{
275
- type: Output,
276
- args: ['comboboxPanelClosed']
277
- }], panelValueChanged: [{
278
- type: Output,
279
- args: ['panelValueChanged']
280
- }] } });
281
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrLWV4cGVyaW1lbnRhbC9jb21ib2JveC9jb21ib2JveC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFDSCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sbUJBQW1CLENBQUM7QUFDakQsT0FBTyxFQUFlLFdBQVcsRUFBRSxxQkFBcUIsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3ZGLE9BQU8sRUFBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxHQUFHLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRSxPQUFPLEVBR0wsT0FBTyxFQUNQLGFBQWEsR0FFZCxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3pDLE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLGNBQWMsRUFDZCxRQUFRLEVBQ1IsS0FBSyxFQUVMLFFBQVEsRUFDUixNQUFNLEVBQ04sV0FBVyxFQUNYLGdCQUFnQixFQUNoQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7Ozs7QUFNdkIsTUFBTSxrQkFBa0IsR0FBRyxDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBRW5FLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBYyxjQUFjLENBQUMsQ0FBQztBQXFCNUUsTUFBTSxPQUFPLFdBQVc7SUFPdEIsSUFDSSxRQUFRO1FBQ1YsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFD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QUFXLGFBQWEsRUFBQyxDQUFDO29CQUM5RCxVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQXVESSxNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLFFBQVE7eUNBckRYLGlCQUFpQjtzQkFEaEIsS0FBSzt1QkFBQyx1QkFBdUI7Z0JBSTlCLEtBQUs7c0JBREosS0FBSztnQkFJRixRQUFRO3NCQURYLEtBQUs7Z0JBVUYsV0FBVztzQkFEZCxLQUFLO2dCQVdGLFdBQVc7c0JBRGQsS0FBSztnQkFTa0MsTUFBTTtzQkFBN0MsTUFBTTt1QkFBQyxxQkFBcUI7Z0JBQ1csTUFBTTtzQkFBN0MsTUFBTTt1QkFBQyxxQkFBcUI7Z0JBQ1MsaUJBQWlCO3NCQUF0RCxNQUFNO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuaW1wb3J0IHtEaXJlY3Rpb25hbGl0eX0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHtCb29sZWFuSW5wdXQsIGNvZXJjZUFycmF5LCBjb2VyY2VCb29sZWFuUHJvcGVydHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge0RPV05fQVJST1csIEVOVEVSLCBFU0NBUEUsIFRBQn0gZnJvbSAnQGFuZ3VsYXIvY2RrL2tleWNvZGVzJztcbmltcG9ydCB7XG4gIENvbm5lY3RlZFBvc2l0aW9uLFxuICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG4gIE92ZXJsYXksXG4gIE92ZXJsYXlDb25maWcsXG4gIE92ZXJsYXlSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7X2dldEV2ZW50VGFyZ2V0fSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge0RPQ1VNRU5UfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3QsXG4gIEluamVjdGlvblRva2VuLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3B0aW9uYWwsXG4gIE91dHB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCB0eXBlIEFyaWFIYXNQb3B1cFZhbHVlID0gJ2ZhbHNlJyB8ICd0cnVlJyB8ICdtZW51JyB8ICdsaXN0Ym94JyB8ICd0cmVlJyB8ICdncmlkJyB8ICdkaWFsb2cnO1xuZXhwb3J0IHR5cGUgT3BlbkFjdGlvbiA9ICdmb2N1cycgfCAnY2xpY2snIHwgJ2Rvd25LZXknIHwgJ3RvZ2dsZSc7XG5leHBvcnQgdHlwZSBPcGVuQWN0aW9uSW5wdXQgPSBPcGVuQWN0aW9uIHwgT3BlbkFjdGlvbltdIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZDtcblxuY29uc3QgYWxsb3dlZE9wZW5BY3Rpb25zID0gWydmb2N1cycsICdjbGljaycsICdkb3duS2V5JywgJ3RvZ2dsZSddO1xuXG5leHBvcnQgY29uc3QgQ0RLX0NPTUJPQk9YID0gbmV3IEluamVjdGlvblRva2VuPENka0NvbWJvYm94PignQ0RLX0NPTUJPQk9YJyk7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjZGtDb21ib2JveF0nLFxuICBleHBvcnRBczogJ2Nka0NvbWJvYm94JyxcbiAgaG9zdDoge1xuICAgICdyb2xlJzogJ2NvbWJvYm94JyxcbiAgICAnY2xhc3MnOiAnY2RrLWNvbWJvYm94JyxcbiAgICAnKGNsaWNrKSc6ICdfaGFuZGxlSW50ZXJhY3Rpb25zKFwiY2xpY2tcIiknLFxuICAgICcoZm9jdXMpJzogJ19oYW5kbGVJbnRlcmFjdGlvbnMoXCJmb2N1c1wiKScsXG4gICAgJyhrZXlkb3duKSc6ICdfa2V5ZG93bigkZXZlbnQpJyxcbiAgICAnKGRvY3VtZW50OmNsaWNrKSc6ICdfYXR0ZW1wdENsb3NlKCRldmVudCknLFxuICAgICdbYXR0ci5hcmlhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG4gICAgJ1thdHRyLmFyaWEtb3duc10nOiAnY29udGVudElkJyxcbiAgICAnW2F0dHIuYXJpYS1oYXNwb3B1cF0nOiAnY29udGVudFR5cGUnLFxuICAgICdbYXR0ci5hcmlhLWV4cGFuZGVkXSc6ICdpc09wZW4oKScsXG4gICAgJ1thdHRyLnRhYmluZGV4XSc6ICdfZ2V0VGFiSW5kZXgoKScsXG4gIH0sXG4gIHByb3ZpZGVyczogW3twcm92aWRlOiBDREtfQ09NQk9CT1gsIHVzZUV4aXN0aW5nOiBDZGtDb21ib2JveH1dLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBDZGtDb21ib2JveDxUID0gdW5rbm93bj4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBASW5wdXQoJ2Nka0NvbWJvYm94VHJpZ2dlckZvcicpXG4gIF9wYW5lbFRlbXBsYXRlUmVmOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICB2YWx1ZTogVCB8IFRbXTtcblxuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogQm9vbGVhbklucHV0KSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgZ2V0IG9wZW5BY3Rpb25zKCk6IE9wZW5BY3Rpb25bXSB7XG4gICAgcmV0dXJuIHRoaXMuX29wZW5BY3Rpb25zO1xuICB9XG4gIHNldCBvcGVuQWN0aW9ucyhhY3Rpb246IE9wZW5BY3Rpb25JbnB1dCkge1xuICAgIHRoaXMuX29wZW5BY3Rpb25zID0gdGhpcy5fY29lcmNlT3BlbkFjdGlvblByb3BlcnR5KGFjdGlvbik7XG4gIH1cbiAgcHJpdmF0ZSBfb3BlbkFjdGlvbnM6IE9wZW5BY3Rpb25bXSA9IFsnY2xpY2snXTtcblxuICAvKiogV2hldGhlciB0aGUgdGV4dENvbnRlbnQgaXMgYXV0b21hdGljYWxseSB1cGRhdGVkIHVwb24gY2hhbmdlIG9mIHRoZSBjb21ib2JveCB2YWx1ZS4gKi9cbiAgQElucHV0KClcbiAgZ2V0IGF1dG9TZXRUZXh0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9hdXRvU2V0VGV4dDtcbiAgfVxuICBzZXQgYXV0b1NldFRleHQodmFsdWU6IEJvb2xlYW5JbnB1dCkge1xuICAgIHRoaXMuX2F1dG9TZXRUZXh0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBwcml2YXRlIF9hdXRvU2V0VGV4dDogYm9vbGVhbiA9IHRydWU7XG5cbiAgQE91dHB1dCgnY29tYm9ib3hQYW5lbE9wZW5lZCcpIHJlYWRvbmx5IG9wZW5lZDogRXZlbnRFbWl0dGVyPHZvaWQ+ID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCdjb21ib2JveFBhbmVsQ2xvc2VkJykgcmVhZG9ubHkgY2xvc2VkOiBFdmVudEVtaXR0ZXI8dm9pZD4gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoJ3BhbmVsVmFsdWVDaGFuZ2VkJykgcmVhZG9ubHkgcGFuZWxWYWx1ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxUW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBUW11cbiAgPigpO1xuXG4gIHByaXZhdGUgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG4gIHByaXZhdGUgX3BhbmVsUG9ydGFsOiBUZW1wbGF0ZVBvcnRhbDtcblxuICBjb250ZW50SWQ6IHN0cmluZyA9ICcnO1xuICBjb250ZW50VHlwZTogQXJpYUhhc1BvcHVwVmFsdWU7XG5cbiAgcHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+LFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX292ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgX2luamVjdG9yOiBJbmplY3RvcixcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIHJlYWRvbmx5IF9kb2M6IGFueSxcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IF9kaXJlY3Rpb25hbGl0eT86IERpcmVjdGlvbmFsaXR5LFxuICApIHt9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGlzcG9zZSgpO1xuICAgIH1cblxuICAgIHRoaXMub3BlbmVkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5jbG9zZWQuY29tcGxldGUoKTtcbiAgICB0aGlzLnBhbmVsVmFsdWVDaGFuZ2VkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBfa2V5ZG93bihldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGNvbnN0IHtrZXlDb2RlfSA9IGV2ZW50O1xuXG4gICAgaWYgKGtleUNvZGUgPT09IERPV05fQVJST1cpIHtcbiAgICAgIGlmICh0aGlzLmlzT3BlbigpKSB7XG4gICAgICAgIC8vIFRPRE86IGluc3RlYWQgb2YgdXNpbmcgYSBmb2N1cyBmdW5jdGlvbiwgcG90ZW50aWFsbHkgdXNlIGNkay9hMTF5IGZvY3VzIHRyYXBwaW5nXG4gICAgICAgIHRoaXMuX2RvYy5nZXRFbGVtZW50QnlJZCh0aGlzLmNvbnRlbnRJZCk/LmZvY3VzKCk7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuX29wZW5BY3Rpb25zLmluZGV4T2YoJ2Rvd25LZXknKSAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChrZXlDb2RlID09PSBFTlRFUikge1xuICAgICAgaWYgKHRoaXMuX29wZW5BY3Rpb25zLmluZGV4T2YoJ3RvZ2dsZScpICE9PSAtMSkge1xuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLl9vcGVuQWN0aW9ucy5pbmRleE9mKCdjbGljaycpICE9PSAtMSkge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGtleUNvZGUgPT09IEVTQ0FQRSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2UgaWYgKGtleUNvZGUgPT09IFRBQikge1xuICAgICAgdGhpcy5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBIYW5kbGVzIGNsaWNrIG9yIGZvY3VzIGludGVyYWN0aW9ucy4gKi9cbiAgX2hhbmRsZUludGVyYWN0aW9ucyhpbnRlcmFjdGlvbjogT3BlbkFjdGlvbikge1xuICAgIGlmIChpbnRlcmFjdGlvbiA9PT0gJ2NsaWNrJykge1xuICAgICAgaWYgKHRoaXMuX29wZW5BY3Rpb25zLmluZGV4T2YoJ3RvZ2dsZScpICE9PSAtMSkge1xuICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLl9vcGVuQWN0aW9ucy5pbmRleE9mKCdjbGljaycpICE9PSAtMSkge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKGludGVyYWN0aW9uID09PSAnZm9jdXMnKSB7XG4gICAgICBpZiAodGhpcy5fb3BlbkFjdGlvbnMuaW5kZXhPZignZm9jdXMnKSAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIEdpdmVuIGEgY2xpY2sgaW4gdGhlIGRvY3VtZW50LCBkZXRlcm1pbmVzIGlmIHRoZSBjbGljayB3YXMgaW5zaWRlIGEgY29tYm9ib3guICovXG4gIF9hdHRlbXB0Q2xvc2UoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICBpZiAodGhpcy5pc09wZW4oKSkge1xuICAgICAgbGV0IHRhcmdldCA9IF9nZXRFdmVudFRhcmdldChldmVudCk7XG4gICAgICB3aGlsZSAodGFyZ2V0IGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICBpZiAodGFyZ2V0LmNsYXNzTmFtZS5pbmRleE9mKCdjZGstY29tYm9ib3gnKSAhPT0gLTEpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGFyZ2V0ID0gdGFyZ2V0LnBhcmVudEVsZW1lbnQ7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5jbG9zZSgpO1xuICB9XG5cbiAgLyoqIFRvZ2dsZXMgdGhlIG9wZW4gc3RhdGUgb2YgdGhlIHBhbmVsLiAqL1xuICB0b2dnbGUoKSB7XG4gICAgaWYgKHRoaXMuaGFzUGFuZWwoKSkge1xuICAgICAgdGhpcy5pc09wZW4oKSA/IHRoaXMuY2xvc2UoKSA6IHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBJZiB0aGUgY29tYm9ib3ggaXMgY2xvc2VkIGFuZCBub3QgZGlzYWJsZWQsIG9wZW5zIHRoZSBwYW5lbC4gKi9cbiAgb3BlbigpIHtcbiAgICBpZiAoIXRoaXMuaXNPcGVuKCkgJiYgIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMub3BlbmVkLm5leHQoKTtcbiAgICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5UmVmIHx8IHRoaXMuX292ZXJsYXkuY3JlYXRlKHRoaXMuX2dldE92ZXJsYXlDb25maWcoKSk7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmF0dGFjaCh0aGlzLl9nZXRQYW5lbENvbnRlbnQoKSk7XG4gICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIGlmICghdGhpcy5faXNUZXh0VHJpZ2dlcigpKSB7XG4gICAgICAgIC8vIFRPRE86IGluc3RlYWQgb2YgdXNpbmcgYSBmb2N1cyBmdW5jdGlvbiwgcG90ZW50aWFsbHkgdXNlIGNkay9hMTF5IGZvY3VzIHRyYXBwaW5nXG4gICAgICAgIHRoaXMuX2RvYy5nZXRFbGVtZW50QnlJZCh0aGlzLmNvbnRlbnRJZCk/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqIElmIHRoZSBjb21ib2JveCBpcyBvcGVuIGFuZCBub3QgZGlzYWJsZWQsIGNsb3NlcyB0aGUgcGFuZWwuICovXG4gIGNsb3NlKCkge1xuICAgIGlmICh0aGlzLmlzT3BlbigpICYmICF0aGlzLmRpc2FibGVkKSB7XG4gICAgICB0aGlzLmNsb3NlZC5uZXh0KCk7XG4gICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJldHVybnMgdHJ1ZSBpZiBwYW5lbCBpcyBjdXJyZW50bHkgb3BlbmVkLiAqL1xuICBpc09wZW4oKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlSZWYgPyB0aGlzLl9vdmVybGF5UmVmLmhhc0F0dGFjaGVkKCkgOiBmYWxzZTtcbiAgfVxuXG4gIC8qKiBSZXR1cm5zIHRydWUgaWYgY29tYm9ib3ggaGFzIGEgY2hpbGQgcGFuZWwuICovXG4gIGhhc1BhbmVsKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuX3BhbmVsVGVtcGxhdGVSZWY7XG4gIH1cblxuICBfZ2V0VGFiSW5kZXgoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWQgPyBudWxsIDogJzAnO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2V0Q29tYm9ib3hWYWx1ZSh2YWx1ZTogVCB8IFRbXSkge1xuICAgIGNvbnN0IHZhbHVlQ2hhbmdlZCA9IHRoaXMudmFsdWUgIT09IHZhbHVlO1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcblxuICAgIGlmICh2YWx1ZUNoYW5nZWQpIHtcbiAgICAgIHRoaXMucGFuZWxWYWx1ZUNoYW5nZWQuZW1pdChjb2VyY2VBcnJheSh2YWx1ZSkpO1xuICAgICAgaWYgKHRoaXMuX2F1dG9TZXRUZXh0KSB7XG4gICAgICAgIHRoaXMuX3NldFRleHRDb250ZW50KHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICB1cGRhdGVBbmRDbG9zZSh2YWx1ZTogVCB8IFRbXSkge1xuICAgIHRoaXMuX3NldENvbWJvYm94VmFsdWUodmFsdWUpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldFRleHRDb250ZW50KGNvbnRlbnQ6IFQgfCBUW10pIHtcbiAgICBjb25zdCBjb250ZW50QXJyYXkgPSBjb2VyY2VBcnJheShjb250ZW50KTtcbiAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGV4dENvbnRlbnQgPSBjb250ZW50QXJyYXkuam9pbignICcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNUZXh0VHJpZ2dlcigpIHtcbiAgICAvLyBUT0RPOiBTaG91bGQgY2hlY2sgaWYgdGhlIHRyaWdnZXIgaXMgY29udGVudGVkaXRhYmxlLlxuICAgIGNvbnN0IHRhZ05hbWUgPSB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpO1xuICAgIHJldHVybiB0YWdOYW1lID09PSAnaW5wdXQnIHx8IHRhZ05hbWUgPT09ICd0ZXh0YXJlYScgPyB0cnVlIDogZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIF9nZXRPdmVybGF5Q29uZmlnKCkge1xuICAgIHJldHVybiBuZXcgT3ZlcmxheUNvbmZpZyh7XG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9nZXRPdmVybGF5UG9zaXRpb25TdHJhdGVneSgpLFxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5ibG9jaygpLFxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9kaXJlY3Rpb25hbGl0eSxcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE92ZXJsYXlQb3NpdGlvblN0cmF0ZWd5KCk6IEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSB7XG4gICAgcmV0dXJuIHRoaXMuX292ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLl9lbGVtZW50UmVmKVxuICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5fZ2V0T3ZlcmxheVBvc2l0aW9ucygpKTtcbiAgfVxuXG4gIHByaXZhdGUgX2dldE92ZXJsYXlQb3NpdGlvbnMoKTogQ29ubmVjdGVkUG9zaXRpb25bXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtvcmlnaW5YOiAnc3RhcnQnLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdzdGFydCcsIG92ZXJsYXlZOiAndG9wJ30sXG4gICAgICB7b3JpZ2luWDogJ3N0YXJ0Jywgb3JpZ2luWTogJ3RvcCcsIG92ZXJsYXlYOiAnc3RhcnQnLCBvdmVybGF5WTogJ2JvdHRvbSd9LFxuICAgICAge29yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAnYm90dG9tJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ3RvcCd9LFxuICAgICAge29yaWdpblg6ICdlbmQnLCBvcmlnaW5ZOiAndG9wJywgb3ZlcmxheVg6ICdlbmQnLCBvdmVybGF5WTogJ2JvdHRvbSd9LFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIF9nZXRQYW5lbEluamVjdG9yKCkge1xuICAgIHJldHVybiB0aGlzLl9pbmplY3RvcjtcbiAgfVxuXG4gIHByaXZhdGUgX2dldFBhbmVsQ29udGVudCgpIHtcbiAgICBjb25zdCBoYXNQYW5lbENoYW5nZWQgPSB0aGlzLl9wYW5lbFRlbXBsYXRlUmVmICE9PSB0aGlzLl9wYW5lbFBvcnRhbD8udGVtcGxhdGVSZWY7XG4gICAgaWYgKHRoaXMuX3BhbmVsVGVtcGxhdGVSZWYgJiYgKCF0aGlzLl9wYW5lbFBvcnRhbCB8fCBoYXNQYW5lbENoYW5nZWQpKSB7XG4gICAgICB0aGlzLl9wYW5lbFBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcbiAgICAgICAgdGhpcy5fcGFuZWxUZW1wbGF0ZVJlZixcbiAgICAgICAgdGhpcy5fdmlld0NvbnRhaW5lclJlZixcbiAgICAgICAgdW5kZWZpbmVkLFxuICAgICAgICB0aGlzLl9nZXRQYW5lbEluamVjdG9yKCksXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLl9wYW5lbFBvcnRhbDtcbiAgfVxuXG4gIHByaXZhdGUgX2NvZXJjZU9wZW5BY3Rpb25Qcm9wZXJ0eShpbnB1dDogT3BlbkFjdGlvbklucHV0KTogT3BlbkFjdGlvbltdIHtcbiAgICBsZXQgYWN0aW9ucyA9IHR5cGVvZiBpbnB1dCA9PT0gJ3N0cmluZycgPyBpbnB1dC50cmltKCkuc3BsaXQoL1sgLF0rLykgOiBpbnB1dDtcbiAgICBpZiAoXG4gICAgICAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKSAmJlxuICAgICAgYWN0aW9ucz8uc29tZShhID0+IGFsbG93ZWRPcGVuQWN0aW9ucy5pbmRleE9mKGEpID09PSAtMSlcbiAgICApIHtcbiAgICAgIHRocm93IEVycm9yKGAke2lucHV0fSBpcyBub3QgYSBzdXBwb3J0IG9wZW4gYWN0aW9uIGZvciBDZGtDb21ib2JveGApO1xuICAgIH1cbiAgICByZXR1cm4gYWN0aW9ucyBhcyBPcGVuQWN0aW9uW107XG4gIH1cblxuICAvKiogUmVnaXN0ZXJzIHRoZSBjb250ZW50J3MgaWQgYW5kIHRoZSBjb250ZW50IHR5cGUgd2l0aCB0aGUgcGFuZWwuICovXG4gIF9yZWdpc3RlckNvbnRlbnQoY29udGVudElkOiBzdHJpbmcsIGNvbnRlbnRUeXBlOiBBcmlhSGFzUG9wdXBWYWx1ZSkge1xuICAgIGlmIChcbiAgICAgICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpICYmXG4gICAgICBjb250ZW50VHlwZSAhPT0gJ2xpc3Rib3gnICYmXG4gICAgICBjb250ZW50VHlwZSAhPT0gJ2RpYWxvZydcbiAgICApIHtcbiAgICAgIHRocm93IEVycm9yKCdDZGtDb21ib2JveFBhbmVsIGN1cnJlbnRseSBvbmx5IHN1cHBvcnRzIGxpc3Rib3ggb3IgZGlhbG9nIGNvbnRlbnQuJyk7XG4gICAgfVxuICAgIHRoaXMuY29udGVudElkID0gY29udGVudElkO1xuICAgIHRoaXMuY29udGVudFR5cGUgPSBjb250ZW50VHlwZTtcbiAgfVxufVxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3hfcHVibGljX2luZGV4LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay1leHBlcmltZW50YWwvY29tYm9ib3gvY29tYm9ib3hfcHVibGljX2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -1,9 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export * from './public-api';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrLWV4cGVyaW1lbnRhbC9jb21ib2JveC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,11 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export * from './combobox-module';
9
- export * from './combobox';
10
- export * from './combobox-popup';
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9jZGstZXhwZXJpbWVudGFsL2NvbWJvYm94L3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGtCQUFrQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vY29tYm9ib3gtbW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vY29tYm9ib3gnO1xuZXhwb3J0ICogZnJvbSAnLi9jb21ib2JveC1wb3B1cCc7XG4iXX0=
package/esm2022/index.mjs DELETED
@@ -1,9 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- export * from './public-api';
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvY2RrLWV4cGVyaW1lbnRhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -1,20 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright Google LLC All Rights Reserved.
4
- *
5
- * Use of this source code is governed by an MIT-style license that can be
6
- * found in the LICENSE file at https://angular.io/license
7
- */
8
- /** Selector for finding table cells. */
9
- export const CELL_SELECTOR = '.cdk-cell, .mat-cell, td';
10
- /** Selector for finding editable table cells. */
11
- export const EDITABLE_CELL_SELECTOR = '.cdk-popover-edit-cell, .mat-popover-edit-cell';
12
- /** Selector for finding table rows. */
13
- export const ROW_SELECTOR = '.cdk-row, .mat-row, tr';
14
- /** Selector for finding the table element. */
15
- export const TABLE_SELECTOR = 'table, cdk-table, mat-table';
16
- /** CSS class added to the edit lens pane. */
17
- export const EDIT_PANE_CLASS = 'cdk-edit-pane';
18
- /** Selector for finding the edit lens pane. */
19
- export const EDIT_PANE_SELECTOR = `.${EDIT_PANE_CLASS}, .mat-edit-pane`;
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2Nkay1leHBlcmltZW50YWwvcG9wb3Zlci1lZGl0L2NvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCx3Q0FBd0M7QUFDeEMsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLDBCQUEwQixDQUFDO0FBRXhELGlEQUFpRDtBQUNqRCxNQUFNLENBQUMsTUFBTSxzQkFBc0IsR0FBRyxnREFBZ0QsQ0FBQztBQUV2Rix1Q0FBdUM7QUFDdkMsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLHdCQUF3QixDQUFDO0FBRXJELDhDQUE4QztBQUM5QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsNkJBQTZCLENBQUM7QUFFNUQsNkNBQTZDO0FBQzdDLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxlQUFlLENBQUM7QUFFL0MsK0NBQStDO0FBQy9DLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksZUFBZSxrQkFBa0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBHb29nbGUgTExDIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9hbmd1bGFyLmlvL2xpY2Vuc2VcbiAqL1xuXG4vKiogU2VsZWN0b3IgZm9yIGZpbmRpbmcgdGFibGUgY2VsbHMuICovXG5leHBvcnQgY29uc3QgQ0VMTF9TRUxFQ1RPUiA9ICcuY2RrLWNlbGwsIC5tYXQtY2VsbCwgdGQnO1xuXG4vKiogU2VsZWN0b3IgZm9yIGZpbmRpbmcgZWRpdGFibGUgdGFibGUgY2VsbHMuICovXG5leHBvcnQgY29uc3QgRURJVEFCTEVfQ0VMTF9TRUxFQ1RPUiA9ICcuY2RrLXBvcG92ZXItZWRpdC1jZWxsLCAubWF0LXBvcG92ZXItZWRpdC1jZWxsJztcblxuLyoqIFNlbGVjdG9yIGZvciBmaW5kaW5nIHRhYmxlIHJvd3MuICovXG5leHBvcnQgY29uc3QgUk9XX1NFTEVDVE9SID0gJy5jZGstcm93LCAubWF0LXJvdywgdHInO1xuXG4vKiogU2VsZWN0b3IgZm9yIGZpbmRpbmcgdGhlIHRhYmxlIGVsZW1lbnQuICovXG5leHBvcnQgY29uc3QgVEFCTEVfU0VMRUNUT1IgPSAndGFibGUsIGNkay10YWJsZSwgbWF0LXRhYmxlJztcblxuLyoqIENTUyBjbGFzcyBhZGRlZCB0byB0aGUgZWRpdCBsZW5zIHBhbmUuICovXG5leHBvcnQgY29uc3QgRURJVF9QQU5FX0NMQVNTID0gJ2Nkay1lZGl0LXBhbmUnO1xuXG4vKiogU2VsZWN0b3IgZm9yIGZpbmRpbmcgdGhlIGVkaXQgbGVucyBwYW5lLiAqL1xuZXhwb3J0IGNvbnN0IEVESVRfUEFORV9TRUxFQ1RPUiA9IGAuJHtFRElUX1BBTkVfQ0xBU1N9LCAubWF0LWVkaXQtcGFuZWA7XG4iXX0=