igniteui-grid-lite 0.4.0 → 0.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/cell.d.ts +4 -1
- package/components/cell.js +12 -0
- package/components/cell.js.map +1 -1
- package/components/filter-row.d.ts +2 -2
- package/components/grid.d.ts +1 -0
- package/components/grid.js +6 -0
- package/components/grid.js.map +1 -1
- package/components/header-row.d.ts +1 -0
- package/components/header-row.js +16 -10
- package/components/header-row.js.map +1 -1
- package/components/header.d.ts +7 -3
- package/components/header.js +34 -13
- package/components/header.js.map +1 -1
- package/components/row.d.ts +1 -0
- package/components/row.js +19 -13
- package/components/row.js.map +1 -1
- package/controllers/resize.d.ts +1 -1
- package/controllers/root-styles.d.ts +15 -0
- package/controllers/root-styles.js +67 -0
- package/controllers/root-styles.js.map +1 -0
- package/custom-elements.json +208 -0
- package/docs/assets/hierarchy.js +1 -1
- package/docs/hierarchy.html +1 -1
- package/package.json +1 -1
package/components/cell.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement } from 'lit';
|
|
1
|
+
import { LitElement, type PropertyValues } from 'lit';
|
|
2
2
|
import type { ColumnConfiguration, IgcCellContext, PropertyType } from '../internal/types.js';
|
|
3
3
|
import type IgcGridLiteRow from './row.js';
|
|
4
4
|
/**
|
|
@@ -8,6 +8,8 @@ export default class IgcGridLiteCell<T extends object> extends LitElement {
|
|
|
8
8
|
static get tagName(): "igc-grid-lite-cell";
|
|
9
9
|
static styles: import("lit").CSSResult;
|
|
10
10
|
static register(): void;
|
|
11
|
+
private readonly _adoptedStylesController;
|
|
12
|
+
adoptRootStyles: boolean;
|
|
11
13
|
/**
|
|
12
14
|
* The value which will be rendered by the component.
|
|
13
15
|
*/
|
|
@@ -28,6 +30,7 @@ export default class IgcGridLiteCell<T extends object> extends LitElement {
|
|
|
28
30
|
rowIndex: number;
|
|
29
31
|
cellTemplate?: (context: IgcCellContext<T>) => unknown;
|
|
30
32
|
protected get context(): IgcCellContext<T>;
|
|
33
|
+
protected update(props: PropertyValues<this>): void;
|
|
31
34
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
32
35
|
}
|
|
33
36
|
declare global {
|
package/components/cell.js
CHANGED
|
@@ -7,12 +7,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
import { html, LitElement } from 'lit';
|
|
8
8
|
import { property } from 'lit/decorators.js';
|
|
9
9
|
import { cache } from 'lit/directives/cache.js';
|
|
10
|
+
import { AdoptedStylesController } from '../controllers/root-styles.js';
|
|
10
11
|
import { registerComponent } from '../internal/register.js';
|
|
11
12
|
import { GRID_CELL_TAG } from '../internal/tags.js';
|
|
12
13
|
import { styles } from '../styles/body-cell/body-cell.css.js';
|
|
13
14
|
export default class IgcGridLiteCell extends LitElement {
|
|
14
15
|
constructor() {
|
|
15
16
|
super(...arguments);
|
|
17
|
+
this._adoptedStylesController = new AdoptedStylesController(this);
|
|
18
|
+
this.adoptRootStyles = false;
|
|
16
19
|
this.active = false;
|
|
17
20
|
this.rowIndex = -1;
|
|
18
21
|
}
|
|
@@ -31,12 +34,21 @@ export default class IgcGridLiteCell extends LitElement {
|
|
|
31
34
|
value: this.value,
|
|
32
35
|
};
|
|
33
36
|
}
|
|
37
|
+
update(props) {
|
|
38
|
+
if (props.has('adoptRootStyles')) {
|
|
39
|
+
this._adoptedStylesController.shouldAdoptStyles(this.adoptRootStyles && this.cellTemplate != null);
|
|
40
|
+
}
|
|
41
|
+
super.update(props);
|
|
42
|
+
}
|
|
34
43
|
render() {
|
|
35
44
|
return html `${cache(this.cellTemplate
|
|
36
45
|
? this.cellTemplate(this.context)
|
|
37
46
|
: html `<span part="text">${this.value}</span>`)}`;
|
|
38
47
|
}
|
|
39
48
|
}
|
|
49
|
+
__decorate([
|
|
50
|
+
property({ attribute: false })
|
|
51
|
+
], IgcGridLiteCell.prototype, "adoptRootStyles", void 0);
|
|
40
52
|
__decorate([
|
|
41
53
|
property({ attribute: false })
|
|
42
54
|
], IgcGridLiteCell.prototype, "value", void 0);
|
package/components/cell.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cell.js","sourceRoot":"","sources":["../../src/components/cell.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"cell.js","sourceRoot":"","sources":["../../src/components/cell.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAM9D,MAAM,CAAC,OAAO,OAAO,eAAkC,SAAQ,UAAU;IAAzE;;QAWmB,6BAAwB,GAAG,IAAI,uBAAuB,CAAC,IAAI,CAAC,CAAC;QAGvE,oBAAe,GAAG,KAAK,CAAC;QAmBxB,WAAM,GAAG,KAAK,CAAC;QASf,aAAQ,GAAG,CAAC,CAAC,CAAC;IA+BvB,CAAC;IAxEQ,MAAM,KAAK,OAAO;QACvB,OAAO,aAAa,CAAC;IACvB,CAAC;aAEsB,WAAM,GAAG,MAAM,AAAT,CAAU;IAEhC,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,eAAe,CAAC,CAAC;IACrC,CAAC;IAsCD,IAAc,OAAO;QACnB,OAAO;YACL,MAAM,EAAE,IAAI;YACZ,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,MAAM,EAAE,IAAI,CAAC,MAAM;YACnB,KAAK,EAAE,IAAI,CAAC,KAAK;SACc,CAAC;IACpC,CAAC;IAEkB,MAAM,CAAC,KAA2B;QACnD,IAAI,KAAK,CAAC,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACjC,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,CAC7C,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAClD,CAAC;QACJ,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAEkB,MAAM;QACvB,OAAO,IAAI,CAAA,GAAG,KAAK,CACjB,IAAI,CAAC,YAAY;YACf,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,OAAc,CAAC;YACxC,CAAC,CAAC,IAAI,CAAA,qBAAqB,IAAI,CAAC,KAAK,SAAS,CACjD,EAAE,CAAC;IACN,CAAC;;AA1DM;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;wDACA;AAMxB;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;8CACA;AAMxB;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;+CACQ;AAOhC;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;+CACrB;AAMf;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;4CACA;AAGxB;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;iDACV;AAGd;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;qDAC+B","sourcesContent":["import { html, LitElement, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { AdoptedStylesController } from '../controllers/root-styles.js';\nimport { registerComponent } from '../internal/register.js';\nimport { GRID_CELL_TAG } from '../internal/tags.js';\nimport type { ColumnConfiguration, IgcCellContext, PropertyType } from '../internal/types.js';\nimport { styles } from '../styles/body-cell/body-cell.css.js';\nimport type IgcGridLiteRow from './row.js';\n\n/**\n * Component representing a DOM cell of the Igc grid.\n */\nexport default class IgcGridLiteCell<T extends object> extends LitElement {\n public static get tagName() {\n return GRID_CELL_TAG;\n }\n\n public static override styles = styles;\n\n public static register(): void {\n registerComponent(IgcGridLiteCell);\n }\n\n private readonly _adoptedStylesController = new AdoptedStylesController(this);\n\n @property({ attribute: false })\n public adoptRootStyles = false;\n\n /**\n * The value which will be rendered by the component.\n */\n @property({ attribute: false })\n public value!: PropertyType<T>;\n\n /**\n * A reference to the column configuration object.\n */\n @property({ attribute: false })\n public column!: ColumnConfiguration<T>;\n\n /**\n * Indicates whether this is the active cell in the grid.\n *\n */\n @property({ type: Boolean, reflect: true })\n public active = false;\n\n /**\n * The parent row component holding this cell.\n */\n @property({ attribute: false })\n public row!: IgcGridLiteRow<T>;\n\n @property({ attribute: false })\n public rowIndex = -1;\n\n @property({ attribute: false })\n public cellTemplate?: (context: IgcCellContext<T>) => unknown;\n\n protected get context(): IgcCellContext<T> {\n return {\n parent: this,\n row: this.row,\n column: this.column,\n value: this.value,\n } as unknown as IgcCellContext<T>;\n }\n\n protected override update(props: PropertyValues<this>): void {\n if (props.has('adoptRootStyles')) {\n this._adoptedStylesController.shouldAdoptStyles(\n this.adoptRootStyles && this.cellTemplate != null\n );\n }\n\n super.update(props);\n }\n\n protected override render() {\n return html`${cache(\n this.cellTemplate\n ? this.cellTemplate(this.context as any)\n : html`<span part=\"text\">${this.value}</span>`\n )}`;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [IgcGridLiteCell.tagName]: IgcGridLiteCell<object>;\n }\n}\n"]}
|
|
@@ -26,7 +26,7 @@ export default class IgcFilterRow<T extends object> extends LitElement {
|
|
|
26
26
|
column: ColumnConfiguration<T>;
|
|
27
27
|
expression: FilterExpression<T>;
|
|
28
28
|
protected activeChanged(): void;
|
|
29
|
-
protected renderCriteriaButton(expr: FilterExpression<T>, index: number):
|
|
29
|
+
protected renderCriteriaButton(expr: FilterExpression<T>, index: number): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
30
30
|
protected renderExpressionChip(props: ExpressionChipProps<T>): import("lit-html").TemplateResult<1>;
|
|
31
31
|
protected renderActiveChips(): typeof nothing | import("lit-html").TemplateResult<1>[];
|
|
32
32
|
protected renderFilterActions(): import("lit-html").TemplateResult<1>;
|
|
@@ -36,7 +36,7 @@ export default class IgcFilterRow<T extends object> extends LitElement {
|
|
|
36
36
|
protected renderActiveState(): import("lit-html").TemplateResult<1>;
|
|
37
37
|
protected renderInactiveChips(column: ColumnConfiguration<T>, state: FilterExpressionTree<T>): import("lit-html").TemplateResult<1>[];
|
|
38
38
|
protected renderFilterState(column: ColumnConfiguration<T>): import("lit-html").TemplateResult<1> | import("lit-html").TemplateResult<1>[];
|
|
39
|
-
protected renderInactiveState(): (
|
|
39
|
+
protected renderInactiveState(): (import("lit-html").TemplateResult<1> | typeof nothing)[];
|
|
40
40
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
41
41
|
}
|
|
42
42
|
declare global {
|
package/components/grid.d.ts
CHANGED
|
@@ -113,6 +113,7 @@ export declare class IgcGridLite<T extends object = any> extends EventEmitterBas
|
|
|
113
113
|
private _updateObservers;
|
|
114
114
|
private _updateConfiguration;
|
|
115
115
|
protected _dataState: T[];
|
|
116
|
+
adoptRootStyles: boolean;
|
|
116
117
|
/** The data source for the grid. */
|
|
117
118
|
data: T[];
|
|
118
119
|
/**
|
package/components/grid.js
CHANGED
|
@@ -115,6 +115,7 @@ export class IgcGridLite extends EventEmitterBase {
|
|
|
115
115
|
this._initialSortExpressions = [];
|
|
116
116
|
this._initialFilterExpressions = [];
|
|
117
117
|
this._dataState = [];
|
|
118
|
+
this.adoptRootStyles = false;
|
|
118
119
|
this.data = [];
|
|
119
120
|
this.autoGenerate = false;
|
|
120
121
|
this.sortingOptions = {
|
|
@@ -131,6 +132,7 @@ export class IgcGridLite extends EventEmitterBase {
|
|
|
131
132
|
part="row"
|
|
132
133
|
exportparts="cell"
|
|
133
134
|
style=${styleMap(styles)}
|
|
135
|
+
.adoptRootStyles=${this.adoptRootStyles}
|
|
134
136
|
.index=${index}
|
|
135
137
|
.activeNode=${activeNode}
|
|
136
138
|
.data=${item}
|
|
@@ -212,6 +214,7 @@ export class IgcGridLite extends EventEmitterBase {
|
|
|
212
214
|
<igc-grid-lite-header-row
|
|
213
215
|
tabindex="0"
|
|
214
216
|
style=${styleMap(this._domController.columnSizes)}
|
|
217
|
+
.adoptRootStyles=${this.adoptRootStyles}
|
|
215
218
|
.columns=${this._stateController.columns}
|
|
216
219
|
></igc-grid-lite-header-row>
|
|
217
220
|
`;
|
|
@@ -243,6 +246,9 @@ export class IgcGridLite extends EventEmitterBase {
|
|
|
243
246
|
__decorate([
|
|
244
247
|
state()
|
|
245
248
|
], IgcGridLite.prototype, "_dataState", void 0);
|
|
249
|
+
__decorate([
|
|
250
|
+
property({ type: Boolean, reflect: true, attribute: 'adopt-root-styles' })
|
|
251
|
+
], IgcGridLite.prototype, "adoptRootStyles", void 0);
|
|
246
252
|
__decorate([
|
|
247
253
|
property({ attribute: false })
|
|
248
254
|
], IgcGridLite.prototype, "data", void 0);
|
package/components/grid.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../../src/components/grid.ts"],"names":[],"mappings":"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","sourcesContent":["import { ContextProvider } from '@lit/context';\nimport type { RenderItemFunction } from '@lit-labs/virtualizer/virtualize.js';\nimport {\n θaddThemingController as addThemingController,\n IgcButtonComponent,\n IgcChipComponent,\n IgcDropdownComponent,\n IgcInputComponent,\n} from 'igniteui-webcomponents';\nimport { html, nothing } from 'lit';\nimport { eventOptions, property, state } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { createDataOperationsController } from '../controllers/data-operation.js';\nimport { createDomController } from '../controllers/dom.js';\nimport { createStateController } from '../controllers/state.js';\nimport { PIPELINE } from '../internal/constants.js';\nimport { COLUMN_UPDATE_CONTEXT, GRID_STATE_CONTEXT } from '../internal/context.js';\nimport { getElementFromEventPath } from '../internal/element-from-event-path.js';\nimport { EventEmitterBase } from '../internal/mixins/event-emitter.js';\nimport { registerComponent } from '../internal/register.js';\nimport { GRID_TAG } from '../internal/tags.js';\nimport type {\n ColumnConfiguration,\n DataPipelineConfiguration,\n GridLiteSortingOptions,\n Keys,\n} from '../internal/types.js';\nimport { asArray, getFilterOperandsFor, isNumber, isString } from '../internal/utils.js';\nimport { watch } from '../internal/watch.js';\nimport type { FilterExpression } from '../operations/filter/types.js';\nimport type { SortingExpression } from '../operations/sort/types.js';\nimport { styles } from '../styles/themes/grid.base.css.js';\nimport { all } from '../styles/themes/grid-themes.js';\nimport { styles as shared } from '../styles/themes/shared/grid.common.css.js';\nimport IgcGridLiteCell from './cell.js';\nimport { IgcGridLiteColumn } from './column.js';\nimport IgcFilterRow from './filter-row.js';\nimport IgcGridLiteHeaderRow from './header-row.js';\nimport IgcGridLiteRow from './row.js';\nimport IgcVirtualizer from './virtualizer.js';\n\n/** Column reducer matching either direct column element or one nested in container */\nfunction columnReducer<T extends Element>(acc: T[], el: T): T[] {\n const tag = IgcGridLiteColumn.tagName;\n const column = el.matches(tag) ? el : el.querySelector(tag);\n if (column) acc.push(column as T);\n return acc;\n}\n\n/**\n * Event object for the filtering event of the grid.\n */\nexport interface IgcFilteringEvent<T extends object = any> {\n /**\n * The target column for the filter operation.\n */\n key: Keys<T>;\n\n /**\n * The filter expression(s) to apply.\n */\n expressions: FilterExpression<T>[];\n\n /**\n * The type of modification which will be applied to the filter\n * state of the column.\n *\n * @remarks\n * `add` - a new filter expression will be added to the state of the column.\n * `modify` - an existing filter expression will be modified.\n * `remove` - the expression(s) will be removed from the state of the column.\n */\n type: 'add' | 'modify' | 'remove';\n}\n\n/**\n * Event object for the filtered event of the grid.\n */\nexport interface IgcFilteredEvent<T extends object = any> {\n /**\n * The target column for the filter operation.\n */\n key: Keys<T>;\n\n /**\n * The filter state of the column after the operation.\n */\n state: FilterExpression<T>[];\n}\n\n/**\n * Events for the igc-grid-lite.\n */\nexport interface IgcGridLiteEventMap<T extends object = any> {\n /**\n * Emitted when sorting is initiated through the UI.\n * Returns the sort expression which will be used for the operation.\n *\n * @remarks\n * The event is cancellable which prevents the operation from being applied.\n * The expression can be modified prior to the operation running.\n *\n * @event\n */\n sorting: CustomEvent<SortingExpression<T, any>>;\n /**\n * Emitted when a sort operation initiated through the UI has completed.\n * Returns the sort expression used for the operation.\n *\n * @event\n */\n sorted: CustomEvent<SortingExpression<T, any>>;\n /**\n * Emitted when filtering is initiated through the UI.\n *\n * @remarks\n * The event is cancellable which prevents the operation from being applied.\n * The expression can be modified prior to the operation running.\n *\n * @event\n */\n filtering: CustomEvent<IgcFilteringEvent<T>>;\n /**\n * Emitted when a filter operation initiated through the UI has completed.\n * Returns the filter state for the affected column.\n *\n * @event\n */\n filtered: CustomEvent<IgcFilteredEvent<T>>;\n}\n\n/**\n * IgcGridLite is a web component for displaying data in a tabular format quick and easy.\n *\n * Out of the box it provides row virtualization, sort and filter operations (client and server side),\n * the ability to template cells and headers and column hiding.\n *\n * @element igc-grid-lite\n *\n * @fires sorting - Emitted when sorting is initiated through the UI.\n * @fires sorted - Emitted when a sort operation initiated through the UI has completed.\n * @fires filtering - Emitted when filtering is initiated through the UI.\n * @fires filtered - Emitted when a filter operation initiated through the UI has completed.\n *\n */\nexport class IgcGridLite<T extends object = any> extends EventEmitterBase<IgcGridLiteEventMap<T>> {\n public static get tagName() {\n return GRID_TAG;\n }\n\n public static override styles = [styles, shared];\n\n public static register(): void {\n registerComponent(\n IgcGridLite,\n IgcGridLiteColumn,\n IgcVirtualizer,\n IgcGridLiteRow,\n IgcGridLiteHeaderRow,\n IgcFilterRow,\n IgcButtonComponent,\n IgcChipComponent,\n IgcInputComponent,\n IgcDropdownComponent\n );\n }\n\n protected readonly _stateController = createStateController(this, this._updateObservers);\n protected readonly _domController = createDomController(this, this._stateController);\n protected readonly _dataController = createDataOperationsController(this);\n\n protected readonly _stateProvider = new ContextProvider(this, {\n context: GRID_STATE_CONTEXT,\n initialValue: this._stateController,\n });\n\n protected readonly _columnUpdateProvider = new ContextProvider(this, {\n context: COLUMN_UPDATE_CONTEXT,\n initialValue: ((config: ColumnConfiguration<T>) => {\n this._updateConfiguration(config);\n }) as any,\n });\n\n private _initialSortExpressions: SortingExpression<T>[] = [];\n private _initialFilterExpressions: FilterExpression<T>[] = [];\n\n private _updateObservers(): void {\n this._stateProvider.updateObservers();\n }\n\n private _updateConfiguration(config: ColumnConfiguration<T>): void {\n this._stateController.updateColumnsConfiguration(asArray(config));\n }\n\n @state()\n protected _dataState: T[] = [];\n\n /** The data source for the grid. */\n @property({ attribute: false })\n public data: T[] = [];\n\n /**\n * Whether the grid will try to \"resolve\" its column configuration based on the passed\n * data source.\n *\n * @remarks\n * This is usually executed on initial rendering in the DOM. It depends on having an existing data source\n * to infer the column configuration for the grid.\n * Passing an empty data source or having a late bound data source (such as a HTTP request) will usually\n * result in empty column configuration for the grid.\n *\n * This property is ignored if any existing column configuration already exists in the grid.\n *\n * In a scenario where you want to bind a new data source and still keep the auto-generation behavior,\n * make sure to reset the column collection of the grid before passing in the new data source.\n *\n * @example\n * ```typescript\n * // assuming autoGenerate is set to true\n * grid.columns = [];\n * grid.data = [...];\n * ```\n *\n * @attr auto-generate\n */\n @property({ type: Boolean, attribute: 'auto-generate' })\n public autoGenerate = false;\n\n /** Sort configuration property for the grid. */\n @property({ attribute: false })\n public sortingOptions: GridLiteSortingOptions = {\n mode: 'multiple',\n };\n\n /**\n * Configuration object which controls remote data operations for the grid.\n */\n @property({ attribute: false })\n public dataPipelineConfiguration!: DataPipelineConfiguration<T>;\n\n /**\n * Set the sort state for the grid.\n */\n public set sortingExpressions(expressions: SortingExpression<T>[]) {\n if (this.hasUpdated && expressions.length) {\n this.sort(expressions);\n } else {\n this._initialSortExpressions = expressions;\n }\n }\n\n /**\n * Get the sort state for the grid.\n */\n @property({ attribute: false })\n public get sortingExpressions(): SortingExpression<T>[] {\n return Array.from(this._stateController.sorting.state.values());\n }\n\n /**\n * Set the filter state for the grid.\n */\n public set filterExpressions(expressions: FilterExpression<T>[]) {\n if (this.hasUpdated && expressions.length) {\n this.filter(expressions);\n } else {\n this._initialFilterExpressions = expressions;\n }\n }\n\n /**\n * Get the filter state for the grid.\n */\n @property({ attribute: false })\n public get filterExpressions(): FilterExpression<T>[] {\n return this._stateController.filtering.state.values.flatMap((each) => each.all);\n }\n\n public get columns(): ColumnConfiguration<T>[] {\n return this._stateController.columns.map((col) => ({ ...col }));\n }\n\n /**\n * Returns the collection of rendered row elements in the grid.\n *\n * @remarks\n * Since the grid has virtualization, this property returns only the currently rendered\n * chunk of elements in the DOM.\n */\n public get rows() {\n return this._stateController.rows;\n }\n\n /**\n * Returns the state of the data source after sort/filter operations\n * have been applied.\n */\n public get dataView(): ReadonlyArray<T> {\n return this._dataState;\n }\n\n /**\n * The total number of items in the {@link IgcGridLite.dataView} collection.\n */\n public get totalItems(): number {\n return this._dataState.length;\n }\n\n @watch('data')\n protected dataChanged() {\n this._dataState = [...this.data];\n\n if (this.hasUpdated) {\n if (!this._hasAssignedColumns()) {\n this._stateController.setAutoColumnConfiguration();\n }\n this.pipeline();\n }\n }\n\n @watch(PIPELINE)\n protected async pipeline() {\n this._dataState = await this._dataController.apply([...this.data], this._stateController);\n }\n\n constructor() {\n super();\n\n addThemingController(this, all);\n }\n\n protected override createRenderRoot(): HTMLElement | DocumentFragment {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', this._handleSlotChange.bind(this));\n return root;\n }\n\n protected override firstUpdated(): void {\n this.updateComplete.then(() => {\n if (this.autoGenerate && !this._hasAssignedColumns()) {\n this._stateController.setAutoColumnConfiguration();\n }\n\n if (this._initialFilterExpressions.length) {\n this.filter(this._initialFilterExpressions);\n }\n\n if (this._initialSortExpressions.length) {\n this.sort(this._initialSortExpressions);\n }\n });\n }\n\n private _hasAssignedColumns(): boolean {\n const slot = this.renderRoot.querySelector('slot') as HTMLSlotElement;\n const assignedNodes = slot\n .assignedElements({ flatten: true })\n .reduce<Element[]>(columnReducer, []);\n return assignedNodes.length > 0;\n }\n\n private _handleSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const assignedNodes = slot\n .assignedElements({ flatten: true })\n .reduce<Element[]>(columnReducer, []);\n\n this._stateController.setColumnConfiguration(\n assignedNodes as unknown as ColumnConfiguration<T>[]\n );\n }\n\n /**\n * Performs a filter operation in the grid based on the passed expression(s).\n */\n public filter(config: FilterExpression<T> | FilterExpression<T>[]): void {\n this._stateController.filtering.filter(\n asArray(config).map((each) =>\n isString(each.condition)\n ? Object.assign(each, {\n condition: (getFilterOperandsFor(this.getColumn(each.key)!) as any)[each.condition],\n })\n : each\n )\n );\n }\n\n /**\n * Performs a sort operation in the grid based on the passed expression(s).\n */\n public sort(expressions: SortingExpression<T> | SortingExpression<T>[]) {\n this._stateController.sorting.sort(expressions);\n }\n\n /**\n * Resets the current sort state of the control.\n */\n public clearSort(key?: Keys<T>): void {\n this._stateController.sorting.reset(key);\n this.requestUpdate(PIPELINE);\n }\n\n /**\n * Resets the current filter state of the control.\n */\n public clearFilter(key?: Keys<T>): void {\n this._stateController.filtering.reset(key);\n this.requestUpdate(PIPELINE);\n }\n\n /**\n * Navigates to a position in the grid based on provided row index and column field.\n * @param row The row index to navigate to\n * @param column The column field to navigate to, if any\n * @param activate Optionally also activate the navigated cell\n */\n public async navigateTo(row: number, column?: Keys<T>, activate = false) {\n await this._stateController.navigation.navigateTo(row, column, activate);\n }\n\n /**\n * Returns a {@link ColumnConfiguration} for a given column.\n */\n public getColumn(id: Keys<T> | number): ColumnConfiguration<T> | undefined {\n return this._stateController.columns.find((column, index) =>\n isNumber(id) ? index === id : column.field === id\n );\n }\n\n @eventOptions({ capture: true })\n protected _bodyClickHandler(event: PointerEvent): void {\n const target = getElementFromEventPath<IgcGridLiteCell<T>>(IgcGridLiteCell.tagName, event);\n\n if (target) {\n this._stateController.active = { column: target.column.field, row: target.row.index };\n }\n }\n\n protected _bodyKeydownHandler(event: KeyboardEvent): void {\n if (event.target === this._stateController.virtualizer) {\n this._stateController.navigation.navigate(event);\n }\n }\n\n protected _renderRow: RenderItemFunction<T> = (item: T, index: number) => {\n const styles = {\n ...this._domController.columnSizes,\n ...this._domController.getActiveRowStyles(index),\n };\n const activeNode = this._stateController.active;\n\n return html`\n <igc-grid-lite-row\n part=\"row\"\n exportparts=\"cell\"\n style=${styleMap(styles)}\n .index=${index}\n .activeNode=${activeNode}\n .data=${item}\n .columns=${this._stateController.columns}\n ></igc-grid-lite-row>\n `;\n };\n\n protected _renderHeaderRow() {\n return html`\n <igc-grid-lite-header-row\n tabindex=\"0\"\n style=${styleMap(this._domController.columnSizes)}\n .columns=${this._stateController.columns}\n ></igc-grid-lite-header-row>\n `;\n }\n\n protected _renderBody() {\n return html`\n <igc-virtualizer\n tabindex=\"0\"\n .items=${this._dataState}\n .renderItem=${this._renderRow}\n @click=${this._bodyClickHandler}\n @keydown=${this._bodyKeydownHandler}\n ></igc-virtualizer>\n `;\n }\n\n protected _renderFilterRow() {\n return html`${cache(\n this._stateController.columns.some((column) => column.filterable)\n ? html`<igc-filter-row style=${styleMap(this._domController.columnSizes)}></igc-filter-row>`\n : nothing\n )}`;\n }\n\n protected override render() {\n return html`\n <slot part=\"column-sink\"></slot>\n ${this._stateController.resizing.renderIndicator()} ${this._renderHeaderRow()}\n ${this._renderFilterRow()} ${this._renderBody()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [IgcGridLite.tagName]: IgcGridLite;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"grid.js","sourceRoot":"","sources":["../../src/components/grid.ts"],"names":[],"mappings":"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","sourcesContent":["import { ContextProvider } from '@lit/context';\nimport type { RenderItemFunction } from '@lit-labs/virtualizer/virtualize.js';\nimport {\n θaddThemingController as addThemingController,\n IgcButtonComponent,\n IgcChipComponent,\n IgcDropdownComponent,\n IgcInputComponent,\n} from 'igniteui-webcomponents';\nimport { html, nothing } from 'lit';\nimport { eventOptions, property, state } from 'lit/decorators.js';\nimport { cache } from 'lit/directives/cache.js';\nimport { styleMap } from 'lit/directives/style-map.js';\nimport { createDataOperationsController } from '../controllers/data-operation.js';\nimport { createDomController } from '../controllers/dom.js';\nimport { createStateController } from '../controllers/state.js';\nimport { PIPELINE } from '../internal/constants.js';\nimport { COLUMN_UPDATE_CONTEXT, GRID_STATE_CONTEXT } from '../internal/context.js';\nimport { getElementFromEventPath } from '../internal/element-from-event-path.js';\nimport { EventEmitterBase } from '../internal/mixins/event-emitter.js';\nimport { registerComponent } from '../internal/register.js';\nimport { GRID_TAG } from '../internal/tags.js';\nimport type {\n ColumnConfiguration,\n DataPipelineConfiguration,\n GridLiteSortingOptions,\n Keys,\n} from '../internal/types.js';\nimport { asArray, getFilterOperandsFor, isNumber, isString } from '../internal/utils.js';\nimport { watch } from '../internal/watch.js';\nimport type { FilterExpression } from '../operations/filter/types.js';\nimport type { SortingExpression } from '../operations/sort/types.js';\nimport { styles } from '../styles/themes/grid.base.css.js';\nimport { all } from '../styles/themes/grid-themes.js';\nimport { styles as shared } from '../styles/themes/shared/grid.common.css.js';\nimport IgcGridLiteCell from './cell.js';\nimport { IgcGridLiteColumn } from './column.js';\nimport IgcFilterRow from './filter-row.js';\nimport IgcGridLiteHeaderRow from './header-row.js';\nimport IgcGridLiteRow from './row.js';\nimport IgcVirtualizer from './virtualizer.js';\n\n/** Column reducer matching either direct column element or one nested in container */\nfunction columnReducer<T extends Element>(acc: T[], el: T): T[] {\n const tag = IgcGridLiteColumn.tagName;\n const column = el.matches(tag) ? el : el.querySelector(tag);\n if (column) acc.push(column as T);\n return acc;\n}\n\n/**\n * Event object for the filtering event of the grid.\n */\nexport interface IgcFilteringEvent<T extends object = any> {\n /**\n * The target column for the filter operation.\n */\n key: Keys<T>;\n\n /**\n * The filter expression(s) to apply.\n */\n expressions: FilterExpression<T>[];\n\n /**\n * The type of modification which will be applied to the filter\n * state of the column.\n *\n * @remarks\n * `add` - a new filter expression will be added to the state of the column.\n * `modify` - an existing filter expression will be modified.\n * `remove` - the expression(s) will be removed from the state of the column.\n */\n type: 'add' | 'modify' | 'remove';\n}\n\n/**\n * Event object for the filtered event of the grid.\n */\nexport interface IgcFilteredEvent<T extends object = any> {\n /**\n * The target column for the filter operation.\n */\n key: Keys<T>;\n\n /**\n * The filter state of the column after the operation.\n */\n state: FilterExpression<T>[];\n}\n\n/**\n * Events for the igc-grid-lite.\n */\nexport interface IgcGridLiteEventMap<T extends object = any> {\n /**\n * Emitted when sorting is initiated through the UI.\n * Returns the sort expression which will be used for the operation.\n *\n * @remarks\n * The event is cancellable which prevents the operation from being applied.\n * The expression can be modified prior to the operation running.\n *\n * @event\n */\n sorting: CustomEvent<SortingExpression<T, any>>;\n /**\n * Emitted when a sort operation initiated through the UI has completed.\n * Returns the sort expression used for the operation.\n *\n * @event\n */\n sorted: CustomEvent<SortingExpression<T, any>>;\n /**\n * Emitted when filtering is initiated through the UI.\n *\n * @remarks\n * The event is cancellable which prevents the operation from being applied.\n * The expression can be modified prior to the operation running.\n *\n * @event\n */\n filtering: CustomEvent<IgcFilteringEvent<T>>;\n /**\n * Emitted when a filter operation initiated through the UI has completed.\n * Returns the filter state for the affected column.\n *\n * @event\n */\n filtered: CustomEvent<IgcFilteredEvent<T>>;\n}\n\n/**\n * IgcGridLite is a web component for displaying data in a tabular format quick and easy.\n *\n * Out of the box it provides row virtualization, sort and filter operations (client and server side),\n * the ability to template cells and headers and column hiding.\n *\n * @element igc-grid-lite\n *\n * @fires sorting - Emitted when sorting is initiated through the UI.\n * @fires sorted - Emitted when a sort operation initiated through the UI has completed.\n * @fires filtering - Emitted when filtering is initiated through the UI.\n * @fires filtered - Emitted when a filter operation initiated through the UI has completed.\n *\n */\nexport class IgcGridLite<T extends object = any> extends EventEmitterBase<IgcGridLiteEventMap<T>> {\n public static get tagName() {\n return GRID_TAG;\n }\n\n public static override styles = [styles, shared];\n\n public static register(): void {\n registerComponent(\n IgcGridLite,\n IgcGridLiteColumn,\n IgcVirtualizer,\n IgcGridLiteRow,\n IgcGridLiteHeaderRow,\n IgcFilterRow,\n IgcButtonComponent,\n IgcChipComponent,\n IgcInputComponent,\n IgcDropdownComponent\n );\n }\n\n protected readonly _stateController = createStateController(this, this._updateObservers);\n protected readonly _domController = createDomController(this, this._stateController);\n protected readonly _dataController = createDataOperationsController(this);\n\n protected readonly _stateProvider = new ContextProvider(this, {\n context: GRID_STATE_CONTEXT,\n initialValue: this._stateController,\n });\n\n protected readonly _columnUpdateProvider = new ContextProvider(this, {\n context: COLUMN_UPDATE_CONTEXT,\n initialValue: ((config: ColumnConfiguration<T>) => {\n this._updateConfiguration(config);\n }) as any,\n });\n\n private _initialSortExpressions: SortingExpression<T>[] = [];\n private _initialFilterExpressions: FilterExpression<T>[] = [];\n\n private _updateObservers(): void {\n this._stateProvider.updateObservers();\n }\n\n private _updateConfiguration(config: ColumnConfiguration<T>): void {\n this._stateController.updateColumnsConfiguration(asArray(config));\n }\n\n @state()\n protected _dataState: T[] = [];\n\n @property({ type: Boolean, reflect: true, attribute: 'adopt-root-styles' })\n public adoptRootStyles = false;\n\n /** The data source for the grid. */\n @property({ attribute: false })\n public data: T[] = [];\n\n /**\n * Whether the grid will try to \"resolve\" its column configuration based on the passed\n * data source.\n *\n * @remarks\n * This is usually executed on initial rendering in the DOM. It depends on having an existing data source\n * to infer the column configuration for the grid.\n * Passing an empty data source or having a late bound data source (such as a HTTP request) will usually\n * result in empty column configuration for the grid.\n *\n * This property is ignored if any existing column configuration already exists in the grid.\n *\n * In a scenario where you want to bind a new data source and still keep the auto-generation behavior,\n * make sure to reset the column collection of the grid before passing in the new data source.\n *\n * @example\n * ```typescript\n * // assuming autoGenerate is set to true\n * grid.columns = [];\n * grid.data = [...];\n * ```\n *\n * @attr auto-generate\n */\n @property({ type: Boolean, attribute: 'auto-generate' })\n public autoGenerate = false;\n\n /** Sort configuration property for the grid. */\n @property({ attribute: false })\n public sortingOptions: GridLiteSortingOptions = {\n mode: 'multiple',\n };\n\n /**\n * Configuration object which controls remote data operations for the grid.\n */\n @property({ attribute: false })\n public dataPipelineConfiguration!: DataPipelineConfiguration<T>;\n\n /**\n * Set the sort state for the grid.\n */\n public set sortingExpressions(expressions: SortingExpression<T>[]) {\n if (this.hasUpdated && expressions.length) {\n this.sort(expressions);\n } else {\n this._initialSortExpressions = expressions;\n }\n }\n\n /**\n * Get the sort state for the grid.\n */\n @property({ attribute: false })\n public get sortingExpressions(): SortingExpression<T>[] {\n return Array.from(this._stateController.sorting.state.values());\n }\n\n /**\n * Set the filter state for the grid.\n */\n public set filterExpressions(expressions: FilterExpression<T>[]) {\n if (this.hasUpdated && expressions.length) {\n this.filter(expressions);\n } else {\n this._initialFilterExpressions = expressions;\n }\n }\n\n /**\n * Get the filter state for the grid.\n */\n @property({ attribute: false })\n public get filterExpressions(): FilterExpression<T>[] {\n return this._stateController.filtering.state.values.flatMap((each) => each.all);\n }\n\n public get columns(): ColumnConfiguration<T>[] {\n return this._stateController.columns.map((col) => ({ ...col }));\n }\n\n /**\n * Returns the collection of rendered row elements in the grid.\n *\n * @remarks\n * Since the grid has virtualization, this property returns only the currently rendered\n * chunk of elements in the DOM.\n */\n public get rows() {\n return this._stateController.rows;\n }\n\n /**\n * Returns the state of the data source after sort/filter operations\n * have been applied.\n */\n public get dataView(): ReadonlyArray<T> {\n return this._dataState;\n }\n\n /**\n * The total number of items in the {@link IgcGridLite.dataView} collection.\n */\n public get totalItems(): number {\n return this._dataState.length;\n }\n\n @watch('data')\n protected dataChanged() {\n this._dataState = [...this.data];\n\n if (this.hasUpdated) {\n if (!this._hasAssignedColumns()) {\n this._stateController.setAutoColumnConfiguration();\n }\n this.pipeline();\n }\n }\n\n @watch(PIPELINE)\n protected async pipeline() {\n this._dataState = await this._dataController.apply([...this.data], this._stateController);\n }\n\n constructor() {\n super();\n\n addThemingController(this, all);\n }\n\n protected override createRenderRoot(): HTMLElement | DocumentFragment {\n const root = super.createRenderRoot();\n root.addEventListener('slotchange', this._handleSlotChange.bind(this));\n return root;\n }\n\n protected override firstUpdated(): void {\n this.updateComplete.then(() => {\n if (this.autoGenerate && !this._hasAssignedColumns()) {\n this._stateController.setAutoColumnConfiguration();\n }\n\n if (this._initialFilterExpressions.length) {\n this.filter(this._initialFilterExpressions);\n }\n\n if (this._initialSortExpressions.length) {\n this.sort(this._initialSortExpressions);\n }\n });\n }\n\n private _hasAssignedColumns(): boolean {\n const slot = this.renderRoot.querySelector('slot') as HTMLSlotElement;\n const assignedNodes = slot\n .assignedElements({ flatten: true })\n .reduce<Element[]>(columnReducer, []);\n return assignedNodes.length > 0;\n }\n\n private _handleSlotChange(event: Event): void {\n const slot = event.target as HTMLSlotElement;\n const assignedNodes = slot\n .assignedElements({ flatten: true })\n .reduce<Element[]>(columnReducer, []);\n\n this._stateController.setColumnConfiguration(\n assignedNodes as unknown as ColumnConfiguration<T>[]\n );\n }\n\n /**\n * Performs a filter operation in the grid based on the passed expression(s).\n */\n public filter(config: FilterExpression<T> | FilterExpression<T>[]): void {\n this._stateController.filtering.filter(\n asArray(config).map((each) =>\n isString(each.condition)\n ? Object.assign(each, {\n condition: (getFilterOperandsFor(this.getColumn(each.key)!) as any)[each.condition],\n })\n : each\n )\n );\n }\n\n /**\n * Performs a sort operation in the grid based on the passed expression(s).\n */\n public sort(expressions: SortingExpression<T> | SortingExpression<T>[]) {\n this._stateController.sorting.sort(expressions);\n }\n\n /**\n * Resets the current sort state of the control.\n */\n public clearSort(key?: Keys<T>): void {\n this._stateController.sorting.reset(key);\n this.requestUpdate(PIPELINE);\n }\n\n /**\n * Resets the current filter state of the control.\n */\n public clearFilter(key?: Keys<T>): void {\n this._stateController.filtering.reset(key);\n this.requestUpdate(PIPELINE);\n }\n\n /**\n * Navigates to a position in the grid based on provided row index and column field.\n * @param row The row index to navigate to\n * @param column The column field to navigate to, if any\n * @param activate Optionally also activate the navigated cell\n */\n public async navigateTo(row: number, column?: Keys<T>, activate = false) {\n await this._stateController.navigation.navigateTo(row, column, activate);\n }\n\n /**\n * Returns a {@link ColumnConfiguration} for a given column.\n */\n public getColumn(id: Keys<T> | number): ColumnConfiguration<T> | undefined {\n return this._stateController.columns.find((column, index) =>\n isNumber(id) ? index === id : column.field === id\n );\n }\n\n @eventOptions({ capture: true })\n protected _bodyClickHandler(event: PointerEvent): void {\n const target = getElementFromEventPath<IgcGridLiteCell<T>>(IgcGridLiteCell.tagName, event);\n\n if (target) {\n this._stateController.active = { column: target.column.field, row: target.row.index };\n }\n }\n\n protected _bodyKeydownHandler(event: KeyboardEvent): void {\n if (event.target === this._stateController.virtualizer) {\n this._stateController.navigation.navigate(event);\n }\n }\n\n protected _renderRow: RenderItemFunction<T> = (item: T, index: number) => {\n const styles = {\n ...this._domController.columnSizes,\n ...this._domController.getActiveRowStyles(index),\n };\n const activeNode = this._stateController.active;\n\n return html`\n <igc-grid-lite-row\n part=\"row\"\n exportparts=\"cell\"\n style=${styleMap(styles)}\n .adoptRootStyles=${this.adoptRootStyles}\n .index=${index}\n .activeNode=${activeNode}\n .data=${item}\n .columns=${this._stateController.columns}\n ></igc-grid-lite-row>\n `;\n };\n\n protected _renderHeaderRow() {\n return html`\n <igc-grid-lite-header-row\n tabindex=\"0\"\n style=${styleMap(this._domController.columnSizes)}\n .adoptRootStyles=${this.adoptRootStyles}\n .columns=${this._stateController.columns}\n ></igc-grid-lite-header-row>\n `;\n }\n\n protected _renderBody() {\n return html`\n <igc-virtualizer\n tabindex=\"0\"\n .items=${this._dataState}\n .renderItem=${this._renderRow}\n @click=${this._bodyClickHandler}\n @keydown=${this._bodyKeydownHandler}\n ></igc-virtualizer>\n `;\n }\n\n protected _renderFilterRow() {\n return html`${cache(\n this._stateController.columns.some((column) => column.filterable)\n ? html`<igc-filter-row style=${styleMap(this._domController.columnSizes)}></igc-filter-row>`\n : nothing\n )}`;\n }\n\n protected override render() {\n return html`\n <slot part=\"column-sink\"></slot>\n ${this._stateController.resizing.renderIndicator()} ${this._renderHeaderRow()}\n ${this._renderFilterRow()} ${this._renderBody()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [IgcGridLite.tagName]: IgcGridLite;\n }\n}\n"]}
|
|
@@ -6,6 +6,7 @@ export default class IgcGridLiteHeaderRow<T extends object> extends LitElement {
|
|
|
6
6
|
static styles: import("lit").CSSResult;
|
|
7
7
|
static register(): void;
|
|
8
8
|
private readonly _state?;
|
|
9
|
+
adoptRootStyles: boolean;
|
|
9
10
|
columns: ColumnConfiguration<T>[];
|
|
10
11
|
get headers(): IgcGridLiteHeader<T>[];
|
|
11
12
|
constructor();
|
package/components/header-row.js
CHANGED
|
@@ -5,9 +5,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
7
|
import { consume } from '@lit/context';
|
|
8
|
-
import { html, LitElement
|
|
8
|
+
import { html, LitElement } from 'lit';
|
|
9
9
|
import { property } from 'lit/decorators.js';
|
|
10
|
-
import {
|
|
10
|
+
import { repeat } from 'lit/directives/repeat.js';
|
|
11
11
|
import { GRID_STATE_CONTEXT } from '../internal/context.js';
|
|
12
12
|
import { getElementFromEventPath } from '../internal/element-from-event-path.js';
|
|
13
13
|
import { partMap } from '../internal/part-map.js';
|
|
@@ -28,6 +28,7 @@ export default class IgcGridLiteHeaderRow extends LitElement {
|
|
|
28
28
|
}
|
|
29
29
|
constructor() {
|
|
30
30
|
super();
|
|
31
|
+
this.adoptRootStyles = false;
|
|
31
32
|
this.columns = [];
|
|
32
33
|
this.addEventListener('click', this._setActiveFilterColumn);
|
|
33
34
|
}
|
|
@@ -43,19 +44,24 @@ export default class IgcGridLiteHeaderRow extends LitElement {
|
|
|
43
44
|
}
|
|
44
45
|
render() {
|
|
45
46
|
const filterRow = this._state?.filtering.filterRow;
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
47
|
+
const columns = this.columns.filter((column) => !column.hidden);
|
|
48
|
+
return html `
|
|
49
|
+
${repeat(columns, (column) => column, (column) => html `
|
|
50
|
+
<igc-grid-lite-header
|
|
51
|
+
part=${partMap({ filtered: column.field === filterRow?.column?.field })}
|
|
52
|
+
.adoptRootStyles=${this.adoptRootStyles}
|
|
53
|
+
.column=${column}
|
|
54
|
+
></igc-grid-lite-header>
|
|
55
|
+
`)}
|
|
56
|
+
`;
|
|
54
57
|
}
|
|
55
58
|
}
|
|
56
59
|
__decorate([
|
|
57
60
|
consume({ context: GRID_STATE_CONTEXT, subscribe: true })
|
|
58
61
|
], IgcGridLiteHeaderRow.prototype, "_state", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
property({ attribute: false })
|
|
64
|
+
], IgcGridLiteHeaderRow.prototype, "adoptRootStyles", void 0);
|
|
59
65
|
__decorate([
|
|
60
66
|
property({ attribute: false })
|
|
61
67
|
], IgcGridLiteHeaderRow.prototype, "columns", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header-row.js","sourceRoot":"","sources":["../../src/components/header-row.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"header-row.js","sourceRoot":"","sources":["../../src/components/header-row.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAuB,MAAM,KAAK,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAElD,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAE1D,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAC;AACrE,OAAO,iBAAiB,MAAM,aAAa,CAAC;AAE5C,MAAM,CAAC,OAAO,OAAO,oBAAuC,SAAQ,UAAU;IACrE,MAAM,KAAK,OAAO;QACvB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;aACsB,WAAM,GAAG,MAAM,AAAT,CAAU;IAEhC,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,CAAC;IAC7D,CAAC;IAWD,IAAW,OAAO;QAChB,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAuB,iBAAiB,CAAC,OAAO,CAAC,CAClF,CAAC;IACJ,CAAC;IAED;QACE,KAAK,EAAE,CAAC;QAZH,oBAAe,GAAG,KAAK,CAAC;QAGxB,YAAO,GAA6B,EAAE,CAAC;QAU5C,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;IAC9D,CAAC;IAEO,sBAAsB,CAAC,KAAmB;QAChD,MAAM,MAAM,GAAG,uBAAuB,CAAuB,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAC/F,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,eAAe,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzD,CAAC;IAEkB,YAAY,CAAC,KAA2B;QACzD,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,CAAC,aAAa,EAAE,CAAC;QACzB,CAAC;QAED,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEkB,MAAM;QACvB,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,SAAS,CAAC;QACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhE,OAAO,IAAI,CAAA;QACP,MAAM,CACN,OAAO,EACP,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAClB,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAA;;mBAEL,OAAO,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;+BACpD,IAAI,CAAC,eAAe;sBAC7B,MAAM;;SAEnB,CACF;KACF,CAAC;IACJ,CAAC;;AAjDgB;IADhB,OAAO,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC;oDACb;AAGtC;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;6DACA;AAGxB;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;qDACe","sourcesContent":["import { consume } from '@lit/context';\nimport { html, LitElement, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport type { StateController } from '../controllers/state.js';\nimport { GRID_STATE_CONTEXT } from '../internal/context.js';\nimport { getElementFromEventPath } from '../internal/element-from-event-path.js';\nimport { partMap } from '../internal/part-map.js';\nimport { registerComponent } from '../internal/register.js';\nimport { GRID_HEADER_ROW_TAG } from '../internal/tags.js';\nimport type { ColumnConfiguration } from '../internal/types.js';\nimport { styles } from '../styles/header-row/header-row.base.css.js';\nimport IgcGridLiteHeader from './header.js';\n\nexport default class IgcGridLiteHeaderRow<T extends object> extends LitElement {\n public static get tagName() {\n return GRID_HEADER_ROW_TAG;\n }\n public static override styles = styles;\n\n public static register(): void {\n registerComponent(IgcGridLiteHeaderRow, IgcGridLiteHeader);\n }\n\n @consume({ context: GRID_STATE_CONTEXT, subscribe: true })\n private readonly _state?: StateController<T>;\n\n @property({ attribute: false })\n public adoptRootStyles = false;\n\n @property({ attribute: false })\n public columns: ColumnConfiguration<T>[] = [];\n\n public get headers(): IgcGridLiteHeader<T>[] {\n return Array.from(\n this.renderRoot.querySelectorAll<IgcGridLiteHeader<T>>(IgcGridLiteHeader.tagName)\n );\n }\n\n constructor() {\n super();\n this.addEventListener('click', this._setActiveFilterColumn);\n }\n\n private _setActiveFilterColumn(event: PointerEvent): void {\n const header = getElementFromEventPath<IgcGridLiteHeader<T>>(IgcGridLiteHeader.tagName, event);\n this._state?.filtering.setActiveColumn(header?.column);\n }\n\n protected override shouldUpdate(props: PropertyValues<this>): boolean {\n for (const header of this.headers) {\n header.requestUpdate();\n }\n\n return super.shouldUpdate(props);\n }\n\n protected override render() {\n const filterRow = this._state?.filtering.filterRow;\n const columns = this.columns.filter((column) => !column.hidden);\n\n return html`\n ${repeat(\n columns,\n (column) => column,\n (column) => html`\n <igc-grid-lite-header\n part=${partMap({ filtered: column.field === filterRow?.column?.field })}\n .adoptRootStyles=${this.adoptRootStyles}\n .column=${column}\n ></igc-grid-lite-header>\n `\n )}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [IgcGridLiteHeaderRow.tagName]: IgcGridLiteHeaderRow<object>;\n }\n}\n"]}
|
package/components/header.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { LitElement, nothing } from 'lit';
|
|
1
|
+
import { LitElement, nothing, type PropertyValues } from 'lit';
|
|
2
2
|
import type { StateController } from '../controllers/state.js';
|
|
3
3
|
import type { ColumnConfiguration, IgcHeaderContext } from '../internal/types.js';
|
|
4
4
|
export default class IgcGridLiteHeader<T extends object> extends LitElement {
|
|
@@ -6,15 +6,19 @@ export default class IgcGridLiteHeader<T extends object> extends LitElement {
|
|
|
6
6
|
static get tagName(): "igc-grid-lite-header";
|
|
7
7
|
static styles: import("lit").CSSResult;
|
|
8
8
|
static register(): void;
|
|
9
|
+
private readonly _adoptedStylesController;
|
|
9
10
|
protected get context(): IgcHeaderContext<T>;
|
|
10
11
|
protected get isSortable(): boolean;
|
|
11
12
|
protected get resizeController(): import("../controllers/resize.js").ResizeController<T>;
|
|
12
13
|
state: StateController<T>;
|
|
13
14
|
column: ColumnConfiguration<T>;
|
|
15
|
+
adoptRootStyles: boolean;
|
|
14
16
|
constructor();
|
|
15
|
-
protected
|
|
17
|
+
protected update(props: PropertyValues<this>): void;
|
|
18
|
+
private _handleThemeChange;
|
|
19
|
+
protected renderSortPart(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
16
20
|
protected renderContentPart(): import("lit-html").TemplateResult<1>;
|
|
17
|
-
protected renderResizePart():
|
|
21
|
+
protected renderResizePart(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
18
22
|
protected render(): import("lit-html").TemplateResult<1>;
|
|
19
23
|
}
|
|
20
24
|
declare global {
|
package/components/header.js
CHANGED
|
@@ -8,6 +8,7 @@ import { consume } from '@lit/context';
|
|
|
8
8
|
import { θaddThemingController as addThemingController, IgcIconComponent, } from 'igniteui-webcomponents';
|
|
9
9
|
import { html, LitElement, nothing } from 'lit';
|
|
10
10
|
import { property } from 'lit/decorators.js';
|
|
11
|
+
import { AdoptedStylesController } from '../controllers/root-styles.js';
|
|
11
12
|
import { MIN_COL_RESIZE_WIDTH, SORT_ICON_ASCENDING, SORT_ICON_DESCENDING, } from '../internal/constants.js';
|
|
12
13
|
import { GRID_STATE_CONTEXT } from '../internal/context.js';
|
|
13
14
|
import { partMap } from '../internal/part-map.js';
|
|
@@ -37,7 +38,33 @@ export default class IgcGridLiteHeader extends LitElement {
|
|
|
37
38
|
}
|
|
38
39
|
constructor() {
|
|
39
40
|
super();
|
|
40
|
-
|
|
41
|
+
this._adoptedStylesController = new AdoptedStylesController(this);
|
|
42
|
+
this.adoptRootStyles = false;
|
|
43
|
+
this.#handleResize = ({ clientX }) => {
|
|
44
|
+
const { left } = this.getBoundingClientRect();
|
|
45
|
+
const width = Math.max(clientX - left, MIN_COL_RESIZE_WIDTH);
|
|
46
|
+
const x = this.offsetLeft + width;
|
|
47
|
+
this.resizeController.resize(this.column, width, x);
|
|
48
|
+
};
|
|
49
|
+
this.#handlePointerLost = () => {
|
|
50
|
+
this.resizeController.indicatorActive = false;
|
|
51
|
+
this.removeEventListener('pointermove', this.#handleResize);
|
|
52
|
+
this.resizeController.stop();
|
|
53
|
+
};
|
|
54
|
+
this.#handleAutosize = () => this.resizeController.autosize(this.column, this);
|
|
55
|
+
addThemingController(this, all, {
|
|
56
|
+
themeChange: this._handleThemeChange,
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
update(props) {
|
|
60
|
+
if (props.has('adoptRootStyles')) {
|
|
61
|
+
this._adoptedStylesController.shouldAdoptStyles(this.adoptRootStyles && this.column.headerTemplate != null);
|
|
62
|
+
}
|
|
63
|
+
super.update(props);
|
|
64
|
+
}
|
|
65
|
+
_handleThemeChange() {
|
|
66
|
+
AdoptedStylesController.invalidateCache(this.ownerDocument);
|
|
67
|
+
this._adoptedStylesController.shouldAdoptStyles(this.adoptRootStyles && this.column.headerTemplate != null);
|
|
41
68
|
}
|
|
42
69
|
#addResizeEventHandlers() {
|
|
43
70
|
const config = { once: true };
|
|
@@ -52,12 +79,7 @@ export default class IgcGridLiteHeader extends LitElement {
|
|
|
52
79
|
e.stopPropagation();
|
|
53
80
|
this.state.sorting.sortFromHeaderClick(this.column);
|
|
54
81
|
}
|
|
55
|
-
#handleResize
|
|
56
|
-
const { left } = this.getBoundingClientRect();
|
|
57
|
-
const width = Math.max(clientX - left, MIN_COL_RESIZE_WIDTH);
|
|
58
|
-
const x = this.offsetLeft + width;
|
|
59
|
-
this.resizeController.resize(this.column, width, x);
|
|
60
|
-
};
|
|
82
|
+
#handleResize;
|
|
61
83
|
#handleResizeStart(ev) {
|
|
62
84
|
const { target, pointerId } = ev;
|
|
63
85
|
ev.preventDefault();
|
|
@@ -65,12 +87,8 @@ export default class IgcGridLiteHeader extends LitElement {
|
|
|
65
87
|
this.resizeController.start(this);
|
|
66
88
|
target.setPointerCapture(pointerId);
|
|
67
89
|
}
|
|
68
|
-
#handlePointerLost
|
|
69
|
-
|
|
70
|
-
this.removeEventListener('pointermove', this.#handleResize);
|
|
71
|
-
this.resizeController.stop();
|
|
72
|
-
};
|
|
73
|
-
#handleAutosize = () => this.resizeController.autosize(this.column, this);
|
|
90
|
+
#handlePointerLost;
|
|
91
|
+
#handleAutosize;
|
|
74
92
|
renderSortPart() {
|
|
75
93
|
const state = this.state.sorting.state.get(this.column.field);
|
|
76
94
|
const idx = Array.from(this.state.sorting.state.values()).indexOf(state);
|
|
@@ -135,4 +153,7 @@ __decorate([
|
|
|
135
153
|
__decorate([
|
|
136
154
|
property({ attribute: false })
|
|
137
155
|
], IgcGridLiteHeader.prototype, "column", void 0);
|
|
156
|
+
__decorate([
|
|
157
|
+
property({ attribute: false })
|
|
158
|
+
], IgcGridLiteHeader.prototype, "adoptRootStyles", void 0);
|
|
138
159
|
//# sourceMappingURL=header.js.map
|
package/components/header.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"header.js","sourceRoot":"","sources":["../../src/components/header.ts"],"names":[],"mappings":"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","sourcesContent":["import { consume } from '@lit/context';\nimport {\n θaddThemingController as addThemingController,\n IgcIconComponent,\n} from 'igniteui-webcomponents';\nimport { html, LitElement, nothing } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport type { StateController } from '../controllers/state.js';\nimport {\n MIN_COL_RESIZE_WIDTH,\n SORT_ICON_ASCENDING,\n SORT_ICON_DESCENDING,\n} from '../internal/constants.js';\nimport { GRID_STATE_CONTEXT } from '../internal/context.js';\nimport { partMap } from '../internal/part-map.js';\nimport { registerComponent } from '../internal/register.js';\nimport { GRID_HEADER_TAG } from '../internal/tags.js';\nimport type { ColumnConfiguration, IgcHeaderContext } from '../internal/types.js';\nimport { styles } from '../styles/header-cell/header-cell.css.js';\nimport { all } from '../styles/themes/grid-header-themes.js';\n\nexport default class IgcGridLiteHeader<T extends object> extends LitElement {\n public static get tagName() {\n return GRID_HEADER_TAG;\n }\n\n public static override styles = styles;\n\n public static register(): void {\n registerComponent(IgcGridLiteHeader, IgcIconComponent);\n }\n\n protected get context(): IgcHeaderContext<T> {\n return {\n parent: this,\n column: this.column,\n };\n }\n\n protected get isSortable() {\n return Boolean(this.column.sortable);\n }\n\n protected get resizeController() {\n return this.state.resizing;\n }\n\n @consume({ context: GRID_STATE_CONTEXT, subscribe: true })\n @property({ attribute: false })\n public state!: StateController<T>;\n\n @property({ attribute: false })\n public column!: ColumnConfiguration<T>;\n\n constructor() {\n super();\n\n addThemingController(this, all);\n }\n\n #addResizeEventHandlers() {\n const config: AddEventListenerOptions = { once: true };\n\n this.addEventListener(\n 'gotpointercapture',\n () => {\n this.resizeController.indicatorActive = true;\n },\n config\n );\n this.addEventListener('lostpointercapture', this.#handlePointerLost, config);\n this.addEventListener('pointerup', (e) => this.releasePointerCapture(e.pointerId), config);\n this.addEventListener('pointermove', this.#handleResize);\n }\n\n #handleClick(e: Event) {\n e.stopPropagation();\n this.state.sorting.sortFromHeaderClick(this.column);\n }\n\n #handleResize = ({ clientX }: PointerEvent) => {\n const { left } = this.getBoundingClientRect();\n const width = Math.max(clientX - left, MIN_COL_RESIZE_WIDTH);\n const x = this.offsetLeft + width;\n\n this.resizeController.resize(this.column, width, x);\n };\n\n #handleResizeStart(ev: PointerEvent) {\n const { target, pointerId } = ev;\n\n ev.preventDefault();\n\n this.#addResizeEventHandlers();\n this.resizeController.start(this);\n\n (target as HTMLElement).setPointerCapture(pointerId);\n }\n\n #handlePointerLost = () => {\n this.resizeController.indicatorActive = false;\n this.removeEventListener('pointermove', this.#handleResize);\n this.resizeController.stop();\n };\n\n #handleAutosize = () => this.resizeController.autosize(this.column, this);\n\n protected renderSortPart() {\n const state = this.state.sorting.state.get(this.column.field);\n const idx = Array.from(this.state.sorting.state.values()).indexOf(state!);\n const attr =\n this.state.host.sortingOptions.mode === 'multiple' ? (idx > -1 ? idx + 1 : nothing) : nothing;\n const icon = state\n ? state.direction === 'ascending'\n ? SORT_ICON_ASCENDING\n : SORT_ICON_DESCENDING\n : SORT_ICON_ASCENDING;\n\n return state || this.isSortable\n ? html`<span\n part=${partMap({ action: true, sorted: !!state?.direction })}\n @click=${this.isSortable ? this.#handleClick : nothing}\n >\n <igc-icon\n part=${partMap({ 'sorting-action': !!state })}\n data-sortIndex=${attr}\n name=${icon}\n collection=\"internal\"\n ></igc-icon>\n </span>`\n : nothing;\n }\n\n protected renderContentPart() {\n const defaultContent = this.column.header ?? this.column.field;\n const template = this.column.headerTemplate;\n\n return html`\n <span part=\"title\">\n <span>${template ? template(this.context) : html`${defaultContent}`}</span>\n </span>\n `;\n }\n\n protected renderResizePart() {\n return this.column.resizable\n ? html`<span\n part=\"resizable\"\n @dblclick=${this.#handleAutosize}\n @pointerdown=${this.#handleResizeStart}\n ></span>`\n : nothing;\n }\n\n protected override render() {\n return html`\n <div\n part=${partMap({\n content: true,\n sortable: this.isSortable,\n resizing: this.resizeController.indicatorActive,\n })}\n >\n ${this.renderContentPart()}\n <div part=\"actions\">${this.renderSortPart()}</div>\n </div>\n ${this.renderResizePart()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [IgcGridLiteHeader.tagName]: IgcGridLiteHeader<object>;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"header.js","sourceRoot":"","sources":["../../src/components/header.ts"],"names":[],"mappings":"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","sourcesContent":["import { consume } from '@lit/context';\nimport {\n θaddThemingController as addThemingController,\n IgcIconComponent,\n} from 'igniteui-webcomponents';\nimport { html, LitElement, nothing, type PropertyValues } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { AdoptedStylesController } from '../controllers/root-styles.js';\nimport type { StateController } from '../controllers/state.js';\nimport {\n MIN_COL_RESIZE_WIDTH,\n SORT_ICON_ASCENDING,\n SORT_ICON_DESCENDING,\n} from '../internal/constants.js';\nimport { GRID_STATE_CONTEXT } from '../internal/context.js';\nimport { partMap } from '../internal/part-map.js';\nimport { registerComponent } from '../internal/register.js';\nimport { GRID_HEADER_TAG } from '../internal/tags.js';\nimport type { ColumnConfiguration, IgcHeaderContext } from '../internal/types.js';\nimport { styles } from '../styles/header-cell/header-cell.css.js';\nimport { all } from '../styles/themes/grid-header-themes.js';\n\nexport default class IgcGridLiteHeader<T extends object> extends LitElement {\n public static get tagName() {\n return GRID_HEADER_TAG;\n }\n\n public static override styles = styles;\n\n public static register(): void {\n registerComponent(IgcGridLiteHeader, IgcIconComponent);\n }\n\n private readonly _adoptedStylesController = new AdoptedStylesController(this);\n\n protected get context(): IgcHeaderContext<T> {\n return {\n parent: this,\n column: this.column,\n };\n }\n\n protected get isSortable() {\n return Boolean(this.column.sortable);\n }\n\n protected get resizeController() {\n return this.state.resizing;\n }\n\n @consume({ context: GRID_STATE_CONTEXT, subscribe: true })\n @property({ attribute: false })\n public state!: StateController<T>;\n\n @property({ attribute: false })\n public column!: ColumnConfiguration<T>;\n\n @property({ attribute: false })\n public adoptRootStyles = false;\n\n constructor() {\n super();\n\n addThemingController(this, all, {\n themeChange: this._handleThemeChange,\n });\n }\n\n protected override update(props: PropertyValues<this>): void {\n if (props.has('adoptRootStyles')) {\n this._adoptedStylesController.shouldAdoptStyles(\n this.adoptRootStyles && this.column.headerTemplate != null\n );\n }\n\n super.update(props);\n }\n\n private _handleThemeChange() {\n AdoptedStylesController.invalidateCache(this.ownerDocument);\n this._adoptedStylesController.shouldAdoptStyles(\n this.adoptRootStyles && this.column.headerTemplate != null\n );\n }\n\n #addResizeEventHandlers() {\n const config: AddEventListenerOptions = { once: true };\n\n this.addEventListener(\n 'gotpointercapture',\n () => {\n this.resizeController.indicatorActive = true;\n },\n config\n );\n this.addEventListener('lostpointercapture', this.#handlePointerLost, config);\n this.addEventListener('pointerup', (e) => this.releasePointerCapture(e.pointerId), config);\n this.addEventListener('pointermove', this.#handleResize);\n }\n\n #handleClick(e: Event) {\n e.stopPropagation();\n this.state.sorting.sortFromHeaderClick(this.column);\n }\n\n #handleResize = ({ clientX }: PointerEvent) => {\n const { left } = this.getBoundingClientRect();\n const width = Math.max(clientX - left, MIN_COL_RESIZE_WIDTH);\n const x = this.offsetLeft + width;\n\n this.resizeController.resize(this.column, width, x);\n };\n\n #handleResizeStart(ev: PointerEvent) {\n const { target, pointerId } = ev;\n\n ev.preventDefault();\n\n this.#addResizeEventHandlers();\n this.resizeController.start(this);\n\n (target as HTMLElement).setPointerCapture(pointerId);\n }\n\n #handlePointerLost = () => {\n this.resizeController.indicatorActive = false;\n this.removeEventListener('pointermove', this.#handleResize);\n this.resizeController.stop();\n };\n\n #handleAutosize = () => this.resizeController.autosize(this.column, this);\n\n protected renderSortPart() {\n const state = this.state.sorting.state.get(this.column.field);\n const idx = Array.from(this.state.sorting.state.values()).indexOf(state!);\n const attr =\n this.state.host.sortingOptions.mode === 'multiple' ? (idx > -1 ? idx + 1 : nothing) : nothing;\n const icon = state\n ? state.direction === 'ascending'\n ? SORT_ICON_ASCENDING\n : SORT_ICON_DESCENDING\n : SORT_ICON_ASCENDING;\n\n return state || this.isSortable\n ? html`<span\n part=${partMap({ action: true, sorted: !!state?.direction })}\n @click=${this.isSortable ? this.#handleClick : nothing}\n >\n <igc-icon\n part=${partMap({ 'sorting-action': !!state })}\n data-sortIndex=${attr}\n name=${icon}\n collection=\"internal\"\n ></igc-icon>\n </span>`\n : nothing;\n }\n\n protected renderContentPart() {\n const defaultContent = this.column.header ?? this.column.field;\n const template = this.column.headerTemplate;\n\n return html`\n <span part=\"title\">\n <span>${template ? template(this.context) : html`${defaultContent}`}</span>\n </span>\n `;\n }\n\n protected renderResizePart() {\n return this.column.resizable\n ? html`<span\n part=\"resizable\"\n @dblclick=${this.#handleAutosize}\n @pointerdown=${this.#handleResizeStart}\n ></span>`\n : nothing;\n }\n\n protected override render() {\n return html`\n <div\n part=${partMap({\n content: true,\n sortable: this.isSortable,\n resizing: this.resizeController.indicatorActive,\n })}\n >\n ${this.renderContentPart()}\n <div part=\"actions\">${this.renderSortPart()}</div>\n </div>\n ${this.renderResizePart()}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [IgcGridLiteHeader.tagName]: IgcGridLiteHeader<object>;\n }\n}\n"]}
|
package/components/row.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export default class IgcGridLiteRow<T extends object> extends LitElement {
|
|
|
8
8
|
static get tagName(): "igc-grid-lite-row";
|
|
9
9
|
static styles: import("lit").CSSResult;
|
|
10
10
|
static register(): void;
|
|
11
|
+
adoptRootStyles: boolean;
|
|
11
12
|
data?: T;
|
|
12
13
|
columns: Array<ColumnConfiguration<T>>;
|
|
13
14
|
activeNode?: ActiveNode<T>;
|
package/components/row.js
CHANGED
|
@@ -4,9 +4,9 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
4
4
|
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
5
|
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
6
|
};
|
|
7
|
-
import { html, LitElement
|
|
7
|
+
import { html, LitElement } from 'lit';
|
|
8
8
|
import { property } from 'lit/decorators.js';
|
|
9
|
-
import {
|
|
9
|
+
import { repeat } from 'lit/directives/repeat.js';
|
|
10
10
|
import { registerComponent } from '../internal/register.js';
|
|
11
11
|
import { GRID_ROW_TAG } from '../internal/tags.js';
|
|
12
12
|
import { resolveFieldValue } from '../internal/utils.js';
|
|
@@ -15,6 +15,7 @@ import IgcGridLiteCell from './cell.js';
|
|
|
15
15
|
export default class IgcGridLiteRow extends LitElement {
|
|
16
16
|
constructor() {
|
|
17
17
|
super(...arguments);
|
|
18
|
+
this.adoptRootStyles = false;
|
|
18
19
|
this.columns = [];
|
|
19
20
|
this.index = -1;
|
|
20
21
|
}
|
|
@@ -31,21 +32,26 @@ export default class IgcGridLiteRow extends LitElement {
|
|
|
31
32
|
render() {
|
|
32
33
|
const { column: key, row: index } = this.activeNode ?? {};
|
|
33
34
|
const data = this.data ?? {};
|
|
35
|
+
const columns = this.columns.filter((column) => !column.hidden);
|
|
34
36
|
return html `
|
|
35
|
-
${
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
37
|
+
${repeat(columns, (column) => column, (column) => html `
|
|
38
|
+
<igc-grid-lite-cell
|
|
39
|
+
part="cell"
|
|
40
|
+
.adoptRootStyles=${this.adoptRootStyles}
|
|
41
|
+
.active=${key === column.field && index === this.index}
|
|
42
|
+
.column=${column}
|
|
43
|
+
.cellTemplate=${column.cellTemplate}
|
|
44
|
+
.row=${this}
|
|
45
|
+
.rowIndex=${this.index}
|
|
46
|
+
.value=${resolveFieldValue(data, column.field)}
|
|
47
|
+
></igc-grid-lite-cell>
|
|
48
|
+
`)}
|
|
46
49
|
`;
|
|
47
50
|
}
|
|
48
51
|
}
|
|
52
|
+
__decorate([
|
|
53
|
+
property({ attribute: false })
|
|
54
|
+
], IgcGridLiteRow.prototype, "adoptRootStyles", void 0);
|
|
49
55
|
__decorate([
|
|
50
56
|
property({ attribute: false })
|
|
51
57
|
], IgcGridLiteRow.prototype, "data", void 0);
|
package/components/row.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.js","sourceRoot":"","sources":["../../src/components/row.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"row.js","sourceRoot":"","sources":["../../src/components/row.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,MAAM,oCAAoC,CAAC;AAC5D,OAAO,eAAe,MAAM,WAAW,CAAC;AAKxC,MAAM,CAAC,OAAO,OAAO,cAAiC,SAAQ,UAAU;IAAxE;;QAWS,oBAAe,GAAG,KAAK,CAAC;QAMxB,YAAO,GAAkC,EAAE,CAAC;QAM5C,UAAK,GAAG,CAAC,CAAC,CAAC;IAiCpB,CAAC;IAvDQ,MAAM,KAAK,OAAO;QACvB,OAAO,YAAY,CAAC;IACtB,CAAC;aACsB,WAAM,GAAG,MAAM,AAAT,CAAU;IAEhC,MAAM,CAAC,QAAQ;QACpB,iBAAiB,CAAC,cAAc,EAAE,eAAe,CAAC,CAAC;IACrD,CAAC;IAiBD,IAAW,KAAK;QACd,OAAO,KAAK,CAAC,IAAI,CACf,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAqB,eAAe,CAAC,OAAO,CAAC,CAC9E,CAAC;IACJ,CAAC;IAEkB,MAAM;QACvB,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,UAAU,IAAI,EAAE,CAAC;QAC1D,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,IAAK,EAAQ,CAAC;QAEpC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAEhE,OAAO,IAAI,CAAA;QACP,MAAM,CACN,OAAO,EACP,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,EAClB,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAA;;;+BAGO,IAAI,CAAC,eAAe;sBAC7B,GAAG,KAAK,MAAM,CAAC,KAAK,IAAI,KAAK,KAAK,IAAI,CAAC,KAAK;sBAC5C,MAAM;4BACA,MAAM,CAAC,YAAY;mBAC5B,IAAyB;wBACpB,IAAI,CAAC,KAAK;qBACb,iBAAiB,CAAC,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC;;SAEjD,CACF;KACF,CAAC;IACJ,CAAC;;AA5CM;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;uDACA;AAGxB;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;4CACf;AAGT;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;+CACoB;AAG5C;IADN,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;kDACG;AAG3B;IADN,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;6CAC3B","sourcesContent":["import { html, LitElement } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { repeat } from 'lit/directives/repeat.js';\nimport { registerComponent } from '../internal/register.js';\nimport { GRID_ROW_TAG } from '../internal/tags.js';\nimport type { ActiveNode, ColumnConfiguration } from '../internal/types.js';\nimport { resolveFieldValue } from '../internal/utils.js';\nimport { styles } from '../styles/body-row/body-row.css.js';\nimport IgcGridLiteCell from './cell.js';\n\n/**\n * Component representing the DOM row in the IgcGridLite.\n */\nexport default class IgcGridLiteRow<T extends object> extends LitElement {\n public static get tagName() {\n return GRID_ROW_TAG;\n }\n public static override styles = styles;\n\n public static register(): void {\n registerComponent(IgcGridLiteRow, IgcGridLiteCell);\n }\n\n @property({ attribute: false })\n public adoptRootStyles = false;\n\n @property({ attribute: false })\n public data?: T;\n\n @property({ attribute: false })\n public columns: Array<ColumnConfiguration<T>> = [];\n\n @property({ attribute: false })\n public activeNode?: ActiveNode<T>;\n\n @property({ type: Number, attribute: false })\n public index = -1;\n\n public get cells(): IgcGridLiteCell<T>[] {\n return Array.from(\n this.renderRoot.querySelectorAll<IgcGridLiteCell<T>>(IgcGridLiteCell.tagName)\n );\n }\n\n protected override render() {\n const { column: key, row: index } = this.activeNode ?? {};\n const data = this.data ?? ({} as T);\n\n const columns = this.columns.filter((column) => !column.hidden);\n\n return html`\n ${repeat(\n columns,\n (column) => column,\n (column) => html`\n <igc-grid-lite-cell\n part=\"cell\"\n .adoptRootStyles=${this.adoptRootStyles}\n .active=${key === column.field && index === this.index}\n .column=${column}\n .cellTemplate=${column.cellTemplate}\n .row=${this as IgcGridLiteRow<T>}\n .rowIndex=${this.index}\n .value=${resolveFieldValue(data, column.field)}\n ></igc-grid-lite-cell>\n `\n )}\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n [IgcGridLiteRow.tagName]: IgcGridLiteRow<object>;\n }\n}\n"]}
|
package/controllers/resize.d.ts
CHANGED
|
@@ -23,5 +23,5 @@ export declare class ResizeController<T extends object> implements ReactiveContr
|
|
|
23
23
|
/**
|
|
24
24
|
* Renders the resize indicator in the grid.
|
|
25
25
|
*/
|
|
26
|
-
renderIndicator():
|
|
26
|
+
renderIndicator(): import("lit-html").TemplateResult<1> | typeof nothing;
|
|
27
27
|
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type LitElement, type ReactiveController, type ReactiveControllerHost } from 'lit';
|
|
2
|
+
export declare class AdoptedStylesController implements ReactiveController {
|
|
3
|
+
private static _cachedSheets;
|
|
4
|
+
private readonly _host;
|
|
5
|
+
private _hasAdoptedStyles;
|
|
6
|
+
get hasAdoptedStyles(): boolean;
|
|
7
|
+
static invalidateCache(owner?: Document): void;
|
|
8
|
+
constructor(host: ReactiveControllerHost & LitElement);
|
|
9
|
+
shouldAdoptStyles(condition: boolean): void;
|
|
10
|
+
/** @internal */
|
|
11
|
+
hostDisconnected(): void;
|
|
12
|
+
private _adoptRootStyles;
|
|
13
|
+
private _cloneDocumentStyleSheets;
|
|
14
|
+
private _clearAdoptedStyles;
|
|
15
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { adoptStyles, } from 'lit';
|
|
2
|
+
export class AdoptedStylesController {
|
|
3
|
+
static { this._cachedSheets = new WeakMap(); }
|
|
4
|
+
get hasAdoptedStyles() {
|
|
5
|
+
return this._hasAdoptedStyles;
|
|
6
|
+
}
|
|
7
|
+
static invalidateCache(owner) {
|
|
8
|
+
AdoptedStylesController._cachedSheets.delete(owner ?? document);
|
|
9
|
+
}
|
|
10
|
+
constructor(host) {
|
|
11
|
+
this._hasAdoptedStyles = false;
|
|
12
|
+
this._host = host;
|
|
13
|
+
host.addController(this);
|
|
14
|
+
}
|
|
15
|
+
shouldAdoptStyles(condition) {
|
|
16
|
+
condition ? this._adoptRootStyles() : this._clearAdoptedStyles();
|
|
17
|
+
}
|
|
18
|
+
hostDisconnected() {
|
|
19
|
+
this._clearAdoptedStyles();
|
|
20
|
+
}
|
|
21
|
+
_adoptRootStyles() {
|
|
22
|
+
const ownerDocument = this._host.ownerDocument;
|
|
23
|
+
if (!AdoptedStylesController._cachedSheets.has(ownerDocument)) {
|
|
24
|
+
AdoptedStylesController._cachedSheets.set(ownerDocument, this._cloneDocumentStyleSheets(ownerDocument));
|
|
25
|
+
}
|
|
26
|
+
const ctor = this._host.constructor;
|
|
27
|
+
adoptStyles(this._host.shadowRoot, [
|
|
28
|
+
...ctor.elementStyles,
|
|
29
|
+
...AdoptedStylesController._cachedSheets.get(ownerDocument),
|
|
30
|
+
]);
|
|
31
|
+
this._hasAdoptedStyles = true;
|
|
32
|
+
}
|
|
33
|
+
_cloneDocumentStyleSheets(ownerDocument) {
|
|
34
|
+
const sheets = [];
|
|
35
|
+
for (const sheet of ownerDocument.styleSheets) {
|
|
36
|
+
try {
|
|
37
|
+
const constructed = new CSSStyleSheet();
|
|
38
|
+
let hasRules = false;
|
|
39
|
+
for (const rule of sheet.cssRules) {
|
|
40
|
+
if (rule instanceof CSSImportRule) {
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
try {
|
|
44
|
+
constructed.insertRule(rule.cssText, constructed.cssRules.length);
|
|
45
|
+
hasRules = true;
|
|
46
|
+
}
|
|
47
|
+
catch {
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
if (hasRules) {
|
|
51
|
+
sheets.push(constructed);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
catch {
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
return sheets;
|
|
58
|
+
}
|
|
59
|
+
_clearAdoptedStyles() {
|
|
60
|
+
const shadowRoot = this._host.shadowRoot;
|
|
61
|
+
if (shadowRoot) {
|
|
62
|
+
shadowRoot.adoptedStyleSheets = shadowRoot.adoptedStyleSheets.filter((sheet) => !AdoptedStylesController._cachedSheets.get(this._host.ownerDocument)?.includes(sheet));
|
|
63
|
+
}
|
|
64
|
+
this._hasAdoptedStyles = false;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
//# sourceMappingURL=root-styles.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"root-styles.js","sourceRoot":"","sources":["../../src/controllers/root-styles.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n adoptStyles,\n type LitElement,\n type ReactiveController,\n type ReactiveControllerHost,\n} from 'lit';\n\nexport class AdoptedStylesController implements ReactiveController {\n private static _cachedSheets = new WeakMap<Document, CSSStyleSheet[]>();\n\n private readonly _host: ReactiveControllerHost & LitElement;\n private _hasAdoptedStyles = false;\n\n public get hasAdoptedStyles(): boolean {\n return this._hasAdoptedStyles;\n }\n\n public static invalidateCache(owner?: Document): void {\n AdoptedStylesController._cachedSheets.delete(owner ?? document);\n }\n\n public constructor(host: ReactiveControllerHost & LitElement) {\n this._host = host;\n host.addController(this);\n }\n\n public shouldAdoptStyles(condition: boolean): void {\n condition ? this._adoptRootStyles() : this._clearAdoptedStyles();\n }\n\n /** @internal */\n public hostDisconnected(): void {\n this._clearAdoptedStyles();\n }\n\n private _adoptRootStyles(): void {\n const ownerDocument = this._host.ownerDocument;\n\n if (!AdoptedStylesController._cachedSheets.has(ownerDocument)) {\n AdoptedStylesController._cachedSheets.set(\n ownerDocument,\n this._cloneDocumentStyleSheets(ownerDocument)\n );\n }\n\n const ctor = this._host.constructor as typeof LitElement;\n adoptStyles(this._host.shadowRoot!, [\n ...ctor.elementStyles,\n ...AdoptedStylesController._cachedSheets.get(ownerDocument)!,\n ]);\n this._hasAdoptedStyles = true;\n }\n\n private _cloneDocumentStyleSheets(ownerDocument: Document): CSSStyleSheet[] {\n const sheets: CSSStyleSheet[] = [];\n\n for (const sheet of ownerDocument.styleSheets) {\n try {\n const constructed = new CSSStyleSheet();\n let hasRules = false;\n\n for (const rule of sheet.cssRules) {\n if (rule instanceof CSSImportRule) {\n continue;\n }\n\n try {\n // insert last to keep rules/override order:\n constructed.insertRule(rule.cssText, constructed.cssRules.length);\n hasRules = true;\n } catch {\n // Ignore rules that can't be adopted.\n }\n }\n\n if (hasRules) {\n sheets.push(constructed);\n }\n } catch {\n // Ignore stylesheets we can't access due to CORS.\n }\n }\n return sheets;\n }\n\n private _clearAdoptedStyles(): void {\n const shadowRoot = this._host.shadowRoot;\n if (shadowRoot) {\n shadowRoot.adoptedStyleSheets = shadowRoot.adoptedStyleSheets.filter(\n (sheet) =>\n !AdoptedStylesController._cachedSheets.get(this._host.ownerDocument)?.includes(sheet)\n );\n }\n this._hasAdoptedStyles = false;\n }\n}\n"]}
|
package/custom-elements.json
CHANGED
|
@@ -323,6 +323,22 @@
|
|
|
323
323
|
}
|
|
324
324
|
}
|
|
325
325
|
},
|
|
326
|
+
{
|
|
327
|
+
"kind": "field",
|
|
328
|
+
"name": "_adoptedStylesController",
|
|
329
|
+
"privacy": "private",
|
|
330
|
+
"readonly": true,
|
|
331
|
+
"default": "new AdoptedStylesController(this)"
|
|
332
|
+
},
|
|
333
|
+
{
|
|
334
|
+
"kind": "field",
|
|
335
|
+
"name": "adoptRootStyles",
|
|
336
|
+
"type": {
|
|
337
|
+
"text": "boolean"
|
|
338
|
+
},
|
|
339
|
+
"privacy": "public",
|
|
340
|
+
"default": "false"
|
|
341
|
+
},
|
|
326
342
|
{
|
|
327
343
|
"kind": "field",
|
|
328
344
|
"name": "value",
|
|
@@ -1143,6 +1159,17 @@
|
|
|
1143
1159
|
"privacy": "protected",
|
|
1144
1160
|
"default": "[]"
|
|
1145
1161
|
},
|
|
1162
|
+
{
|
|
1163
|
+
"kind": "field",
|
|
1164
|
+
"name": "adoptRootStyles",
|
|
1165
|
+
"type": {
|
|
1166
|
+
"text": "boolean"
|
|
1167
|
+
},
|
|
1168
|
+
"privacy": "public",
|
|
1169
|
+
"default": "false",
|
|
1170
|
+
"attribute": "adopt-root-styles",
|
|
1171
|
+
"reflects": true
|
|
1172
|
+
},
|
|
1146
1173
|
{
|
|
1147
1174
|
"kind": "field",
|
|
1148
1175
|
"name": "data",
|
|
@@ -1591,6 +1618,14 @@
|
|
|
1591
1618
|
"description": "Whether the grid will try to \"resolve\" its column configuration based on the passed\ndata source.",
|
|
1592
1619
|
"fieldName": "autoGenerate",
|
|
1593
1620
|
"attribute": "auto-generate"
|
|
1621
|
+
},
|
|
1622
|
+
{
|
|
1623
|
+
"name": "adopt-root-styles",
|
|
1624
|
+
"type": {
|
|
1625
|
+
"text": "boolean"
|
|
1626
|
+
},
|
|
1627
|
+
"default": "false",
|
|
1628
|
+
"fieldName": "adoptRootStyles"
|
|
1594
1629
|
}
|
|
1595
1630
|
],
|
|
1596
1631
|
"superclass": {
|
|
@@ -1648,6 +1683,15 @@
|
|
|
1648
1683
|
"privacy": "private",
|
|
1649
1684
|
"readonly": true
|
|
1650
1685
|
},
|
|
1686
|
+
{
|
|
1687
|
+
"kind": "field",
|
|
1688
|
+
"name": "adoptRootStyles",
|
|
1689
|
+
"type": {
|
|
1690
|
+
"text": "boolean"
|
|
1691
|
+
},
|
|
1692
|
+
"privacy": "public",
|
|
1693
|
+
"default": "false"
|
|
1694
|
+
},
|
|
1651
1695
|
{
|
|
1652
1696
|
"kind": "field",
|
|
1653
1697
|
"name": "columns",
|
|
@@ -1730,6 +1774,13 @@
|
|
|
1730
1774
|
}
|
|
1731
1775
|
}
|
|
1732
1776
|
},
|
|
1777
|
+
{
|
|
1778
|
+
"kind": "field",
|
|
1779
|
+
"name": "_adoptedStylesController",
|
|
1780
|
+
"privacy": "private",
|
|
1781
|
+
"readonly": true,
|
|
1782
|
+
"default": "new AdoptedStylesController(this)"
|
|
1783
|
+
},
|
|
1733
1784
|
{
|
|
1734
1785
|
"kind": "field",
|
|
1735
1786
|
"name": "context",
|
|
@@ -1767,6 +1818,20 @@
|
|
|
1767
1818
|
},
|
|
1768
1819
|
"privacy": "public"
|
|
1769
1820
|
},
|
|
1821
|
+
{
|
|
1822
|
+
"kind": "field",
|
|
1823
|
+
"name": "adoptRootStyles",
|
|
1824
|
+
"type": {
|
|
1825
|
+
"text": "boolean"
|
|
1826
|
+
},
|
|
1827
|
+
"privacy": "public",
|
|
1828
|
+
"default": "false"
|
|
1829
|
+
},
|
|
1830
|
+
{
|
|
1831
|
+
"kind": "method",
|
|
1832
|
+
"name": "_handleThemeChange",
|
|
1833
|
+
"privacy": "private"
|
|
1834
|
+
},
|
|
1770
1835
|
{
|
|
1771
1836
|
"kind": "method",
|
|
1772
1837
|
"name": "#addResizeEventHandlers",
|
|
@@ -1874,6 +1939,15 @@
|
|
|
1874
1939
|
}
|
|
1875
1940
|
}
|
|
1876
1941
|
},
|
|
1942
|
+
{
|
|
1943
|
+
"kind": "field",
|
|
1944
|
+
"name": "adoptRootStyles",
|
|
1945
|
+
"type": {
|
|
1946
|
+
"text": "boolean"
|
|
1947
|
+
},
|
|
1948
|
+
"privacy": "public",
|
|
1949
|
+
"default": "false"
|
|
1950
|
+
},
|
|
1877
1951
|
{
|
|
1878
1952
|
"kind": "field",
|
|
1879
1953
|
"name": "data",
|
|
@@ -2818,6 +2892,140 @@
|
|
|
2818
2892
|
}
|
|
2819
2893
|
]
|
|
2820
2894
|
},
|
|
2895
|
+
{
|
|
2896
|
+
"kind": "javascript-module",
|
|
2897
|
+
"path": "src/controllers/root-styles.ts",
|
|
2898
|
+
"declarations": [
|
|
2899
|
+
{
|
|
2900
|
+
"kind": "class",
|
|
2901
|
+
"description": "",
|
|
2902
|
+
"name": "AdoptedStylesController",
|
|
2903
|
+
"members": [
|
|
2904
|
+
{
|
|
2905
|
+
"kind": "field",
|
|
2906
|
+
"name": "_cachedSheets",
|
|
2907
|
+
"privacy": "private",
|
|
2908
|
+
"static": true,
|
|
2909
|
+
"default": "new WeakMap<Document, CSSStyleSheet[]>()"
|
|
2910
|
+
},
|
|
2911
|
+
{
|
|
2912
|
+
"kind": "field",
|
|
2913
|
+
"name": "_host",
|
|
2914
|
+
"type": {
|
|
2915
|
+
"text": "ReactiveControllerHost & LitElement"
|
|
2916
|
+
},
|
|
2917
|
+
"privacy": "private",
|
|
2918
|
+
"readonly": true,
|
|
2919
|
+
"default": "host"
|
|
2920
|
+
},
|
|
2921
|
+
{
|
|
2922
|
+
"kind": "field",
|
|
2923
|
+
"name": "_hasAdoptedStyles",
|
|
2924
|
+
"type": {
|
|
2925
|
+
"text": "boolean"
|
|
2926
|
+
},
|
|
2927
|
+
"privacy": "private",
|
|
2928
|
+
"default": "false"
|
|
2929
|
+
},
|
|
2930
|
+
{
|
|
2931
|
+
"kind": "field",
|
|
2932
|
+
"name": "hasAdoptedStyles",
|
|
2933
|
+
"type": {
|
|
2934
|
+
"text": "boolean"
|
|
2935
|
+
},
|
|
2936
|
+
"privacy": "public",
|
|
2937
|
+
"readonly": true
|
|
2938
|
+
},
|
|
2939
|
+
{
|
|
2940
|
+
"kind": "method",
|
|
2941
|
+
"name": "invalidateCache",
|
|
2942
|
+
"privacy": "public",
|
|
2943
|
+
"static": true,
|
|
2944
|
+
"return": {
|
|
2945
|
+
"type": {
|
|
2946
|
+
"text": "void"
|
|
2947
|
+
}
|
|
2948
|
+
},
|
|
2949
|
+
"parameters": [
|
|
2950
|
+
{
|
|
2951
|
+
"name": "owner",
|
|
2952
|
+
"optional": true,
|
|
2953
|
+
"type": {
|
|
2954
|
+
"text": "Document"
|
|
2955
|
+
}
|
|
2956
|
+
}
|
|
2957
|
+
]
|
|
2958
|
+
},
|
|
2959
|
+
{
|
|
2960
|
+
"kind": "method",
|
|
2961
|
+
"name": "shouldAdoptStyles",
|
|
2962
|
+
"privacy": "public",
|
|
2963
|
+
"return": {
|
|
2964
|
+
"type": {
|
|
2965
|
+
"text": "void"
|
|
2966
|
+
}
|
|
2967
|
+
},
|
|
2968
|
+
"parameters": [
|
|
2969
|
+
{
|
|
2970
|
+
"name": "condition",
|
|
2971
|
+
"type": {
|
|
2972
|
+
"text": "boolean"
|
|
2973
|
+
}
|
|
2974
|
+
}
|
|
2975
|
+
]
|
|
2976
|
+
},
|
|
2977
|
+
{
|
|
2978
|
+
"kind": "method",
|
|
2979
|
+
"name": "_adoptRootStyles",
|
|
2980
|
+
"privacy": "private",
|
|
2981
|
+
"return": {
|
|
2982
|
+
"type": {
|
|
2983
|
+
"text": "void"
|
|
2984
|
+
}
|
|
2985
|
+
}
|
|
2986
|
+
},
|
|
2987
|
+
{
|
|
2988
|
+
"kind": "method",
|
|
2989
|
+
"name": "_cloneDocumentStyleSheets",
|
|
2990
|
+
"privacy": "private",
|
|
2991
|
+
"return": {
|
|
2992
|
+
"type": {
|
|
2993
|
+
"text": "CSSStyleSheet[]"
|
|
2994
|
+
}
|
|
2995
|
+
},
|
|
2996
|
+
"parameters": [
|
|
2997
|
+
{
|
|
2998
|
+
"name": "ownerDocument",
|
|
2999
|
+
"type": {
|
|
3000
|
+
"text": "Document"
|
|
3001
|
+
}
|
|
3002
|
+
}
|
|
3003
|
+
]
|
|
3004
|
+
},
|
|
3005
|
+
{
|
|
3006
|
+
"kind": "method",
|
|
3007
|
+
"name": "_clearAdoptedStyles",
|
|
3008
|
+
"privacy": "private",
|
|
3009
|
+
"return": {
|
|
3010
|
+
"type": {
|
|
3011
|
+
"text": "void"
|
|
3012
|
+
}
|
|
3013
|
+
}
|
|
3014
|
+
}
|
|
3015
|
+
]
|
|
3016
|
+
}
|
|
3017
|
+
],
|
|
3018
|
+
"exports": [
|
|
3019
|
+
{
|
|
3020
|
+
"kind": "js",
|
|
3021
|
+
"name": "AdoptedStylesController",
|
|
3022
|
+
"declaration": {
|
|
3023
|
+
"name": "AdoptedStylesController",
|
|
3024
|
+
"module": "src/controllers/root-styles.ts"
|
|
3025
|
+
}
|
|
3026
|
+
}
|
|
3027
|
+
]
|
|
3028
|
+
},
|
|
2821
3029
|
{
|
|
2822
3030
|
"kind": "javascript-module",
|
|
2823
3031
|
"path": "src/controllers/sort.ts",
|
package/docs/assets/hierarchy.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
window.hierarchyData = "eJx1kEEKgzAQRe/
|
|
1
|
+
window.hierarchyData = "eJx1kEEKgzAQRe/y17ESoVqyrItS6A2Ki5BEDY0JZOJKvHsJtlIobmYx8x9v+AtiCIkgnrypO4ZoemdUssETxAKeh5eTgcB9ULdo9cMm0wY3Tx4ML+s1BK8uDHN0EFBOEhkq/8KnMU0ObAtAIJEuMl1si5WBN/WP7SrpQ7bB93aYo8xf7c7qXH+d1icTe6kMlQfUoXxH83G0Tkfjcxfduq5vhDJgbg=="
|
package/docs/hierarchy.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>igniteui-grid-lite-workspace</title><meta name="description" content="Documentation for igniteui-grid-lite-workspace"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">igniteui-grid-lite-workspace</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>igniteui-grid-lite-workspace</h1></div><h2>Hierarchy Summary</h2><ul class="tsd-full-hierarchy"><li data-refl="
|
|
1
|
+
<!DOCTYPE html><html class="default" lang="en" data-base="./"><head><meta charset="utf-8"/><meta http-equiv="x-ua-compatible" content="IE=edge"/><title>igniteui-grid-lite-workspace</title><meta name="description" content="Documentation for igniteui-grid-lite-workspace"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="stylesheet" href="assets/style.css"/><link rel="stylesheet" href="assets/highlight.css"/><script defer src="assets/main.js"></script><script async src="assets/icons.js" id="tsd-icons-script"></script><script async src="assets/search.js" id="tsd-search-script"></script><script async src="assets/navigation.js" id="tsd-nav-script"></script><script async src="assets/hierarchy.js" id="tsd-hierarchy-script"></script></head><body><script>document.documentElement.dataset.theme = localStorage.getItem("tsd-theme") || "os";document.body.style.display="none";setTimeout(() => window.app?app.showPage():document.body.style.removeProperty("display"),500)</script><header class="tsd-page-toolbar"><div class="tsd-toolbar-contents container"><a href="index.html" class="title">igniteui-grid-lite-workspace</a><div id="tsd-toolbar-links"></div><button id="tsd-search-trigger" class="tsd-widget" aria-label="Search"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-search"></use></svg></button><dialog id="tsd-search" aria-label="Search"><input role="combobox" id="tsd-search-input" aria-controls="tsd-search-results" aria-autocomplete="list" aria-expanded="true" autocapitalize="off" autocomplete="off" placeholder="Search the docs" maxLength="100"/><ul role="listbox" id="tsd-search-results"></ul><div id="tsd-search-status" aria-live="polite" aria-atomic="true"><div>Preparing search index...</div></div></dialog><a href="#" class="tsd-widget menu" id="tsd-toolbar-menu-trigger" data-toggle="menu" aria-label="Menu"><svg width="16" height="16" viewBox="0 0 16 16" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-menu"></use></svg></a></div></header><div class="container container-main"><div class="col-content"><div class="tsd-page-title"><h1>igniteui-grid-lite-workspace</h1></div><h2>Hierarchy Summary</h2><ul class="tsd-full-hierarchy"><li data-refl="176" id="BaseColumnConfiguration"><a href="interfaces/BaseColumnConfiguration.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Interface"><use href="assets/icons.svg#icon-256"></use></svg>BaseColumnConfiguration</a><ul><li data-refl="1" id="IgcGridLiteColumn"><a href="classes/IgcGridLiteColumn.html"><svg class="tsd-kind-icon" viewBox="0 0 24 24" aria-label="Class"><use href="assets/icons.svg#icon-128"></use></svg>IgcGridLiteColumn</a></li></ul></li></ul></div><div class="col-sidebar"><div class="page-menu"><div class="tsd-navigation settings"><details class="tsd-accordion"><summary class="tsd-accordion-summary"><svg width="20" height="20" viewBox="0 0 24 24" fill="none" aria-hidden="true"><use href="assets/icons.svg#icon-chevronDown"></use></svg><h3>Settings</h3></summary><div class="tsd-accordion-details"><div class="tsd-filter-visibility"><span class="settings-label">Member Visibility</span><ul id="tsd-filter-options"><li class="tsd-filter-item"><label class="tsd-filter-input"><input type="checkbox" id="tsd-filter-inherited" name="inherited" checked/><svg width="32" height="32" viewBox="0 0 32 32" aria-hidden="true"><rect class="tsd-checkbox-background" width="30" height="30" x="1" y="1" rx="6" fill="none"></rect><path class="tsd-checkbox-checkmark" d="M8.35422 16.8214L13.2143 21.75L24.6458 10.25" stroke="none" stroke-width="3.5" stroke-linejoin="round" fill="none"></path></svg><span>Inherited</span></label></li></ul></div><div class="tsd-theme-toggle"><label class="settings-label" for="tsd-theme">Theme</label><select id="tsd-theme"><option value="os">OS</option><option value="light">Light</option><option value="dark">Dark</option></select></div></div></details></div></div><div class="site-menu"><nav class="tsd-navigation"><a href="modules.html">igniteui-grid-lite-workspace</a><ul class="tsd-small-nested-navigation" id="tsd-nav-container"><li>Loading...</li></ul></nav></div></div></div><footer><p class="tsd-generator">Generated using <a href="https://typedoc.org/" target="_blank">TypeDoc</a></p></footer><div class="overlay"></div></body></html>
|