@angular/cdk-experimental 17.0.2 → 17.1.0-next.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. package/column-resize/index.d.ts +6 -6
  2. package/combobox/index.d.ts +6 -6
  3. package/esm2022/column-resize/column-resize-directives/column-resize-flex.mjs +3 -2
  4. package/esm2022/column-resize/column-resize-directives/column-resize.mjs +3 -2
  5. package/esm2022/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +3 -2
  6. package/esm2022/column-resize/column-resize-directives/default-enabled-column-resize.mjs +3 -2
  7. package/esm2022/column-resize/column-resize-module.mjs +5 -5
  8. package/esm2022/combobox/combobox-module.mjs +3 -4
  9. package/esm2022/combobox/combobox-popup.mjs +3 -2
  10. package/esm2022/combobox/combobox.mjs +3 -2
  11. package/esm2022/popover-edit/edit-event-dispatcher.mjs +16 -4
  12. package/esm2022/popover-edit/edit-services.mjs +5 -8
  13. package/esm2022/popover-edit/focus-escape-notifier.mjs +9 -3
  14. package/esm2022/popover-edit/lens-directives.mjs +7 -4
  15. package/esm2022/popover-edit/popover-edit-module.mjs +5 -18
  16. package/esm2022/popover-edit/public-api.mjs +1 -2
  17. package/esm2022/popover-edit/table-directives.mjs +50 -13
  18. package/esm2022/scrolling/auto-size-virtual-scroll.mjs +3 -2
  19. package/esm2022/scrolling/scrolling-module.mjs +3 -3
  20. package/esm2022/selection/row-selection.mjs +3 -2
  21. package/esm2022/selection/select-all.mjs +3 -2
  22. package/esm2022/selection/selection-column.mjs +17 -8
  23. package/esm2022/selection/selection-module.mjs +11 -7
  24. package/esm2022/selection/selection-toggle.mjs +3 -2
  25. package/esm2022/selection/selection.mjs +3 -2
  26. package/esm2022/table-scroll-container/table-scroll-container-module.mjs +3 -3
  27. package/esm2022/table-scroll-container/table-scroll-container.mjs +3 -2
  28. package/esm2022/version.mjs +1 -1
  29. package/fesm2022/cdk-experimental.mjs +1 -1
  30. package/fesm2022/cdk-experimental.mjs.map +1 -1
  31. package/fesm2022/column-resize.mjs +12 -8
  32. package/fesm2022/column-resize.mjs.map +1 -1
  33. package/fesm2022/combobox.mjs +6 -5
  34. package/fesm2022/combobox.mjs.map +1 -1
  35. package/fesm2022/popover-edit.mjs +86 -104
  36. package/fesm2022/popover-edit.mjs.map +1 -1
  37. package/fesm2022/scrolling.mjs +4 -3
  38. package/fesm2022/scrolling.mjs.map +1 -1
  39. package/fesm2022/selection.mjs +30 -14
  40. package/fesm2022/selection.mjs.map +1 -1
  41. package/fesm2022/table-scroll-container.mjs +4 -3
  42. package/fesm2022/table-scroll-container.mjs.map +1 -1
  43. package/package.json +3 -3
  44. package/popover-edit/index.d.ts +16 -52
  45. package/scrolling/index.d.ts +2 -2
  46. package/selection/index.d.ts +13 -13
  47. package/table-scroll-container/index.d.ts +2 -2
  48. package/esm2022/popover-edit/popover-edit-position-strategy-factory.mjs +0 -76
@@ -1 +1 @@
1
- {"version":3,"file":"table-scroll-container.mjs","sources":["../../../../../../src/cdk-experimental/table-scroll-container/table-scroll-container.ts","../../../../../../src/cdk-experimental/table-scroll-container/table-scroll-container-module.ts","../../../../../../src/cdk-experimental/table-scroll-container/table-scroll-container_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CSP_NONCE, Directive, ElementRef, Inject, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_getShadowRoot} from '@angular/cdk/platform';\nimport {\n STICKY_POSITIONING_LISTENER,\n StickyPositioningListener,\n StickySize,\n StickyUpdate,\n} from '@angular/cdk/table';\n\nlet nextId = 0;\n\n/**\n * Applies styles to the host element that make its scrollbars match up with\n * the non-sticky scrollable portions of the CdkTable contained within.\n *\n * This visual effect only works in Webkit and Blink based browsers (eg Chrome,\n * Safari, Edge). Other browsers such as Firefox will gracefully degrade to\n * normal scrollbar appearance.\n * Further note: These styles have no effect when the browser is using OS-default\n * scrollbars. The easiest way to force them into custom mode is to specify width\n * and height for the scrollbar and thumb.\n */\n@Directive({\n selector: '[cdkTableScrollContainer]',\n host: {\n 'class': 'cdk-table-scroll-container',\n },\n providers: [{provide: STICKY_POSITIONING_LISTENER, useExisting: CdkTableScrollContainer}],\n})\nexport class CdkTableScrollContainer implements StickyPositioningListener, OnDestroy, OnInit {\n private readonly _uniqueClassName: string;\n private _styleRoot!: Node;\n private _styleElement?: HTMLStyleElement;\n\n /** The most recent sticky column size values from the CdkTable. */\n private _startSizes: StickySize[] = [];\n private _endSizes: StickySize[] = [];\n private _headerSizes: StickySize[] = [];\n private _footerSizes: StickySize[] = [];\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) private readonly _document: Document,\n @Optional() private readonly _directionality?: Directionality,\n @Optional() @Inject(CSP_NONCE) private readonly _nonce?: string | null,\n ) {\n this._uniqueClassName = `cdk-table-scroll-container-${++nextId}`;\n _elementRef.nativeElement.classList.add(this._uniqueClassName);\n }\n\n ngOnInit() {\n // Note that we need to look up the root node in ngOnInit, rather than the constructor, because\n // Angular seems to create the element outside the shadow root and then moves it inside, if the\n // node is inside an `ngIf` and a ShadowDom-encapsulated component.\n this._styleRoot = _getShadowRoot(this._elementRef.nativeElement) ?? this._document.head;\n }\n\n ngOnDestroy(): void {\n this._styleElement?.remove();\n this._styleElement = undefined;\n }\n\n stickyColumnsUpdated({sizes}: StickyUpdate): void {\n this._startSizes = sizes;\n this._updateScrollbar();\n }\n\n stickyEndColumnsUpdated({sizes}: StickyUpdate): void {\n this._endSizes = sizes;\n this._updateScrollbar();\n }\n\n stickyHeaderRowsUpdated({sizes}: StickyUpdate): void {\n this._headerSizes = sizes;\n this._updateScrollbar();\n }\n\n stickyFooterRowsUpdated({sizes}: StickyUpdate): void {\n this._footerSizes = sizes;\n this._updateScrollbar();\n }\n\n /**\n * Set padding on the scrollbar track based on the sticky states from CdkTable.\n */\n private _updateScrollbar(): void {\n const topMargin = computeMargin(this._headerSizes);\n const bottomMargin = computeMargin(this._footerSizes);\n const startMargin = computeMargin(this._startSizes);\n const endMargin = computeMargin(this._endSizes);\n\n if (topMargin === 0 && bottomMargin === 0 && startMargin === 0 && endMargin === 0) {\n this._clearCss();\n return;\n }\n\n const direction = this._directionality ? this._directionality.value : 'ltr';\n const leftMargin = direction === 'rtl' ? endMargin : startMargin;\n const rightMargin = direction === 'rtl' ? startMargin : endMargin;\n\n this._applyCss(`${topMargin}px ${rightMargin}px ${bottomMargin}px ${leftMargin}px`);\n }\n\n /** Gets the stylesheet for the scrollbar styles and creates it if need be. */\n private _getStyleSheet(): CSSStyleSheet {\n if (!this._styleElement) {\n this._styleElement = this._document.createElement('style');\n\n if (this._nonce) {\n this._styleElement.nonce = this._nonce;\n }\n\n this._styleRoot.appendChild(this._styleElement);\n }\n\n return this._styleElement.sheet as CSSStyleSheet;\n }\n\n /** Updates the stylesheet with the specified scrollbar style. */\n private _applyCss(value: string) {\n this._clearCss();\n\n const selector = `.${this._uniqueClassName}::-webkit-scrollbar-track`;\n this._getStyleSheet().insertRule(`${selector} {margin: ${value}}`, 0);\n }\n\n private _clearCss() {\n const styleSheet = this._getStyleSheet();\n if (styleSheet.cssRules.length > 0) {\n styleSheet.deleteRule(0);\n }\n }\n}\n\nfunction computeMargin(sizes: (number | null | undefined)[]): number {\n let margin = 0;\n for (const size of sizes) {\n if (size == null) {\n break;\n }\n margin += size;\n }\n return margin;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\n\nimport {CdkTableScrollContainer} from './table-scroll-container';\n\n@NgModule({\n declarations: [CdkTableScrollContainer],\n exports: [CdkTableScrollContainer],\n})\nexport class CdkTableScrollContainerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"table-scroll-container.mjs","sources":["../../../../../../src/cdk-experimental/table-scroll-container/table-scroll-container.ts","../../../../../../src/cdk-experimental/table-scroll-container/table-scroll-container-module.ts","../../../../../../src/cdk-experimental/table-scroll-container/table-scroll-container_public_index.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {CSP_NONCE, Directive, ElementRef, Inject, OnDestroy, OnInit, Optional} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {_getShadowRoot} from '@angular/cdk/platform';\nimport {\n STICKY_POSITIONING_LISTENER,\n StickyPositioningListener,\n StickySize,\n StickyUpdate,\n} from '@angular/cdk/table';\n\nlet nextId = 0;\n\n/**\n * Applies styles to the host element that make its scrollbars match up with\n * the non-sticky scrollable portions of the CdkTable contained within.\n *\n * This visual effect only works in Webkit and Blink based browsers (eg Chrome,\n * Safari, Edge). Other browsers such as Firefox will gracefully degrade to\n * normal scrollbar appearance.\n * Further note: These styles have no effect when the browser is using OS-default\n * scrollbars. The easiest way to force them into custom mode is to specify width\n * and height for the scrollbar and thumb.\n */\n@Directive({\n selector: '[cdkTableScrollContainer]',\n host: {\n 'class': 'cdk-table-scroll-container',\n },\n providers: [{provide: STICKY_POSITIONING_LISTENER, useExisting: CdkTableScrollContainer}],\n standalone: true,\n})\nexport class CdkTableScrollContainer implements StickyPositioningListener, OnDestroy, OnInit {\n private readonly _uniqueClassName: string;\n private _styleRoot!: Node;\n private _styleElement?: HTMLStyleElement;\n\n /** The most recent sticky column size values from the CdkTable. */\n private _startSizes: StickySize[] = [];\n private _endSizes: StickySize[] = [];\n private _headerSizes: StickySize[] = [];\n private _footerSizes: StickySize[] = [];\n\n constructor(\n private readonly _elementRef: ElementRef<HTMLElement>,\n @Inject(DOCUMENT) private readonly _document: Document,\n @Optional() private readonly _directionality?: Directionality,\n @Optional() @Inject(CSP_NONCE) private readonly _nonce?: string | null,\n ) {\n this._uniqueClassName = `cdk-table-scroll-container-${++nextId}`;\n _elementRef.nativeElement.classList.add(this._uniqueClassName);\n }\n\n ngOnInit() {\n // Note that we need to look up the root node in ngOnInit, rather than the constructor, because\n // Angular seems to create the element outside the shadow root and then moves it inside, if the\n // node is inside an `ngIf` and a ShadowDom-encapsulated component.\n this._styleRoot = _getShadowRoot(this._elementRef.nativeElement) ?? this._document.head;\n }\n\n ngOnDestroy(): void {\n this._styleElement?.remove();\n this._styleElement = undefined;\n }\n\n stickyColumnsUpdated({sizes}: StickyUpdate): void {\n this._startSizes = sizes;\n this._updateScrollbar();\n }\n\n stickyEndColumnsUpdated({sizes}: StickyUpdate): void {\n this._endSizes = sizes;\n this._updateScrollbar();\n }\n\n stickyHeaderRowsUpdated({sizes}: StickyUpdate): void {\n this._headerSizes = sizes;\n this._updateScrollbar();\n }\n\n stickyFooterRowsUpdated({sizes}: StickyUpdate): void {\n this._footerSizes = sizes;\n this._updateScrollbar();\n }\n\n /**\n * Set padding on the scrollbar track based on the sticky states from CdkTable.\n */\n private _updateScrollbar(): void {\n const topMargin = computeMargin(this._headerSizes);\n const bottomMargin = computeMargin(this._footerSizes);\n const startMargin = computeMargin(this._startSizes);\n const endMargin = computeMargin(this._endSizes);\n\n if (topMargin === 0 && bottomMargin === 0 && startMargin === 0 && endMargin === 0) {\n this._clearCss();\n return;\n }\n\n const direction = this._directionality ? this._directionality.value : 'ltr';\n const leftMargin = direction === 'rtl' ? endMargin : startMargin;\n const rightMargin = direction === 'rtl' ? startMargin : endMargin;\n\n this._applyCss(`${topMargin}px ${rightMargin}px ${bottomMargin}px ${leftMargin}px`);\n }\n\n /** Gets the stylesheet for the scrollbar styles and creates it if need be. */\n private _getStyleSheet(): CSSStyleSheet {\n if (!this._styleElement) {\n this._styleElement = this._document.createElement('style');\n\n if (this._nonce) {\n this._styleElement.nonce = this._nonce;\n }\n\n this._styleRoot.appendChild(this._styleElement);\n }\n\n return this._styleElement.sheet as CSSStyleSheet;\n }\n\n /** Updates the stylesheet with the specified scrollbar style. */\n private _applyCss(value: string) {\n this._clearCss();\n\n const selector = `.${this._uniqueClassName}::-webkit-scrollbar-track`;\n this._getStyleSheet().insertRule(`${selector} {margin: ${value}}`, 0);\n }\n\n private _clearCss() {\n const styleSheet = this._getStyleSheet();\n if (styleSheet.cssRules.length > 0) {\n styleSheet.deleteRule(0);\n }\n }\n}\n\nfunction computeMargin(sizes: (number | null | undefined)[]): number {\n let margin = 0;\n for (const size of sizes) {\n if (size == null) {\n break;\n }\n margin += size;\n }\n return margin;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {NgModule} from '@angular/core';\n\nimport {CdkTableScrollContainer} from './table-scroll-container';\n\n@NgModule({\n imports: [CdkTableScrollContainer],\n exports: [CdkTableScrollContainer],\n})\nexport class CdkTableScrollContainerModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@angular/cdk-experimental",
3
- "version": "17.0.2",
3
+ "version": "17.1.0-next.1",
4
4
  "description": "Experimental components for Angular CDK",
5
5
  "repository": {
6
6
  "type": "git",
@@ -12,8 +12,8 @@
12
12
  },
13
13
  "homepage": "https://github.com/angular/components#readme",
14
14
  "peerDependencies": {
15
- "@angular/cdk": "17.0.2",
16
- "@angular/core": "^17.0.0 || ^18.0.0"
15
+ "@angular/cdk": "17.1.0-next.1",
16
+ "@angular/core": "^17.0.0-0 || ^17.1.0-0 || ^17.2.0-0 || ^17.3.0-0 || ^18.0.0-0"
17
17
  },
18
18
  "dependencies": {
19
19
  "tslib": "^2.3.0"
@@ -7,7 +7,7 @@ import { EventEmitter } from '@angular/core';
7
7
  import { FocusTrap } from '@angular/cdk/a11y';
8
8
  import { FocusTrapFactory } from '@angular/cdk/a11y';
9
9
  import * as i0 from '@angular/core';
10
- import * as i3 from '@angular/cdk/overlay';
10
+ import * as i1 from '@angular/cdk/overlay';
11
11
  import { InteractivityChecker } from '@angular/cdk/a11y';
12
12
  import { NgZone } from '@angular/core';
13
13
  import { Observable } from 'rxjs';
@@ -15,9 +15,7 @@ import { OnDestroy } from '@angular/core';
15
15
  import { OnInit } from '@angular/core';
16
16
  import { Overlay } from '@angular/cdk/overlay';
17
17
  import { OverlayRef } from '@angular/cdk/overlay';
18
- import { OverlaySizeConfig } from '@angular/cdk/overlay';
19
18
  import { PartialObserver } from 'rxjs';
20
- import { PositionStrategy } from '@angular/cdk/overlay';
21
19
  import { ScrollDispatcher } from '@angular/cdk/scrolling';
22
20
  import { Subject } from 'rxjs';
23
21
  import { TemplateRef } from '@angular/core';
@@ -40,7 +38,7 @@ export declare class CdkEditable implements AfterViewInit, OnDestroy {
40
38
  ngOnDestroy(): void;
41
39
  private _listenForTableEvents;
42
40
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkEditable, never>;
43
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkEditable, "table[editable], cdk-table[editable], mat-table[editable]", never, {}, {}, never, never, false, never>;
41
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkEditable, "table[editable], cdk-table[editable], mat-table[editable]", never, {}, {}, never, never, true, never>;
44
42
  }
45
43
 
46
44
  /** Closes the lens on click. */
@@ -50,7 +48,7 @@ export declare class CdkEditClose<FormValue> {
50
48
  constructor(elementRef: ElementRef<HTMLElement>, editRef: EditRef<FormValue>);
51
49
  closeEdit(): void;
52
50
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkEditClose<any>, never>;
53
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkEditClose<any>, "[cdkEditClose]", never, {}, {}, never, never, false, never>;
51
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkEditClose<any>, "[cdkEditClose]", never, {}, {}, never, never, true, never>;
54
52
  }
55
53
 
56
54
  /**
@@ -101,7 +99,7 @@ export declare class CdkEditControl<FormValue> implements OnDestroy, OnInit {
101
99
  private _handleBlur;
102
100
  private _triggerFormSubmit;
103
101
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkEditControl<any>, never>;
104
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkEditControl<any>, "form[cdkEditControl]", never, { "clickOutBehavior": { "alias": "cdkEditControlClickOutBehavior"; "required": false; }; "preservedFormValue": { "alias": "cdkEditControlPreservedFormValue"; "required": false; }; "ignoreSubmitUnlessValid": { "alias": "cdkEditControlIgnoreSubmitUnlessValid"; "required": false; }; }, { "preservedFormValueChange": "cdkEditControlPreservedFormValueChange"; }, never, never, false, never>;
102
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkEditControl<any>, "form[cdkEditControl]", never, { "clickOutBehavior": { "alias": "cdkEditControlClickOutBehavior"; "required": false; }; "preservedFormValue": { "alias": "cdkEditControlPreservedFormValue"; "required": false; }; "ignoreSubmitUnlessValid": { "alias": "cdkEditControlIgnoreSubmitUnlessValid"; "required": false; }; }, { "preservedFormValueChange": "cdkEditControlPreservedFormValueChange"; }, never, never, true, never>;
105
103
  }
106
104
 
107
105
  /**
@@ -114,7 +112,7 @@ export declare class CdkEditOpen {
114
112
  constructor(elementRef: ElementRef<HTMLElement>, editEventDispatcher: EditEventDispatcher<EditRef<unknown>>);
115
113
  openEdit(evt: Event): void;
116
114
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkEditOpen, never>;
117
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkEditOpen, "[cdkEditOpen]", never, {}, {}, never, never, false, never>;
115
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkEditOpen, "[cdkEditOpen]", never, {}, {}, never, never, true, never>;
118
116
  }
119
117
 
120
118
  /** Reverts the form to its initial or previously submitted state on click. */
@@ -125,7 +123,7 @@ export declare class CdkEditRevert<FormValue> {
125
123
  constructor(editRef: EditRef<FormValue>);
126
124
  revertEdit(): void;
127
125
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkEditRevert<any>, never>;
128
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkEditRevert<any>, "button[cdkEditRevert]", never, { "type": { "alias": "type"; "required": false; }; }, {}, never, never, false, never>;
126
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkEditRevert<any>, "button[cdkEditRevert]", never, { "type": { "alias": "type"; "required": false; }; }, {}, never, never, true, never>;
129
127
  }
130
128
 
131
129
  /**
@@ -171,8 +169,9 @@ export declare class CdkPopoverEdit<C> implements AfterViewInit, OnDestroy {
171
169
  private _getPositionStrategy;
172
170
  private _updateOverlaySize;
173
171
  private _maybeReturnFocusToCell;
172
+ private _sizeConfigForCells;
174
173
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkPopoverEdit<any>, never>;
175
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkPopoverEdit<any>, "[cdkPopoverEdit]:not([cdkPopoverEditTabOut])", never, { "template": { "alias": "cdkPopoverEdit"; "required": false; }; "context": { "alias": "cdkPopoverEditContext"; "required": false; }; "colspan": { "alias": "cdkPopoverEditColspan"; "required": false; }; "disabled": { "alias": "cdkPopoverEditDisabled"; "required": false; }; }, {}, never, never, false, never>;
174
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkPopoverEdit<any>, "[cdkPopoverEdit]:not([cdkPopoverEditTabOut])", never, { "template": { "alias": "cdkPopoverEdit"; "required": false; }; "context": { "alias": "cdkPopoverEditContext"; "required": false; }; "colspan": { "alias": "cdkPopoverEditColspan"; "required": false; }; "disabled": { "alias": "cdkPopoverEditDisabled"; "required": false; }; }, {}, never, never, true, never>;
176
175
  }
177
176
 
178
177
  /**
@@ -187,7 +186,7 @@ export declare interface CdkPopoverEditColspan {
187
186
 
188
187
  export declare class CdkPopoverEditModule {
189
188
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkPopoverEditModule, never>;
190
- static ɵmod: i0.ɵɵNgModuleDeclaration<CdkPopoverEditModule, [typeof i1.CdkPopoverEdit, typeof i1.CdkPopoverEditTabOut, typeof i1.CdkRowHoverContent, typeof i2.CdkEditControl, typeof i2.CdkEditRevert, typeof i2.CdkEditClose, typeof i1.CdkEditable, typeof i1.CdkEditOpen], [typeof i3.OverlayModule], [typeof i1.CdkPopoverEdit, typeof i1.CdkPopoverEditTabOut, typeof i1.CdkRowHoverContent, typeof i2.CdkEditControl, typeof i2.CdkEditRevert, typeof i2.CdkEditClose, typeof i1.CdkEditable, typeof i1.CdkEditOpen]>;
189
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CdkPopoverEditModule, never, [typeof i1.OverlayModule, typeof i2.CdkPopoverEdit, typeof i2.CdkPopoverEditTabOut, typeof i2.CdkRowHoverContent, typeof i3.CdkEditControl, typeof i3.CdkEditRevert, typeof i3.CdkEditClose, typeof i2.CdkEditable, typeof i2.CdkEditOpen], [typeof i2.CdkPopoverEdit, typeof i2.CdkPopoverEditTabOut, typeof i2.CdkRowHoverContent, typeof i3.CdkEditControl, typeof i3.CdkEditRevert, typeof i3.CdkEditClose, typeof i2.CdkEditable, typeof i2.CdkEditOpen]>;
191
190
  static ɵinj: i0.ɵɵInjectorDeclaration<CdkPopoverEditModule>;
192
191
  }
193
192
 
@@ -202,7 +201,7 @@ export declare class CdkPopoverEditTabOut<C> extends CdkPopoverEdit<C> {
202
201
  constructor(elementRef: ElementRef, viewContainerRef: ViewContainerRef, services: EditServices, focusEscapeNotifierFactory: FocusEscapeNotifierFactory);
203
202
  protected initFocusTrap(): void;
204
203
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkPopoverEditTabOut<any>, never>;
205
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkPopoverEditTabOut<any>, "[cdkPopoverEdit][cdkPopoverEditTabOut]", never, { "template": { "alias": "cdkPopoverEdit"; "required": false; }; "context": { "alias": "cdkPopoverEditContext"; "required": false; }; "colspan": { "alias": "cdkPopoverEditColspan"; "required": false; }; "disabled": { "alias": "cdkPopoverEditDisabled"; "required": false; }; }, {}, never, never, false, never>;
204
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkPopoverEditTabOut<any>, "[cdkPopoverEdit][cdkPopoverEditTabOut]", never, { "template": { "alias": "cdkPopoverEdit"; "required": false; }; "context": { "alias": "cdkPopoverEditContext"; "required": false; }; "colspan": { "alias": "cdkPopoverEditColspan"; "required": false; }; "disabled": { "alias": "cdkPopoverEditDisabled"; "required": false; }; }, {}, never, never, true, never>;
206
205
  }
207
206
 
208
207
  /**
@@ -238,7 +237,7 @@ export declare class CdkRowHoverContent implements AfterViewInit, OnDestroy {
238
237
  protected makeElementVisible(element: HTMLElement): void;
239
238
  private _listenForHoverAndFocusEvents;
240
239
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkRowHoverContent, never>;
241
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkRowHoverContent, "[cdkRowHoverContent]", never, {}, {}, never, never, false, never>;
240
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkRowHoverContent, "[cdkRowHoverContent]", never, {}, {}, never, never, true, never>;
242
241
  }
243
242
 
244
243
  /** Selector for finding table cells. */
@@ -248,21 +247,6 @@ export declare const _CELL_SELECTOR = ".cdk-cell, .mat-cell, td";
248
247
  /** closest implementation that is able to start from non-Element Nodes. */
249
248
  export declare function _closest(element: EventTarget | Element | null | undefined, selector: string): Element | null;
250
249
 
251
- /**
252
- * Default implementation of PopoverEditPositionStrategyFactory.
253
- * Uses a FlexibleConnectedPositionStrategy anchored to the start + top of the cell.
254
- * Note: This will change to CoverPositionStrategy once it implemented.
255
- */
256
- export declare class DefaultPopoverEditPositionStrategyFactory extends PopoverEditPositionStrategyFactory {
257
- protected readonly direction: Directionality;
258
- protected readonly overlay: Overlay;
259
- constructor(direction: Directionality, overlay: Overlay);
260
- positionStrategyForCells(cells: HTMLElement[]): PositionStrategy;
261
- sizeConfigForCells(cells: HTMLElement[]): OverlaySizeConfig;
262
- static ɵfac: i0.ɵɵFactoryDeclaration<DefaultPopoverEditPositionStrategyFactory, never>;
263
- static ɵprov: i0.ɵɵInjectableDeclaration<DefaultPopoverEditPositionStrategyFactory>;
264
- }
265
-
266
250
  /**
267
251
  * Service for sharing delegated events and state for triggering table edits.
268
252
  */
@@ -396,10 +380,9 @@ declare class EditServices {
396
380
  readonly focusTrapFactory: FocusTrapFactory;
397
381
  readonly ngZone: NgZone;
398
382
  readonly overlay: Overlay;
399
- readonly positionFactory: PopoverEditPositionStrategyFactory;
400
383
  readonly scrollDispatcher: ScrollDispatcher;
401
384
  readonly viewportRuler: ViewportRuler;
402
- constructor(directionality: Directionality, editEventDispatcher: EditEventDispatcher<EditRef<unknown>>, focusDispatcher: FocusDispatcher, focusTrapFactory: FocusTrapFactory, ngZone: NgZone, overlay: Overlay, positionFactory: PopoverEditPositionStrategyFactory, scrollDispatcher: ScrollDispatcher, viewportRuler: ViewportRuler);
385
+ constructor(directionality: Directionality, editEventDispatcher: EditEventDispatcher<EditRef<unknown>>, focusDispatcher: FocusDispatcher, focusTrapFactory: FocusTrapFactory, ngZone: NgZone, overlay: Overlay, scrollDispatcher: ScrollDispatcher, viewportRuler: ViewportRuler);
403
386
  static ɵfac: i0.ɵɵFactoryDeclaration<EditServices, never>;
404
387
  static ɵprov: i0.ɵɵInjectableDeclaration<EditServices>;
405
388
  }
@@ -442,7 +425,7 @@ declare class FocusEscapeNotifier extends FocusTrap {
442
425
  }
443
426
 
444
427
  /** Value indicating whether focus left the target area before or after the enclosed elements. */
445
- declare const enum FocusEscapeNotifierDirection {
428
+ declare enum FocusEscapeNotifierDirection {
446
429
  START = 0,
447
430
  END = 1
448
431
  }
@@ -484,13 +467,13 @@ export declare class FormValueContainer<Key extends object, FormValue> {
484
467
  * FOCUSABLE - Rendered in the dom and styled for its contents to be focusable but invisible.
485
468
  * ON - Rendered and fully visible.
486
469
  */
487
- export declare const enum HoverContentState {
470
+ export declare enum HoverContentState {
488
471
  OFF = 0,
489
472
  FOCUSABLE = 1,
490
473
  ON = 2
491
474
  }
492
475
 
493
- declare namespace i1 {
476
+ declare namespace i2 {
494
477
  export {
495
478
  CdkPopoverEditColspan,
496
479
  CdkEditable,
@@ -501,7 +484,7 @@ declare namespace i1 {
501
484
  }
502
485
  }
503
486
 
504
- declare namespace i2 {
487
+ declare namespace i3 {
505
488
  export {
506
489
  PopoverEditClickOutBehavior,
507
490
  CdkEditControl,
@@ -513,23 +496,4 @@ declare namespace i2 {
513
496
  /** Options for what do to when the user clicks outside of an edit lens. */
514
497
  export declare type PopoverEditClickOutBehavior = 'close' | 'submit' | 'noop';
515
498
 
516
- /**
517
- * Overridable factory responsible for configuring how cdkPopoverEdit popovers are positioned
518
- * and sized.
519
- */
520
- export declare abstract class PopoverEditPositionStrategyFactory {
521
- /**
522
- * Creates a PositionStrategy based on the specified table cells.
523
- * The cells will be provided in DOM order.
524
- */
525
- abstract positionStrategyForCells(cells: HTMLElement[]): PositionStrategy;
526
- /**
527
- * Creates an OverlaySizeConfig based on the specified table cells.
528
- * The cells will be provided in DOM order.
529
- */
530
- abstract sizeConfigForCells(cells: HTMLElement[]): OverlaySizeConfig;
531
- static ɵfac: i0.ɵɵFactoryDeclaration<PopoverEditPositionStrategyFactory, never>;
532
- static ɵprov: i0.ɵɵInjectableDeclaration<PopoverEditPositionStrategyFactory>;
533
- }
534
-
535
499
  export { }
@@ -129,7 +129,7 @@ export declare class CdkAutoSizeVirtualScroll implements OnChanges {
129
129
  _scrollStrategy: AutoSizeVirtualScrollStrategy;
130
130
  ngOnChanges(): void;
131
131
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkAutoSizeVirtualScroll, never>;
132
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkAutoSizeVirtualScroll, "cdk-virtual-scroll-viewport[autosize]", never, { "minBufferPx": { "alias": "minBufferPx"; "required": false; }; "maxBufferPx": { "alias": "maxBufferPx"; "required": false; }; }, {}, never, never, false, never>;
132
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkAutoSizeVirtualScroll, "cdk-virtual-scroll-viewport[autosize]", never, { "minBufferPx": { "alias": "minBufferPx"; "required": false; }; "maxBufferPx": { "alias": "maxBufferPx"; "required": false; }; }, {}, never, never, true, never>;
133
133
  }
134
134
 
135
135
  declare namespace i1 {
@@ -168,7 +168,7 @@ export declare class ItemSizeAverager {
168
168
 
169
169
  export declare class ScrollingModule {
170
170
  static ɵfac: i0.ɵɵFactoryDeclaration<ScrollingModule, never>;
171
- static ɵmod: i0.ɵɵNgModuleDeclaration<ScrollingModule, [typeof i1.CdkAutoSizeVirtualScroll], never, [typeof i1.CdkAutoSizeVirtualScroll]>;
171
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ScrollingModule, never, [typeof i1.CdkAutoSizeVirtualScroll], [typeof i1.CdkAutoSizeVirtualScroll]>;
172
172
  static ɵinj: i0.ɵɵInjectorDeclaration<ScrollingModule>;
173
173
  }
174
174
 
@@ -6,8 +6,8 @@ import { ControlValueAccessor } from '@angular/forms';
6
6
  import { DataSource } from '@angular/cdk/collections';
7
7
  import { EventEmitter } from '@angular/core';
8
8
  import * as i0 from '@angular/core';
9
- import * as i6 from '@angular/common';
10
- import * as i7 from '@angular/cdk/table';
9
+ import * as i1 from '@angular/common';
10
+ import * as i2 from '@angular/cdk/table';
11
11
  import { ListRange } from '@angular/cdk/collections';
12
12
  import { NumberInput } from '@angular/cdk/coercion';
13
13
  import { Observable } from 'rxjs';
@@ -31,7 +31,7 @@ export declare class CdkRowSelection<T> {
31
31
  protected _index?: number;
32
32
  constructor(_selection: CdkSelection<T>);
33
33
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkRowSelection<any>, never>;
34
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkRowSelection<any>, "[cdkRowSelection]", never, { "value": { "alias": "cdkRowSelectionValue"; "required": false; }; "index": { "alias": "cdkRowSelectionIndex"; "required": false; }; }, {}, never, never, false, never>;
34
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkRowSelection<any>, "[cdkRowSelection]", never, { "value": { "alias": "cdkRowSelectionValue"; "required": false; }; "index": { "alias": "cdkRowSelectionIndex"; "required": false; }; }, {}, never, never, true, never>;
35
35
  }
36
36
 
37
37
  /**
@@ -72,7 +72,7 @@ export declare class CdkSelectAll<T> implements OnDestroy, OnInit {
72
72
  private _assertValidParentSelection;
73
73
  ngOnDestroy(): void;
74
74
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkSelectAll<any>, [{ optional: true; }, { optional: true; self: true; }]>;
75
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkSelectAll<any>, "[cdkSelectAll]", ["cdkSelectAll"], {}, {}, never, never, false, never>;
75
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkSelectAll<any>, "[cdkSelectAll]", ["cdkSelectAll"], {}, {}, never, never, true, never>;
76
76
  }
77
77
 
78
78
  /**
@@ -122,7 +122,7 @@ export declare class CdkSelection<T> implements OnInit, AfterContentChecked, Col
122
122
  private _updateSelectAllState;
123
123
  selectAllState: SelectAllState;
124
124
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkSelection<any>, never>;
125
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkSelection<any>, "[cdkSelection]", ["cdkSelection"], { "dataSource": { "alias": "dataSource"; "required": false; }; "trackByFn": { "alias": "trackBy"; "required": false; }; "multiple": { "alias": "cdkSelectionMultiple"; "required": false; }; }, { "change": "cdkSelectionChange"; }, never, never, false, never>;
125
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkSelection<any>, "[cdkSelection]", ["cdkSelection"], { "dataSource": { "alias": "dataSource"; "required": false; }; "trackByFn": { "alias": "trackBy"; "required": false; }; "multiple": { "alias": "cdkSelectionMultiple"; "required": false; }; }, { "change": "cdkSelectionChange"; }, never, never, true, never>;
126
126
  }
127
127
 
128
128
  /**
@@ -146,12 +146,12 @@ export declare class CdkSelectionColumn<T> implements OnInit, OnDestroy {
146
146
  ngOnDestroy(): void;
147
147
  private _syncColumnDefName;
148
148
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkSelectionColumn<any>, [{ optional: true; }, { optional: true; }]>;
149
- static ɵcmp: i0.ɵɵComponentDeclaration<CdkSelectionColumn<any>, "cdk-selection-column", never, { "name": { "alias": "cdkSelectionColumnName"; "required": false; }; }, {}, never, never, false, never>;
149
+ static ɵcmp: i0.ɵɵComponentDeclaration<CdkSelectionColumn<any>, "cdk-selection-column", never, { "name": { "alias": "cdkSelectionColumnName"; "required": false; }; }, {}, never, never, true, never>;
150
150
  }
151
151
 
152
152
  export declare class CdkSelectionModule {
153
153
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkSelectionModule, never>;
154
- static ɵmod: i0.ɵɵNgModuleDeclaration<CdkSelectionModule, [typeof i1.CdkSelection, typeof i2.CdkSelectionToggle, typeof i3.CdkSelectAll, typeof i4.CdkSelectionColumn, typeof i5.CdkRowSelection], [typeof i6.CommonModule, typeof i7.CdkTableModule], [typeof i1.CdkSelection, typeof i2.CdkSelectionToggle, typeof i3.CdkSelectAll, typeof i4.CdkSelectionColumn, typeof i5.CdkRowSelection]>;
154
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CdkSelectionModule, never, [typeof i1.CommonModule, typeof i2.CdkTableModule, typeof i3.CdkSelection, typeof i4.CdkSelectionToggle, typeof i5.CdkSelectAll, typeof i6.CdkSelectionColumn, typeof i7.CdkRowSelection], [typeof i3.CdkSelection, typeof i4.CdkSelectionToggle, typeof i5.CdkSelectAll, typeof i6.CdkSelectionColumn, typeof i7.CdkRowSelection]>;
155
155
  static ɵinj: i0.ɵɵInjectorDeclaration<CdkSelectionModule>;
156
156
  }
157
157
 
@@ -186,34 +186,34 @@ export declare class CdkSelectionToggle<T> implements OnDestroy, OnInit {
186
186
  private _configureControlValueAccessor;
187
187
  private _isSelected;
188
188
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkSelectionToggle<any>, [{ optional: true; }, { optional: true; self: true; }]>;
189
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkSelectionToggle<any>, "[cdkSelectionToggle]", ["cdkSelectionToggle"], { "value": { "alias": "cdkSelectionToggleValue"; "required": false; }; "index": { "alias": "cdkSelectionToggleIndex"; "required": false; }; }, {}, never, never, false, never>;
189
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkSelectionToggle<any>, "[cdkSelectionToggle]", ["cdkSelectionToggle"], { "value": { "alias": "cdkSelectionToggleValue"; "required": false; }; "index": { "alias": "cdkSelectionToggleIndex"; "required": false; }; }, {}, never, never, true, never>;
190
190
  }
191
191
 
192
- declare namespace i1 {
192
+ declare namespace i3 {
193
193
  export {
194
194
  CdkSelection
195
195
  }
196
196
  }
197
197
 
198
- declare namespace i2 {
198
+ declare namespace i4 {
199
199
  export {
200
200
  CdkSelectionToggle
201
201
  }
202
202
  }
203
203
 
204
- declare namespace i3 {
204
+ declare namespace i5 {
205
205
  export {
206
206
  CdkSelectAll
207
207
  }
208
208
  }
209
209
 
210
- declare namespace i4 {
210
+ declare namespace i6 {
211
211
  export {
212
212
  CdkSelectionColumn
213
213
  }
214
214
  }
215
215
 
216
- declare namespace i5 {
216
+ declare namespace i7 {
217
217
  export {
218
218
  CdkRowSelection
219
219
  }
@@ -47,12 +47,12 @@ export declare class CdkTableScrollContainer implements StickyPositioningListene
47
47
  private _applyCss;
48
48
  private _clearCss;
49
49
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkTableScrollContainer, [null, null, { optional: true; }, { optional: true; }]>;
50
- static ɵdir: i0.ɵɵDirectiveDeclaration<CdkTableScrollContainer, "[cdkTableScrollContainer]", never, {}, {}, never, never, false, never>;
50
+ static ɵdir: i0.ɵɵDirectiveDeclaration<CdkTableScrollContainer, "[cdkTableScrollContainer]", never, {}, {}, never, never, true, never>;
51
51
  }
52
52
 
53
53
  export declare class CdkTableScrollContainerModule {
54
54
  static ɵfac: i0.ɵɵFactoryDeclaration<CdkTableScrollContainerModule, never>;
55
- static ɵmod: i0.ɵɵNgModuleDeclaration<CdkTableScrollContainerModule, [typeof i1.CdkTableScrollContainer], never, [typeof i1.CdkTableScrollContainer]>;
55
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CdkTableScrollContainerModule, never, [typeof i1.CdkTableScrollContainer], [typeof i1.CdkTableScrollContainer]>;
56
56
  static ɵinj: i0.ɵɵInjectorDeclaration<CdkTableScrollContainerModule>;
57
57
  }
58
58
 
@@ -1,76 +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 { Overlay } from '@angular/cdk/overlay';
10
- import { Injectable } from '@angular/core';
11
- import * as i0 from "@angular/core";
12
- import * as i1 from "@angular/cdk/bidi";
13
- import * as i2 from "@angular/cdk/overlay";
14
- /**
15
- * Overridable factory responsible for configuring how cdkPopoverEdit popovers are positioned
16
- * and sized.
17
- */
18
- export class PopoverEditPositionStrategyFactory {
19
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PopoverEditPositionStrategyFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
20
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PopoverEditPositionStrategyFactory }); }
21
- }
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: PopoverEditPositionStrategyFactory, decorators: [{
23
- type: Injectable
24
- }] });
25
- /**
26
- * Default implementation of PopoverEditPositionStrategyFactory.
27
- * Uses a FlexibleConnectedPositionStrategy anchored to the start + top of the cell.
28
- * Note: This will change to CoverPositionStrategy once it implemented.
29
- */
30
- export class DefaultPopoverEditPositionStrategyFactory extends PopoverEditPositionStrategyFactory {
31
- constructor(direction, overlay) {
32
- super();
33
- this.direction = direction;
34
- this.overlay = overlay;
35
- }
36
- positionStrategyForCells(cells) {
37
- return this.overlay
38
- .position()
39
- .flexibleConnectedTo(cells[0])
40
- .withGrowAfterOpen()
41
- .withPush()
42
- .withViewportMargin(16)
43
- .withPositions([
44
- {
45
- originX: 'start',
46
- originY: 'top',
47
- overlayX: 'start',
48
- overlayY: 'top',
49
- },
50
- ]);
51
- }
52
- sizeConfigForCells(cells) {
53
- if (cells.length === 0) {
54
- return {};
55
- }
56
- if (cells.length === 1) {
57
- return { width: cells[0].getBoundingClientRect().width };
58
- }
59
- let firstCell, lastCell;
60
- if (this.direction.value === 'ltr') {
61
- firstCell = cells[0];
62
- lastCell = cells[cells.length - 1];
63
- }
64
- else {
65
- lastCell = cells[0];
66
- firstCell = cells[cells.length - 1];
67
- }
68
- return { width: lastCell.getBoundingClientRect().right - firstCell.getBoundingClientRect().left };
69
- }
70
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DefaultPopoverEditPositionStrategyFactory, deps: [{ token: i1.Directionality }, { token: i2.Overlay }], target: i0.ɵɵFactoryTarget.Injectable }); }
71
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DefaultPopoverEditPositionStrategyFactory }); }
72
- }
73
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: DefaultPopoverEditPositionStrategyFactory, decorators: [{
74
- type: Injectable
75
- }], ctorParameters: () => [{ type: i1.Directionality }, { type: i2.Overlay }] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci1lZGl0LXBvc2l0aW9uLXN0cmF0ZWd5LWZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY2RrLWV4cGVyaW1lbnRhbC9wb3BvdmVyLWVkaXQvcG9wb3Zlci1lZGl0LXBvc2l0aW9uLXN0cmF0ZWd5LWZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HO0FBRUgsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBQ2pELE9BQU8sRUFBQyxPQUFPLEVBQXNDLE1BQU0sc0JBQXNCLENBQUM7QUFDbEYsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7OztBQUV6Qzs7O0dBR0c7QUFFSCxNQUFNLE9BQWdCLGtDQUFrQzs4R0FBbEMsa0NBQWtDO2tIQUFsQyxrQ0FBa0M7OzJGQUFsQyxrQ0FBa0M7a0JBRHZELFVBQVU7O0FBZVg7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyx5Q0FBMEMsU0FBUSxrQ0FBa0M7SUFDL0YsWUFBK0IsU0FBeUIsRUFBcUIsT0FBZ0I7UUFDM0YsS0FBSyxFQUFFLENBQUM7UUFEcUIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFBcUIsWUFBTyxHQUFQLE9BQU8sQ0FBUztJQUU3RixDQUFDO0lBRUQsd0JBQXdCLENBQUMsS0FBb0I7UUFDM0MsT0FBTyxJQUFJLENBQUMsT0FBTzthQUNoQixRQUFRLEVBQUU7YUFDVixtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDN0IsaUJBQWlCLEVBQUU7YUFDbkIsUUFBUSxFQUFFO2FBQ1Ysa0JBQWtCLENBQUMsRUFBRSxDQUFDO2FBQ3RCLGFBQWEsQ0FBQztZQUNiO2dCQUNFLE9BQU8sRUFBRSxPQUFPO2dCQUNoQixPQUFPLEVBQUUsS0FBSztnQkFDZCxRQUFRLEVBQUUsT0FBTztnQkFDakIsUUFBUSxFQUFFLEtBQUs7YUFDaEI7U0FDRixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBb0I7UUFDckMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0QixPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0QixPQUFPLEVBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssRUFBQyxDQUFDO1NBQ3hEO1FBRUQsSUFBSSxTQUFTLEVBQUUsUUFBUSxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEtBQUssS0FBSyxFQUFFO1lBQ2xDLFNBQVMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDckIsUUFBUSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ3BDO2FBQU07WUFDTCxRQUFRLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3BCLFNBQVMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztTQUNyQztRQUVELE9BQU8sRUFBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLHFCQUFxQixFQUFFLENBQUMsS0FBSyxHQUFHLFNBQVMsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLElBQUksRUFBQyxDQUFDO0lBQ2xHLENBQUM7OEdBekNVLHlDQUF5QztrSEFBekMseUNBQXlDOzsyRkFBekMseUNBQXlDO2tCQURyRCxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBNSVQtc3R5bGUgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxuICovXG5cbmltcG9ydCB7RGlyZWN0aW9uYWxpdHl9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7T3ZlcmxheSwgT3ZlcmxheVNpemVDb25maWcsIFBvc2l0aW9uU3RyYXRlZ3l9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogT3ZlcnJpZGFibGUgZmFjdG9yeSByZXNwb25zaWJsZSBmb3IgY29uZmlndXJpbmcgaG93IGNka1BvcG92ZXJFZGl0IHBvcG92ZXJzIGFyZSBwb3NpdGlvbmVkXG4gKiBhbmQgc2l6ZWQuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb3BvdmVyRWRpdFBvc2l0aW9uU3RyYXRlZ3lGYWN0b3J5IHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBQb3NpdGlvblN0cmF0ZWd5IGJhc2VkIG9uIHRoZSBzcGVjaWZpZWQgdGFibGUgY2VsbHMuXG4gICAqIFRoZSBjZWxscyB3aWxsIGJlIHByb3ZpZGVkIGluIERPTSBvcmRlci5cbiAgICovXG4gIGFic3RyYWN0IHBvc2l0aW9uU3RyYXRlZ3lGb3JDZWxscyhjZWxsczogSFRNTEVsZW1lbnRbXSk6IFBvc2l0aW9uU3RyYXRlZ3k7XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYW4gT3ZlcmxheVNpemVDb25maWcgYmFzZWQgb24gdGhlIHNwZWNpZmllZCB0YWJsZSBjZWxscy5cbiAgICogVGhlIGNlbGxzIHdpbGwgYmUgcHJvdmlkZWQgaW4gRE9NIG9yZGVyLlxuICAgKi9cbiAgYWJzdHJhY3Qgc2l6ZUNvbmZpZ0ZvckNlbGxzKGNlbGxzOiBIVE1MRWxlbWVudFtdKTogT3ZlcmxheVNpemVDb25maWc7XG59XG5cbi8qKlxuICogRGVmYXVsdCBpbXBsZW1lbnRhdGlvbiBvZiBQb3BvdmVyRWRpdFBvc2l0aW9uU3RyYXRlZ3lGYWN0b3J5LlxuICogVXNlcyBhIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSBhbmNob3JlZCB0byB0aGUgc3RhcnQgKyB0b3Agb2YgdGhlIGNlbGwuXG4gKiBOb3RlOiBUaGlzIHdpbGwgY2hhbmdlIHRvIENvdmVyUG9zaXRpb25TdHJhdGVneSBvbmNlIGl0IGltcGxlbWVudGVkLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgRGVmYXVsdFBvcG92ZXJFZGl0UG9zaXRpb25TdHJhdGVneUZhY3RvcnkgZXh0ZW5kcyBQb3BvdmVyRWRpdFBvc2l0aW9uU3RyYXRlZ3lGYWN0b3J5IHtcbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHJlYWRvbmx5IGRpcmVjdGlvbjogRGlyZWN0aW9uYWxpdHksIHByb3RlY3RlZCByZWFkb25seSBvdmVybGF5OiBPdmVybGF5KSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHBvc2l0aW9uU3RyYXRlZ3lGb3JDZWxscyhjZWxsczogSFRNTEVsZW1lbnRbXSk6IFBvc2l0aW9uU3RyYXRlZ3kge1xuICAgIHJldHVybiB0aGlzLm92ZXJsYXlcbiAgICAgIC5wb3NpdGlvbigpXG4gICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyhjZWxsc1swXSlcbiAgICAgIC53aXRoR3Jvd0FmdGVyT3BlbigpXG4gICAgICAud2l0aFB1c2goKVxuICAgICAgLndpdGhWaWV3cG9ydE1hcmdpbigxNilcbiAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAge1xuICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICB9LFxuICAgICAgXSk7XG4gIH1cblxuICBzaXplQ29uZmlnRm9yQ2VsbHMoY2VsbHM6IEhUTUxFbGVtZW50W10pOiBPdmVybGF5U2l6ZUNvbmZpZyB7XG4gICAgaWYgKGNlbGxzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cblxuICAgIGlmIChjZWxscy5sZW5ndGggPT09IDEpIHtcbiAgICAgIHJldHVybiB7d2lkdGg6IGNlbGxzWzBdLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRofTtcbiAgICB9XG5cbiAgICBsZXQgZmlyc3RDZWxsLCBsYXN0Q2VsbDtcbiAgICBpZiAodGhpcy5kaXJlY3Rpb24udmFsdWUgPT09ICdsdHInKSB7XG4gICAgICBmaXJzdENlbGwgPSBjZWxsc1swXTtcbiAgICAgIGxhc3RDZWxsID0gY2VsbHNbY2VsbHMubGVuZ3RoIC0gMV07XG4gICAgfSBlbHNlIHtcbiAgICAgIGxhc3RDZWxsID0gY2VsbHNbMF07XG4gICAgICBmaXJzdENlbGwgPSBjZWxsc1tjZWxscy5sZW5ndGggLSAxXTtcbiAgICB9XG5cbiAgICByZXR1cm4ge3dpZHRoOiBsYXN0Q2VsbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCAtIGZpcnN0Q2VsbC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5sZWZ0fTtcbiAgfVxufVxuIl19