@platforma-sdk/model 1.53.15 → 1.54.8

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.
Files changed (135) hide show
  1. package/dist/annotations/converter.cjs +8 -32
  2. package/dist/annotations/converter.cjs.map +1 -1
  3. package/dist/annotations/converter.d.ts.map +1 -1
  4. package/dist/annotations/converter.js +7 -31
  5. package/dist/annotations/converter.js.map +1 -1
  6. package/dist/block_model.cjs +1 -0
  7. package/dist/block_model.cjs.map +1 -1
  8. package/dist/block_model.d.ts.map +1 -1
  9. package/dist/block_model.js +1 -0
  10. package/dist/block_model.js.map +1 -1
  11. package/dist/builder.cjs +1 -0
  12. package/dist/builder.cjs.map +1 -1
  13. package/dist/builder.d.ts.map +1 -1
  14. package/dist/builder.js +1 -0
  15. package/dist/builder.js.map +1 -1
  16. package/dist/components/PlDataTable/index.d.ts +5 -0
  17. package/dist/components/PlDataTable/index.d.ts.map +1 -0
  18. package/dist/components/PlDataTable/labels.cjs +91 -0
  19. package/dist/components/PlDataTable/labels.cjs.map +1 -0
  20. package/dist/components/PlDataTable/labels.d.ts +7 -0
  21. package/dist/components/PlDataTable/labels.d.ts.map +1 -0
  22. package/dist/components/PlDataTable/labels.js +88 -0
  23. package/dist/components/PlDataTable/labels.js.map +1 -0
  24. package/dist/components/PlDataTable/state-migration.cjs +162 -0
  25. package/dist/components/PlDataTable/state-migration.cjs.map +1 -0
  26. package/dist/components/PlDataTable/state-migration.d.ts +94 -0
  27. package/dist/components/PlDataTable/state-migration.d.ts.map +1 -0
  28. package/dist/components/PlDataTable/state-migration.js +158 -0
  29. package/dist/components/PlDataTable/state-migration.js.map +1 -0
  30. package/dist/components/PlDataTable/table.cjs +187 -0
  31. package/dist/components/PlDataTable/table.cjs.map +1 -0
  32. package/dist/components/PlDataTable/table.d.ts +26 -0
  33. package/dist/components/PlDataTable/table.d.ts.map +1 -0
  34. package/dist/components/PlDataTable/table.js +183 -0
  35. package/dist/components/PlDataTable/table.js.map +1 -0
  36. package/dist/components/PlDataTable/v4.d.ts +157 -0
  37. package/dist/components/PlDataTable/v4.d.ts.map +1 -0
  38. package/dist/components/PlDataTable/v5.d.ts +114 -0
  39. package/dist/components/PlDataTable/v5.d.ts.map +1 -0
  40. package/dist/filters/converters/filterToQuery.cjs +244 -0
  41. package/dist/filters/converters/filterToQuery.cjs.map +1 -0
  42. package/dist/filters/converters/filterToQuery.d.ts +4 -0
  43. package/dist/filters/converters/filterToQuery.d.ts.map +1 -0
  44. package/dist/filters/converters/filterToQuery.js +242 -0
  45. package/dist/filters/converters/filterToQuery.js.map +1 -0
  46. package/dist/filters/{converter.cjs → converters/filterUiToExpressionImpl.cjs} +3 -2
  47. package/dist/filters/converters/filterUiToExpressionImpl.cjs.map +1 -0
  48. package/dist/filters/{converter.d.ts → converters/filterUiToExpressionImpl.d.ts} +2 -2
  49. package/dist/filters/converters/filterUiToExpressionImpl.d.ts.map +1 -0
  50. package/dist/filters/{converter.js → converters/filterUiToExpressionImpl.js} +3 -2
  51. package/dist/filters/converters/filterUiToExpressionImpl.js.map +1 -0
  52. package/dist/filters/converters/index.d.ts +3 -0
  53. package/dist/filters/converters/index.d.ts.map +1 -0
  54. package/dist/filters/distill.cjs +61 -0
  55. package/dist/filters/distill.cjs.map +1 -0
  56. package/dist/filters/distill.d.ts +7 -0
  57. package/dist/filters/distill.d.ts.map +1 -0
  58. package/dist/filters/distill.js +59 -0
  59. package/dist/filters/distill.js.map +1 -0
  60. package/dist/filters/index.d.ts +2 -1
  61. package/dist/filters/index.d.ts.map +1 -1
  62. package/dist/filters/types.d.ts +1 -117
  63. package/dist/filters/types.d.ts.map +1 -1
  64. package/dist/index.cjs +17 -15
  65. package/dist/index.cjs.map +1 -1
  66. package/dist/index.js +5 -2
  67. package/dist/index.js.map +1 -1
  68. package/dist/package.json.cjs +1 -1
  69. package/dist/package.json.js +1 -1
  70. package/dist/pframe_utils/columns.cjs +2 -0
  71. package/dist/pframe_utils/columns.cjs.map +1 -1
  72. package/dist/pframe_utils/columns.js +2 -0
  73. package/dist/pframe_utils/columns.js.map +1 -1
  74. package/dist/pframe_utils/index.cjs +2 -0
  75. package/dist/pframe_utils/index.cjs.map +1 -1
  76. package/dist/pframe_utils/index.js +2 -0
  77. package/dist/pframe_utils/index.js.map +1 -1
  78. package/dist/pframe_utils/querySpec.d.ts +2 -0
  79. package/dist/pframe_utils/querySpec.d.ts.map +1 -0
  80. package/dist/render/api.cjs +7 -0
  81. package/dist/render/api.cjs.map +1 -1
  82. package/dist/render/api.d.ts +3 -2
  83. package/dist/render/api.d.ts.map +1 -1
  84. package/dist/render/api.js +8 -1
  85. package/dist/render/api.js.map +1 -1
  86. package/dist/render/future.d.ts +1 -1
  87. package/dist/render/index.d.ts +2 -1
  88. package/dist/render/index.d.ts.map +1 -1
  89. package/dist/render/internal.cjs.map +1 -1
  90. package/dist/render/internal.d.ts +4 -1
  91. package/dist/render/internal.d.ts.map +1 -1
  92. package/dist/render/internal.js.map +1 -1
  93. package/dist/render/util/column_collection.cjs.map +1 -1
  94. package/dist/render/util/column_collection.d.ts +1 -1
  95. package/dist/render/util/column_collection.d.ts.map +1 -1
  96. package/dist/render/util/column_collection.js.map +1 -1
  97. package/dist/render/util/pcolumn_data.cjs.map +1 -1
  98. package/dist/render/util/pcolumn_data.d.ts +1 -1
  99. package/dist/render/util/pcolumn_data.d.ts.map +1 -1
  100. package/dist/render/util/pcolumn_data.js.map +1 -1
  101. package/package.json +8 -6
  102. package/src/annotations/converter.ts +12 -40
  103. package/src/block_model.ts +1 -0
  104. package/src/builder.ts +1 -0
  105. package/src/components/PlDataTable/index.ts +24 -0
  106. package/src/components/PlDataTable/labels.ts +101 -0
  107. package/src/components/PlDataTable/state-migration.ts +285 -0
  108. package/src/components/PlDataTable/table.ts +278 -0
  109. package/src/components/PlDataTable/v4.ts +193 -0
  110. package/src/components/PlDataTable/v5.ts +140 -0
  111. package/src/filters/converters/filterToQuery.test.ts +417 -0
  112. package/src/filters/converters/filterToQuery.ts +258 -0
  113. package/src/filters/{converter.test.ts → converters/filterUiToExpressionImpl.test.ts} +2 -2
  114. package/src/filters/{converter.ts → converters/filterUiToExpressionImpl.ts} +3 -2
  115. package/src/filters/converters/index.ts +2 -0
  116. package/src/filters/distill.test.ts +191 -0
  117. package/src/filters/distill.ts +67 -0
  118. package/src/filters/index.ts +2 -1
  119. package/src/filters/types.ts +7 -48
  120. package/src/pframe_utils/querySpec.ts +1 -0
  121. package/src/render/api.ts +13 -6
  122. package/src/render/index.ts +2 -1
  123. package/src/render/internal.ts +11 -0
  124. package/src/render/util/column_collection.ts +1 -1
  125. package/src/render/util/pcolumn_data.ts +1 -1
  126. package/dist/components/PlDataTable.cjs +0 -307
  127. package/dist/components/PlDataTable.cjs.map +0 -1
  128. package/dist/components/PlDataTable.d.ts +0 -366
  129. package/dist/components/PlDataTable.d.ts.map +0 -1
  130. package/dist/components/PlDataTable.js +0 -297
  131. package/dist/components/PlDataTable.js.map +0 -1
  132. package/dist/filters/converter.cjs.map +0 -1
  133. package/dist/filters/converter.d.ts.map +0 -1
  134. package/dist/filters/converter.js.map +0 -1
  135. package/src/components/PlDataTable.ts +0 -794
@@ -0,0 +1,193 @@
1
+ import type { PTableColumnId } from "@milaboratories/pl-model-common";
2
+
3
+ export type PlDataTableFilterState = {
4
+ id: PTableColumnId;
5
+ alphabetic: boolean;
6
+ filter: null | {
7
+ value: PlTableFilter;
8
+ disabled: boolean;
9
+ };
10
+ };
11
+
12
+ /** PlTableFilters filter entry */
13
+ export type PlTableFilterIsNotNA = {
14
+ /** Predicate type */
15
+ type: "isNotNA";
16
+ };
17
+
18
+ /** PlTableFilters filter entry */
19
+ export type PlTableFilterIsNA = {
20
+ /** Predicate type */
21
+ type: "isNA";
22
+ };
23
+
24
+ /** PlTableFilters filter entries applicable to both string and number values */
25
+ export type PlTableFilterCommon = PlTableFilterIsNotNA | PlTableFilterIsNA;
26
+
27
+ /** PlTableFilters numeric filter entry */
28
+ export type PlTableFilterNumberEquals = {
29
+ /** Predicate type */
30
+ type: "number_equals";
31
+ /** Reference value */
32
+ reference: number;
33
+ };
34
+
35
+ /** PlTableFilters numeric filter entry */
36
+ export type PlTableFilterNumberNotEquals = {
37
+ /** Predicate type */
38
+ type: "number_notEquals";
39
+ /** Reference value */
40
+ reference: number;
41
+ };
42
+
43
+ /** PlTableFilters numeric filter entry */
44
+ export type PlTableFilterNumberGreaterThan = {
45
+ /** Predicate type */
46
+ type: "number_greaterThan";
47
+ /** Reference value */
48
+ reference: number;
49
+ };
50
+
51
+ /** PlTableFilters numeric filter entry */
52
+ export type PlTableFilterNumberGreaterThanOrEqualTo = {
53
+ /** Predicate type */
54
+ type: "number_greaterThanOrEqualTo";
55
+ /** Reference value */
56
+ reference: number;
57
+ };
58
+
59
+ /** PlTableFilters numeric filter entry */
60
+ export type PlTableFilterNumberLessThan = {
61
+ /** Predicate type */
62
+ type: "number_lessThan";
63
+ /** Reference value */
64
+ reference: number;
65
+ };
66
+
67
+ /** PlTableFilters numeric filter entry */
68
+ export type PlTableFilterNumberLessThanOrEqualTo = {
69
+ /** Predicate type */
70
+ type: "number_lessThanOrEqualTo";
71
+ /** Reference value */
72
+ reference: number;
73
+ };
74
+
75
+ /** PlTableFilters numeric filter entry */
76
+ export type PlTableFilterNumberBetween = {
77
+ /** Predicate type */
78
+ type: "number_between";
79
+ /** Reference value for the lower bound */
80
+ lowerBound: number;
81
+ /** Defines whether values equal to lower bound reference value should be matched */
82
+ includeLowerBound: boolean;
83
+ /** Reference value for the upper bound */
84
+ upperBound: number;
85
+ /** Defines whether values equal to upper bound reference value should be matched */
86
+ includeUpperBound: boolean;
87
+ };
88
+
89
+ /** All PlTableFilters numeric filter entries */
90
+ export type PlTableFilterNumber =
91
+ | PlTableFilterCommon
92
+ | PlTableFilterNumberEquals
93
+ | PlTableFilterNumberNotEquals
94
+ | PlTableFilterNumberGreaterThan
95
+ | PlTableFilterNumberGreaterThanOrEqualTo
96
+ | PlTableFilterNumberLessThan
97
+ | PlTableFilterNumberLessThanOrEqualTo
98
+ | PlTableFilterNumberBetween;
99
+ /** All types of PlTableFilters numeric filter entries */
100
+ export type PlTableFilterNumberType = PlTableFilterNumber["type"];
101
+
102
+ /** PlTableFilters string filter entry */
103
+ export type PlTableFilterStringEquals = {
104
+ /** Predicate type */
105
+ type: "string_equals";
106
+ /** Reference value */
107
+ reference: string;
108
+ };
109
+
110
+ /** PlTableFilters string filter entry */
111
+ export type PlTableFilterStringNotEquals = {
112
+ /** Predicate type */
113
+ type: "string_notEquals";
114
+ /** Reference value */
115
+ reference: string;
116
+ };
117
+
118
+ /** PlTableFilters string filter entry */
119
+ export type PlTableFilterStringContains = {
120
+ /** Predicate type */
121
+ type: "string_contains";
122
+ /** Reference value */
123
+ reference: string;
124
+ };
125
+
126
+ /** PlTableFilters string filter entry */
127
+ export type PlTableFilterStringDoesNotContain = {
128
+ /** Predicate type */
129
+ type: "string_doesNotContain";
130
+ /** Reference value */
131
+ reference: string;
132
+ };
133
+
134
+ /** PlTableFilters string filter entry */
135
+ export type PlTableFilterStringMatches = {
136
+ /** Predicate type */
137
+ type: "string_matches";
138
+ /** Reference value */
139
+ reference: string;
140
+ };
141
+
142
+ /** PlTableFilters string filter entry */
143
+ export type PlTableFilterStringDoesNotMatch = {
144
+ /** Predicate type */
145
+ type: "string_doesNotMatch";
146
+ /** Reference value */
147
+ reference: string;
148
+ };
149
+
150
+ /** PlTableFilters string filter entry */
151
+ export type PlTableFilterStringContainsFuzzyMatch = {
152
+ /** Predicate type */
153
+ type: "string_containsFuzzyMatch";
154
+ /** Reference value */
155
+ reference: string;
156
+ /**
157
+ * Maximum acceptable edit distance between reference value and matched substring
158
+ * @see https://en.wikipedia.org/wiki/Edit_distance
159
+ */
160
+ maxEdits: number;
161
+ /**
162
+ * When {@link substitutionsOnly} is set to false
163
+ * Levenshtein distance is used as edit distance (substitutions and indels)
164
+ * @see https://en.wikipedia.org/wiki/Levenshtein_distance
165
+ * When {@link substitutionsOnly} is set to true
166
+ * Hamming distance is used as edit distance (substitutions only)
167
+ * @see https://en.wikipedia.org/wiki/Hamming_distance
168
+ */
169
+ substitutionsOnly: boolean;
170
+ /**
171
+ * Single character in {@link reference} that will labelColumn any
172
+ * single character in searched text.
173
+ */
174
+ wildcard?: string;
175
+ };
176
+
177
+ /** All PlTableFilters string filter entries */
178
+ export type PlTableFilterString =
179
+ | PlTableFilterCommon
180
+ | PlTableFilterStringEquals
181
+ | PlTableFilterStringNotEquals
182
+ | PlTableFilterStringContains
183
+ | PlTableFilterStringDoesNotContain
184
+ | PlTableFilterStringMatches
185
+ | PlTableFilterStringDoesNotMatch
186
+ | PlTableFilterStringContainsFuzzyMatch;
187
+ /** All types of PlTableFilters string filter entries */
188
+ export type PlTableFilterStringType = PlTableFilterString["type"];
189
+
190
+ /** All PlTableFilters filter entries */
191
+ export type PlTableFilter = PlTableFilterNumber | PlTableFilterString;
192
+ /** All types of PlTableFilters filter entries */
193
+ export type PlTableFilterType = PlTableFilter["type"];
@@ -0,0 +1,140 @@
1
+ import type {
2
+ AxisId,
3
+ AxisSpec,
4
+ CanonicalizedJson,
5
+ ListOptionBase,
6
+ PObjectId,
7
+ PTableColumnSpec,
8
+ PTableRecordFilter,
9
+ PTableSorting,
10
+ PColumnIdAndSpec,
11
+ PTableHandle,
12
+ } from "@milaboratories/pl-model-common";
13
+ import type { FilterSpec, FilterSpecLeaf } from "../../filters";
14
+
15
+ export type PlTableColumnId = {
16
+ /** Original column spec */
17
+ source: PTableColumnSpec;
18
+ /** Column spec with labeled axes replaced by label columns */
19
+ labeled: PTableColumnSpec;
20
+ };
21
+
22
+ export type PlTableColumnIdJson = CanonicalizedJson<PlTableColumnId>;
23
+
24
+ export type PlDataTableGridStateCore = {
25
+ /** Includes column ordering */
26
+ columnOrder?: {
27
+ /** All colIds in order */
28
+ orderedColIds: PlTableColumnIdJson[];
29
+ };
30
+ /** Includes current sort columns and direction */
31
+ sort?: {
32
+ /** Sorted columns and directions in order */
33
+ sortModel: {
34
+ /** Column Id to apply the sort to. */
35
+ colId: PlTableColumnIdJson;
36
+ /** Sort direction */
37
+ sort: "asc" | "desc";
38
+ }[];
39
+ };
40
+ /** Includes column visibility */
41
+ columnVisibility?: {
42
+ /** All colIds which were hidden */
43
+ hiddenColIds: PlTableColumnIdJson[];
44
+ };
45
+ };
46
+
47
+ export type PlDataTableSheet = {
48
+ /** spec of the axis to use */
49
+ axis: AxisSpec;
50
+ /** options to show in the filter dropdown */
51
+ options: ListOptionBase<string | number>[];
52
+ /** default (selected) value */
53
+ defaultValue?: string | number;
54
+ };
55
+
56
+ export type PlDataTableSheetState = {
57
+ /** id of the axis */
58
+ axisId: AxisId;
59
+ /** selected value */
60
+ value: string | number;
61
+ };
62
+
63
+ /** Tree-based filter state compatible with PlAdvancedFilter's RootFilter */
64
+ export type PlDataTableFilters = FilterSpec<FilterSpecLeaf<string>>;
65
+ export type PlDataTableFiltersWithMeta = FilterSpec<
66
+ FilterSpecLeaf<string>,
67
+ { id: number; isExpanded?: boolean }
68
+ >;
69
+
70
+ export type PlDataTableStateV2CacheEntry = {
71
+ /** DataSource identifier for state management */
72
+ sourceId: string;
73
+ /** Internal ag-grid state */
74
+ gridState: PlDataTableGridStateCore;
75
+ /** Sheets state */
76
+ sheetsState: PlDataTableSheetState[];
77
+ /** Filters state (tree-based, compatible with PlAdvancedFilter) */
78
+ filtersState: null | PlDataTableFiltersWithMeta;
79
+ };
80
+
81
+ export type PTableParamsV2 =
82
+ | {
83
+ sourceId: null;
84
+ hiddenColIds: null;
85
+ filters: null;
86
+ sorting: [];
87
+ }
88
+ | {
89
+ sourceId: string;
90
+ hiddenColIds: null | PObjectId[];
91
+ filters: null | PlDataTableFilters;
92
+ sorting: PTableSorting[];
93
+ };
94
+
95
+ export type PlDataTableStateV2Normalized = {
96
+ /** Version for upgrades */
97
+ version: 5;
98
+ /** Internal states, LRU cache for 5 sourceId-s */
99
+ stateCache: PlDataTableStateV2CacheEntry[];
100
+ /** PTable params derived from the cache state for the current sourceId */
101
+ pTableParams: PTableParamsV2;
102
+ };
103
+
104
+ /** PlAgDataTable model */
105
+ export type PlDataTableModel = {
106
+ /** DataSource identifier for state management */
107
+ sourceId: string | null;
108
+ /** p-table including all columns, used to show the full specification of the table */
109
+ fullTableHandle: PTableHandle;
110
+ /** p-table including only visible columns, used to get the data */
111
+ visibleTableHandle: PTableHandle;
112
+ };
113
+
114
+ export type CreatePlDataTableOps = {
115
+ /** Filters for columns and non-partitioned axes */
116
+ filters?: PTableRecordFilter[];
117
+
118
+ /** Sorting to columns hidden from user */
119
+ sorting?: PTableSorting[];
120
+
121
+ /**
122
+ * Selects columns for which will be inner-joined to the table.
123
+ *
124
+ * Default behaviour: all columns are considered to be core
125
+ */
126
+ coreColumnPredicate?: (spec: PColumnIdAndSpec) => boolean;
127
+
128
+ /**
129
+ * Determines how core columns should be joined together:
130
+ * inner - so user will only see records present in all core columns
131
+ * full - so user will only see records present in any of the core columns
132
+ *
133
+ * All non-core columns will be left joined to the table produced by the core
134
+ * columns, in other words records form the pool of non-core columns will only
135
+ * make their way into the final table if core table contains corresponding key.
136
+ *
137
+ * Default: 'full'
138
+ */
139
+ coreJoinType?: "inner" | "full";
140
+ };