@akcelik/strct 1.10.2 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/akcelik-strct.mjs +196 -70
- package/fesm2022/akcelik-strct.mjs.map +1 -1
- package/package.json +1 -1
- package/types/akcelik-strct.d.ts +44 -5
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@akcelik/strct",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.12.0",
|
|
4
4
|
"description": "UIStruct — a standalone Angular component library with a tokenised, multi-palette theme system, built for datacenter / infrastructure management UIs.",
|
|
5
5
|
"author": "Serkan Akcelik <serkan.akcelik@gmail.com>",
|
|
6
6
|
"license": "MIT",
|
package/types/akcelik-strct.d.ts
CHANGED
|
@@ -330,9 +330,17 @@ declare class StrctIcon {
|
|
|
330
330
|
private readonly sanitizer;
|
|
331
331
|
/**
|
|
332
332
|
* Icon name. Typed to autocomplete the built-in set while still accepting
|
|
333
|
-
* any string, since `registerStrctIcon` can add names at runtime.
|
|
333
|
+
* any string, since `registerStrctIcon` can add names at runtime. For a
|
|
334
|
+
* compile-time guarantee use `strictName` instead.
|
|
334
335
|
*/
|
|
335
336
|
readonly name: _angular_core.InputSignal<StrctIconName | (string & {})>;
|
|
337
|
+
/**
|
|
338
|
+
* Strict alternative to `name`: typed as the bare `StrctIconName` union, so
|
|
339
|
+
* a mistyped built-in name is a BUILD error under strict templates —
|
|
340
|
+
* `strictName="sheildCheck"` fails to compile. Wins over `name` when both
|
|
341
|
+
* are set. Use `name` for runtime-registered custom icons.
|
|
342
|
+
*/
|
|
343
|
+
readonly strictName: _angular_core.InputSignal<StrctIconName | null>;
|
|
336
344
|
/** Icon size in pixels. */
|
|
337
345
|
readonly size: _angular_core.InputSignal<number>;
|
|
338
346
|
/** Stroke width for outline icons. */
|
|
@@ -341,12 +349,14 @@ declare class StrctIcon {
|
|
|
341
349
|
readonly badge: _angular_core.InputSignal<StrctIconBadge>;
|
|
342
350
|
/** Accessible label for the icon. When empty the icon is hidden from assistive tech. */
|
|
343
351
|
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
352
|
+
/** The effective name: `strictName` wins when set. */
|
|
353
|
+
protected readonly iconName: _angular_core.Signal<StrctIconName | (string & {})>;
|
|
344
354
|
/** True when the named icon is a full-SVG (raw) icon registered by the app. */
|
|
345
355
|
protected readonly isRaw: _angular_core.Signal<boolean>;
|
|
346
356
|
protected readonly svg: _angular_core.Signal<SafeHtml>;
|
|
347
357
|
protected readonly rawSvg: _angular_core.Signal<SafeHtml>;
|
|
348
358
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctIcon, never>;
|
|
349
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctIcon, "strct-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
359
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctIcon, "strct-icon", never, { "name": { "alias": "name"; "required": false; "isSignal": true; }; "strictName": { "alias": "strictName"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
350
360
|
}
|
|
351
361
|
|
|
352
362
|
/** Overlay positioning strategies. */
|
|
@@ -2489,6 +2499,7 @@ interface StrctDatagridLabels {
|
|
|
2489
2499
|
clearFilter: string;
|
|
2490
2500
|
editCell: string;
|
|
2491
2501
|
toggleChildren: string;
|
|
2502
|
+
quickFilter: string;
|
|
2492
2503
|
}
|
|
2493
2504
|
/** Resolves a stable identity for a row: a property key, or a function. */
|
|
2494
2505
|
type StrctRowId = string | ((row: StrctRow) => unknown);
|
|
@@ -2531,6 +2542,8 @@ interface StrctDatagridLazyState {
|
|
|
2531
2542
|
sortDir: SortDir;
|
|
2532
2543
|
/** Active per-column filters (empty object when none). */
|
|
2533
2544
|
filters: StrctDatagridFilters;
|
|
2545
|
+
/** The global quick-filter term ('' when none). */
|
|
2546
|
+
quickFilter: string;
|
|
2534
2547
|
}
|
|
2535
2548
|
/** Persistable user column preferences (widths from resize, hidden from the
|
|
2536
2549
|
* chooser, order from drag-reorder). */
|
|
@@ -2644,6 +2657,7 @@ declare class StrctDatagrid {
|
|
|
2644
2657
|
clearFilter: string;
|
|
2645
2658
|
editCell: string;
|
|
2646
2659
|
toggleChildren: string;
|
|
2660
|
+
quickFilter: string;
|
|
2647
2661
|
}>;
|
|
2648
2662
|
/**
|
|
2649
2663
|
* Virtual scrolling for large data sets: only the rows inside the viewport
|
|
@@ -2687,6 +2701,17 @@ declare class StrctDatagrid {
|
|
|
2687
2701
|
* mode it is passed through on `lazyLoad` instead.
|
|
2688
2702
|
*/
|
|
2689
2703
|
readonly filters: _angular_core.ModelSignal<StrctDatagridFilters>;
|
|
2704
|
+
/**
|
|
2705
|
+
* Global quick filter (two-way): one term substring-matched (OR) across
|
|
2706
|
+
* `quickFilterFields` — the console-standard "filter this list fast" box.
|
|
2707
|
+
* Complementary to the per-column `filters` (which AND). Applied before
|
|
2708
|
+
* paging client-side; passed through on `lazyLoad` in server mode.
|
|
2709
|
+
*/
|
|
2710
|
+
readonly quickFilter: _angular_core.ModelSignal<string>;
|
|
2711
|
+
/** Columns the quick term scans. Defaults to every column's `key`. */
|
|
2712
|
+
readonly quickFilterFields: _angular_core.InputSignal<string[] | null>;
|
|
2713
|
+
/** Render the built-in quick-filter searchbox in the toolbar. */
|
|
2714
|
+
readonly quickFilterable: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
2690
2715
|
/**
|
|
2691
2716
|
* Tree-grid: the row property holding a row's children array. Rows render
|
|
2692
2717
|
* hierarchically with indent + carets; sorting applies per sibling level;
|
|
@@ -2784,11 +2809,23 @@ declare class StrctDatagrid {
|
|
|
2784
2809
|
protected startEdit(row: StrctRow, col: StrctDatagridColumn): void;
|
|
2785
2810
|
protected commitEdit(row: StrctRow, col: StrctDatagridColumn, event: Event): void;
|
|
2786
2811
|
protected cancelEdit(event?: Event): void;
|
|
2812
|
+
/**
|
|
2813
|
+
* `singleLine` reveal: hovering a cell whose content is actually clipped
|
|
2814
|
+
* gets the full text as a native `title`. Hover-lazy (one delegated
|
|
2815
|
+
* listener, zero render cost — virtual grids pay nothing for unhovered
|
|
2816
|
+
* cells), covers plain and `strctCell`-templated cells alike via
|
|
2817
|
+
* `textContent`, and self-corrects after a column resize.
|
|
2818
|
+
*/
|
|
2819
|
+
protected revealIfClipped(event: Event): void;
|
|
2787
2820
|
/** Active (non-empty) filter entries. */
|
|
2788
2821
|
private readonly activeFilters;
|
|
2822
|
+
private readonly quickTerm;
|
|
2823
|
+
private matchesQuick;
|
|
2789
2824
|
private matchesFilters;
|
|
2790
|
-
/** Rows surviving the per-column filters (client-side modes only). */
|
|
2825
|
+
/** Rows surviving the quick + per-column filters (client-side modes only). */
|
|
2791
2826
|
private readonly filteredRows;
|
|
2827
|
+
/** "12 / 480" — shown while any client-side filtering narrows the set. */
|
|
2828
|
+
protected readonly filterNote: _angular_core.Signal<string | null>;
|
|
2792
2829
|
/** Tree mode: flattened visible rows + per-row depth/children/expanded meta. */
|
|
2793
2830
|
private readonly treeFlat;
|
|
2794
2831
|
protected readonly sorted: _angular_core.Signal<StrctRow[]>;
|
|
@@ -2867,7 +2904,7 @@ declare class StrctDatagrid {
|
|
|
2867
2904
|
private commitSelection;
|
|
2868
2905
|
private compare;
|
|
2869
2906
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctDatagrid, never>;
|
|
2870
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDatagrid, "strct-datagrid", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "detailPane": { "alias": "detailPane"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "singleLine": { "alias": "singleLine"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "columnChooser": { "alias": "columnChooser"; "required": false; "isSignal": true; }; "sync": { "alias": "sync"; "required": false; "isSignal": true; }; "footerActionsDisabled": { "alias": "footerActionsDisabled"; "required": false; "isSignal": true; }; "rowId": { "alias": "rowId"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "initialSelection": { "alias": "initialSelection"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "virtual": { "alias": "virtual"; "required": false; "isSignal": true; }; "viewportHeight": { "alias": "viewportHeight"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "stateKey": { "alias": "stateKey"; "required": false; "isSignal": true; }; "columnState": { "alias": "columnState"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "childrenKey": { "alias": "childrenKey"; "required": false; "isSignal": true; }; }, { "columnState": "columnStateChange"; "filters": "filtersChange"; "selectionChange": "selectionChange"; "syncChange": "syncChange"; "rowAction": "rowAction"; "lazyLoad": "lazyLoad"; "cellEdit": "cellEdit"; }, ["detailDef", "actionBarDef", "cellDefs"], ["[strctDatagridActionBar]"], true, never>;
|
|
2907
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctDatagrid, "strct-datagrid", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rows": { "alias": "rows"; "required": true; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "expandable": { "alias": "expandable"; "required": false; "isSignal": true; }; "detailPane": { "alias": "detailPane"; "required": false; "isSignal": true; }; "compact": { "alias": "compact"; "required": false; "isSignal": true; }; "singleLine": { "alias": "singleLine"; "required": false; "isSignal": true; }; "emptyText": { "alias": "emptyText"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "resizable": { "alias": "resizable"; "required": false; "isSignal": true; }; "columnChooser": { "alias": "columnChooser"; "required": false; "isSignal": true; }; "sync": { "alias": "sync"; "required": false; "isSignal": true; }; "footerActionsDisabled": { "alias": "footerActionsDisabled"; "required": false; "isSignal": true; }; "rowId": { "alias": "rowId"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "initialSelection": { "alias": "initialSelection"; "required": false; "isSignal": true; }; "labels": { "alias": "labels"; "required": false; "isSignal": true; }; "virtual": { "alias": "virtual"; "required": false; "isSignal": true; }; "viewportHeight": { "alias": "viewportHeight"; "required": false; "isSignal": true; }; "rowHeight": { "alias": "rowHeight"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "total": { "alias": "total"; "required": false; "isSignal": true; }; "stateKey": { "alias": "stateKey"; "required": false; "isSignal": true; }; "columnState": { "alias": "columnState"; "required": false; "isSignal": true; }; "reorderable": { "alias": "reorderable"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "quickFilter": { "alias": "quickFilter"; "required": false; "isSignal": true; }; "quickFilterFields": { "alias": "quickFilterFields"; "required": false; "isSignal": true; }; "quickFilterable": { "alias": "quickFilterable"; "required": false; "isSignal": true; }; "childrenKey": { "alias": "childrenKey"; "required": false; "isSignal": true; }; }, { "columnState": "columnStateChange"; "filters": "filtersChange"; "quickFilter": "quickFilterChange"; "selectionChange": "selectionChange"; "syncChange": "syncChange"; "rowAction": "rowAction"; "lazyLoad": "lazyLoad"; "cellEdit": "cellEdit"; }, ["detailDef", "actionBarDef", "cellDefs"], ["[strctDatagridActionBar]"], true, never>;
|
|
2871
2908
|
}
|
|
2872
2909
|
|
|
2873
2910
|
/** Timeline node state colors. */
|
|
@@ -3738,6 +3775,8 @@ declare class StrctTimeRangePicker {
|
|
|
3738
3775
|
readonly presets: _angular_core.InputSignal<StrctTimeRangePreset[]>;
|
|
3739
3776
|
/** Popover alignment, as in strct-dropdown. */
|
|
3740
3777
|
readonly align: _angular_core.InputSignal<"end" | "start">;
|
|
3778
|
+
/** Trigger size — match it to the toolbar's buttons (sm strips). */
|
|
3779
|
+
readonly size: _angular_core.InputSignal<"md" | "sm">;
|
|
3741
3780
|
/** Localizable strings. */
|
|
3742
3781
|
readonly dialogLabel: _angular_core.InputSignal<string>;
|
|
3743
3782
|
readonly quickLabel: _angular_core.InputSignal<string>;
|
|
@@ -3762,7 +3801,7 @@ declare class StrctTimeRangePicker {
|
|
|
3762
3801
|
private toLocal;
|
|
3763
3802
|
private formatStamp;
|
|
3764
3803
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StrctTimeRangePicker, never>;
|
|
3765
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctTimeRangePicker, "strct-time-range", never, { "range": { "alias": "range"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "dialogLabel": { "alias": "dialogLabel"; "required": false; "isSignal": true; }; "quickLabel": { "alias": "quickLabel"; "required": false; "isSignal": true; }; "absoluteLabel": { "alias": "absoluteLabel"; "required": false; "isSignal": true; }; "fromLabel": { "alias": "fromLabel"; "required": false; "isSignal": true; }; "toLabel": { "alias": "toLabel"; "required": false; "isSignal": true; }; "applyLabel": { "alias": "applyLabel"; "required": false; "isSignal": true; }; "invalidLabel": { "alias": "invalidLabel"; "required": false; "isSignal": true; }; "placeholderLabel": { "alias": "placeholderLabel"; "required": false; "isSignal": true; }; }, { "range": "rangeChange"; "applied": "applied"; }, never, never, true, never>;
|
|
3804
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StrctTimeRangePicker, "strct-time-range", never, { "range": { "alias": "range"; "required": false; "isSignal": true; }; "presets": { "alias": "presets"; "required": false; "isSignal": true; }; "align": { "alias": "align"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "dialogLabel": { "alias": "dialogLabel"; "required": false; "isSignal": true; }; "quickLabel": { "alias": "quickLabel"; "required": false; "isSignal": true; }; "absoluteLabel": { "alias": "absoluteLabel"; "required": false; "isSignal": true; }; "fromLabel": { "alias": "fromLabel"; "required": false; "isSignal": true; }; "toLabel": { "alias": "toLabel"; "required": false; "isSignal": true; }; "applyLabel": { "alias": "applyLabel"; "required": false; "isSignal": true; }; "invalidLabel": { "alias": "invalidLabel"; "required": false; "isSignal": true; }; "placeholderLabel": { "alias": "placeholderLabel"; "required": false; "isSignal": true; }; }, { "range": "rangeChange"; "applied": "applied"; }, never, never, true, never>;
|
|
3766
3805
|
}
|
|
3767
3806
|
|
|
3768
3807
|
/** A log line: plain text plus an optional severity for tinting. */
|