@orangelogic/design-system 2.82.0 → 2.83.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.
@@ -29,7 +29,7 @@ import { default as fe } from "./format-number.js";
29
29
  import { default as se } from "./format-time.js";
30
30
  import { default as Ce } from "./grid.js";
31
31
  import { default as le } from "./grid-item.js";
32
- import { C as ne } from "../chunks/header.D68fIfe2.js";
32
+ import { C as ne } from "../chunks/header.DNWBVy5d.js";
33
33
  import { C as ge } from "../chunks/hub-connection.Ot2odiCz.js";
34
34
  import { default as be } from "./icon.js";
35
35
  import { C as Te } from "../chunks/icon-button.BuhCp--_.js";
@@ -70,7 +70,7 @@ import { default as ka } from "./stepper.js";
70
70
  import { default as Ea } from "./switch.js";
71
71
  import { default as La } from "./tab.js";
72
72
  import { C as ja } from "../chunks/tab-group.B2t3Ipa3.js";
73
- import { C as za } from "../chunks/table.DgYTOnso.js";
73
+ import { C as za } from "../chunks/table.CR0X6Kbe.js";
74
74
  import { default as qa } from "./tab-panel.js";
75
75
  import { default as Ka } from "./tag.js";
76
76
  import { default as Wa } from "./textarea.js";
@@ -1,10 +1,10 @@
1
1
  import "./space.js";
2
- import "../chunks/table.DgYTOnso.js";
2
+ import "../chunks/table.CR0X6Kbe.js";
3
3
  import "../chunks/typography.DJC_UXgs.js";
4
4
  import "../chunks/lib-cortex-element.CVMmyPMC.js";
5
5
  import "../chunks/color-swatch.Bx-HOp9f.js";
6
6
  import "../chunks/component.styles.CRO4Odto.js";
7
- import { C as w } from "../chunks/color-swatch-group.9Cj98tfp.js";
7
+ import { C as w } from "../chunks/color-swatch-group.B7myKRVQ.js";
8
8
  import "../chunks/content-builder.B4Tqoc6M.js";
9
9
  import "../chunks/custom-element.L4WJXn1j.js";
10
10
  import "../chunks/debounce.DaHuiSGU.js";
@@ -1,7 +1,7 @@
1
1
  import "./copy-button.js";
2
2
  import "../chunks/lib-cortex-element.CVMmyPMC.js";
3
3
  import "../chunks/component.styles.CRO4Odto.js";
4
- import { C as x } from "../chunks/header.D68fIfe2.js";
4
+ import { C as x } from "../chunks/header.DNWBVy5d.js";
5
5
  import "../chunks/custom-element.L4WJXn1j.js";
6
6
  import "../chunks/i18n.BUW7B9hr.js";
7
7
  import "../chunks/watch.BCJD77bD.js";
@@ -9,7 +9,7 @@ import "./radio.js";
9
9
  import "./radio-group.js";
10
10
  import "./select.js";
11
11
  import "./space.js";
12
- import "../chunks/table.DgYTOnso.js";
12
+ import "../chunks/table.CR0X6Kbe.js";
13
13
  import "../chunks/typography.DJC_UXgs.js";
14
14
  import "../chunks/lib-cortex-element.CVMmyPMC.js";
15
15
  import "./dynamic-select.js";
@@ -18,7 +18,7 @@ import "../chunks/custom-element.L4WJXn1j.js";
18
18
  import "../chunks/debounce.DaHuiSGU.js";
19
19
  import "../chunks/i18n.BUW7B9hr.js";
20
20
  import "../chunks/watch.BCJD77bD.js";
21
- import { c as E, C as F } from "../chunks/list-editor.6MidcXE8.js";
21
+ import { c as E, C as F } from "../chunks/list-editor.COyD7BLb.js";
22
22
  import "../chunks/lit-element.jLBm65_O.js";
23
23
  import "../chunks/state.CSDxrqLd.js";
24
24
  import "../chunks/query.BBf1UFkC.js";
@@ -6,7 +6,7 @@ import { default as u } from "./corner-position-input-group.js";
6
6
  import { C as m } from "../chunks/cropper.DTokTzP9.js";
7
7
  import { default as i } from "./dynamic-select.js";
8
8
  import { C as c } from "../chunks/folder-select.C0lq8nkf.js";
9
- import { C as P } from "../chunks/list-editor.6MidcXE8.js";
9
+ import { C as P } from "../chunks/list-editor.COyD7BLb.js";
10
10
  import { default as I } from "./masonry.js";
11
11
  import { default as y } from "./padding-input-group.js";
12
12
  import { default as w } from "./position-picker.js";
@@ -1,5 +1,5 @@
1
1
  import { default as a } from "./asset-link-format.js";
2
- import { C as t } from "../chunks/color-swatch-group.9Cj98tfp.js";
2
+ import { C as t } from "../chunks/color-swatch-group.B7myKRVQ.js";
3
3
  import { C } from "../chunks/file-on-demand.C1FsJcvR.js";
4
4
  export {
5
5
  a as CxAssetLinkFormat,
@@ -10,7 +10,7 @@ import "../chunks/lib-cortex-element.CVMmyPMC.js";
10
10
  import "../chunks/component.styles.CRO4Odto.js";
11
11
  import "../chunks/overlayscrollbars.BMav4RQ4.js";
12
12
  import "../chunks/pagination.BhTABU__.js";
13
- import { A as F, i as P, j as S, d as g, g as v, b as y, k as A, l as D, c as I, a0 as f, a1 as h, D as E, m as G, E as j, n as H, F as K, o as L, p as V, q as k, G as q, r as B, s as J, t as N, I as O, u as Q, K as U, v as W, M as X, w as Y, x as Z, y as _, z as $, B as oo, J as eo, L as ao, P as so, e as lo, N as to, h as uo, O as ro, Q as Mo, U as io, V as po, f as mo, R as no, X as Co, W as Ro, S as co, Y as bo, Z as wo, T as To, a as xo, _ as zo, $ as Fo, C as Po } from "../chunks/table.DgYTOnso.js";
13
+ import { A as F, i as P, j as S, d as g, g as v, b as y, k as A, l as D, c as I, a0 as f, a1 as h, D as E, m as G, E as j, n as H, F as K, o as L, p as V, q as k, G as q, r as B, s as J, t as N, I as O, u as Q, K as U, v as W, M as X, w as Y, x as Z, y as _, z as $, B as oo, J as eo, L as ao, P as so, e as lo, N as to, h as uo, O as ro, Q as Mo, U as io, V as po, f as mo, R as no, X as Co, W as Ro, S as co, Y as bo, Z as wo, T as To, a as xo, _ as zo, $ as Fo, C as Po } from "../chunks/table.CR0X6Kbe.js";
14
14
  import "../chunks/custom-element.L4WJXn1j.js";
15
15
  import "../chunks/i18n.BUW7B9hr.js";
16
16
  import "../chunks/watch.BCJD77bD.js";
@@ -29,7 +29,7 @@ import dK from "./format-number.js";
29
29
  import sR from "./format-time.js";
30
30
  import Qg from "./grid.js";
31
31
  import em from "./grid-item.js";
32
- import { C as cR, V as uK, A as pK } from "../chunks/header.D68fIfe2.js";
32
+ import { C as cR, V as uK, A as pK } from "../chunks/header.DNWBVy5d.js";
33
33
  import { H as hK, a as gK } from "../chunks/hub-connection.Ot2odiCz.js";
34
34
  import { C as UUt } from "../chunks/hub-connection.Ot2odiCz.js";
35
35
  import fo from "./icon.js";
@@ -71,7 +71,7 @@ import { default as uqt } from "./stepper.js";
71
71
  import Kb from "./switch.js";
72
72
  import G2 from "./tab.js";
73
73
  import { C as K2, T as e9, a as t9, b as n9, g as TO } from "../chunks/tab-group.B2t3Ipa3.js";
74
- import { C as r9 } from "../chunks/table.DgYTOnso.js";
74
+ import { C as r9 } from "../chunks/table.CR0X6Kbe.js";
75
75
  import i9 from "./tab-panel.js";
76
76
  import { default as hqt } from "./tag.js";
77
77
  import uR from "./textarea.js";
@@ -112,7 +112,7 @@ import { H as wR } from "../chunks/slot.j5oheLJC.js";
112
112
  import { a as lVt, g as dVt } from "../chunks/slot.j5oheLJC.js";
113
113
  import { c as LO, G as mh, d as Yd, T as xR, h as fn, i as kR, j as nY, t as RO, u as rY, f as y1, k as iY, F as Cf, M as Vv } from "../chunks/string.B_mXTq0K.js";
114
114
  import { b as pVt, a as hVt, e as gVt, g as mVt, p as fVt, r as vVt, s as yVt, n as bVt, l as wVt, m as xVt, o as kVt } from "../chunks/string.B_mXTq0K.js";
115
- import { a as l9, u as tp, I as _R, C as oY } from "../chunks/list-editor.6MidcXE8.js";
115
+ import { a as l9, u as tp, I as _R, C as oY } from "../chunks/list-editor.COyD7BLb.js";
116
116
  import aY from "./bicolor-picker.js";
117
117
  import CR from "./border-input-group.js";
118
118
  import { C as CVt } from "../chunks/color-swatch.Bx-HOp9f.js";
@@ -165,8 +165,8 @@ import { c as hg } from "../chunks/math.DqTA6ya4.js";
165
165
  import { b as YO, e as $Y } from "../chunks/number.CjNxU7Xs.js";
166
166
  import { a as rWt, c as iWt, f as oWt, r as aWt, s as sWt } from "../chunks/number.CjNxU7Xs.js";
167
167
  import { t as LR } from "../chunks/event-options.CYHYGOd8.js";
168
- import { a as Uw } from "../chunks/color-swatch-group.9Cj98tfp.js";
169
- import { C as lWt } from "../chunks/color-swatch-group.9Cj98tfp.js";
168
+ import { a as Uw } from "../chunks/color-swatch-group.B7myKRVQ.js";
169
+ import { C as lWt } from "../chunks/color-swatch-group.B7myKRVQ.js";
170
170
  import { t as jY } from "../chunks/converters.DkDtLstb.js";
171
171
  import { i as HY } from "../chunks/user-agent.D9aPuOyL.js";
172
172
  import { a as RR, U as f9, t as UY } from "../chunks/url.Cj9cIQXJ.js";
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "2.82.0",
4
+ "version": "2.83.0",
5
5
  "license": "UNLICENSED",
6
6
  "types": "library/types.d.ts",
7
7
  "scripts": {
@@ -188,6 +188,12 @@ export default class CxTable extends CortexElement {
188
188
  * Fields to search in the table.
189
189
  */
190
190
  searchFields: string[];
191
+ /**
192
+ * Search keyword match mode. When `true`, any single keyword (split by space)
193
+ * matching is enough to include a row. When `false` (default), all keywords
194
+ * must match within a single field.
195
+ */
196
+ searchMatchAnyKeyword: boolean;
191
197
  /**
192
198
  * Whether to display a create new button
193
199
  */
@@ -720,6 +726,7 @@ export default class CxTable extends CortexElement {
720
726
  search(searchText: string): void;
721
727
  private handleSearch;
722
728
  handleSearchFieldsChange(): void;
729
+ handleSearchMatchAnyKeywordChange(): void;
723
730
  handleDropdownFiltersPropChange(): void;
724
731
  private handleTableExport;
725
732
  private handleDropdownFilterChange;
@@ -59,9 +59,16 @@ export default class Filter extends Module implements IFilter {
59
59
  trackChanges(): void;
60
60
  hasChanged(): boolean;
61
61
  /**
62
- * Normally, filter operates on a single field. To create a filter that operates on multiple or all fields,
63
- * first pass the field names (or none to match all) to this method, then use this method as the filter's field.
64
- * @param fields - The fields to match against. If not provided, all fields will be matched.
62
+ * Normally, filter operates on a single field. To create a filter that operates on multiple
63
+ * or all registered columns, first pass the field names (or none to default to every
64
+ * registered column's field) to this method, then use this method as the filter's field.
65
+ *
66
+ * When `fields` is omitted, the search iterates only over fields that have a registered
67
+ * column. Data keys without a column (e.g. hidden payload fields) are skipped so the search
68
+ * matches what the user actually sees on screen. If the column manager has no columns yet
69
+ * (table not yet initialized), falls back to iterating all data keys.
70
+ *
71
+ * @param fields - The fields to match against. If not provided, all fields with a registered column will be matched.
65
72
  * @returns A function that can be used to match against the data.
66
73
  */
67
74
  createFilterFieldFunction(fields?: string[]): (data: any, filter: FilterType) => boolean;
@@ -0,0 +1,93 @@
1
+ import { CompositeElement, ITabulator } from '../../../../../../../types/src/table';
2
+
3
+ interface ResolverInput {
4
+ formatterParams: any;
5
+ rawValue: unknown;
6
+ rowData: Record<string, unknown>;
7
+ separator: string | undefined;
8
+ table: ITabulator | null | undefined;
9
+ }
10
+ declare function resolveCompositeElementSourceValue(element: CompositeElement, columnField: string, rawValue: unknown, rowData: Record<string, unknown>, separator: string | undefined): unknown;
11
+ declare function resolveCompositeDisplayValues(input: ResolverInput, columnField: string): unknown[];
12
+ declare function resolveLookupDisplayValues(input: ResolverInput): unknown[];
13
+ declare function resolveArrayDisplayValues(input: ResolverInput): unknown[];
14
+ declare function resolveTagDisplayValues(input: ResolverInput): unknown[];
15
+ /**
16
+ * Mirrors the priority chain in link.ts:
17
+ * 1. label starts as the raw cell value
18
+ * 2. `labelField` (string nested-data path) overrides
19
+ * 3. `label` overrides — string wins; **function is skipped on purpose** because invoking
20
+ * `label(cell)` requires a live `CellComponent` (with `getElement`, `getRow`, etc.).
21
+ * Search will fall back to raw match for that case.
22
+ *
23
+ * Returns the **single** final label the formatter would render, never both `labelField`
24
+ * and `label` together (that would create a false positive against text the user does not see).
25
+ */
26
+ declare function resolveLinkDisplayValues(input: ResolverInput): unknown[];
27
+ declare function resolveMoneyDisplayValues(input: ResolverInput): unknown[];
28
+ declare function resolveNumberDisplayValues(input: ResolverInput): unknown[];
29
+ declare function resolveDatetimeDisplayValues(input: ResolverInput): unknown[];
30
+ declare function resolveDatetimeDiffDisplayValues(input: ResolverInput): unknown[];
31
+ declare function resolvePlaintextDisplayValues(input: ResolverInput): unknown[];
32
+ declare function resolveTypographyDisplayValues(input: ResolverInput): unknown[];
33
+ declare function resolveHtmlDisplayValues(input: ResolverInput): unknown[];
34
+ declare function resolveTextareaDisplayValues(input: ResolverInput): unknown[];
35
+ declare function resolveJsonDisplayValues(input: ResolverInput): unknown[];
36
+ /**
37
+ * The mock cell handed to user-supplied `formatterLookup` and `paramsLookup` callbacks only
38
+ * exposes `getValue()` and `getData()` — there is no live `CellComponent`, so calls like
39
+ * `cell.getColumn()`, `cell.getRow()`, `cell.getElement()`, or `cell.getTable()` will throw.
40
+ * `safeCall` swallows those errors and the resolver returns `[]` for that row, falling back
41
+ * to raw-value matching. If a column needs richer cell access during adaptive lookup, the
42
+ * search will silently miss the formatted display — keep `formatterLookup` callbacks
43
+ * dependent only on cell value and row data for full search coverage.
44
+ */
45
+ declare function resolveAdaptableDisplayValues(input: ResolverInput, columnField: string): unknown[];
46
+ interface CollectFromDefinitionInput {
47
+ columnField: string;
48
+ formatter: unknown;
49
+ formatterParams: unknown;
50
+ rawValue: unknown;
51
+ rowData: Record<string, unknown>;
52
+ separator: string | undefined;
53
+ table: ITabulator | null | undefined;
54
+ }
55
+ declare function collectFormatterDisplayValuesFromDefinition(args: CollectFromDefinitionInput): unknown[];
56
+ /**
57
+ * Entry point used by `Filter.createFilterFieldFunction`. Looks up the column for
58
+ * `field` from the table's column manager, reads its formatter definition, and
59
+ * dispatches to the matching resolver. Returns `[]` when no column is registered,
60
+ * the formatter is unknown, or the resolver produces no candidates.
61
+ *
62
+ * Pass an optional `columnCache` to avoid re-running `getColumnByField` for every row × key.
63
+ * The Filter pipeline iterates ~`rows * columns` times; without a cache the column manager
64
+ * is hit on each iteration. The caller (`createFilterFieldFunction`) owns the cache so its
65
+ * lifetime matches the search invocation, never leaking across filter calls.
66
+ *
67
+ * `null` cached entries mean "no column registered for this field" — they let us skip the
68
+ * lookup on subsequent rows for unknown fields too.
69
+ */
70
+ export type ColumnDefinitionCache = Map<string, {
71
+ definition: any;
72
+ } | null>;
73
+ export declare function collectFormatterDisplayValues(table: ITabulator | null | undefined, field: string, rawValue: unknown, rowData: Record<string, unknown>, columnCache?: ColumnDefinitionCache): unknown[];
74
+ export declare const __testables: {
75
+ collectFormatterDisplayValuesFromDefinition: typeof collectFormatterDisplayValuesFromDefinition;
76
+ resolveAdaptableDisplayValues: typeof resolveAdaptableDisplayValues;
77
+ resolveArrayDisplayValues: typeof resolveArrayDisplayValues;
78
+ resolveCompositeDisplayValues: typeof resolveCompositeDisplayValues;
79
+ resolveCompositeElementSourceValue: typeof resolveCompositeElementSourceValue;
80
+ resolveDatetimeDiffDisplayValues: typeof resolveDatetimeDiffDisplayValues;
81
+ resolveDatetimeDisplayValues: typeof resolveDatetimeDisplayValues;
82
+ resolveHtmlDisplayValues: typeof resolveHtmlDisplayValues;
83
+ resolveJsonDisplayValues: typeof resolveJsonDisplayValues;
84
+ resolveLinkDisplayValues: typeof resolveLinkDisplayValues;
85
+ resolveLookupDisplayValues: typeof resolveLookupDisplayValues;
86
+ resolveMoneyDisplayValues: typeof resolveMoneyDisplayValues;
87
+ resolveNumberDisplayValues: typeof resolveNumberDisplayValues;
88
+ resolvePlaintextDisplayValues: typeof resolvePlaintextDisplayValues;
89
+ resolveTagDisplayValues: typeof resolveTagDisplayValues;
90
+ resolveTextareaDisplayValues: typeof resolveTextareaDisplayValues;
91
+ resolveTypographyDisplayValues: typeof resolveTypographyDisplayValues;
92
+ };
93
+ export {};
@@ -4427,6 +4427,10 @@
4427
4427
  * Fields to search in the table.
4428
4428
  */
4429
4429
  searchFields?: string[];
4430
+ /**
4431
+ * Search keyword match mode. When `true`, any single keyword (split by space) matching is enough to include a row. When `false` (default), all keywords must match within a single field.
4432
+ */
4433
+ searchMatchAnyKeyword?: boolean;
4430
4434
  /**
4431
4435
  * Whether to display a create new button
4432
4436
  */
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@orangelogic/design-system",
3
3
  "type": "module",
4
- "version": "2.82.0",
4
+ "version": "2.83.0",
5
5
  "license": "UNLICENSED",
6
6
  "types": "library/types.d.ts",
7
7
  "scripts": {