@superleapai/flow-ui 2.3.9 → 2.4.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.
@@ -152,6 +152,7 @@
152
152
  * @param {string} [config.size] - 'default' | 'large' | 'small'
153
153
  * @param {number} [config.initialLimit] - Initial fetch limit (default 50)
154
154
  * @param {Array<string>} [config.displayFields] - Fields to display as secondary info (e.g. ["email", "phone"])
155
+ * @param {Object} [config.initialFilter] - Optional filter object to merge with search (e.g. { field: "status", operator: "exact", value: "active" } or { and: [...] })
155
156
  * @param {Object} [config.objectSchema] - Optional object type/schema; properties.icon_data { icon?, color? } used for static icon (not used for user; user shows Vivid Avatar)
156
157
  * @returns {HTMLElement} Record multiselect container element
157
158
  */
@@ -166,6 +167,7 @@
166
167
  var variant = config.variant || "default";
167
168
  var size = config.size || "default";
168
169
  var initialLimit = config.initialLimit != null ? config.initialLimit : 50;
170
+ var initialFilter = config.initialFilter || null; // Can be array, object, or function returning either
169
171
  var displayFields = config.displayFields || [];
170
172
 
171
173
  var disabled = config.disabled === true;
@@ -469,14 +471,22 @@
469
471
  try {
470
472
  if (model && typeof model.select === "function") {
471
473
  var q = model.select.apply(model, fields);
474
+ var filters = [];
475
+ var resolvedFilter = typeof initialFilter === 'function' ? initialFilter() : initialFilter;
476
+ if (resolvedFilter) {
477
+ filters = filters.concat(Array.isArray(resolvedFilter) ? resolvedFilter : [resolvedFilter]);
478
+ }
472
479
  if (search && search.trim()) {
473
- q = q.filterBy({
480
+ filters.push({
474
481
  or: [
475
482
  { field: "name", operator: "contains", value: search.trim() },
476
483
  { field: "id", operator: "eq", value: search.trim() },
477
484
  ],
478
485
  });
479
486
  }
487
+ if (filters.length > 0) {
488
+ q = q.filterBy(filters.length === 1 ? filters[0] : { and: filters });
489
+ }
480
490
  var orderBy = ["name"];
481
491
  if (objectSlug === "account") orderBy.push("-ParentId");
482
492
  return q
@@ -145,6 +145,7 @@
145
145
  * @param {string} [config.size] - 'default' | 'large' | 'small'
146
146
  * @param {boolean} [config.canClear] - Show clear button when value is set
147
147
  * @param {number} [config.initialLimit] - Initial fetch limit (default 50)
148
+ * @param {Object} [config.initialFilter] - Optional filter object to merge with search (e.g. { field: "status", operator: "exact", value: "active" } or { and: [...] })
148
149
  * @param {Object} [config.objectSchema] - Optional object type/schema; properties.icon_data { svg?, color? } used for static icon (not used for user; user shows Vivid Avatar)
149
150
  * @returns {HTMLElement} Record select container element
150
151
  */
@@ -159,6 +160,7 @@
159
160
  var size = config.size || "default";
160
161
  var canClear = !!config.canClear;
161
162
  var initialLimit = config.initialLimit != null ? config.initialLimit : 50;
163
+ var initialFilter = config.initialFilter || null; // Can be array, object, or function returning either
162
164
 
163
165
  var disabled = config.disabled === true;
164
166
  var value =
@@ -484,14 +486,22 @@
484
486
  try {
485
487
  if (model && typeof model.select === "function") {
486
488
  var q = model.select.apply(model, fields);
489
+ var filters = [];
490
+ var resolvedFilter = typeof initialFilter === 'function' ? initialFilter() : initialFilter;
491
+ if (resolvedFilter) {
492
+ filters = filters.concat(Array.isArray(resolvedFilter) ? resolvedFilter : [resolvedFilter]);
493
+ }
487
494
  if (search && search.trim()) {
488
- q = q.filterBy({
495
+ filters.push({
489
496
  or: [
490
497
  { field: "name", operator: "contains", value: search.trim() },
491
498
  { field: "id", operator: "eq", value: search.trim() },
492
499
  ],
493
500
  });
494
501
  }
502
+ if (filters.length > 0) {
503
+ q = q.filterBy(filters.length === 1 ? filters[0] : { and: filters });
504
+ }
495
505
  var orderBy = ["name"];
496
506
  if (objectSlug === "account") orderBy.push("-ParentId");
497
507
  return q