@angular/cdk-experimental 16.0.0-next.4 → 16.0.0-rc.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.
- package/combobox/index.d.ts +2 -2
- package/{esm2020 → esm2022}/column-resize/column-resize-directives/column-resize-flex.mjs +4 -4
- package/{esm2020 → esm2022}/column-resize/column-resize-directives/column-resize.mjs +4 -4
- package/{esm2020 → esm2022}/column-resize/column-resize-directives/default-enabled-column-resize-flex.mjs +7 -7
- package/{esm2020 → esm2022}/column-resize/column-resize-directives/default-enabled-column-resize.mjs +7 -7
- package/{esm2020 → esm2022}/column-resize/column-resize-module.mjs +9 -9
- package/{esm2020 → esm2022}/column-resize/column-resize-notifier.mjs +7 -7
- package/{esm2020 → esm2022}/column-resize/column-resize.mjs +4 -4
- package/{esm2020 → esm2022}/column-resize/column-size-store.mjs +4 -4
- package/{esm2020 → esm2022}/column-resize/event-dispatcher.mjs +4 -4
- package/{esm2020 → esm2022}/column-resize/overlay-handle.mjs +4 -4
- package/{esm2020 → esm2022}/column-resize/resizable.mjs +4 -4
- package/{esm2020 → esm2022}/column-resize/resize-strategy.mjs +10 -10
- package/{esm2020 → esm2022}/combobox/combobox-module.mjs +5 -5
- package/{esm2020 → esm2022}/combobox/combobox-popup.mjs +4 -4
- package/{esm2020 → esm2022}/combobox/combobox.mjs +4 -4
- package/{esm2020 → esm2022}/popover-edit/edit-event-dispatcher.mjs +4 -4
- package/{esm2020 → esm2022}/popover-edit/edit-ref.mjs +4 -4
- package/{esm2020 → esm2022}/popover-edit/edit-services.mjs +4 -4
- package/{esm2020 → esm2022}/popover-edit/focus-dispatcher.mjs +4 -4
- package/{esm2020 → esm2022}/popover-edit/focus-escape-notifier.mjs +4 -4
- package/{esm2020 → esm2022}/popover-edit/lens-directives.mjs +10 -10
- package/esm2022/popover-edit/popover-edit-module.mjs +63 -0
- package/{esm2020 → esm2022}/popover-edit/popover-edit-position-strategy-factory.mjs +7 -7
- package/esm2022/popover-edit/table-directives.mjs +400 -0
- package/{esm2020 → esm2022}/scrolling/auto-size-virtual-scroll.mjs +10 -10
- package/{esm2020 → esm2022}/scrolling/scrolling-module.mjs +5 -5
- package/esm2022/selection/row-selection.mjs +52 -0
- package/esm2022/selection/select-all.mjs +101 -0
- package/{esm2020 → esm2022}/selection/selection-column.mjs +6 -6
- package/{esm2020 → esm2022}/selection/selection-module.mjs +9 -9
- package/esm2022/selection/selection-toggle.mjs +101 -0
- package/{esm2020 → esm2022}/selection/selection.mjs +4 -4
- package/{esm2020 → esm2022}/table-scroll-container/table-scroll-container-module.mjs +5 -5
- package/{esm2020 → esm2022}/table-scroll-container/table-scroll-container.mjs +4 -4
- package/{esm2020 → esm2022}/version.mjs +1 -1
- package/fesm2022/cdk-experimental.mjs +7 -0
- package/fesm2022/cdk-experimental.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/column-resize.mjs +56 -177
- package/fesm2022/column-resize.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/combobox.mjs +10 -47
- package/fesm2022/combobox.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/popover-edit.mjs +70 -164
- package/fesm2022/popover-edit.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/scrolling.mjs +13 -43
- package/fesm2022/scrolling.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/selection.mjs +30 -103
- package/fesm2022/selection.mjs.map +1 -0
- package/{fesm2020 → fesm2022}/table-scroll-container.mjs +7 -37
- package/fesm2022/table-scroll-container.mjs.map +1 -0
- package/package.json +24 -42
- package/popover-edit/index.d.ts +4 -4
- package/scrolling/index.d.ts +1 -1
- package/selection/index.d.ts +4 -4
- package/esm2020/popover-edit/popover-edit-module.mjs +0 -63
- package/esm2020/popover-edit/table-directives.mjs +0 -401
- package/esm2020/selection/row-selection.mjs +0 -50
- package/esm2020/selection/select-all.mjs +0 -110
- package/esm2020/selection/selection-toggle.mjs +0 -102
- package/fesm2015/cdk-experimental.mjs +0 -30
- package/fesm2015/cdk-experimental.mjs.map +0 -1
- package/fesm2015/column-resize.mjs +0 -1028
- package/fesm2015/column-resize.mjs.map +0 -1
- package/fesm2015/combobox.mjs +0 -396
- package/fesm2015/combobox.mjs.map +0 -1
- package/fesm2015/popover-edit.mjs +0 -1230
- package/fesm2015/popover-edit.mjs.map +0 -1
- package/fesm2015/scrolling.mjs +0 -464
- package/fesm2015/scrolling.mjs.map +0 -1
- package/fesm2015/selection.mjs +0 -693
- package/fesm2015/selection.mjs.map +0 -1
- package/fesm2015/table-scroll-container.mjs +0 -177
- package/fesm2015/table-scroll-container.mjs.map +0 -1
- package/fesm2020/cdk-experimental.mjs +0 -30
- package/fesm2020/cdk-experimental.mjs.map +0 -1
- package/fesm2020/column-resize.mjs.map +0 -1
- package/fesm2020/combobox.mjs.map +0 -1
- package/fesm2020/popover-edit.mjs.map +0 -1
- package/fesm2020/scrolling.mjs.map +0 -1
- package/fesm2020/selection.mjs.map +0 -1
- package/fesm2020/table-scroll-container.mjs.map +0 -1
- /package/{esm2020 → esm2022}/column-resize/column-resize-directives/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/column-resize/column-resize_public_index.mjs +0 -0
- /package/{esm2020 → esm2022}/column-resize/index.mjs +0 -0
- /package/{esm2020 → esm2022}/column-resize/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/column-resize/resize-ref.mjs +0 -0
- /package/{esm2020 → esm2022}/column-resize/selectors.mjs +0 -0
- /package/{esm2020 → esm2022}/combobox/combobox_public_index.mjs +0 -0
- /package/{esm2020 → esm2022}/combobox/index.mjs +0 -0
- /package/{esm2020 → esm2022}/combobox/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/index.mjs +0 -0
- /package/{esm2020 → esm2022}/popover-edit/constants.mjs +0 -0
- /package/{esm2020 → esm2022}/popover-edit/form-value-container.mjs +0 -0
- /package/{esm2020 → esm2022}/popover-edit/index.mjs +0 -0
- /package/{esm2020 → esm2022}/popover-edit/polyfill.mjs +0 -0
- /package/{esm2020 → esm2022}/popover-edit/popover-edit_public_index.mjs +0 -0
- /package/{esm2020 → esm2022}/popover-edit/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/scrolling/index.mjs +0 -0
- /package/{esm2020 → esm2022}/scrolling/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/scrolling/scrolling_public_index.mjs +0 -0
- /package/{esm2020 → esm2022}/selection/index.mjs +0 -0
- /package/{esm2020 → esm2022}/selection/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/selection/selection-set.mjs +0 -0
- /package/{esm2020 → esm2022}/selection/selection_public_index.mjs +0 -0
- /package/{esm2020 → esm2022}/table-scroll-container/index.mjs +0 -0
- /package/{esm2020 → esm2022}/table-scroll-container/public-api.mjs +0 -0
- /package/{esm2020 → esm2022}/table-scroll-container/table-scroll-container_public_index.mjs +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"popover-edit.mjs","sources":["../../../../../../src/cdk-experimental/popover-edit/constants.ts","../../../../../../src/cdk-experimental/popover-edit/polyfill.ts","../../../../../../src/cdk-experimental/popover-edit/edit-event-dispatcher.ts","../../../../../../src/cdk-experimental/popover-edit/edit-ref.ts","../../../../../../src/cdk-experimental/popover-edit/focus-dispatcher.ts","../../../../../../src/cdk-experimental/popover-edit/form-value-container.ts","../../../../../../src/cdk-experimental/popover-edit/lens-directives.ts","../../../../../../src/cdk-experimental/popover-edit/popover-edit-position-strategy-factory.ts","../../../../../../src/cdk-experimental/popover-edit/edit-services.ts","../../../../../../src/cdk-experimental/popover-edit/focus-escape-notifier.ts","../../../../../../src/cdk-experimental/popover-edit/table-directives.ts","../../../../../../src/cdk-experimental/popover-edit/popover-edit-module.ts","../../../../../../src/cdk-experimental/popover-edit/public-api.ts","../../../../../../src/cdk-experimental/popover-edit/index.ts","../../../../../../src/cdk-experimental/popover-edit/popover-edit_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\n/** Selector for finding table cells. */\nexport const CELL_SELECTOR = '.cdk-cell, .mat-cell, td';\n\n/** Selector for finding editable table cells. */\nexport const EDITABLE_CELL_SELECTOR = '.cdk-popover-edit-cell, .mat-popover-edit-cell';\n\n/** Selector for finding table rows. */\nexport const ROW_SELECTOR = '.cdk-row, .mat-row, tr';\n\n/** Selector for finding the table element. */\nexport const TABLE_SELECTOR = 'table, cdk-table, mat-table';\n\n/** CSS class added to the edit lens pane. */\nexport const EDIT_PANE_CLASS = 'cdk-edit-pane';\n\n/** Selector for finding the edit lens pane. */\nexport const EDIT_PANE_SELECTOR = `.${EDIT_PANE_CLASS}, .mat-edit-pane`;\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\n/** closest implementation that is able to start from non-Element Nodes. */\nexport function closest(\n element: EventTarget | Element | null | undefined,\n selector: string,\n): Element | null {\n if (!(element instanceof Node)) {\n return null;\n }\n\n let curr: Node | null = element;\n while (curr != null && !(curr instanceof Element)) {\n curr = curr.parentNode;\n }\n\n return curr?.closest(selector) ?? null;\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 {Injectable, NgZone} from '@angular/core';\nimport {combineLatest, MonoTypeOperatorFunction, Observable, pipe, Subject} from 'rxjs';\nimport {\n audit,\n auditTime,\n debounceTime,\n distinctUntilChanged,\n filter,\n map,\n skip,\n startWith,\n shareReplay,\n} from 'rxjs/operators';\n\nimport {CELL_SELECTOR, ROW_SELECTOR} from './constants';\nimport {closest} from './polyfill';\n\n/** The delay applied to mouse events before hiding or showing hover content. */\nconst MOUSE_EVENT_DELAY_MS = 40;\n\n/** The delay for reacting to focus/blur changes. */\nconst FOCUS_DELAY = 0;\n\n/**\n * The possible states for hover content:\n * OFF - Not rendered.\n * FOCUSABLE - Rendered in the dom and styled for its contents to be focusable but invisible.\n * ON - Rendered and fully visible.\n */\nexport const enum HoverContentState {\n OFF = 0,\n FOCUSABLE,\n ON,\n}\n\n// Note: this class is generic, rather than referencing EditRef directly, in order to avoid\n// circular imports. If we were to reference it here, importing the registry into the\n// class that is registering itself will introduce a circular import.\n\n/**\n * Service for sharing delegated events and state for triggering table edits.\n */\n@Injectable()\nexport class EditEventDispatcher<R> {\n /** A subject that indicates which table cell is currently editing (unless it is disabled). */\n readonly editing = new Subject<Element | null>();\n\n /** A subject that indicates which table row is currently hovered. */\n readonly hovering = new Subject<Element | null>();\n\n /** A subject that indicates which table row currently contains focus. */\n readonly focused = new Subject<Element | null>();\n\n /** A subject that indicates all elements in the table matching ROW_SELECTOR. */\n readonly allRows = new Subject<NodeList>();\n\n /** A subject that emits mouse move events from the table indicating the targeted row. */\n readonly mouseMove = new Subject<Element | null>();\n\n // TODO: Use WeakSet once IE11 support is dropped.\n /**\n * Tracks the currently disabled editable cells - edit calls will be ignored\n * for these cells.\n */\n readonly disabledCells = new WeakMap<Element, boolean>();\n\n /** The EditRef for the currently active edit lens (if any). */\n get editRef(): R | null {\n return this._editRef;\n }\n private _editRef: R | null = null;\n\n // Optimization: Precompute common pipeable operators used per row/cell.\n private readonly _distinctUntilChanged = distinctUntilChanged<\n Element | HoverContentState | boolean | null\n >();\n private readonly _startWithNull = startWith<Element | null>(null);\n private readonly _distinctShare = pipe(\n this._distinctUntilChanged as MonoTypeOperatorFunction<HoverContentState>,\n shareReplay(1),\n );\n private readonly _startWithNullDistinct = pipe(\n this._startWithNull,\n this._distinctUntilChanged as MonoTypeOperatorFunction<Element | null>,\n );\n\n readonly editingAndEnabled = this.editing.pipe(\n filter(cell => cell == null || !this.disabledCells.has(cell)),\n shareReplay(1),\n );\n\n /** An observable that emits the row containing focus or an active edit. */\n readonly editingOrFocused = combineLatest([\n this.editingAndEnabled.pipe(\n map(cell => closest(cell, ROW_SELECTOR)),\n this._startWithNull,\n ),\n this.focused.pipe(this._startWithNull),\n ]).pipe(\n map(([editingRow, focusedRow]) => focusedRow || editingRow),\n this._distinctUntilChanged as MonoTypeOperatorFunction<Element | null>,\n auditTime(FOCUS_DELAY), // Use audit to skip over blur events to the next focused element.\n this._distinctUntilChanged as MonoTypeOperatorFunction<Element | null>,\n shareReplay(1),\n );\n\n /** Tracks rows that contain hover content with a reference count. */\n private _rowsWithHoverContent = new WeakMap<Element, number>();\n\n /** The table cell that has an active edit lens (or null). */\n private _currentlyEditing: Element | null = null;\n\n /** The combined set of row hover content states organized by row. */\n private readonly _hoveredContentStateDistinct = combineLatest([\n this._getFirstRowWithHoverContent(),\n this._getLastRowWithHoverContent(),\n this.editingOrFocused,\n this.hovering.pipe(\n distinctUntilChanged(),\n audit(row =>\n this.mouseMove.pipe(\n filter(mouseMoveRow => row === mouseMoveRow),\n this._startWithNull,\n debounceTime(MOUSE_EVENT_DELAY_MS),\n ),\n ),\n this._startWithNullDistinct,\n ),\n ]).pipe(\n skip(1), // Skip the initial emission of [null, null, null, null].\n map(computeHoverContentState),\n distinctUntilChanged(areMapEntriesEqual),\n // Optimization: Enter the zone before shareReplay so that we trigger a single\n // ApplicationRef.tick for all row updates.\n this._enterZone(),\n shareReplay(1),\n );\n\n private readonly _editingAndEnabledDistinct = this.editingAndEnabled.pipe(\n distinctUntilChanged(),\n this._enterZone(),\n shareReplay(1),\n );\n\n // Optimization: Share row events observable with subsequent callers.\n // At startup, calls will be sequential by row.\n private _lastSeenRow: Element | null = null;\n private _lastSeenRowHoverOrFocus: Observable<HoverContentState> | null = null;\n\n constructor(private readonly _ngZone: NgZone) {\n this._editingAndEnabledDistinct.subscribe(cell => {\n this._currentlyEditing = cell;\n });\n }\n\n /**\n * Gets an Observable that emits true when the specified element's cell\n * is editing and false when not.\n */\n editingCell(element: Element | EventTarget): Observable<boolean> {\n let cell: Element | null = null;\n\n return this._editingAndEnabledDistinct.pipe(\n map(editCell => editCell === (cell || (cell = closest(element, CELL_SELECTOR)))),\n this._distinctUntilChanged as MonoTypeOperatorFunction<boolean>,\n );\n }\n\n /**\n * Stops editing for the specified cell. If the specified cell is not the current\n * edit cell, does nothing.\n */\n doneEditingCell(element: Element | EventTarget): void {\n const cell = closest(element, CELL_SELECTOR);\n\n if (this._currentlyEditing === cell) {\n this.editing.next(null);\n }\n }\n\n /** Sets the currently active EditRef. */\n setActiveEditRef(ref: R) {\n this._editRef = ref;\n }\n\n /** Unset the currently active EditRef, if the specified editRef is active. */\n unsetActiveEditRef(ref: R) {\n if (this._editRef !== ref) {\n return;\n }\n\n this._editRef = null;\n }\n\n /** Adds the specified table row to be tracked for first/last row comparisons. */\n registerRowWithHoverContent(row: Element): void {\n this._rowsWithHoverContent.set(row, (this._rowsWithHoverContent.get(row) || 0) + 1);\n }\n\n /**\n * Reference decrements and ultimately removes the specified table row from first/last row\n * comparisons.\n */\n deregisterRowWithHoverContent(row: Element): void {\n const refCount = this._rowsWithHoverContent.get(row) || 0;\n\n if (refCount <= 1) {\n this._rowsWithHoverContent.delete(row);\n } else {\n this._rowsWithHoverContent.set(row, refCount - 1);\n }\n }\n\n /**\n * Gets an Observable that emits true when the specified element's row\n * contains the focused element or is being hovered over and false when not.\n * Hovering is defined as when the mouse has momentarily stopped moving over the cell.\n */\n hoverOrFocusOnRow(row: Element): Observable<HoverContentState> {\n if (row !== this._lastSeenRow) {\n this._lastSeenRow = row;\n this._lastSeenRowHoverOrFocus = this._hoveredContentStateDistinct.pipe(\n map(state => state.get(row) || HoverContentState.OFF),\n this._distinctShare,\n );\n }\n\n return this._lastSeenRowHoverOrFocus!;\n }\n\n /**\n * RxJS operator that enters the Angular zone, used to reduce boilerplate in\n * re-entering the zone for stream pipelines.\n */\n private _enterZone<T>(): MonoTypeOperatorFunction<T> {\n return (source: Observable<T>) =>\n new Observable<T>(observer =>\n source.subscribe({\n next: value => this._ngZone.run(() => observer.next(value)),\n error: err => observer.error(err),\n complete: () => observer.complete(),\n }),\n );\n }\n\n private _getFirstRowWithHoverContent(): Observable<Element | null> {\n return this._mapAllRowsToSingleRow(rows => {\n for (let i = 0, row; (row = rows[i]); i++) {\n if (this._rowsWithHoverContent.has(row as Element)) {\n return row as Element;\n }\n }\n return null;\n });\n }\n\n private _getLastRowWithHoverContent(): Observable<Element | null> {\n return this._mapAllRowsToSingleRow(rows => {\n for (let i = rows.length - 1, row; (row = rows[i]); i--) {\n if (this._rowsWithHoverContent.has(row as Element)) {\n return row as Element;\n }\n }\n return null;\n });\n }\n\n private _mapAllRowsToSingleRow(\n mapper: (rows: NodeList) => Element | null,\n ): Observable<Element | null> {\n return this.allRows.pipe(map(mapper), this._startWithNullDistinct);\n }\n}\n\nfunction computeHoverContentState([\n firstRow,\n lastRow,\n activeRow,\n hoverRow,\n]: (Element | null)[]): Map<Element, HoverContentState> {\n const hoverContentState = new Map<Element, HoverContentState>();\n\n // Add focusable rows.\n for (const focussableRow of [\n firstRow,\n lastRow,\n activeRow && activeRow.previousElementSibling,\n activeRow && activeRow.nextElementSibling,\n ]) {\n if (focussableRow) {\n hoverContentState.set(focussableRow as Element, HoverContentState.FOCUSABLE);\n }\n }\n\n // Add/overwrite with fully visible rows.\n for (const onRow of [activeRow, hoverRow]) {\n if (onRow) {\n hoverContentState.set(onRow, HoverContentState.ON);\n }\n }\n\n return hoverContentState;\n}\n\nfunction areMapEntriesEqual<K, V>(a: Map<K, V>, b: Map<K, V>): boolean {\n if (a.size !== b.size) {\n return false;\n }\n\n // TODO: use Map.prototype.entries once we're off IE11.\n for (const aKey of Array.from(a.keys())) {\n if (b.get(aKey) !== a.get(aKey)) {\n return false;\n }\n }\n\n return true;\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 {Injectable, OnDestroy, Self, NgZone} from '@angular/core';\nimport {ControlContainer} from '@angular/forms';\nimport {Observable, Subject} from 'rxjs';\nimport {take} from 'rxjs/operators';\n\nimport {EditEventDispatcher} from './edit-event-dispatcher';\n\n/**\n * Used for communication between the form within the edit lens and the\n * table that launched it. Provided by CdkEditControl within the lens.\n */\n@Injectable()\nexport class EditRef<FormValue> implements OnDestroy {\n /** Emits the final value of this edit instance before closing. */\n private readonly _finalValueSubject = new Subject<FormValue>();\n readonly finalValue: Observable<FormValue> = this._finalValueSubject;\n\n /** Emits when the user tabs out of this edit lens before closing. */\n private readonly _blurredSubject = new Subject<void>();\n readonly blurred: Observable<void> = this._blurredSubject;\n\n /** The value to set the form back to on revert. */\n private _revertFormValue: FormValue;\n\n constructor(\n @Self() private readonly _form: ControlContainer,\n private readonly _editEventDispatcher: EditEventDispatcher<EditRef<FormValue>>,\n private readonly _ngZone: NgZone,\n ) {\n this._editEventDispatcher.setActiveEditRef(this);\n }\n\n /**\n * Called by the host directive's OnInit hook. Reads the initial state of the\n * form and overrides it with persisted state from previous openings, if\n * applicable.\n */\n init(previousFormValue: FormValue | undefined): void {\n // Wait for the zone to stabilize before caching the initial value.\n // This ensures that all form controls have been initialized.\n this._ngZone.onStable.pipe(take(1)).subscribe(() => {\n this.updateRevertValue();\n if (previousFormValue) {\n this.reset(previousFormValue);\n }\n });\n }\n\n ngOnDestroy(): void {\n this._editEventDispatcher.unsetActiveEditRef(this);\n this._finalValueSubject.next(this._form.value);\n this._finalValueSubject.complete();\n }\n\n /** Whether the attached form is in a valid state. */\n isValid(): boolean | null {\n return this._form.valid;\n }\n\n /** Set the form's current value as what it will be set to on revert/reset. */\n updateRevertValue(): void {\n this._revertFormValue = this._form.value;\n }\n\n /** Tells the table to close the edit popup. */\n close(): void {\n this._editEventDispatcher.editing.next(null);\n }\n\n /** Notifies the active edit that the user has moved focus out of the lens. */\n blur(): void {\n this._blurredSubject.next();\n }\n\n /**\n * Resets the form value to the specified value or the previously set\n * revert value.\n */\n reset(value?: FormValue): void {\n this._form.reset(value || this._revertFormValue);\n }\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 {Directionality} from '@angular/cdk/bidi';\nimport {LEFT_ARROW, UP_ARROW, RIGHT_ARROW, DOWN_ARROW} from '@angular/cdk/keycodes';\nimport {Injectable} from '@angular/core';\nimport {PartialObserver} from 'rxjs';\n\nimport {EDITABLE_CELL_SELECTOR, ROW_SELECTOR, TABLE_SELECTOR} from './constants';\nimport {closest} from './polyfill';\n\n/**\n * Service responsible for moving cell focus around in response to keyboard events.\n * May be overridden to customize the keyboard behavior of popover edit.\n */\n@Injectable({providedIn: 'root'})\nexport class FocusDispatcher {\n /** Observes keydown events triggered from the table. */\n readonly keyObserver: PartialObserver<KeyboardEvent>;\n\n constructor(protected readonly directionality: Directionality) {\n this.keyObserver = {next: event => this.handleKeyboardEvent(event)};\n }\n\n /**\n * Moves focus to earlier or later cells (in dom order) by offset cells relative to\n * currentCell.\n */\n moveFocusHorizontally(currentCell: HTMLElement, offset: number): void {\n const cells = Array.from(\n closest(currentCell, TABLE_SELECTOR)!.querySelectorAll(EDITABLE_CELL_SELECTOR),\n ) as HTMLElement[];\n const currentIndex = cells.indexOf(currentCell);\n const newIndex = currentIndex + offset;\n\n if (cells[newIndex]) {\n cells[newIndex].focus();\n }\n }\n\n /** Moves focus to up or down by row by offset cells relative to currentCell. */\n moveFocusVertically(currentCell: HTMLElement, offset: number): void {\n const currentRow = closest(currentCell, ROW_SELECTOR)!;\n const rows = Array.from(closest(currentRow, TABLE_SELECTOR)!.querySelectorAll(ROW_SELECTOR));\n const currentRowIndex = rows.indexOf(currentRow);\n const currentIndexWithinRow = Array.from(\n currentRow.querySelectorAll(EDITABLE_CELL_SELECTOR),\n ).indexOf(currentCell);\n const newRowIndex = currentRowIndex + offset;\n\n if (rows[newRowIndex]) {\n const rowToFocus = Array.from(\n rows[newRowIndex].querySelectorAll(EDITABLE_CELL_SELECTOR),\n ) as HTMLElement[];\n\n if (rowToFocus[currentIndexWithinRow]) {\n rowToFocus[currentIndexWithinRow].focus();\n }\n }\n }\n\n /** Translates arrow keydown events into focus move operations. */\n protected handleKeyboardEvent(event: KeyboardEvent): void {\n const cell = closest(event.target, EDITABLE_CELL_SELECTOR) as HTMLElement | null;\n\n if (!cell) {\n return;\n }\n\n switch (event.keyCode) {\n case UP_ARROW:\n this.moveFocusVertically(cell, -1);\n break;\n case DOWN_ARROW:\n this.moveFocusVertically(cell, 1);\n break;\n case LEFT_ARROW:\n this.moveFocusHorizontally(cell, this.directionality.value === 'ltr' ? -1 : 1);\n break;\n case RIGHT_ARROW:\n this.moveFocusHorizontally(cell, this.directionality.value === 'ltr' ? 1 : -1);\n break;\n default:\n // If the keyboard event is not handled, return now so that we don't `preventDefault`.\n return;\n }\n\n event.preventDefault();\n }\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\nexport interface Entry<FormValue> {\n value?: FormValue;\n}\n\n/**\n * A convenience class for preserving unsaved form state while an edit lens is closed.\n *\n * Example usage:\n * class MyComponent {\n * readonly nameEditValues = new FormValueContainer<Item, {name: string}>();\n * }\n *\n * <form cdkEditControl [(cdkEditControlPreservedFormValue)]=\"nameEditValues.for(item).value\">\n */\nexport class FormValueContainer<Key extends object, FormValue> {\n private _formValues = new WeakMap<Key, Entry<FormValue>>();\n\n for(key: Key): Entry<FormValue> {\n const _formValues = this._formValues;\n\n let entry = _formValues.get(key);\n if (!entry) {\n // Expose entry as an object so that we can [(two-way)] bind to its value member\n entry = {};\n _formValues.set(key, entry);\n }\n\n return entry;\n }\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 {Subject} from 'rxjs';\nimport {Directive, ElementRef, EventEmitter, OnDestroy, OnInit, Input} from '@angular/core';\nimport {hasModifierKey} from '@angular/cdk/keycodes';\nimport {EDIT_PANE_SELECTOR} from './constants';\nimport {closest} from './polyfill';\nimport {EditRef} from './edit-ref';\n\n/** Options for what do to when the user clicks outside of an edit lens. */\nexport type PopoverEditClickOutBehavior = 'close' | 'submit' | 'noop';\n\n/**\n * A directive that attaches to a form within the edit lens.\n * It coordinates the form state with the table-wide edit system and handles\n * closing the edit lens when the form is submitted or the user clicks\n * out.\n */\n@Directive({\n selector: 'form[cdkEditControl]',\n inputs: [\n 'clickOutBehavior: cdkEditControlClickOutBehavior',\n 'preservedFormValue: cdkEditControlPreservedFormValue',\n 'ignoreSubmitUnlessValid: cdkEditControlIgnoreSubmitUnlessValid',\n ],\n outputs: ['preservedFormValueChange: cdkEditControlPreservedFormValueChange'],\n providers: [EditRef],\n host: {\n '(ngSubmit)': 'handleFormSubmit()',\n '(document:click)': 'handlePossibleClickOut($event)',\n '(keydown)': '_handleKeydown($event)',\n },\n})\nexport class CdkEditControl<FormValue> implements OnDestroy, OnInit {\n protected readonly destroyed = new Subject<void>();\n\n /**\n * Specifies what should happen when the user clicks outside of the edit lens.\n * The default behavior is to close the lens without submitting the form.\n */\n clickOutBehavior: PopoverEditClickOutBehavior = 'close';\n\n /**\n * A two-way binding for storing unsubmitted form state. If not provided\n * then form state will be discarded on close. The PeristBy directive is offered\n * as a convenient shortcut for these bindings.\n */\n preservedFormValue?: FormValue;\n readonly preservedFormValueChange = new EventEmitter<FormValue>();\n\n /**\n * Determines whether the lens will close on form submit if the form is not in a valid\n * state. By default the lens will remain open.\n */\n ignoreSubmitUnlessValid = true;\n\n constructor(protected readonly elementRef: ElementRef, readonly editRef: EditRef<FormValue>) {}\n\n ngOnInit(): void {\n this.editRef.init(this.preservedFormValue);\n this.editRef.finalValue.subscribe(this.preservedFormValueChange);\n this.editRef.blurred.subscribe(() => this._handleBlur());\n }\n\n ngOnDestroy(): void {\n this.destroyed.next();\n this.destroyed.complete();\n }\n\n /**\n * Called when the form submits. If ignoreSubmitUnlessValid is true, checks\n * the form for validity before proceeding.\n * Updates the revert state with the latest submitted value then closes the edit.\n */\n handleFormSubmit(): void {\n if (this.ignoreSubmitUnlessValid && !this.editRef.isValid()) {\n return;\n }\n\n this.editRef.updateRevertValue();\n this.editRef.close();\n }\n\n /** Called on Escape keyup. Closes the edit. */\n close(): void {\n // todo - allow this behavior to be customized as well, such as calling\n // reset before close\n this.editRef.close();\n }\n\n /**\n * Called on click anywhere in the document.\n * If the click was outside of the lens, trigger the specified click out behavior.\n */\n handlePossibleClickOut(evt: Event): void {\n if (closest(evt.target, EDIT_PANE_SELECTOR)) {\n return;\n }\n switch (this.clickOutBehavior) {\n case 'submit':\n // Manually cause the form to submit before closing.\n this._triggerFormSubmit();\n this.editRef.close();\n break;\n case 'close':\n this.editRef.close();\n break;\n default:\n break;\n }\n }\n\n _handleKeydown(event: KeyboardEvent) {\n if (event.key === 'Escape' && !hasModifierKey(event)) {\n this.close();\n event.preventDefault();\n }\n }\n\n /** Triggers submit on tab out if clickOutBehavior is 'submit'. */\n private _handleBlur(): void {\n if (this.clickOutBehavior === 'submit') {\n // Manually cause the form to submit before closing.\n this._triggerFormSubmit();\n }\n }\n\n private _triggerFormSubmit() {\n this.elementRef.nativeElement!.dispatchEvent(new Event('submit'));\n }\n}\n\n/** Reverts the form to its initial or previously submitted state on click. */\n@Directive({\n selector: 'button[cdkEditRevert]',\n host: {\n 'type': 'button', // Prevents accidental form submits.\n '(click)': 'revertEdit()',\n },\n})\nexport class CdkEditRevert<FormValue> {\n /** Type of the button. Defaults to `button` to avoid accident form submits. */\n @Input() type: string = 'button';\n\n constructor(protected readonly editRef: EditRef<FormValue>) {}\n\n revertEdit(): void {\n this.editRef.reset();\n }\n}\n\n/** Closes the lens on click. */\n@Directive({\n selector: '[cdkEditClose]',\n host: {\n '(click)': 'closeEdit()',\n '(keydown.enter)': 'closeEdit()',\n '(keydown.space)': 'closeEdit()',\n },\n})\nexport class CdkEditClose<FormValue> {\n constructor(\n protected readonly elementRef: ElementRef<HTMLElement>,\n protected readonly editRef: EditRef<FormValue>,\n ) {\n const nativeElement = elementRef.nativeElement;\n\n // Prevent accidental form submits.\n if (nativeElement.nodeName === 'BUTTON' && !nativeElement.getAttribute('type')) {\n nativeElement.setAttribute('type', 'button');\n }\n }\n\n closeEdit(): void {\n // Note that we use `click` here, rather than a keyboard event, because some screen readers\n // will emit a fake click event instead of an enter keyboard event on buttons. For the keyboard\n // events we use `keydown`, rather than `keyup`, because we use `keydown` to open the overlay\n // as well. If we were to use `keyup`, the user could end up opening and closing within\n // the same event sequence if focus was moved quickly.\n this.editRef.close();\n }\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 {Directionality} from '@angular/cdk/bidi';\nimport {Overlay, OverlaySizeConfig, PositionStrategy} from '@angular/cdk/overlay';\nimport {Injectable} from '@angular/core';\n\n/**\n * Overridable factory responsible for configuring how cdkPopoverEdit popovers are positioned\n * and sized.\n */\n@Injectable()\nexport abstract class PopoverEditPositionStrategyFactory {\n /**\n * Creates a PositionStrategy based on the specified table cells.\n * The cells will be provided in DOM order.\n */\n abstract positionStrategyForCells(cells: HTMLElement[]): PositionStrategy;\n\n /**\n * Creates an OverlaySizeConfig based on the specified table cells.\n * The cells will be provided in DOM order.\n */\n abstract sizeConfigForCells(cells: HTMLElement[]): OverlaySizeConfig;\n}\n\n/**\n * Default implementation of PopoverEditPositionStrategyFactory.\n * Uses a FlexibleConnectedPositionStrategy anchored to the start + top of the cell.\n * Note: This will change to CoverPositionStrategy once it implemented.\n */\n@Injectable()\nexport class DefaultPopoverEditPositionStrategyFactory extends PopoverEditPositionStrategyFactory {\n constructor(protected readonly direction: Directionality, protected readonly overlay: Overlay) {\n super();\n }\n\n positionStrategyForCells(cells: HTMLElement[]): PositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(cells[0])\n .withGrowAfterOpen()\n .withPush()\n .withViewportMargin(16)\n .withPositions([\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n ]);\n }\n\n sizeConfigForCells(cells: HTMLElement[]): OverlaySizeConfig {\n if (cells.length === 0) {\n return {};\n }\n\n if (cells.length === 1) {\n return {width: cells[0].getBoundingClientRect().width};\n }\n\n let firstCell, lastCell;\n if (this.direction.value === 'ltr') {\n firstCell = cells[0];\n lastCell = cells[cells.length - 1];\n } else {\n lastCell = cells[0];\n firstCell = cells[cells.length - 1];\n }\n\n return {width: lastCell.getBoundingClientRect().right - firstCell.getBoundingClientRect().left};\n }\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 {Injectable, NgZone} from '@angular/core';\nimport {FocusTrapFactory} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {Overlay} from '@angular/cdk/overlay';\nimport {ScrollDispatcher, ViewportRuler} from '@angular/cdk/scrolling';\n\nimport {EditEventDispatcher} from './edit-event-dispatcher';\nimport {FocusDispatcher} from './focus-dispatcher';\nimport {PopoverEditPositionStrategyFactory} from './popover-edit-position-strategy-factory';\nimport {EditRef} from './edit-ref';\n\n/**\n * Optimization\n * Collects multiple Injectables into a singleton shared across the table. By reducing the\n * number of services injected into each CdkPopoverEdit, this saves about 0.023ms of cpu time\n * and 56 bytes of memory per instance.\n */\n@Injectable()\nexport class EditServices {\n constructor(\n readonly directionality: Directionality,\n readonly editEventDispatcher: EditEventDispatcher<EditRef<unknown>>,\n readonly focusDispatcher: FocusDispatcher,\n readonly focusTrapFactory: FocusTrapFactory,\n readonly ngZone: NgZone,\n readonly overlay: Overlay,\n readonly positionFactory: PopoverEditPositionStrategyFactory,\n readonly scrollDispatcher: ScrollDispatcher,\n readonly viewportRuler: ViewportRuler,\n ) {}\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 {Inject, Injectable, NgZone} from '@angular/core';\nimport {DOCUMENT} from '@angular/common';\nimport {FocusTrap, InteractivityChecker} from '@angular/cdk/a11y';\nimport {Observable, Subject} from 'rxjs';\n\n/** Value indicating whether focus left the target area before or after the enclosed elements. */\nexport const enum FocusEscapeNotifierDirection {\n START,\n END,\n}\n\n/**\n * Like FocusTrap, but rather than trapping focus within a dom region, notifies subscribers when\n * focus leaves the region.\n */\nexport class FocusEscapeNotifier extends FocusTrap {\n private readonly _escapeSubject = new Subject<FocusEscapeNotifierDirection>();\n\n constructor(\n element: HTMLElement,\n checker: InteractivityChecker,\n ngZone: NgZone,\n document: Document,\n ) {\n super(element, checker, ngZone, document, true /* deferAnchors */);\n\n // The focus trap adds \"anchors\" at the beginning and end of a trapped region that redirect\n // focus. We override that redirect behavior here with simply emitting on a stream.\n this.startAnchorListener = () => {\n this._escapeSubject.next(FocusEscapeNotifierDirection.START);\n return true;\n };\n this.endAnchorListener = () => {\n this._escapeSubject.next(FocusEscapeNotifierDirection.END);\n return true;\n };\n\n this.attachAnchors();\n }\n\n escapes(): Observable<FocusEscapeNotifierDirection> {\n return this._escapeSubject;\n }\n}\n\n/** Factory that allows easy instantiation of focus escape notifiers. */\n@Injectable({providedIn: 'root'})\nexport class FocusEscapeNotifierFactory {\n private _document: Document;\n\n constructor(\n private _checker: InteractivityChecker,\n private _ngZone: NgZone,\n @Inject(DOCUMENT) _document: any,\n ) {\n this._document = _document;\n }\n\n /**\n * Creates a focus escape notifier region around the given element.\n * @param element The element around which focus will be monitored.\n * @returns The created focus escape notifier instance.\n */\n create(element: HTMLElement): FocusEscapeNotifier {\n return new FocusEscapeNotifier(element, this._checker, this._ngZone, this._document);\n }\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 */\nimport {FocusTrap} from '@angular/cdk/a11y';\nimport {OverlayRef, PositionStrategy} from '@angular/cdk/overlay';\nimport {TemplatePortal} from '@angular/cdk/portal';\nimport {\n AfterViewInit,\n Directive,\n ElementRef,\n EmbeddedViewRef,\n NgZone,\n OnDestroy,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport {fromEvent, fromEventPattern, merge, Subject} from 'rxjs';\nimport {\n filter,\n map,\n mapTo,\n share,\n startWith,\n takeUntil,\n throttleTime,\n withLatestFrom,\n} from 'rxjs/operators';\n\nimport {CELL_SELECTOR, EDIT_PANE_CLASS, EDIT_PANE_SELECTOR, ROW_SELECTOR} from './constants';\nimport {EditEventDispatcher, HoverContentState} from './edit-event-dispatcher';\nimport {EditServices} from './edit-services';\nimport {FocusDispatcher} from './focus-dispatcher';\nimport {\n FocusEscapeNotifier,\n FocusEscapeNotifierDirection,\n FocusEscapeNotifierFactory,\n} from './focus-escape-notifier';\nimport {closest} from './polyfill';\nimport {EditRef} from './edit-ref';\n\n/**\n * Describes the number of columns before and after the originating cell that the\n * edit popup should span. In left to right locales, before means left and after means\n * right. In right to left locales before means right and after means left.\n */\nexport interface CdkPopoverEditColspan {\n before?: number;\n after?: number;\n}\n\n/** Used for rate-limiting mousemove events. */\nconst MOUSE_MOVE_THROTTLE_TIME_MS = 10;\n\n/**\n * A directive that must be attached to enable editability on a table.\n * It is responsible for setting up delegated event handlers and providing the\n * EditEventDispatcher service for use by the other edit directives.\n */\n@Directive({\n selector: 'table[editable], cdk-table[editable], mat-table[editable]',\n providers: [EditEventDispatcher, EditServices],\n})\nexport class CdkEditable implements AfterViewInit, OnDestroy {\n protected readonly destroyed = new Subject<void>();\n\n constructor(\n protected readonly elementRef: ElementRef,\n protected readonly editEventDispatcher: EditEventDispatcher<EditRef<unknown>>,\n protected readonly focusDispatcher: FocusDispatcher,\n protected readonly ngZone: NgZone,\n ) {}\n\n ngAfterViewInit(): void {\n this._listenForTableEvents();\n }\n\n ngOnDestroy(): void {\n this.destroyed.next();\n this.destroyed.complete();\n }\n\n private _listenForTableEvents(): void {\n const element = this.elementRef.nativeElement;\n const toClosest = (selector: string) =>\n map((event: UIEvent) => closest(event.target, selector));\n\n this.ngZone.runOutsideAngular(() => {\n // Track mouse movement over the table to hide/show hover content.\n fromEvent<MouseEvent>(element, 'mouseover')\n .pipe(toClosest(ROW_SELECTOR), takeUntil(this.destroyed))\n .subscribe(this.editEventDispatcher.hovering);\n fromEvent<MouseEvent>(element, 'mouseleave')\n .pipe(mapTo(null), takeUntil(this.destroyed))\n .subscribe(this.editEventDispatcher.hovering);\n fromEvent<MouseEvent>(element, 'mousemove')\n .pipe(\n throttleTime(MOUSE_MOVE_THROTTLE_TIME_MS),\n toClosest(ROW_SELECTOR),\n takeUntil(this.destroyed),\n )\n .subscribe(this.editEventDispatcher.mouseMove);\n\n // Track focus within the table to hide/show/make focusable hover content.\n fromEventPattern<FocusEvent>(\n handler => element.addEventListener('focus', handler, true),\n handler => element.removeEventListener('focus', handler, true),\n )\n .pipe(toClosest(ROW_SELECTOR), share(), takeUntil(this.destroyed))\n .subscribe(this.editEventDispatcher.focused);\n\n merge(\n fromEventPattern<FocusEvent>(\n handler => element.addEventListener('blur', handler, true),\n handler => element.removeEventListener('blur', handler, true),\n ),\n fromEvent<KeyboardEvent>(element, 'keydown').pipe(filter(event => event.key === 'Escape')),\n )\n .pipe(mapTo(null), share(), takeUntil(this.destroyed))\n .subscribe(this.editEventDispatcher.focused);\n\n // Keep track of rows within the table. This is used to know which rows with hover content\n // are first or last in the table. They are kept focusable in case focus enters from above\n // or below the table.\n this.ngZone.onStable\n .pipe(\n // Optimization: ignore dom changes while focus is within the table as we already\n // ensure that rows above and below the focused/active row are tabbable.\n withLatestFrom(this.editEventDispatcher.editingOrFocused),\n filter(([_, activeRow]) => activeRow == null),\n map(() => element.querySelectorAll(ROW_SELECTOR)),\n share(),\n takeUntil(this.destroyed),\n )\n .subscribe(this.editEventDispatcher.allRows);\n\n fromEvent<KeyboardEvent>(element, 'keydown')\n .pipe(\n filter(event => event.key === 'Enter'),\n toClosest(CELL_SELECTOR),\n takeUntil(this.destroyed),\n )\n .subscribe(this.editEventDispatcher.editing);\n\n // Keydown must be used here or else key auto-repeat does not work properly on some platforms.\n fromEvent<KeyboardEvent>(element, 'keydown')\n .pipe(takeUntil(this.destroyed))\n .subscribe(this.focusDispatcher.keyObserver);\n });\n }\n}\n\nconst POPOVER_EDIT_HOST_BINDINGS = {\n '[attr.tabindex]': 'disabled ? null : 0',\n 'class': 'cdk-popover-edit-cell',\n '[attr.aria-haspopup]': '!disabled',\n};\n\nconst POPOVER_EDIT_INPUTS = [\n 'template: cdkPopoverEdit',\n 'context: cdkPopoverEditContext',\n 'colspan: cdkPopoverEditColspan',\n 'disabled: cdkPopoverEditDisabled',\n];\n\n/**\n * Attaches an ng-template to a cell and shows it when instructed to by the\n * EditEventDispatcher service.\n * Makes the cell focusable.\n */\n@Directive({\n selector: '[cdkPopoverEdit]:not([cdkPopoverEditTabOut])',\n host: POPOVER_EDIT_HOST_BINDINGS,\n inputs: POPOVER_EDIT_INPUTS,\n})\nexport class CdkPopoverEdit<C> implements AfterViewInit, OnDestroy {\n /** The edit lens template shown over the cell on edit. */\n template: TemplateRef<any> | null = null;\n\n /**\n * Implicit context to pass along to the template. Can be omitted if the template\n * is defined within the cell.\n */\n context?: C;\n\n /**\n * Specifies that the popup should cover additional table cells before and/or after\n * this one.\n */\n get colspan(): CdkPopoverEditColspan {\n return this._colspan;\n }\n set colspan(value: CdkPopoverEditColspan) {\n this._colspan = value;\n\n // Recompute positioning when the colspan changes.\n if (this.overlayRef) {\n this.overlayRef.updatePositionStrategy(this._getPositionStrategy());\n\n if (this.overlayRef.hasAttached()) {\n this._updateOverlaySize();\n }\n }\n }\n private _colspan: CdkPopoverEditColspan = {};\n\n /** Whether popover edit is disabled for this cell. */\n get disabled(): boolean {\n return this._disabled;\n }\n set disabled(value: boolean) {\n this._disabled = value;\n\n if (value) {\n this.services.editEventDispatcher.doneEditingCell(this.elementRef.nativeElement!);\n this.services.editEventDispatcher.disabledCells.set(this.elementRef.nativeElement!, true);\n } else {\n this.services.editEventDispatcher.disabledCells.delete(this.elementRef.nativeElement!);\n }\n }\n private _disabled = false;\n\n protected focusTrap?: FocusTrap;\n protected overlayRef?: OverlayRef;\n protected readonly destroyed = new Subject<void>();\n\n constructor(\n protected readonly services: EditServices,\n protected readonly elementRef: ElementRef,\n protected readonly viewContainerRef: ViewContainerRef,\n ) {}\n\n ngAfterViewInit(): void {\n this._startListeningToEditEvents();\n }\n\n ngOnDestroy(): void {\n this.destroyed.next();\n this.destroyed.complete();\n\n if (this.focusTrap) {\n this.focusTrap.destroy();\n this.focusTrap = undefined;\n }\n\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n }\n\n protected initFocusTrap(): void {\n this.focusTrap = this.services.focusTrapFactory.create(this.overlayRef!.overlayElement);\n }\n\n protected closeEditOverlay(): void {\n this.services.editEventDispatcher.doneEditingCell(this.elementRef.nativeElement!);\n }\n\n protected panelClass(): string {\n return EDIT_PANE_CLASS;\n }\n\n private _startListeningToEditEvents(): void {\n this.services.editEventDispatcher\n .editingCell(this.elementRef.nativeElement!)\n .pipe(takeUntil(this.destroyed))\n .subscribe(open => {\n if (open && this.template) {\n if (!this.overlayRef) {\n this._createEditOverlay();\n }\n\n this._showEditOverlay();\n } else if (this.overlayRef) {\n this._maybeReturnFocusToCell();\n\n this.overlayRef.detach();\n }\n });\n }\n\n private _createEditOverlay(): void {\n this.overlayRef = this.services.overlay.create({\n disposeOnNavigation: true,\n panelClass: this.panelClass(),\n positionStrategy: this._getPositionStrategy(),\n scrollStrategy: this.services.overlay.scrollStrategies.reposition(),\n direction: this.services.directionality,\n });\n\n this.initFocusTrap();\n this.overlayRef.overlayElement.setAttribute('aria-role', 'dialog');\n\n this.overlayRef.detachments().subscribe(() => this.closeEditOverlay());\n }\n\n private _showEditOverlay(): void {\n this.overlayRef!.attach(\n new TemplatePortal(this.template!, this.viewContainerRef, {$implicit: this.context}),\n );\n\n // We have to defer trapping focus, because doing so too early can cause the form inside\n // the overlay to be submitted immediately if it was opened on an Enter keydown event.\n this.services.ngZone.runOutsideAngular(() => {\n setTimeout(() => {\n this.focusTrap!.focusInitialElement();\n });\n });\n\n // Update the size of the popup initially and on subsequent changes to\n // scroll position and viewport size.\n merge(this.services.scrollDispatcher.scrolled(), this.services.viewportRuler.change())\n .pipe(startWith(null), takeUntil(merge(this.overlayRef!.detachments(), this.destroyed)))\n .subscribe(() => {\n this._updateOverlaySize();\n });\n }\n\n private _getOverlayCells(): HTMLElement[] {\n const cell = closest(this.elementRef.nativeElement!, CELL_SELECTOR) as HTMLElement;\n\n if (!this._colspan.before && !this._colspan.after) {\n return [cell];\n }\n\n const row = closest(this.elementRef.nativeElement!, ROW_SELECTOR)!;\n const rowCells = Array.from(row.querySelectorAll(CELL_SELECTOR)) as HTMLElement[];\n const ownIndex = rowCells.indexOf(cell);\n\n return rowCells.slice(\n ownIndex - (this._colspan.before || 0),\n ownIndex + (this._colspan.after || 0) + 1,\n );\n }\n\n private _getPositionStrategy(): PositionStrategy {\n return this.services.positionFactory.positionStrategyForCells(this._getOverlayCells());\n }\n\n private _updateOverlaySize(): void {\n this.overlayRef!.updateSize(\n this.services.positionFactory.sizeConfigForCells(this._getOverlayCells()),\n );\n }\n\n private _maybeReturnFocusToCell(): void {\n if (closest(document.activeElement, EDIT_PANE_SELECTOR) === this.overlayRef!.overlayElement) {\n this.elementRef.nativeElement!.focus();\n }\n }\n}\n\n/**\n * Attaches an ng-template to a cell and shows it when instructed to by the\n * EditEventDispatcher service.\n * Makes the cell focusable.\n */\n@Directive({\n selector: '[cdkPopoverEdit][cdkPopoverEditTabOut]',\n host: POPOVER_EDIT_HOST_BINDINGS,\n inputs: POPOVER_EDIT_INPUTS,\n})\nexport class CdkPopoverEditTabOut<C> extends CdkPopoverEdit<C> {\n protected override focusTrap?: FocusEscapeNotifier;\n\n constructor(\n elementRef: ElementRef,\n viewContainerRef: ViewContainerRef,\n services: EditServices,\n protected readonly focusEscapeNotifierFactory: FocusEscapeNotifierFactory,\n ) {\n super(services, elementRef, viewContainerRef);\n }\n\n protected override initFocusTrap(): void {\n this.focusTrap = this.focusEscapeNotifierFactory.create(this.overlayRef!.overlayElement);\n\n this.focusTrap\n .escapes()\n .pipe(takeUntil(this.destroyed))\n .subscribe(direction => {\n if (this.services.editEventDispatcher.editRef) {\n this.services.editEventDispatcher.editRef.blur();\n }\n\n this.services.focusDispatcher.moveFocusHorizontally(\n closest(this.elementRef.nativeElement!, CELL_SELECTOR) as HTMLElement,\n direction === FocusEscapeNotifierDirection.START ? -1 : 1,\n );\n\n this.closeEditOverlay();\n });\n }\n}\n\n/**\n * A structural directive that shows its contents when the table row containing\n * it is hovered or when an element in the row has focus.\n */\n@Directive({\n selector: '[cdkRowHoverContent]',\n})\nexport class CdkRowHoverContent implements AfterViewInit, OnDestroy {\n protected readonly destroyed = new Subject<void>();\n protected viewRef: EmbeddedViewRef<any> | null = null;\n\n private _row?: Element;\n\n constructor(\n protected readonly services: EditServices,\n protected readonly elementRef: ElementRef,\n protected readonly templateRef: TemplateRef<any>,\n protected readonly viewContainerRef: ViewContainerRef,\n ) {}\n\n ngAfterViewInit(): void {\n this._row = closest(this.elementRef.nativeElement!, ROW_SELECTOR)!;\n\n this.services.editEventDispatcher.registerRowWithHoverContent(this._row);\n this._listenForHoverAndFocusEvents();\n }\n\n ngOnDestroy(): void {\n this.destroyed.next();\n this.destroyed.complete();\n\n if (this.viewRef) {\n this.viewRef.destroy();\n }\n\n if (this._row) {\n this.services.editEventDispatcher.deregisterRowWithHoverContent(this._row);\n }\n }\n\n /**\n * Called immediately after the hover content is created and added to the dom.\n * In the CDK version, this is a noop but subclasses such as MatRowHoverContent use this\n * to prepare/style the inserted element.\n */\n protected initElement(_: HTMLElement): void {}\n\n /**\n * Called when the hover content needs to be focusable to preserve a reasonable tab ordering\n * but should not yet be shown.\n */\n protected makeElementHiddenButFocusable(element: HTMLElement): void {\n element.style.opacity = '0';\n }\n\n /**\n * Called when the hover content needs to be focusable to preserve a reasonable tab ordering\n * but should not yet be shown.\n */\n protected makeElementVisible(element: HTMLElement): void {\n element.style.opacity = '';\n }\n\n private _listenForHoverAndFocusEvents(): void {\n this.services.editEventDispatcher\n .hoverOrFocusOnRow(this._row!)\n .pipe(takeUntil(this.destroyed))\n .subscribe(eventState => {\n // When in FOCUSABLE state, add the hover content to the dom but make it transparent so\n // that it is in the tab order relative to the currently focused row.\n\n if (eventState === HoverContentState.ON || eventState === HoverContentState.FOCUSABLE) {\n if (!this.viewRef) {\n this.viewRef = this.viewContainerRef.createEmbeddedView(this.templateRef, {});\n this.initElement(this.viewRef.rootNodes[0] as HTMLElement);\n this.viewRef.markForCheck();\n } else if (this.viewContainerRef.indexOf(this.viewRef) === -1) {\n this.viewContainerRef.insert(this.viewRef!);\n this.viewRef.markForCheck();\n }\n\n if (eventState === HoverContentState.ON) {\n this.makeElementVisible(this.viewRef.rootNodes[0] as HTMLElement);\n } else {\n this.makeElementHiddenButFocusable(this.viewRef.rootNodes[0] as HTMLElement);\n }\n } else if (this.viewRef) {\n this.viewContainerRef.detach(this.viewContainerRef.indexOf(this.viewRef));\n }\n });\n }\n}\n\n/**\n * Opens the closest edit popover to this element, whether it's associated with this exact\n * element or an ancestor element.\n */\n@Directive({\n selector: '[cdkEditOpen]',\n host: {\n '(click)': 'openEdit($event)',\n },\n})\nexport class CdkEditOpen {\n constructor(\n protected readonly elementRef: ElementRef<HTMLElement>,\n protected readonly editEventDispatcher: EditEventDispatcher<EditRef<unknown>>,\n ) {\n const nativeElement = elementRef.nativeElement;\n\n // Prevent accidental form submits.\n if (nativeElement.nodeName === 'BUTTON' && !nativeElement.getAttribute('type')) {\n nativeElement.setAttribute('type', 'button');\n }\n }\n\n openEdit(evt: Event): void {\n this.editEventDispatcher.editing.next(closest(this.elementRef.nativeElement!, CELL_SELECTOR));\n evt.stopPropagation();\n }\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';\nimport {OverlayModule} from '@angular/cdk/overlay';\nimport {\n CdkPopoverEdit,\n CdkPopoverEditTabOut,\n CdkRowHoverContent,\n CdkEditable,\n CdkEditOpen,\n} from './table-directives';\nimport {CdkEditControl, CdkEditRevert, CdkEditClose} from './lens-directives';\nimport {\n DefaultPopoverEditPositionStrategyFactory,\n PopoverEditPositionStrategyFactory,\n} from './popover-edit-position-strategy-factory';\n\nconst EXPORTED_DECLARATIONS = [\n CdkPopoverEdit,\n CdkPopoverEditTabOut,\n CdkRowHoverContent,\n CdkEditControl,\n CdkEditRevert,\n CdkEditClose,\n CdkEditable,\n CdkEditOpen,\n];\n\n@NgModule({\n imports: [OverlayModule],\n exports: EXPORTED_DECLARATIONS,\n declarations: EXPORTED_DECLARATIONS,\n providers: [\n {\n provide: PopoverEditPositionStrategyFactory,\n useClass: DefaultPopoverEditPositionStrategyFactory,\n },\n ],\n})\nexport class CdkPopoverEditModule {}\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\nexport * from './edit-event-dispatcher';\nexport * from './edit-ref';\nexport * from './focus-dispatcher';\nexport * from './form-value-container';\nexport * from './lens-directives';\nexport * from './popover-edit-module';\nexport * from './popover-edit-position-strategy-factory';\nexport * from './table-directives';\n\n// Private to Angular Components\nexport {CELL_SELECTOR as _CELL_SELECTOR} from './constants';\nexport {closest as _closest} from './polyfill';\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\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.EditEventDispatcher","i1","i1.EditRef","i3.FocusDispatcher","i5","i6.PopoverEditPositionStrategyFactory","i1.EditEventDispatcher","i2.FocusDispatcher","i3.EditServices","i4.FocusEscapeNotifierFactory"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scrolling.mjs","sources":["../../../../../../src/cdk-experimental/scrolling/auto-size-virtual-scroll.ts","../../../../../../src/cdk-experimental/scrolling/scrolling-module.ts","../../../../../../src/cdk-experimental/scrolling/public-api.ts","../../../../../../src/cdk-experimental/scrolling/index.ts","../../../../../../src/cdk-experimental/scrolling/scrolling_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 {coerceNumberProperty, NumberInput} from '@angular/cdk/coercion';\nimport {ListRange} from '@angular/cdk/collections';\nimport {\n CdkVirtualScrollViewport,\n VIRTUAL_SCROLL_STRATEGY,\n VirtualScrollStrategy,\n} from '@angular/cdk/scrolling';\nimport {Directive, forwardRef, Input, OnChanges} from '@angular/core';\nimport {Observable} from 'rxjs';\n\n/**\n * A class that tracks the size of items that have been seen and uses it to estimate the average\n * item size.\n */\nexport class ItemSizeAverager {\n /** The total amount of weight behind the current average. */\n private _totalWeight = 0;\n\n /** The current average item size. */\n private _averageItemSize: number;\n\n /** The default size to use for items when no data is available. */\n private _defaultItemSize: number;\n\n /** @param defaultItemSize The default size to use for items when no data is available. */\n constructor(defaultItemSize = 50) {\n this._defaultItemSize = defaultItemSize;\n this._averageItemSize = defaultItemSize;\n }\n\n /** Returns the average item size. */\n getAverageItemSize(): number {\n return this._averageItemSize;\n }\n\n /**\n * Adds a measurement sample for the estimator to consider.\n * @param range The measured range.\n * @param size The measured size of the given range in pixels.\n */\n addSample(range: ListRange, size: number) {\n const newTotalWeight = this._totalWeight + range.end - range.start;\n if (newTotalWeight) {\n const newAverageItemSize =\n (size + this._averageItemSize * this._totalWeight) / newTotalWeight;\n if (newAverageItemSize) {\n this._averageItemSize = newAverageItemSize;\n this._totalWeight = newTotalWeight;\n }\n }\n }\n\n /** Resets the averager. */\n reset() {\n this._averageItemSize = this._defaultItemSize;\n this._totalWeight = 0;\n }\n}\n\n/** Virtual scrolling strategy for lists with items of unknown or dynamic size. */\nexport class AutoSizeVirtualScrollStrategy implements VirtualScrollStrategy {\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n scrolledIndexChange = new Observable<number>(() => {\n // TODO(mmalerba): Implement.\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw Error(\n 'cdk-virtual-scroll: scrolledIndexChange is currently not supported for the' +\n ' autosize scroll strategy',\n );\n }\n });\n\n /** The attached viewport. */\n private _viewport: CdkVirtualScrollViewport | null = null;\n\n /** The minimum amount of buffer rendered beyond the viewport (in pixels). */\n private _minBufferPx: number;\n\n /** The number of buffer items to render beyond the edge of the viewport (in pixels). */\n private _maxBufferPx: number;\n\n /** The estimator used to estimate the size of unseen items. */\n private _averager: ItemSizeAverager;\n\n /** The last measured scroll offset of the viewport. */\n private _lastScrollOffset: number;\n\n /** The last measured size of the rendered content in the viewport. */\n private _lastRenderedContentSize: number;\n\n /** The last measured size of the rendered content in the viewport. */\n private _lastRenderedContentOffset: number;\n\n /**\n * The number of consecutive cycles where removing extra items has failed. Failure here means that\n * we estimated how many items we could safely remove, but our estimate turned out to be too much\n * and it wasn't safe to remove that many elements.\n */\n private _removalFailures = 0;\n\n /**\n * @param minBufferPx The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered.\n * @param maxBufferPx The number of pixels worth of buffer to shoot for when rendering new items.\n * If the actual amount turns out to be less it will not necessarily trigger an additional\n * rendering cycle (as long as the amount of buffer is still greater than `minBufferPx`).\n * @param averager The averager used to estimate the size of unseen items.\n */\n constructor(minBufferPx: number, maxBufferPx: number, averager = new ItemSizeAverager()) {\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n this._averager = averager;\n }\n\n /**\n * Attaches this scroll strategy to a viewport.\n * @param viewport The viewport to attach this strategy to.\n */\n attach(viewport: CdkVirtualScrollViewport) {\n this._averager.reset();\n this._viewport = viewport;\n this._renderContentForCurrentOffset();\n }\n\n /** Detaches this scroll strategy from the currently attached viewport. */\n detach() {\n this._viewport = null;\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentScrolled() {\n if (this._viewport) {\n this._updateRenderedContentAfterScroll();\n }\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onDataLengthChanged() {\n if (this._viewport) {\n this._renderContentForCurrentOffset();\n this._checkRenderedContentSize();\n }\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onContentRendered() {\n if (this._viewport) {\n this._checkRenderedContentSize();\n }\n }\n\n /** @docs-private Implemented as part of VirtualScrollStrategy. */\n onRenderedOffsetChanged() {\n if (this._viewport) {\n this._checkRenderedContentOffset();\n }\n }\n\n /** Scroll to the offset for the given index. */\n scrollToIndex(): void {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n // TODO(mmalerba): Implement.\n throw Error(\n 'cdk-virtual-scroll: scrollToIndex is currently not supported for the autosize' +\n ' scroll strategy',\n );\n }\n }\n\n /**\n * Update the buffer parameters.\n * @param minBufferPx The minimum amount of buffer rendered beyond the viewport (in pixels).\n * @param maxBufferPx The number of buffer items to render beyond the edge of the viewport (in\n * pixels).\n */\n updateBufferSize(minBufferPx: number, maxBufferPx: number) {\n if (maxBufferPx < minBufferPx) {\n throw Error('CDK virtual scroll: maxBufferPx must be greater than or equal to minBufferPx');\n }\n this._minBufferPx = minBufferPx;\n this._maxBufferPx = maxBufferPx;\n }\n\n /** Update the rendered content after the user scrolls. */\n private _updateRenderedContentAfterScroll() {\n const viewport = this._viewport!;\n\n // The current scroll offset.\n const scrollOffset = viewport.measureScrollOffset();\n // The delta between the current scroll offset and the previously recorded scroll offset.\n let scrollDelta = scrollOffset - this._lastScrollOffset;\n // The magnitude of the scroll delta.\n let scrollMagnitude = Math.abs(scrollDelta);\n\n // The currently rendered range.\n const renderedRange = viewport.getRenderedRange();\n\n // If we're scrolling toward the top, we need to account for the fact that the predicted amount\n // of content and the actual amount of scrollable space may differ. We address this by slowly\n // correcting the difference on each scroll event.\n let offsetCorrection = 0;\n if (scrollDelta < 0) {\n // The content offset we would expect based on the average item size.\n const predictedOffset = renderedRange.start * this._averager.getAverageItemSize();\n // The difference between the predicted size of the un-rendered content at the beginning and\n // the actual available space to scroll over. We need to reduce this to zero by the time the\n // user scrolls to the top.\n // - 0 indicates that the predicted size and available space are the same.\n // - A negative number that the predicted size is smaller than the available space.\n // - A positive number indicates the predicted size is larger than the available space\n const offsetDifference = predictedOffset - this._lastRenderedContentOffset;\n // The amount of difference to correct during this scroll event. We calculate this as a\n // percentage of the total difference based on the percentage of the distance toward the top\n // that the user scrolled.\n offsetCorrection = Math.round(\n offsetDifference *\n Math.max(0, Math.min(1, scrollMagnitude / (scrollOffset + scrollMagnitude))),\n );\n\n // Based on the offset correction above, we pretend that the scroll delta was bigger or\n // smaller than it actually was, this way we can start to eliminate the difference.\n scrollDelta = scrollDelta - offsetCorrection;\n scrollMagnitude = Math.abs(scrollDelta);\n }\n\n // The current amount of buffer past the start of the viewport.\n const startBuffer = this._lastScrollOffset - this._lastRenderedContentOffset;\n // The current amount of buffer past the end of the viewport.\n const endBuffer =\n this._lastRenderedContentOffset +\n this._lastRenderedContentSize -\n (this._lastScrollOffset + viewport.getViewportSize());\n // The amount of unfilled space that should be filled on the side the user is scrolling toward\n // in order to safely absorb the scroll delta.\n const underscan =\n scrollMagnitude + this._minBufferPx - (scrollDelta < 0 ? startBuffer : endBuffer);\n\n // Check if there's unfilled space that we need to render new elements to fill.\n if (underscan > 0) {\n // Check if the scroll magnitude was larger than the viewport size. In this case the user\n // won't notice a discontinuity if we just jump to the new estimated position in the list.\n // However, if the scroll magnitude is smaller than the viewport the user might notice some\n // jitteriness if we just jump to the estimated position. Instead we make sure to scroll by\n // the same number of pixels as the scroll magnitude.\n if (scrollMagnitude >= viewport.getViewportSize()) {\n this._renderContentForCurrentOffset();\n } else {\n // The number of new items to render on the side the user is scrolling towards. Rather than\n // just filling the underscan space, we actually fill enough to have a buffer size of\n // `maxBufferPx`. This gives us a little wiggle room in case our item size estimate is off.\n const addItems = Math.max(\n 0,\n Math.ceil(\n (underscan - this._minBufferPx + this._maxBufferPx) /\n this._averager.getAverageItemSize(),\n ),\n );\n // The amount of filled space beyond what is necessary on the side the user is scrolling\n // away from.\n const overscan =\n (scrollDelta < 0 ? endBuffer : startBuffer) - this._minBufferPx + scrollMagnitude;\n // The number of currently rendered items to remove on the side the user is scrolling away\n // from. If removal has failed in recent cycles we are less aggressive in how much we try to\n // remove.\n const unboundedRemoveItems = Math.floor(\n overscan / this._averager.getAverageItemSize() / (this._removalFailures + 1),\n );\n const removeItems = Math.min(\n renderedRange.end - renderedRange.start,\n Math.max(0, unboundedRemoveItems),\n );\n\n // The new range we will tell the viewport to render. We first expand it to include the new\n // items we want rendered, we then contract the opposite side to remove items we no longer\n // want rendered.\n const range = this._expandRange(\n renderedRange,\n scrollDelta < 0 ? addItems : 0,\n scrollDelta > 0 ? addItems : 0,\n );\n if (scrollDelta < 0) {\n range.end = Math.max(range.start + 1, range.end - removeItems);\n } else {\n range.start = Math.min(range.end - 1, range.start + removeItems);\n }\n\n // The new offset we want to set on the rendered content. To determine this we measure the\n // number of pixels we removed and then adjust the offset to the start of the rendered\n // content or to the end of the rendered content accordingly (whichever one doesn't require\n // that the newly added items to be rendered to calculate.)\n let contentOffset: number;\n let contentOffsetTo: 'to-start' | 'to-end';\n if (scrollDelta < 0) {\n let removedSize = viewport.measureRangeSize({\n start: range.end,\n end: renderedRange.end,\n });\n // Check that we're not removing too much.\n if (removedSize <= overscan) {\n contentOffset =\n this._lastRenderedContentOffset + this._lastRenderedContentSize - removedSize;\n this._removalFailures = 0;\n } else {\n // If the removal is more than the overscan can absorb just undo it and record the fact\n // that the removal failed so we can be less aggressive next time.\n range.end = renderedRange.end;\n contentOffset = this._lastRenderedContentOffset + this._lastRenderedContentSize;\n this._removalFailures++;\n }\n contentOffsetTo = 'to-end';\n } else {\n const removedSize = viewport.measureRangeSize({\n start: renderedRange.start,\n end: range.start,\n });\n // Check that we're not removing too much.\n if (removedSize <= overscan) {\n contentOffset = this._lastRenderedContentOffset + removedSize;\n this._removalFailures = 0;\n } else {\n // If the removal is more than the overscan can absorb just undo it and record the fact\n // that the removal failed so we can be less aggressive next time.\n range.start = renderedRange.start;\n contentOffset = this._lastRenderedContentOffset;\n this._removalFailures++;\n }\n contentOffsetTo = 'to-start';\n }\n\n // Set the range and offset we calculated above.\n viewport.setRenderedRange(range);\n viewport.setRenderedContentOffset(contentOffset + offsetCorrection, contentOffsetTo);\n }\n } else if (offsetCorrection) {\n // Even if the rendered range didn't change, we may still need to adjust the content offset to\n // simulate scrolling slightly slower or faster than the user actually scrolled.\n viewport.setRenderedContentOffset(this._lastRenderedContentOffset + offsetCorrection);\n }\n\n // Save the scroll offset to be compared to the new value on the next scroll event.\n this._lastScrollOffset = scrollOffset;\n }\n\n /**\n * Checks the size of the currently rendered content and uses it to update the estimated item size\n * and estimated total content size.\n */\n private _checkRenderedContentSize() {\n const viewport = this._viewport!;\n this._lastRenderedContentSize = viewport.measureRenderedContentSize();\n this._averager.addSample(viewport.getRenderedRange(), this._lastRenderedContentSize);\n this._updateTotalContentSize(this._lastRenderedContentSize);\n }\n\n /** Checks the currently rendered content offset and saves the value for later use. */\n private _checkRenderedContentOffset() {\n const viewport = this._viewport!;\n this._lastRenderedContentOffset = viewport.getOffsetToRenderedContentStart()!;\n }\n\n /**\n * Recalculates the rendered content based on our estimate of what should be shown at the current\n * scroll offset.\n */\n private _renderContentForCurrentOffset() {\n const viewport = this._viewport!;\n const scrollOffset = viewport.measureScrollOffset();\n this._lastScrollOffset = scrollOffset;\n this._removalFailures = 0;\n\n const itemSize = this._averager.getAverageItemSize();\n const firstVisibleIndex = Math.min(\n viewport.getDataLength() - 1,\n Math.floor(scrollOffset / itemSize),\n );\n const bufferSize = Math.ceil(this._maxBufferPx / itemSize);\n const range = this._expandRange(\n this._getVisibleRangeForIndex(firstVisibleIndex),\n bufferSize,\n bufferSize,\n );\n\n viewport.setRenderedRange(range);\n viewport.setRenderedContentOffset(itemSize * range.start);\n }\n\n // TODO: maybe move to base class, can probably share with fixed size strategy.\n /**\n * Gets the visible range of data for the given start index. If the start index is too close to\n * the end of the list it may be backed up to ensure the estimated size of the range is enough to\n * fill the viewport.\n * Note: must not be called if `this._viewport` is null\n * @param startIndex The index to start the range at\n * @return a range estimated to be large enough to fill the viewport when rendered.\n */\n private _getVisibleRangeForIndex(startIndex: number): ListRange {\n const viewport = this._viewport!;\n const range: ListRange = {\n start: startIndex,\n end: startIndex + Math.ceil(viewport.getViewportSize() / this._averager.getAverageItemSize()),\n };\n const extra = range.end - viewport.getDataLength();\n if (extra > 0) {\n range.start = Math.max(0, range.start - extra);\n }\n return range;\n }\n\n // TODO: maybe move to base class, can probably share with fixed size strategy.\n /**\n * Expand the given range by the given amount in either direction.\n * Note: must not be called if `this._viewport` is null\n * @param range The range to expand\n * @param expandStart The number of items to expand the start of the range by.\n * @param expandEnd The number of items to expand the end of the range by.\n * @return The expanded range.\n */\n private _expandRange(range: ListRange, expandStart: number, expandEnd: number): ListRange {\n const viewport = this._viewport!;\n const start = Math.max(0, range.start - expandStart);\n const end = Math.min(viewport.getDataLength(), range.end + expandEnd);\n return {start, end};\n }\n\n /** Update the viewport's total content size. */\n private _updateTotalContentSize(renderedContentSize: number) {\n const viewport = this._viewport!;\n const renderedRange = viewport.getRenderedRange();\n const totalSize =\n renderedContentSize +\n (viewport.getDataLength() - (renderedRange.end - renderedRange.start)) *\n this._averager.getAverageItemSize();\n viewport.setTotalContentSize(totalSize);\n }\n}\n\n/**\n * Provider factory for `AutoSizeVirtualScrollStrategy` that simply extracts the already created\n * `AutoSizeVirtualScrollStrategy` from the given directive.\n * @param autoSizeDir The instance of `CdkAutoSizeVirtualScroll` to extract the\n * `AutoSizeVirtualScrollStrategy` from.\n */\nexport function _autoSizeVirtualScrollStrategyFactory(autoSizeDir: CdkAutoSizeVirtualScroll) {\n return autoSizeDir._scrollStrategy;\n}\n\n/** A virtual scroll strategy that supports unknown or dynamic size items. */\n@Directive({\n selector: 'cdk-virtual-scroll-viewport[autosize]',\n providers: [\n {\n provide: VIRTUAL_SCROLL_STRATEGY,\n useFactory: _autoSizeVirtualScrollStrategyFactory,\n deps: [forwardRef(() => CdkAutoSizeVirtualScroll)],\n },\n ],\n})\nexport class CdkAutoSizeVirtualScroll implements OnChanges {\n /**\n * The minimum amount of buffer rendered beyond the viewport (in pixels).\n * If the amount of buffer dips below this number, more items will be rendered. Defaults to 100px.\n */\n @Input()\n get minBufferPx(): number {\n return this._minBufferPx;\n }\n set minBufferPx(value: NumberInput) {\n this._minBufferPx = coerceNumberProperty(value);\n }\n _minBufferPx = 100;\n\n /**\n * The number of pixels worth of buffer to shoot for when rendering new items.\n * If the actual amount turns out to be less it will not necessarily trigger an additional\n * rendering cycle (as long as the amount of buffer is still greater than `minBufferPx`).\n * Defaults to 200px.\n */\n @Input()\n get maxBufferPx(): number {\n return this._maxBufferPx;\n }\n set maxBufferPx(value: NumberInput) {\n this._maxBufferPx = coerceNumberProperty(value);\n }\n _maxBufferPx = 200;\n\n /** The scroll strategy used by this directive. */\n _scrollStrategy = new AutoSizeVirtualScrollStrategy(this.minBufferPx, this.maxBufferPx);\n\n ngOnChanges() {\n this._scrollStrategy.updateBufferSize(this.minBufferPx, this.maxBufferPx);\n }\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';\nimport {CdkAutoSizeVirtualScroll} from './auto-size-virtual-scroll';\n\n@NgModule({\n exports: [CdkAutoSizeVirtualScroll],\n declarations: [CdkAutoSizeVirtualScroll],\n})\nexport class ScrollingModule {}\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\nexport * from './auto-size-virtual-scroll';\nexport * from './scrolling-module';\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\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"selection.mjs","sources":["../../../../../../src/cdk-experimental/selection/selection-set.ts","../../../../../../src/cdk-experimental/selection/selection.ts","../../../../../../src/cdk-experimental/selection/select-all.ts","../../../../../../src/cdk-experimental/selection/selection-toggle.ts","../../../../../../src/cdk-experimental/selection/selection-column.ts","../../../../../../src/cdk-experimental/selection/row-selection.ts","../../../../../../src/cdk-experimental/selection/selection-module.ts","../../../../../../src/cdk-experimental/selection/public-api.ts","../../../../../../src/cdk-experimental/selection/index.ts","../../../../../../src/cdk-experimental/selection/selection_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 {TrackByFunction} from '@angular/core';\nimport {Subject} from 'rxjs';\n\n/**\n * Maintains a set of selected values. One or more values can be added to or removed from the\n * selection.\n */\ninterface TrackBySelection<T> {\n isSelected(value: SelectableWithIndex<T>): boolean;\n select(...values: SelectableWithIndex<T>[]): void;\n deselect(...values: SelectableWithIndex<T>[]): void;\n changed: Subject<SelectionChange<T>>;\n}\n\n/**\n * A selectable value with an optional index. The index is required when the selection is used with\n * `trackBy`.\n */\nexport interface SelectableWithIndex<T> {\n value: T;\n index?: number;\n}\n\n/**\n * Represents the change in the selection set.\n */\nexport interface SelectionChange<T> {\n before: SelectableWithIndex<T>[];\n after: SelectableWithIndex<T>[];\n}\n\n/**\n * Maintains a set of selected items. Support selecting and deselecting items, and checking if a\n * value is selected.\n * When constructed with a `trackByFn`, all the items will be identified by applying the `trackByFn`\n * on them. Because `trackByFn` requires the index of the item to be passed in, the `index` field is\n * expected to be set when calling `isSelected`, `select` and `deselect`.\n */\nexport class SelectionSet<T> implements TrackBySelection<T> {\n private _selectionMap = new Map<T | ReturnType<TrackByFunction<T>>, SelectableWithIndex<T>>();\n changed = new Subject<SelectionChange<T>>();\n\n constructor(private _multiple = false, private _trackByFn?: TrackByFunction<T>) {}\n\n isSelected(value: SelectableWithIndex<T>): boolean {\n return this._selectionMap.has(this._getTrackedByValue(value));\n }\n\n select(...selects: SelectableWithIndex<T>[]) {\n if (!this._multiple && selects.length > 1 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('SelectionSet: not multiple selection');\n }\n\n const before = this._getCurrentSelection();\n\n if (!this._multiple) {\n this._selectionMap.clear();\n }\n\n const toSelect: SelectableWithIndex<T>[] = [];\n for (const select of selects) {\n if (this.isSelected(select)) {\n continue;\n }\n\n toSelect.push(select);\n this._markSelected(this._getTrackedByValue(select), select);\n }\n\n const after = this._getCurrentSelection();\n\n this.changed.next({before, after});\n }\n\n deselect(...selects: SelectableWithIndex<T>[]) {\n if (!this._multiple && selects.length > 1 && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('SelectionSet: not multiple selection');\n }\n\n const before = this._getCurrentSelection();\n const toDeselect: SelectableWithIndex<T>[] = [];\n\n for (const select of selects) {\n if (!this.isSelected(select)) {\n continue;\n }\n\n toDeselect.push(select);\n this._markDeselected(this._getTrackedByValue(select));\n }\n\n const after = this._getCurrentSelection();\n this.changed.next({before, after});\n }\n\n private _markSelected(key: T | ReturnType<TrackByFunction<T>>, toSelect: SelectableWithIndex<T>) {\n this._selectionMap.set(key, toSelect);\n }\n\n private _markDeselected(key: T | ReturnType<TrackByFunction<T>>) {\n this._selectionMap.delete(key);\n }\n\n private _getTrackedByValue(select: SelectableWithIndex<T>) {\n if (!this._trackByFn) {\n return select.value;\n }\n\n if (select.index == null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('SelectionSet: index required when trackByFn is used.');\n }\n\n return this._trackByFn(select.index!, select.value);\n }\n\n private _getCurrentSelection(): SelectableWithIndex<T>[] {\n return Array.from(this._selectionMap.values());\n }\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 {BooleanInput, coerceBooleanProperty} from '@angular/cdk/coercion';\nimport {CollectionViewer, DataSource, isDataSource, ListRange} from '@angular/cdk/collections';\nimport {\n AfterContentChecked,\n Directive,\n EventEmitter,\n Input,\n OnDestroy,\n OnInit,\n Output,\n TrackByFunction,\n} from '@angular/core';\nimport {Observable, of as observableOf, Subject, Subscription} from 'rxjs';\nimport {takeUntil} from 'rxjs/operators';\n\nimport {SelectableWithIndex, SelectionChange, SelectionSet} from './selection-set';\n\n/**\n * Manages the selection states of the items and provides methods to check and update the selection\n * states.\n * It must be applied to the parent element if `cdkSelectionToggle`, `cdkSelectAll`,\n * `cdkRowSelection` and `cdkSelectionColumn` are applied.\n */\n@Directive({\n selector: '[cdkSelection]',\n exportAs: 'cdkSelection',\n})\nexport class CdkSelection<T> implements OnInit, AfterContentChecked, CollectionViewer, OnDestroy {\n viewChange: Observable<ListRange>;\n\n @Input()\n get dataSource(): TableDataSource<T> {\n return this._dataSource;\n }\n set dataSource(dataSource: TableDataSource<T>) {\n if (this._dataSource !== dataSource) {\n this._switchDataSource(dataSource);\n }\n }\n private _dataSource: TableDataSource<T>;\n\n @Input('trackBy') trackByFn: TrackByFunction<T>;\n\n /** Whether to support multiple selection */\n @Input('cdkSelectionMultiple')\n get multiple(): boolean {\n return this._multiple;\n }\n set multiple(multiple: BooleanInput) {\n this._multiple = coerceBooleanProperty(multiple);\n }\n protected _multiple: boolean;\n\n /** Emits when selection changes. */\n @Output('cdkSelectionChange') readonly change = new EventEmitter<SelectionChange<T>>();\n\n /** Latest data provided by the data source. */\n private _data: T[] | readonly T[];\n\n /** Subscription that listens for the data provided by the data source. */\n private _renderChangeSubscription: Subscription | null;\n\n private _destroyed = new Subject<void>();\n\n private _selection: SelectionSet<T>;\n\n private _switchDataSource(dataSource: TableDataSource<T>) {\n this._data = [];\n\n // TODO: Move this logic to a shared function in `cdk/collections`.\n if (isDataSource(this._dataSource)) {\n this._dataSource.disconnect(this);\n }\n\n if (this._renderChangeSubscription) {\n this._renderChangeSubscription.unsubscribe();\n this._renderChangeSubscription = null;\n }\n\n this._dataSource = dataSource;\n }\n\n private _observeRenderChanges() {\n if (!this._dataSource) {\n return;\n }\n\n let dataStream: Observable<readonly T[]> | undefined;\n\n if (isDataSource(this._dataSource)) {\n dataStream = this._dataSource.connect(this);\n } else if (this._dataSource instanceof Observable) {\n dataStream = this._dataSource;\n } else if (Array.isArray(this._dataSource)) {\n dataStream = observableOf(this._dataSource);\n }\n\n if (dataStream == null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('Unknown data source');\n }\n\n this._renderChangeSubscription = dataStream!\n .pipe(takeUntil(this._destroyed))\n .subscribe(data => {\n this._data = data || [];\n });\n }\n\n ngOnInit() {\n this._selection = new SelectionSet<T>(this._multiple, this.trackByFn);\n this._selection.changed.pipe(takeUntil(this._destroyed)).subscribe(change => {\n this._updateSelectAllState();\n this.change.emit(change);\n });\n }\n\n ngAfterContentChecked() {\n if (this._dataSource && !this._renderChangeSubscription) {\n this._observeRenderChanges();\n }\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n\n if (isDataSource(this._dataSource)) {\n this._dataSource.disconnect(this);\n }\n }\n\n /** Toggles selection for a given value. `index` is required if `trackBy` is used. */\n toggleSelection(value: T, index?: number) {\n if (!!this.trackByFn && index == null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkSelection: index required when trackBy is used');\n }\n\n if (this.isSelected(value, index)) {\n this._selection.deselect({value, index});\n } else {\n this._selection.select({value, index});\n }\n }\n\n /**\n * Toggles select-all. If no value is selected, select all values. If all values or some of the\n * values are selected, de-select all values.\n */\n toggleSelectAll() {\n if (!this._multiple && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkSelection: multiple selection not enabled');\n }\n\n if (this.selectAllState === 'none') {\n this._selectAll();\n } else {\n this._clearAll();\n }\n }\n\n /** Checks whether a value is selected. `index` is required if `trackBy` is used. */\n isSelected(value: T, index?: number) {\n if (!!this.trackByFn && index == null && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkSelection: index required when trackBy is used');\n }\n\n return this._selection.isSelected({value, index});\n }\n\n /** Checks whether all values are selected. */\n isAllSelected() {\n return this._data.every((value, index) => this._selection.isSelected({value, index}));\n }\n\n /** Checks whether partially selected. */\n isPartialSelected() {\n return (\n !this.isAllSelected() &&\n this._data.some((value, index) => this._selection.isSelected({value, index}))\n );\n }\n\n private _selectAll() {\n const toSelect: SelectableWithIndex<T>[] = [];\n this._data.forEach((value, index) => {\n toSelect.push({value, index});\n });\n\n this._selection.select(...toSelect);\n }\n\n private _clearAll() {\n const toDeselect: SelectableWithIndex<T>[] = [];\n this._data.forEach((value, index) => {\n toDeselect.push({value, index});\n });\n\n this._selection.deselect(...toDeselect);\n }\n\n private _updateSelectAllState() {\n if (this.isAllSelected()) {\n this.selectAllState = 'all';\n } else if (this.isPartialSelected()) {\n this.selectAllState = 'partial';\n } else {\n this.selectAllState = 'none';\n }\n }\n\n selectAllState: SelectAllState = 'none';\n}\n\ntype SelectAllState = 'all' | 'none' | 'partial';\ntype TableDataSource<T> = DataSource<T> | Observable<readonly T[]> | readonly T[];\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 {Directive, Inject, OnDestroy, OnInit, Optional, Self} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {Observable, of as observableOf, Subject} from 'rxjs';\nimport {switchMap, takeUntil} from 'rxjs/operators';\n\nimport {CdkSelection} from './selection';\n\n/**\n * Makes the element a select-all toggle.\n *\n * Must be used within a parent `CdkSelection` directive. It toggles the selection states\n * of all the selection toggles connected with the `CdkSelection` directive.\n * If the element implements `ControlValueAccessor`, e.g. `MatCheckbox`, the directive\n * automatically connects it with the select-all state provided by the `CdkSelection` directive. If\n * not, use `checked$` to get the checked state, `indeterminate$` to get the indeterminate state,\n * and `toggle()` to change the selection state.\n */\n@Directive({\n selector: '[cdkSelectAll]',\n exportAs: 'cdkSelectAll',\n})\nexport class CdkSelectAll<T> implements OnDestroy, OnInit {\n /**\n * The checked state of the toggle.\n * Resolves to `true` if all the values are selected, `false` if no value is selected.\n */\n readonly checked: Observable<boolean> = this._selection.change.pipe(\n switchMap(() => observableOf(this._selection.isAllSelected())),\n );\n\n /**\n * The indeterminate state of the toggle.\n * Resolves to `true` if part (not all) of the values are selected, `false` if all values or no\n * value at all are selected.\n */\n readonly indeterminate: Observable<boolean> = this._selection.change.pipe(\n switchMap(() => observableOf(this._selection.isPartialSelected())),\n );\n\n /**\n * Toggles the select-all state.\n * @param event The click event if the toggle is triggered by a (mouse or keyboard) click. If\n * using with a native `<input type=\"checkbox\">`, the parameter is required for the\n * indeterminate state to work properly.\n */\n toggle(event?: MouseEvent) {\n // This is needed when applying the directive on a native <input type=\"checkbox\">\n // checkbox. The default behavior needs to be prevented in order to support the indeterminate\n // state. The timeout is also needed so the checkbox can show the latest state.\n if (event) {\n event.preventDefault();\n }\n\n setTimeout(() => {\n this._selection.toggleSelectAll();\n });\n }\n\n private readonly _destroyed = new Subject<void>();\n\n constructor(\n @Optional() @Inject(CdkSelection) private readonly _selection: CdkSelection<T>,\n @Optional()\n @Self()\n @Inject(NG_VALUE_ACCESSOR)\n private readonly _controlValueAccessor: ControlValueAccessor[],\n ) {}\n\n ngOnInit() {\n this._assertValidParentSelection();\n this._configureControlValueAccessor();\n }\n\n private _configureControlValueAccessor() {\n if (this._controlValueAccessor && this._controlValueAccessor.length) {\n this._controlValueAccessor[0].registerOnChange((e: unknown) => {\n if (e === true || e === false) {\n this.toggle();\n }\n });\n this.checked.pipe(takeUntil(this._destroyed)).subscribe(state => {\n this._controlValueAccessor[0].writeValue(state);\n });\n }\n }\n\n private _assertValidParentSelection() {\n if (!this._selection && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkSelectAll: missing CdkSelection in the parent');\n }\n\n if (!this._selection.multiple && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkSelectAll: CdkSelection must have cdkSelectionMultiple set to true');\n }\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\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 {coerceNumberProperty, NumberInput} from '@angular/cdk/coercion';\nimport {Directive, Inject, Input, OnDestroy, OnInit, Optional, Self} from '@angular/core';\nimport {ControlValueAccessor, NG_VALUE_ACCESSOR} from '@angular/forms';\nimport {Observable, of as observableOf, Subject} from 'rxjs';\nimport {distinctUntilChanged, switchMap, takeUntil} from 'rxjs/operators';\n\nimport {CdkSelection} from './selection';\n\n/**\n * Makes the element a selection toggle.\n *\n * Must be used within a parent `CdkSelection` directive.\n * Must be provided with the value. If `trackBy` is used on `CdkSelection`, the index of the value\n * is required. If the element implements `ControlValueAccessor`, e.g. `MatCheckbox`, the directive\n * automatically connects it with the selection state provided by the `CdkSelection` directive. If\n * not, use `checked$` to get the checked state of the value, and `toggle()` to change the selection\n * state.\n */\n@Directive({\n selector: '[cdkSelectionToggle]',\n exportAs: 'cdkSelectionToggle',\n})\nexport class CdkSelectionToggle<T> implements OnDestroy, OnInit {\n /** The value that is associated with the toggle */\n @Input('cdkSelectionToggleValue') value: T;\n\n /** The index of the value in the list. Required when used with `trackBy` */\n @Input('cdkSelectionToggleIndex')\n get index(): number | undefined {\n return this._index;\n }\n set index(index: NumberInput) {\n this._index = coerceNumberProperty(index);\n }\n protected _index?: number;\n\n /** The checked state of the selection toggle */\n readonly checked: Observable<boolean> = this._selection.change.pipe(\n switchMap(() => observableOf(this._isSelected())),\n distinctUntilChanged(),\n );\n\n /** Toggles the selection */\n toggle() {\n this._selection.toggleSelection(this.value, this.index);\n }\n\n private _destroyed = new Subject<void>();\n\n constructor(\n @Optional() @Inject(CdkSelection) private _selection: CdkSelection<T>,\n @Optional()\n @Self()\n @Inject(NG_VALUE_ACCESSOR)\n private _controlValueAccessors: ControlValueAccessor[],\n ) {}\n\n ngOnInit() {\n this._assertValidParentSelection();\n this._configureControlValueAccessor();\n }\n\n ngOnDestroy() {\n this._destroyed.next();\n this._destroyed.complete();\n }\n\n private _assertValidParentSelection() {\n if (!this._selection && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkSelectAll: missing CdkSelection in the parent');\n }\n }\n\n private _configureControlValueAccessor() {\n if (this._controlValueAccessors && this._controlValueAccessors.length) {\n this._controlValueAccessors[0].registerOnChange((e: unknown) => {\n if (typeof e === 'boolean') {\n this.toggle();\n }\n });\n\n this.checked.pipe(takeUntil(this._destroyed)).subscribe(state => {\n this._controlValueAccessors[0].writeValue(state);\n });\n }\n }\n\n private _isSelected(): boolean {\n return this._selection.isSelected(this.value, this.index);\n }\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 {CdkCellDef, CdkColumnDef, CdkHeaderCellDef, CdkTable} from '@angular/cdk/table';\nimport {\n Component,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n ViewChild,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Inject,\n} from '@angular/core';\n\nimport {CdkSelection} from './selection';\n\n/**\n * Column that adds row selecting checkboxes and a select-all checkbox if `cdkSelectionMultiple` is\n * `true`.\n *\n * Must be used within a parent `CdkSelection` directive.\n */\n@Component({\n selector: 'cdk-selection-column',\n template: `\n <ng-container cdkColumnDef>\n <th cdkHeaderCell *cdkHeaderCellDef>\n <input type=\"checkbox\" *ngIf=\"selection.multiple\"\n cdkSelectAll\n #allToggler=\"cdkSelectAll\"\n [checked]=\"allToggler.checked | async\"\n [indeterminate]=\"allToggler.indeterminate | async\"\n (click)=\"allToggler.toggle($event)\">\n </th>\n <td cdkCell *cdkCellDef=\"let row; let i = $index\">\n <input type=\"checkbox\"\n #toggler=\"cdkSelectionToggle\"\n cdkSelectionToggle\n [cdkSelectionToggleValue]=\"row\"\n [cdkSelectionToggleIndex]=\"i\"\n (click)=\"toggler.toggle()\"\n [checked]=\"toggler.checked | async\">\n </td>\n </ng-container>\n `,\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class CdkSelectionColumn<T> implements OnInit, OnDestroy {\n /** Column name that should be used to reference this column. */\n @Input('cdkSelectionColumnName')\n get name(): string {\n return this._name;\n }\n set name(name: string) {\n this._name = name;\n\n this._syncColumnDefName();\n }\n private _name: string;\n\n @ViewChild(CdkColumnDef, {static: true}) private readonly _columnDef: CdkColumnDef;\n @ViewChild(CdkCellDef, {static: true}) private readonly _cell: CdkCellDef;\n @ViewChild(CdkHeaderCellDef, {static: true}) private readonly _headerCell: CdkHeaderCellDef;\n\n constructor(\n @Optional() @Inject(CdkTable) private _table: CdkTable<T>,\n @Optional() @Inject(CdkSelection) readonly selection: CdkSelection<T>,\n ) {}\n\n ngOnInit() {\n if (!this.selection && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('CdkSelectionColumn: missing CdkSelection in the parent');\n }\n\n this._syncColumnDefName();\n\n if (this._table) {\n this._columnDef.cell = this._cell;\n this._columnDef.headerCell = this._headerCell;\n this._table.addColumnDef(this._columnDef);\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throw Error('CdkSelectionColumn: missing parent table');\n }\n }\n\n ngOnDestroy() {\n if (this._table) {\n this._table.removeColumnDef(this._columnDef);\n }\n }\n\n private _syncColumnDefName() {\n if (this._columnDef) {\n this._columnDef.name = this._name;\n }\n }\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 {coerceNumberProperty, NumberInput} from '@angular/cdk/coercion';\nimport {Directive, Input} from '@angular/core';\n\nimport {CdkSelection} from './selection';\n\n/**\n * Applies `cdk-selected` class and `aria-selected` to an element.\n *\n * Must be used within a parent `CdkSelection` directive.\n * Must be provided with the value. The index is required if `trackBy` is used on the `CdkSelection`\n * directive.\n */\n@Directive({\n selector: '[cdkRowSelection]',\n host: {\n '[class.cdk-selected]': '_selection.isSelected(this.value, this.index)',\n '[attr.aria-selected]': '_selection.isSelected(this.value, this.index)',\n },\n})\nexport class CdkRowSelection<T> {\n @Input('cdkRowSelectionValue') value: T;\n\n @Input('cdkRowSelectionIndex')\n get index(): number | undefined {\n return this._index;\n }\n set index(index: NumberInput) {\n this._index = coerceNumberProperty(index);\n }\n protected _index?: number;\n\n constructor(readonly _selection: CdkSelection<T>) {}\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 {CdkTableModule} from '@angular/cdk/table';\nimport {CommonModule} from '@angular/common';\nimport {NgModule} from '@angular/core';\n\nimport {CdkRowSelection} from './row-selection';\nimport {CdkSelectAll} from './select-all';\nimport {CdkSelection} from './selection';\nimport {CdkSelectionColumn} from './selection-column';\nimport {CdkSelectionToggle} from './selection-toggle';\n\n@NgModule({\n imports: [CommonModule, CdkTableModule],\n exports: [CdkSelection, CdkSelectionToggle, CdkSelectAll, CdkSelectionColumn, CdkRowSelection],\n declarations: [\n CdkSelection,\n CdkSelectionToggle,\n CdkSelectAll,\n CdkSelectionColumn,\n CdkRowSelection,\n ],\n})\nexport class CdkSelectionModule {}\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\nexport * from './selection';\nexport * from './select-all';\nexport * from './selection-toggle';\nexport * from './selection-column';\nexport * from './row-selection';\nexport * from './selection-set';\nexport * from './selection-module';\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\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableOf","i3.CdkSelectionToggle","i4.CdkSelectAll","i1.CdkSelection"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
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/public-api.ts","../../../../../../src/cdk-experimental/table-scroll-container/index.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 {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 ) {\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 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 * @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\nexport * from './table-scroll-container';\nexport * from './table-scroll-container-module';\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\nexport * from './public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|