@masterteam/data-grid 0.0.2 → 0.0.3
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/fesm2022/masterteam-data-grid-tokens.mjs +15 -0
- package/fesm2022/masterteam-data-grid-tokens.mjs.map +1 -0
- package/fesm2022/masterteam-data-grid.mjs +4 -9
- package/fesm2022/masterteam-data-grid.mjs.map +1 -1
- package/package.json +5 -1
- package/types/masterteam-data-grid-tokens.d.ts +32 -0
- package/types/masterteam-data-grid.d.ts +8 -35
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { InjectionToken } from '@angular/core';
|
|
2
|
+
|
|
3
|
+
/** Trusted application-owned SVG markup. Missing names retain the built-in DS stroke icon. */
|
|
4
|
+
const MT_GRID_ICONS = new InjectionToken('MT_GRID_ICONS');
|
|
5
|
+
/** Optional host artwork; the independent engine has no design-system dependency. */
|
|
6
|
+
const MT_GRID_EMPTY_OVERLAY = new InjectionToken('MT_GRID_EMPTY_OVERLAY');
|
|
7
|
+
/** Application defaults for built-in Columns panels; explicit panel params win. */
|
|
8
|
+
const MT_GRID_COLUMNS_TOOL_PANEL_DEFAULTS = new InjectionToken('MT_GRID_COLUMNS_TOOL_PANEL_DEFAULTS', { providedIn: 'root', factory: () => ({}) });
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Generated bundle index. Do not edit.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
export { MT_GRID_COLUMNS_TOOL_PANEL_DEFAULTS, MT_GRID_EMPTY_OVERLAY, MT_GRID_ICONS };
|
|
15
|
+
//# sourceMappingURL=masterteam-data-grid-tokens.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"masterteam-data-grid-tokens.mjs","sources":["../../../../packages/masterteam/data-grid/tokens/public-api.ts","../../../../packages/masterteam/data-grid/tokens/masterteam-data-grid-tokens.ts"],"sourcesContent":["import { InjectionToken, type Type } from '@angular/core';\r\n\r\n/*\r\n * The grid's injection tokens and the types they carry, without the grid.\r\n * Application roots provide these at startup; importing them from here keeps\r\n * the grid itself out of the initial bundle. The main entry re-exports them,\r\n * so both import paths resolve to the same token.\r\n */\r\n\r\nexport type GridIconName =\r\n | 'sort-asc'\r\n | 'sort-desc'\r\n | 'sort-none'\r\n | 'reset'\r\n | 'expand'\r\n | 'collapse'\r\n | 'pdf'\r\n | 'export'\r\n | 'asc'\r\n | 'desc'\r\n | 'hide'\r\n | 'blocked'\r\n | 'pin'\r\n | 'columns'\r\n | 'chevron'\r\n | 'chevron-start'\r\n | 'check'\r\n | 'menu'\r\n | 'move'\r\n | 'left'\r\n | 'right'\r\n | 'close'\r\n | 'copy'\r\n | 'cut'\r\n | 'paste'\r\n | 'save'\r\n | 'tree-open'\r\n | 'tree-closed'\r\n | 'group'\r\n | 'csv'\r\n | 'excel'\r\n | 'search'\r\n | 'filter'\r\n | 'cancel'\r\n | 'small-down'\r\n | 'grip'\r\n | 'arrows'\r\n | 'tree-indeterminate'\r\n | 'aggregation'\r\n | 'pivot'\r\n | 'filter-add'\r\n | 'cross'\r\n | 'chevron-up'\r\n | 'chevron-down'\r\n | 'first'\r\n | 'previous'\r\n | 'next'\r\n | 'last'\r\n | 'chart'\r\n | 'maximize'\r\n | 'minimize'\r\n | 'chart-link'\r\n | 'chart-unlink'\r\n | 'chart-edit'\r\n | 'chevron-right'\r\n | 'eye-off'\r\n | 'minus'\r\n | 'values'\r\n | 'download'\r\n | 'link'\r\n | 'unlink'\r\n | 'settings'\r\n | 'chevron-left'\r\n | 'chevron-end'\r\n | 'filter-active'\r\n | 'filters-panel'\r\n | 'pin-left'\r\n | 'pin-right'\r\n | 'unpin'\r\n | 'autosize'\r\n | 'chart-bar'\r\n | 'chart-line'\r\n | 'chart-pie'\r\n | 'chart-area'\r\n | 'chart-scatter'\r\n | 'data'\r\n | 'format'\r\n | 'plus'\r\n | 'eye'\r\n | 'loading';\r\n\r\n/** Trusted application-owned SVG markup. Missing names retain the built-in DS stroke icon. */\r\nexport const MT_GRID_ICONS = new InjectionToken<\r\n Partial<Record<GridIconName, string>>\r\n>('MT_GRID_ICONS');\r\n\r\nexport interface MtGridEmptyOverlayParams {\r\n readonly message: string;\r\n readonly filtered: boolean;\r\n readonly clearFilters: () => void;\r\n}\r\n\r\n/** Optional host artwork; the independent engine has no design-system dependency. */\r\nexport const MT_GRID_EMPTY_OVERLAY = new InjectionToken<\r\n Type<{ readonly params: unknown }>\r\n>('MT_GRID_EMPTY_OVERLAY');\r\n\r\nexport interface MtColumnsToolPanelParams {\r\n readonly [key: string]: unknown;\r\n readonly suppressRowGroups?: boolean;\r\n readonly suppressValues?: boolean;\r\n readonly suppressPivots?: boolean;\r\n readonly suppressPivotMode?: boolean;\r\n /** Hides the search box. */\r\n readonly suppressColumnFilter?: boolean;\r\n readonly suppressColumnSelectAll?: boolean;\r\n readonly suppressColumnExpandAll?: boolean;\r\n /** Starts the column list with every group collapsed. */\r\n readonly contractColumnSelection?: boolean;\r\n}\r\n\r\n/** Application defaults for built-in Columns panels; explicit panel params win. */\r\nexport const MT_GRID_COLUMNS_TOOL_PANEL_DEFAULTS =\r\n new InjectionToken<MtColumnsToolPanelParams>(\r\n 'MT_GRID_COLUMNS_TOOL_PANEL_DEFAULTS',\r\n { providedIn: 'root', factory: () => ({}) },\r\n );\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AA2FA;MACa,aAAa,GAAG,IAAI,cAAc,CAE7C,eAAe;AAQjB;MACa,qBAAqB,GAAG,IAAI,cAAc,CAErD,uBAAuB;AAgBzB;AACO,MAAM,mCAAmC,GAC9C,IAAI,cAAc,CAChB,qCAAqC,EACrC,EAAE,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,EAAE;;AC7H/C;;AAEG;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { input, inject, computed, ChangeDetectionStrategy, Component, signal, Injectable, Pipe, DestroyRef, ElementRef, viewChild, effect, untracked, output, Directive, afterNextRender, afterRenderEffect, Injector, forwardRef, linkedSignal, ApplicationRef, EnvironmentInjector, createComponent } from '@angular/core';
|
|
3
3
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
4
|
+
import { MT_GRID_ICONS, MT_GRID_COLUMNS_TOOL_PANEL_DEFAULTS, MT_GRID_EMPTY_OVERLAY } from '@masterteam/data-grid/tokens';
|
|
5
|
+
export { MT_GRID_COLUMNS_TOOL_PANEL_DEFAULTS, MT_GRID_EMPTY_OVERLAY, MT_GRID_ICONS } from '@masterteam/data-grid/tokens';
|
|
4
6
|
import { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';
|
|
5
7
|
|
|
6
|
-
/** Trusted application-owned SVG markup. Missing names retain the built-in DS stroke icon. */
|
|
7
|
-
const MT_GRID_ICONS = new InjectionToken('MT_GRID_ICONS');
|
|
8
8
|
/** Owned 16px stroke icons drawn for the grid; no third-party icon set or font. */
|
|
9
9
|
class GridIcon {
|
|
10
10
|
name = input.required(...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
|
|
@@ -1047,9 +1047,6 @@ function fitColumnWidths(columns, availableWidth) {
|
|
|
1047
1047
|
}));
|
|
1048
1048
|
}
|
|
1049
1049
|
|
|
1050
|
-
/** Optional host artwork; the independent engine has no design-system dependency. */
|
|
1051
|
-
const MT_GRID_EMPTY_OVERLAY = new InjectionToken('MT_GRID_EMPTY_OVERLAY');
|
|
1052
|
-
|
|
1053
1050
|
/**
|
|
1054
1051
|
* Export and clipboard-header rules, pure. Observed on the live demo (CONTEXT-MENU.md,
|
|
1055
1052
|
* live-context-menu-observations.json): the CSV starts with a UTF-8 BOM, writes a group
|
|
@@ -7686,8 +7683,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImpor
|
|
|
7686
7683
|
}, template: "@if (kind() === \"multi\") {\n <div class=\"mt-grid-multi-filter\">\n @for (child of children(); track $index; let i = $index) {\n <section\n class=\"mt-grid-multi-section\"\n [attr.data-multi-index]=\"i\"\n [attr.data-display]=\"child.display ?? 'inline'\"\n >\n @if (child.display === \"accordion\") {\n <button\n class=\"mt-grid-multi-title mtg:block mtg:[padding:10px_12px] mtg:text-start mtg:hover:[background-color:var(--mt-grid-menu-active)]\"\n [attr.aria-expanded]=\"openChildren().has(i)\"\n (click)=\"toggleChild(i)\"\n >\n <mt-grid-icon\n [name]=\"openChildren().has(i) ? 'chevron-down' : 'chevron-right'\"\n />\n {{ childTitle(i) | mtGridText }}\n </button>\n } @else if (child.display === \"subMenu\") {\n <button\n class=\"mt-grid-multi-title mtg:block mtg:[padding:10px_12px] mtg:text-start mtg:hover:[background-color:var(--mt-grid-menu-active)]\"\n aria-haspopup=\"true\"\n [attr.aria-expanded]=\"subMenu() === i\"\n (click)=\"subMenu.set(i)\"\n (mouseenter)=\"subMenu.set(i)\"\n (keydown)=\"onMultiTitleKey($event, i)\"\n >\n {{ childTitle(i) | mtGridText }}\n <mt-grid-icon name=\"chevron-right\" />\n </button>\n } @else {\n <div\n class=\"mt-grid-multi-heading mtg:[padding:8px_12px_0] mtg:font-semibold\"\n >\n <span>{{ childTitle(i) | mtGridText }}</span>\n </div>\n }\n @if (\n !child.display ||\n child.display === \"inline\" ||\n (child.display === \"accordion\" && openChildren().has(i)) ||\n (child.display === \"subMenu\" && subMenu() === i)\n ) {\n <div\n [class.mt-grid-multi-submenu]=\"child.display === 'subMenu'\"\n (keydown.escape)=\"onChildEscape($event, i)\"\n >\n <mt-data-grid-column-filter\n [inline]=\"true\"\n [kind]=\"child.filter\"\n [params]=\"childParams(i)\"\n [values]=\"values()\"\n [formatValue]=\"formatValue()\"\n [model]=\"childModel(i)\"\n [direction]=\"direction()\"\n (modelChange)=\"onChildModel(i, $event)\"\n (closed)=\"closed.emit($event)\"\n (modified)=\"modified.emit()\"\n (valuesResolved)=\"valuesResolved.emit($event)\"\n />\n </div>\n }\n </section>\n }\n </div>\n} @else if (kind() === \"set\") {\n <div class=\"mt-grid-set-filter mtg:flex mtg:flex-col\">\n @if (!params().suppressMiniFilter) {\n <div class=\"mt-grid-set-mini mtg:flex mtg:items-center\">\n <mt-grid-icon name=\"search\" />\n <input\n type=\"text\"\n autocomplete=\"off\"\n [attr.aria-label]=\"'Search filter values' | mtGridText\"\n [placeholder]=\"'Search...' | mtGridText\"\n [disabled]=\"params().readOnly\"\n [value]=\"miniFilter()\"\n (input)=\"onMiniFilter($event)\"\n (keydown)=\"onSetKey($event, true)\"\n />\n @if (miniFilter()) {\n <button\n type=\"button\"\n class=\"mt-grid-filter-clear mtg:inline-flex mtg:p-0\"\n [attr.aria-label]=\"'Clear' | mtGridText\"\n [disabled]=\"params().readOnly\"\n (click)=\"clearMiniFilter()\"\n >\n <mt-grid-icon name=\"cross\" />\n </button>\n }\n </div>\n }\n @if (loading()) {\n <div class=\"mt-grid-set-loading mtg:p-3\" role=\"status\">\n {{ \"Loading...\" | mtGridText }}\n </div>\n } @else if (remoteFailed()) {\n <div\n class=\"mt-grid-set-failed mtg:p-3\"\n role=\"alert\"\n [textContent]=\"'Could not load values.' | mtGridText\"\n ></div>\n } @else if (!shownValues().length) {\n <div\n class=\"mt-grid-set-no-matches mtg:p-3\"\n [attr.role]=\"remote() ? 'status' : null\"\n [textContent]=\"\n (remoteNeedsText() ? 'Type to search...' : 'No matches.') | mtGridText\n \"\n ></div>\n } @else {\n <div\n class=\"mt-grid-set-list mtg:overflow-auto mtg:p-[var(--mt-grid-dropdown-padding)]\"\n [attr.role]=\"params().treeList ? 'tree' : 'listbox'\"\n [attr.aria-label]=\"'Filter List' | mtGridText\"\n tabindex=\"0\"\n [attr.aria-activedescendant]=\"rowId(activeIndex())\"\n [attr.aria-multiselectable]=\"!remote()?.single\"\n (scroll)=\"onSetScroll($event)\"\n (keydown)=\"onSetKey($event)\"\n >\n @if (showSelectAll()) {\n <label\n class=\"mt-grid-set-item mt-grid-set-select-all mtg:flex mtg:items-center mtg:gap-2 mtg:ps-3\"\n role=\"option\"\n [attr.aria-selected]=\"selectAllState() === 'all'\"\n >\n <input\n type=\"checkbox\"\n tabindex=\"-1\"\n [disabled]=\"params().readOnly\"\n [checked]=\"selectAllState() === 'all'\"\n [indeterminate]=\"selectAllState() === 'some'\"\n (change)=\"toggleSelectAll()\"\n />\n <span\n class=\"mt-grid-set-item-text mtg:overflow-hidden mtg:text-ellipsis mtg:whitespace-nowrap\"\n >{{\n params().excelMode && miniFilter()\n ? (\"(Select All Search Results)\" | mtGridText)\n : (\"(Select All)\" | mtGridText)\n }}</span\n >\n </label>\n }\n <div\n [style.height.px]=\"windowStart() * listRowHeight()\"\n aria-hidden=\"true\"\n ></div>\n @for (row of windowRows(); track row.id; let offset = $index) {\n <label\n class=\"mt-grid-set-item mtg:flex mtg:items-center mtg:gap-2 mtg:ps-3\"\n [class.mt-grid-set-item-active]=\"\n activeIndex() === windowStart() + offset\n \"\n [id]=\"rowId(windowStart() + offset)\"\n [attr.role]=\"params().treeList ? 'treeitem' : 'option'\"\n [attr.data-set-key]=\"row.group ? null : (row.keys[0] ?? '')\"\n [attr.aria-selected]=\"rowChecked(row.keys)\"\n [attr.aria-checked]=\"\n rowPartial(row.keys) ? 'mixed' : rowChecked(row.keys)\n \"\n [attr.aria-level]=\"row.level + 1\"\n [attr.aria-expanded]=\"\n row.group ? expandedPaths().has(row.id) : null\n \"\n [style.padding-inline-start.px]=\"12 + row.level * 16\"\n [title]=\"params().showTooltips ? row.text : ''\"\n (mousedown)=\"activeRow.set(windowStart() + offset)\"\n >\n @if (row.group) {\n <button\n class=\"mt-grid-set-tree-toggle mtg:p-0\"\n tabindex=\"-1\"\n [attr.aria-label]=\"\n (expandedPaths().has(row.id)\n ? ('Collapse ' | mtGridText)\n : ('Expand ' | mtGridText)) + row.text\n \"\n (click)=\"$event.preventDefault(); toggleTree(row.id)\"\n >\n <mt-grid-icon\n [name]=\"\n expandedPaths().has(row.id)\n ? 'chevron-down'\n : 'chevron-right'\n \"\n />\n </button>\n }\n <input\n type=\"checkbox\"\n tabindex=\"-1\"\n [disabled]=\"params().readOnly\"\n [checked]=\"rowChecked(row.keys)\"\n [indeterminate]=\"rowPartial(row.keys)\"\n (change)=\"toggleKeys(row.keys)\"\n />\n <span\n class=\"mt-grid-set-item-text mtg:overflow-hidden mtg:text-ellipsis mtg:whitespace-nowrap\"\n >{{ row.text }}</span\n >\n </label>\n }\n <div [style.height.px]=\"bottomSpace()\" aria-hidden=\"true\"></div>\n </div>\n }\n </div>\n} @else {\n <fieldset\n class=\"mt-grid-filter-body mtg:m-0 mtg:min-w-0 mtg:flex mtg:flex-col mtg:p-3\"\n [disabled]=\"params().readOnly\"\n >\n @for (condition of conditions(); track $index; let index = $index) {\n @if (index > 0) {\n <div\n class=\"mt-grid-filter-join mtg:flex mtg:justify-center mtg:gap-4 mtg:my-2\"\n role=\"radiogroup\"\n [attr.aria-label]=\"'Filter join operator' | mtGridText\"\n >\n <label\n class=\"mt-grid-filter-radio mtg:inline-flex mtg:items-center mtg:gap-2\"\n >\n <input\n type=\"radio\"\n [name]=\"joinId(index)\"\n [checked]=\"operator() === 'AND'\"\n (change)=\"setOperator('AND')\"\n (keydown)=\"onJoinKey($event, 'AND')\"\n />\n <span>{{ \"AND\" | mtGridText }}</span>\n </label>\n <label\n class=\"mt-grid-filter-radio mtg:inline-flex mtg:items-center mtg:gap-2\"\n >\n <input\n type=\"radio\"\n [name]=\"joinId(index)\"\n [checked]=\"operator() === 'OR'\"\n (change)=\"setOperator('OR')\"\n (keydown)=\"onJoinKey($event, 'OR')\"\n />\n <span>{{ \"OR\" | mtGridText }}</span>\n </label>\n </div>\n }\n <div class=\"mt-grid-filter-condition mtg:flex mtg:flex-col mtg:gap-2\">\n <div class=\"mt-grid-filter-picker-wrap\">\n <div\n class=\"mt-grid-filter-picker mtg:flex mtg:items-center mtg:px-2 mtg:bg-grid-input mtg:rounded-grid-control\"\n role=\"combobox\"\n [tabindex]=\"params().readOnly ? -1 : 0\"\n [attr.aria-disabled]=\"!!params().readOnly\"\n [attr.aria-label]=\"'Filtering operator' | mtGridText\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"openList() === index\"\n [attr.aria-controls]=\"'mt-grid-filter-list-' + index\"\n (click)=\"toggleList(index)\"\n (keydown)=\"onPickerKey($event, index)\"\n >\n <span\n class=\"mt-grid-filter-picker-display mtg:flex-1 mtg:overflow-hidden mtg:text-ellipsis mtg:whitespace-nowrap\"\n >{{ label(condition.type) | mtGridText }}</span\n >\n <mt-grid-icon name=\"chevron-down\" />\n </div>\n @if (openList() === index) {\n <div\n class=\"mt-grid-filter-list mtg:bg-grid-menu mtg:p-[var(--mt-grid-dropdown-padding)] mtg:[box-shadow:var(--mt-grid-shadow-panel)] mtg:[border-radius:var(--mt-grid-dropdown-radius)]\"\n role=\"listbox\"\n [attr.aria-label]=\"'Select Field' | mtGridText\"\n [id]=\"'mt-grid-filter-list-' + index\"\n >\n @for (type of types(); track type; let option = $index) {\n <div\n class=\"mt-grid-filter-option mtg:flex mtg:items-center mtg:px-2 mtg:whitespace-nowrap\"\n role=\"option\"\n [class.mt-grid-filter-option-active]=\"\n activeOption() === option\n \"\n [attr.aria-selected]=\"activeOption() === option ? true : null\"\n (mousedown)=\"$event.preventDefault()\"\n (click)=\"chooseType(index, type)\"\n >\n <span>{{ label(type) | mtGridText }}</span>\n </div>\n }\n </div>\n }\n </div>\n @if (!takesNoValue(condition)) {\n <div\n class=\"mt-grid-filter-input mtg:flex mtg:items-center mtg:bg-grid-input mtg:rounded-grid-control\"\n >\n <mt-grid-icon name=\"search\" />\n <input\n [type]=\"inputType()\"\n [attr.aria-label]=\"fromLabel(condition) | mtGridText\"\n [placeholder]=\"fromPlaceholder(condition) | mtGridText\"\n [attr.min]=\"kind() === 'date' ? dateLimit(false) : null\"\n [attr.max]=\"kind() === 'date' ? dateLimit(true) : null\"\n [value]=\"condition.from\"\n (input)=\"onInput(index, 'from', $event)\"\n />\n @if (condition.from !== \"\" && inputType() !== \"date\") {\n <button\n type=\"button\"\n class=\"mt-grid-filter-clear mtg:inline-flex mtg:p-0\"\n [attr.aria-label]=\"'Clear' | mtGridText\"\n (click)=\"clearInput(index, 'from')\"\n >\n <mt-grid-icon name=\"cross\" />\n </button>\n }\n </div>\n @if (isRange(condition)) {\n <div\n class=\"mt-grid-filter-input mtg:flex mtg:items-center mtg:bg-grid-input mtg:rounded-grid-control\"\n >\n <mt-grid-icon name=\"search\" />\n <input\n [type]=\"inputType()\"\n [attr.aria-label]=\"toLabel() | mtGridText\"\n [placeholder]=\"toPlaceholder(condition) | mtGridText\"\n [attr.min]=\"kind() === 'date' ? dateLimit(false) : null\"\n [attr.max]=\"kind() === 'date' ? dateLimit(true) : null\"\n [value]=\"condition.to\"\n (input)=\"onInput(index, 'to', $event)\"\n />\n @if (condition.to !== \"\" && inputType() !== \"date\") {\n <button\n type=\"button\"\n class=\"mt-grid-filter-clear mtg:inline-flex mtg:p-0\"\n [attr.aria-label]=\"'Clear' | mtGridText\"\n (click)=\"clearInput(index, 'to')\"\n >\n <mt-grid-icon name=\"cross\" />\n </button>\n }\n </div>\n }\n }\n </div>\n }\n </fieldset>\n}\n@if (buttons().length) {\n <div\n class=\"mt-grid-filter-buttons mtg:flex mtg:justify-end mtg:gap-4 mtg:[padding:8px_12px_12px]\"\n >\n @for (button of buttons(); track button) {\n <button\n [type]=\"button === 'apply' ? 'submit' : 'button'\"\n class=\"mt-grid-filter-button mtg:px-4 mtg:text-grid-primary mtg:rounded-grid-control mtg:hover:[background-color:var(--mt-grid-secondary-bg-hover)]\"\n [attr.data-filter-button]=\"button\"\n [disabled]=\"params().readOnly\"\n (click)=\"onButton(button)\"\n >\n {{ buttonLabel(button) | mtGridText }}\n </button>\n }\n </div>\n}\n", styles: [":host{font-family:var(--mt-grid-font);font-size:var(--mt-grid-font-size);line-height:var(--mt-grid-line-height)}*{scrollbar-width:thin;scrollbar-color:var(--mt-grid-scrollbar-thumb) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-thumb{background:var(--mt-grid-scrollbar-thumb);border-radius:var(--mt-grid-radius-small)}*::-webkit-scrollbar-track,*::-webkit-scrollbar-corner{background:transparent}button,input,select,[tabindex],[role=option],[role=treeitem],[role=menuitem],[role=menuitemcheckbox],[role=tab],.mt-grid-row{transition:background-color .15s ease,color .15s ease,opacity .15s ease}button,input,select,[tabindex]{outline:none}:is(button,input,select,[tabindex]):not(.mt-grid-chart-dialog,.mt-grid-filter-popup,.mt-grid-menu,.mt-grid-chooser,.mt-grid-rich-select-list,.mt-grid-filter-list,.mt-grid-multi-submenu,.mt-grid-tool-panel-wrapper):focus-visible{outline:1px solid var(--mt-grid-focus);outline-offset:2px;box-shadow:none}:is(.mt-grid-menu,.mt-grid-chooser){position:relative}:host(:focus-visible),:is(.mt-grid-menu,.mt-grid-chooser,.mt-grid-rich-select-list,.mt-grid-filter-list,.mt-grid-multi-submenu,.mt-grid-tool-panel-wrapper):focus-visible{outline:none}:host(:focus-visible):after,:is(.mt-grid-menu,.mt-grid-chooser,.mt-grid-rich-select-list,.mt-grid-filter-list,.mt-grid-multi-submenu,.mt-grid-tool-panel-wrapper):focus-visible:after{content:\"\";position:absolute;inset:0;z-index:1;border-radius:inherit;pointer-events:none;outline:1px solid var(--mt-grid-focus);outline-offset:2px}button:hover:not(:disabled){background-color:var(--mt-grid-hover)}input::placeholder{color:var(--mt-grid-placeholder)}input,select{color:var(--mt-grid-foreground);accent-color:var(--mt-grid-primary)}input:is([type=text],[type=number],[type=search],[type=date]),select{font-family:var(--mt-grid-font);font-size:var(--mt-grid-font-size);line-height:var(--mt-grid-line-height);background-color:var(--mt-grid-input-background);border-radius:var(--mt-grid-control-radius)}input:is([type=text],[type=number],[type=search],[type=date]):hover:not(:disabled),select:hover:not(:disabled){border-color:var(--mt-grid-input-border-hover)}input:is([type=text],[type=number],[type=search],[type=date]):is(:focus,:focus-visible):not(:disabled),select:is(:focus,:focus-visible):not(:disabled){border-color:var(--mt-grid-focus)}input[readonly]{border-color:var(--mt-grid-input-border-readonly)}input[type=checkbox]:not(.mt-grid-toggle-input),input[type=radio]{appearance:none;position:relative;display:inline-grid;place-content:center;box-sizing:border-box;flex:none;width:var(--mt-grid-checkbox-size);height:var(--mt-grid-checkbox-size);margin:0;border:var(--mt-grid-checkbox-border-width) solid var(--mt-grid-input-border);border-radius:var(--mt-grid-checkbox-radius);background:var(--mt-grid-input-background);cursor:pointer}input[type=radio]{border-radius:50%}input[type=checkbox]:not(.mt-grid-toggle-input):checked,input[type=checkbox]:indeterminate,input[type=radio]:checked{background:var(--mt-grid-primary);border-color:var(--mt-grid-primary)}input[type=checkbox]:checked:after{content:\"\";width:8px;height:4px;border:solid var(--mt-grid-checkbox-mark);border-width:0 0 1.5px 1.5px;transform:translateY(-1px) rotate(-45deg);mask:none;background:none}input[type=checkbox]:indeterminate:after{content:\"\";width:8px;height:2px;background:var(--mt-grid-checkbox-mark);border:0;transform:none}input[type=radio]:checked:after{content:\"\";width:6px;height:6px;border-radius:50%;background:var(--mt-grid-checkbox-mark)}input:disabled,select:disabled,button:disabled,[aria-disabled=true]{cursor:default;opacity:.6}mt-grid-icon{color:var(--mt-grid-icon-color)}button:hover mt-grid-icon,button[aria-expanded=true] mt-grid-icon,button[aria-selected=true] mt-grid-icon,button[aria-pressed=true] mt-grid-icon{color:var(--mt-grid-primary)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none;animation:none}}input[type=checkbox]:not(.mt-grid-toggle-input):focus-visible:hover:not(:disabled),input[type=radio]:focus-visible:hover:not(:disabled){outline:1px solid var(--mt-grid-focus);outline-offset:2px;box-shadow:none}:host{position:fixed;z-index:1000;box-sizing:border-box;color:var(--mt-grid-foreground);font-family:var(--mt-grid-font);background:var(--mt-grid-menu-background);border:1px solid var(--mt-grid-menu-border);border-radius:4px;box-shadow:0 0 16px var(--mt-grid-shadow-color);-webkit-user-select:none;user-select:none}.mt-grid-set-mini{margin:var(--mt-grid-set-search-margin, 8px);position:relative;height:32px}.mt-grid-set-mini>mt-grid-icon{position:absolute;inset-inline-start:8px;pointer-events:none}.mt-grid-set-mini input{box-sizing:border-box;width:100%;height:32px;padding-inline:32px;font:inherit;color:inherit;background:var(--mt-grid-input-background);border:1px solid var(--mt-grid-input-border);border-radius:var(--mt-grid-control-radius);outline:none}.mt-grid-set-mini input:focus-visible{border-color:var(--mt-grid-accent)}.mt-grid-set-mini .mt-grid-filter-clear{position:absolute;inset-inline-end:8px}.mt-grid-set-list{height:var(--mt-grid-set-list-height, 256px);max-height:var(--mt-grid-set-list-height, 256px)}.mt-grid-set-item{height:24px;cursor:default}.mt-grid-set-item input{box-sizing:border-box;flex:none;width:16px;height:16px;margin:0;accent-color:var(--mt-grid-accent)}:host(.mt-grid-filter-inline){position:static;width:auto;background:transparent;border:0;border-radius:0;box-shadow:none}.mt-grid-filter-body{border:0}.mt-grid-filter-condition:first-child{margin-bottom:8px}.mt-grid-filter-picker-wrap{position:relative}.mt-grid-filter-picker{box-sizing:border-box;height:32px;border:1px solid var(--mt-grid-input-border);cursor:default;outline:none}.mt-grid-filter-picker:focus-visible,.mt-grid-filter-input:focus-within{outline:1px solid var(--mt-grid-focus);outline-offset:2px;box-shadow:none;border-color:var(--mt-grid-focus)}.mt-grid-filter-list{position:absolute;inset-inline:0;top:calc(100% + 4px);z-index:1;box-sizing:border-box;border:1px solid var(--mt-grid-menu-border)}.mt-grid-filter-option{height:24px}.mt-grid-filter-option-active{background:var(--mt-grid-menu-active)}.mt-grid-filter-input{position:relative;box-sizing:border-box;height:32px;border:1px solid var(--mt-grid-input-border)}.mt-grid-filter-input>mt-grid-icon{position:absolute;inset-inline-start:8px;width:16px;height:16px;color:var(--mt-grid-secondary-foreground);pointer-events:none}.mt-grid-filter-input input{flex:1;box-sizing:border-box;width:100%;height:100%;min-width:0;padding-inline:32px 28px;font:inherit;color:inherit;background:none;border:0;outline:none}.mt-grid-filter-input input[type=date]{padding-inline-end:8px}.mt-grid-filter-clear{position:absolute;inset-inline-end:8px;width:16px;height:16px;color:var(--mt-grid-secondary-foreground);background:none;border:0;cursor:pointer}.mt-grid-filter-join{height:17px}.mt-grid-filter-radio input{width:16px;height:16px;margin:0}.mt-grid-filter-buttons{box-sizing:border-box;height:59px;border-top:1px solid var(--mt-grid-menu-separator)}.mt-grid-filter-button{height:39px;font:inherit;color:inherit;background:var(--mt-grid-input-background);border:1px solid var(--mt-grid-input-border);cursor:pointer}.mt-grid-set-list:focus-visible .mt-grid-set-item-active{background:var(--mt-grid-menu-active)}.mt-grid-set-list:focus-visible{outline:2px solid var(--mt-grid-accent);outline-offset:-2px}.mt-grid-set-tree-toggle{border:0;background:none;color:inherit;width:16px;cursor:pointer}.mt-grid-multi-section{position:relative;border-bottom:1px solid var(--mt-grid-menu-border)}.mt-grid-multi-title{width:100%;border:0;color:inherit;font:inherit;background:transparent;cursor:pointer}.mt-grid-multi-submenu{position:absolute;inset-inline-start:calc(100% - 4px);top:0;width:260px;z-index:2;background:var(--mt-grid-menu-background);border:1px solid var(--mt-grid-menu-border);box-shadow:0 0 16px var(--mt-grid-shadow-color)}:host{border-radius:var(--mt-grid-overlay-radius);box-shadow:var(--mt-grid-shadow-popup)}.mt-grid-filter-button{height:var(--mt-grid-input-height);background:var(--mt-grid-chrome-background)}.mt-grid-filter-button[data-filter-button=apply]{color:var(--mt-grid-checkbox-mark);background:var(--mt-grid-accent);border-color:var(--mt-grid-accent)}.mt-grid-filter-list,.mt-grid-multi-submenu{border-radius:var(--mt-grid-overlay-radius);box-shadow:var(--mt-grid-shadow-popup)}.mt-grid-set-item,.mt-grid-filter-option{height:var(--mt-grid-dropdown-row-height)}.mt-grid-set-item input{order:0;margin:0;width:var(--mt-grid-checkbox-size);height:var(--mt-grid-checkbox-size)}.mt-grid-filter-list{border-color:var(--mt-grid-input-border)}.mt-grid-filter-option[aria-selected=true]:after{content:\"\\2713\";width:16px;margin-inline-start:auto;color:var(--mt-grid-primary)}.mt-grid-filter-button{height:var(--mt-grid-button-height);border-color:transparent;font-size:var(--mt-grid-font-size);font-weight:500;background:var(--mt-grid-secondary-bg)}.mt-grid-filter-picker:focus-visible,.mt-grid-filter-input:focus-within{border-color:var(--mt-grid-focus);outline:1px solid var(--mt-grid-focus);outline-offset:2px;box-shadow:none}.mt-grid-filter-button[data-filter-button=apply]:hover{background:var(--mt-grid-primary-700)}.mt-grid-filter-option[aria-selected=true]{background:transparent}.mt-grid-filter-option-active[aria-selected=true]{background:var(--mt-grid-hover)}.mt-grid-filter-picker:hover,.mt-grid-filter-input:hover{border-color:var(--mt-grid-input-border-hover)}.mt-grid-filter-picker:is(:focus,:focus-visible),.mt-grid-filter-input:focus-within{border-color:var(--mt-grid-focus)}.mt-grid-filter-input input:focus-visible{box-shadow:none;outline:none}.mt-grid-set-item{height:var(--mt-grid-set-row-height, 32px)}.mt-grid-set-mini input:focus{outline:1px solid var(--mt-grid-focus);outline-offset:2px}\n"] }]
|
|
7687
7684
|
}], ctorParameters: () => [], propDecorators: { kind: [{ type: i0.Input, args: [{ isSignal: true, alias: "kind", required: true }] }], model: [{ type: i0.Input, args: [{ isSignal: true, alias: "model", required: false }] }], params: [{ type: i0.Input, args: [{ isSignal: true, alias: "params", required: false }] }], values: [{ type: i0.Input, args: [{ isSignal: true, alias: "values", required: false }] }], formatValue: [{ type: i0.Input, args: [{ isSignal: true, alias: "formatValue", required: false }] }], position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], anchorTop: [{ type: i0.Input, args: [{ isSignal: true, alias: "anchorTop", required: false }] }], inline: [{ type: i0.Input, args: [{ isSignal: true, alias: "inline", required: false }] }], direction: [{ type: i0.Input, args: [{ isSignal: true, alias: "direction", required: false }] }], modelChange: [{ type: i0.Output, args: ["modelChange"] }], modified: [{ type: i0.Output, args: ["modified"] }], valuesResolved: [{ type: i0.Output, args: ["valuesResolved"] }], closed: [{ type: i0.Output, args: ["closed"] }] } });
|
|
7688
7685
|
|
|
7689
|
-
/** Application defaults for built-in Columns panels; explicit panel params win. */
|
|
7690
|
-
const MT_GRID_COLUMNS_TOOL_PANEL_DEFAULTS = new InjectionToken('MT_GRID_COLUMNS_TOOL_PANEL_DEFAULTS', { providedIn: 'root', factory: () => ({}) });
|
|
7691
7686
|
/** The reference's default tool panel width (live-sidebar Q120). */
|
|
7692
7687
|
const TOOL_PANEL_WIDTH = 250;
|
|
7693
7688
|
const PANEL_DEFAULTS = {
|
|
@@ -19470,5 +19465,5 @@ async function createExcelWorkbook(sheets, rtl = false) {
|
|
|
19470
19465
|
* Generated bundle index. Do not edit.
|
|
19471
19466
|
*/
|
|
19472
19467
|
|
|
19473
|
-
export { AUTO_GROUP_COLUMN_ID, CHART_MENU_GROUPS, CHART_MISSING_CATEGORY_ID, CHART_RECORD_COUNT_ID, CHART_TYPES, DETAIL_ROW_ID_PREFIX,
|
|
19468
|
+
export { AUTO_GROUP_COLUMN_ID, CHART_MENU_GROUPS, CHART_MISSING_CATEGORY_ID, CHART_RECORD_COUNT_ID, CHART_TYPES, DETAIL_ROW_ID_PREFIX, MtDataGridComponent, MtGridChartScope, ROW_NUMBERS_COLUMN_ID, SELECTION_COLUMN_ID, applyGridViewState, buildRowLayout, captureGridViewState, chartDistinctMeasureId, chartMeasure, chartNonEmptyMeasureId, chartTypeLabel, createExcelWorkbook, editorKindFor, fillValues, parseClipboardText, parseEditedValue, parseGridViewState, queryClientRows, rowWindowFor, sparklineGeometry, sparklineValues, stableCategoryColors };
|
|
19474
19469
|
//# sourceMappingURL=masterteam-data-grid.mjs.map
|