@superleapai/flow-ui 2.4.5 → 2.4.7

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.
@@ -10,9 +10,20 @@
10
10
  (function (global) {
11
11
  "use strict";
12
12
 
13
- var Popover = global.Popover;
14
- var InputComponent = global.InputComponent;
15
- var Spinner = global.Spinner;
13
+ function getDep(name) {
14
+ if (
15
+ typeof global.FlowUI !== "undefined" &&
16
+ typeof global.FlowUI._getComponent === "function"
17
+ ) {
18
+ var c = global.FlowUI._getComponent(name);
19
+ if (c) return c;
20
+ }
21
+ return global[name];
22
+ }
23
+
24
+ var Popover = getDep("Popover");
25
+ var InputComponent = getDep("InputComponent");
26
+ var Spinner = getDep("Spinner");
16
27
 
17
28
  /** When objectSlug === USERS, show Vivid Avatar (name-based color) instead of static icon */
18
29
  var STANDARD_OBJECT_SLUGS_USERS = "user";
@@ -34,7 +45,7 @@
34
45
  '<svg width="16" height="16" viewBox="0 0 15 15" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M3.13523 6.15803C3.3241 5.95657 3.64052 5.94637 3.84197 6.13523L7.5 9.56464L11.158 6.13523C11.3595 5.94637 11.6759 5.95657 11.8648 6.15803C12.0536 6.35949 12.0434 6.67591 11.842 6.86477L7.84197 10.6148C7.64964 10.7951 7.35036 10.7951 7.15803 10.6148L3.15803 6.86477C2.95657 6.67591 2.94637 6.35949 3.13523 6.15803Z" fill="currentColor" fill-rule="evenodd" clip-rule="evenodd"/></svg>';
35
46
  var X_SVG =
36
47
  '<svg width="12" height="12" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" xmlns="http://www.w3.org/2000/svg"><path d="M18 6L6 18M6 6l12 12"/></svg>';
37
-
48
+
38
49
  var SEARCH_ICON =
39
50
  '<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><circle cx="11" cy="11" r="8"/><path d="m21 21-4.3-4.3"/></svg>';
40
51
 
@@ -49,7 +60,8 @@
49
60
  "border-error-border hover:border-error-border-hover focus:border-1/2 focus:border-error-border-hover",
50
61
  warning:
51
62
  "border-warning-border hover:border-warning-border-hover focus:border-1/2 focus:border-warning-border-hover",
52
- borderless: "border-none shadow-none rounded-0 bg-fill-quarternary-fill-white",
63
+ borderless:
64
+ "border-none shadow-none rounded-0 bg-fill-quarternary-fill-white",
53
65
  inline:
54
66
  "focus:border-transparent border border-transparent shadow-none rounded-0 bg-fill-quarternary-fill-white hover:bg-fill-tertiary-fill-light-gray hover:border-transparent",
55
67
  };
@@ -58,7 +70,9 @@
58
70
  large: "px-12 py-8",
59
71
  small: "px-8 py-4",
60
72
  };
61
- var placeholderClass = placeholder ? " text-typography-quaternary-text" : "";
73
+ var placeholderClass = placeholder
74
+ ? " text-typography-quaternary-text"
75
+ : "";
62
76
  var disabledClass = disabled
63
77
  ? " pointer-events-none cursor-not-allowed bg-fill-tertiary-fill-light-gray text-typography-quaternary-text hover:border-border-primary"
64
78
  : "";
@@ -114,15 +128,27 @@
114
128
  function getObjectIconInfo(slug, objectSchema) {
115
129
  var color = "neutral";
116
130
  var iconStr = "IconDatabase";
117
- if (objectSchema && objectSchema.properties && objectSchema.properties.icon_data) {
131
+ if (
132
+ objectSchema &&
133
+ objectSchema.properties &&
134
+ objectSchema.properties.icon_data
135
+ ) {
118
136
  var iconData = objectSchema.properties.icon_data;
119
- if (typeof iconData.color === "string" && iconData.color) color = iconData.color;
120
- if (typeof iconData.icon === "string" && iconData.icon) iconStr = iconData.icon;
137
+ if (typeof iconData.color === "string" && iconData.color)
138
+ color = iconData.color;
139
+ if (typeof iconData.icon === "string" && iconData.icon)
140
+ iconStr = iconData.icon;
121
141
  }
122
- if (!objectSchema || !objectSchema.properties || !objectSchema.properties.icon_data || !objectSchema.properties.icon_data.icon) {
142
+ if (
143
+ !objectSchema ||
144
+ !objectSchema.properties ||
145
+ !objectSchema.properties.icon_data ||
146
+ !objectSchema.properties.icon_data.icon
147
+ ) {
123
148
  if (OBJECT_SLUG_TO_ICON[slug]) {
124
149
  iconStr = OBJECT_SLUG_TO_ICON[slug].iconStr;
125
- if (OBJECT_SLUG_TO_ICON[slug].color) color = OBJECT_SLUG_TO_ICON[slug].color;
150
+ if (OBJECT_SLUG_TO_ICON[slug].color)
151
+ color = OBJECT_SLUG_TO_ICON[slug].color;
126
152
  } else {
127
153
  iconStr = "IconDatabase";
128
154
  color = "neutral";
@@ -145,6 +171,7 @@
145
171
  * @param {string} [config.size] - 'default' | 'large' | 'small'
146
172
  * @param {boolean} [config.canClear] - Show clear button when value is set
147
173
  * @param {number} [config.initialLimit] - Initial fetch limit (default 50)
174
+ * @param {Object} [config.initialFilter] - Optional filter object to merge with search (e.g. { field: "status", operator: "exact", value: "active" } or { and: [...] })
148
175
  * @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
176
  * @returns {HTMLElement} Record select container element
150
177
  */
@@ -153,12 +180,14 @@
153
180
  var objectSlug = config.objectSlug;
154
181
  var objectSchema = config.objectSchema || null;
155
182
  var placeholder = config.placeholder || "Select a record";
156
- var searchPlaceholder = config.searchPlaceholder || "Search " + (objectSlug || "") + "...";
183
+ var searchPlaceholder =
184
+ config.searchPlaceholder || "Search " + (objectSlug || "") + "...";
157
185
  var onChange = config.onChange;
158
186
  var variant = config.variant || "default";
159
187
  var size = config.size || "default";
160
188
  var canClear = !!config.canClear;
161
189
  var initialLimit = config.initialLimit != null ? config.initialLimit : 50;
190
+ var initialFilter = config.initialFilter || null; // Can be array, object, or function returning either
162
191
 
163
192
  var disabled = config.disabled === true;
164
193
  var value =
@@ -206,7 +235,7 @@
206
235
  size,
207
236
  disabled,
208
237
  !value,
209
- canClear && !!value && !disabled
238
+ canClear && !!value && !disabled,
210
239
  );
211
240
  trigger.disabled = disabled;
212
241
  trigger.setAttribute("aria-haspopup", "listbox");
@@ -215,7 +244,8 @@
215
244
  trigger.classList.add("record-select-trigger");
216
245
 
217
246
  var triggerContent = document.createElement("div");
218
- triggerContent.className = "record-select-trigger-content flex items-center gap-8 flex-1 min-w-0";
247
+ triggerContent.className =
248
+ "record-select-trigger-content flex items-center gap-8 flex-1 min-w-0";
219
249
 
220
250
  var triggerIcon = document.createElement("span");
221
251
  triggerIcon.className = "record-select-trigger-icon shrink-0 hidden";
@@ -258,7 +288,9 @@
258
288
  // Dropdown content: search + list (same content pattern as Select)
259
289
  var content = document.createElement("div");
260
290
  content.setAttribute("role", "listbox");
261
- content.className = "record-select-content max-h-[45vh] overflow-hidden flex flex-col";
291
+ content.setAttribute("data-field-id", fieldId);
292
+ content.className =
293
+ "record-select-content max-h-[45vh] overflow-hidden flex flex-col";
262
294
 
263
295
  var searchWrap = document.createElement("div");
264
296
  searchWrap.className = "py-8 border-b-1/2 border-border-primary";
@@ -289,12 +321,12 @@
289
321
  } else {
290
322
  var fallbackWrapper = document.createElement("div");
291
323
  fallbackWrapper.className = "flex items-center gap-8 px-12";
292
-
324
+
293
325
  var searchIconSpan = document.createElement("span");
294
326
  searchIconSpan.className = "shrink-0 text-typography-tertiary-text";
295
327
  searchIconSpan.innerHTML = SEARCH_ICON;
296
328
  fallbackWrapper.appendChild(searchIconSpan);
297
-
329
+
298
330
  var searchInput = document.createElement("input");
299
331
  searchInput.type = "text";
300
332
  searchInput.className =
@@ -308,21 +340,22 @@
308
340
  content.appendChild(searchWrap);
309
341
 
310
342
  var optionsList = document.createElement("div");
311
- optionsList.className = "overflow-y-auto max-h-[45vh] p-2 w-full rounded-4 bg-fill-quarternary-fill-white record-select-options";
312
-
343
+ optionsList.className =
344
+ "overflow-y-auto max-h-[45vh] p-2 w-full rounded-4 bg-fill-quarternary-fill-white record-select-options";
345
+
313
346
  // Add scroll listener for infinite scroll
314
347
  optionsList.addEventListener("scroll", function () {
315
348
  if (isFetchingMore || !hasMoreRecords) return;
316
349
  var scrollHeight = optionsList.scrollHeight;
317
350
  var scrollTop = optionsList.scrollTop;
318
351
  var clientHeight = optionsList.clientHeight;
319
-
352
+
320
353
  // Trigger load more when scrolled to bottom (with 50px threshold)
321
354
  if (scrollTop + clientHeight >= scrollHeight - 50) {
322
355
  loadMoreRecords();
323
356
  }
324
357
  });
325
-
358
+
326
359
  content.appendChild(optionsList);
327
360
 
328
361
  popover = Popover.create({
@@ -354,6 +387,19 @@
354
387
  setTimeout(function () {
355
388
  if (searchInputEl) searchInputEl.focus();
356
389
  }, 0);
390
+ // Let consumers (e.g. BANT Questions "Add Contact") inject content into the dropdown
391
+ try {
392
+ var doc =
393
+ global.document ||
394
+ (typeof document !== "undefined" ? document : null);
395
+ if (doc && typeof global.CustomEvent !== "undefined") {
396
+ doc.dispatchEvent(
397
+ new global.CustomEvent("record-select:opened", {
398
+ detail: { fieldId: fieldId, content: content },
399
+ }),
400
+ );
401
+ }
402
+ } catch (e) {}
357
403
  },
358
404
  onClose: function () {
359
405
  isOpen = false;
@@ -369,7 +415,8 @@
369
415
  },
370
416
  });
371
417
 
372
- if (clearBtn) clearBtn.style.display = canClear && value && !disabled ? "" : "none";
418
+ if (clearBtn)
419
+ clearBtn.style.display = canClear && value && !disabled ? "" : "none";
373
420
 
374
421
  function setValue(newVal) {
375
422
  value = newVal !== undefined && newVal !== null ? newVal : "";
@@ -383,16 +430,18 @@
383
430
 
384
431
  function updateTriggerDisplay() {
385
432
  if (selectedRecord) {
386
- triggerText.textContent = selectedRecord.name || selectedRecord.label || value;
433
+ triggerText.textContent =
434
+ selectedRecord.name || selectedRecord.label || value;
387
435
  trigger.classList.remove("placeholder");
388
436
  trigger.className = triggerClasses(
389
437
  variant,
390
438
  size,
391
439
  disabled,
392
440
  false,
393
- canClear && !!value && !disabled
441
+ canClear && !!value && !disabled,
394
442
  );
395
- triggerIcon.className = "record-select-trigger-icon shrink-0 flex items-center justify-center size-20 rounded-4 overflow-hidden";
443
+ triggerIcon.className =
444
+ "record-select-trigger-icon shrink-0 flex items-center justify-center size-20 rounded-4 overflow-hidden";
396
445
  triggerIcon.innerHTML = "";
397
446
  if (objectSlug === STANDARD_OBJECT_SLUGS_USERS) {
398
447
  var Avatar = getAvatar();
@@ -404,7 +453,9 @@
404
453
  });
405
454
  triggerIcon.appendChild(vividEl);
406
455
  } else {
407
- renderStaticIconPlaceholder(selectedRecord.name || selectedRecord.label);
456
+ renderStaticIconPlaceholder(
457
+ selectedRecord.name || selectedRecord.label,
458
+ );
408
459
  }
409
460
  } else {
410
461
  renderStaticObjectIcon();
@@ -417,12 +468,13 @@
417
468
  size,
418
469
  disabled,
419
470
  true,
420
- canClear && !!value && !disabled
471
+ canClear && !!value && !disabled,
421
472
  );
422
473
  triggerIcon.className = "record-select-trigger-icon shrink-0 hidden";
423
474
  triggerIcon.innerHTML = "";
424
475
  }
425
- if (clearBtn) clearBtn.style.display = canClear && value && !disabled ? "" : "none";
476
+ if (clearBtn)
477
+ clearBtn.style.display = canClear && value && !disabled ? "" : "none";
426
478
  }
427
479
 
428
480
  function renderStaticObjectIcon() {
@@ -478,18 +530,39 @@
478
530
  var fields = ["id", "name"];
479
531
  var actualLimit = limit || initialLimit;
480
532
  var offset = page ? (page - 1) * actualLimit : 0;
481
-
533
+
482
534
  try {
483
535
  if (model && typeof model.select === "function") {
484
536
  var q = model.select.apply(model, fields);
537
+ var filters = [];
538
+ var resolvedFilter =
539
+ typeof initialFilter === "function"
540
+ ? initialFilter()
541
+ : initialFilter;
542
+ console.log(
543
+ "[RecordSelect] initialFilter:",
544
+ resolvedFilter,
545
+ "| search:",
546
+ search,
547
+ );
548
+ if (resolvedFilter) {
549
+ filters = filters.concat(
550
+ Array.isArray(resolvedFilter) ? resolvedFilter : [resolvedFilter],
551
+ );
552
+ }
485
553
  if (search && search.trim()) {
486
- q = q.filterBy({
554
+ filters.push({
487
555
  or: [
488
556
  { field: "name", operator: "contains", value: search.trim() },
489
557
  { field: "id", operator: "eq", value: search.trim() },
490
558
  ],
491
559
  });
492
560
  }
561
+ if (filters.length > 0) {
562
+ q = q.filterBy(
563
+ filters.length === 1 ? filters[0] : { and: filters },
564
+ );
565
+ }
493
566
  var orderBy = ["name"];
494
567
  if (objectSlug === "account") orderBy.push("-ParentId");
495
568
  return q
@@ -552,7 +625,12 @@
552
625
  updateTriggerDisplay();
553
626
  })
554
627
  .catch(function () {
555
- selectedRecord = { id: value, value: value, name: value, label: value };
628
+ selectedRecord = {
629
+ id: value,
630
+ value: value,
631
+ name: value,
632
+ label: value,
633
+ };
556
634
  updateTriggerDisplay();
557
635
  });
558
636
  }
@@ -563,7 +641,9 @@
563
641
  loadWrap.className =
564
642
  "flex flex-row items-center justify-center gap-8 py-12 px-12 w-full text-reg-12 text-typography-quaternary-text record-select-loading";
565
643
  if (Spinner && typeof Spinner.create === "function") {
566
- loadWrap.appendChild(Spinner.create({ size: "small", text: "Loading..." }));
644
+ loadWrap.appendChild(
645
+ Spinner.create({ size: "small", text: "Loading..." }),
646
+ );
567
647
  } else {
568
648
  var loadText = document.createElement("span");
569
649
  loadText.textContent = "Loading...";
@@ -571,12 +651,12 @@
571
651
  }
572
652
  optionsList.appendChild(loadWrap);
573
653
  }
574
-
654
+
575
655
  function showLoadingMore() {
576
656
  // Remove existing loading more indicator
577
657
  var existing = optionsList.querySelector(".record-select-loading-more");
578
658
  if (existing) existing.remove();
579
-
659
+
580
660
  var loadWrap = document.createElement("div");
581
661
  loadWrap.className =
582
662
  "flex flex-row items-center justify-center gap-8 py-8 px-12 w-full text-reg-12 text-typography-quaternary-text record-select-loading-more";
@@ -589,9 +669,11 @@
589
669
  }
590
670
  optionsList.appendChild(loadWrap);
591
671
  }
592
-
672
+
593
673
  function removeLoadingMore() {
594
- var loadingMore = optionsList.querySelector(".record-select-loading-more");
674
+ var loadingMore = optionsList.querySelector(
675
+ ".record-select-loading-more",
676
+ );
595
677
  if (loadingMore) loadingMore.remove();
596
678
  }
597
679
 
@@ -610,13 +692,15 @@
610
692
  existingOptions.forEach(function (opt) {
611
693
  opt.remove();
612
694
  });
613
-
695
+
614
696
  // Remove old loading/empty states
615
- var oldStates = optionsList.querySelectorAll(".record-select-loading, .record-select-empty");
697
+ var oldStates = optionsList.querySelectorAll(
698
+ ".record-select-loading, .record-select-empty",
699
+ );
616
700
  oldStates.forEach(function (el) {
617
701
  el.remove();
618
702
  });
619
-
703
+
620
704
  filteredRecords.forEach(function (rec) {
621
705
  var optionValue = rec.id || rec.value;
622
706
  var optionLabel = rec.name || rec.label || rec.value;
@@ -631,7 +715,7 @@
631
715
  "hover:bg-fill-tertiary-fill-light-gray focus:bg-fill-tertiary-fill-light-gray",
632
716
  isSelected
633
717
  ? "bg-primary-surface hover:!bg-primary-surface-hover"
634
- : ""
718
+ : "",
635
719
  );
636
720
 
637
721
  var optContent = document.createElement("span");
@@ -689,7 +773,7 @@
689
773
 
690
774
  optionsList.appendChild(option);
691
775
  });
692
-
776
+
693
777
  // Add loading more indicator at the bottom if fetching
694
778
  if (isFetchingMore) {
695
779
  showLoadingMore();
@@ -711,60 +795,71 @@
711
795
  currentPage = 1;
712
796
  hasMoreRecords = true;
713
797
  totalFetched = 0;
714
-
715
- fetchRecords(searchTerm, initialLimit, 1).then(function (result) {
716
- allRecords = result.records;
717
- filteredRecords = result.records;
718
- hasMoreRecords = result.hasMore;
719
- totalFetched = result.records.length;
720
- currentPage = 1;
721
-
722
- if (value && !result.records.some(function (r) { return (r.id || r.value) === value; })) {
723
- loadSelectedRecord();
724
- } else if (value && result.records.length) {
725
- var sel = result.records.find(function (r) { return (r.id || r.value) === value; });
726
- if (sel) selectedRecord = sel;
727
- updateTriggerDisplay();
728
- }
729
- if (filteredRecords.length === 0) {
730
- showEmpty(searchTerm ? "No results found" : "No records available");
731
- } else {
732
- renderOptions();
733
- }
734
- scheduleUpdatePosition();
735
- }).catch(function () {
736
- showEmpty("Failed to load records");
737
- hasMoreRecords = false;
738
- scheduleUpdatePosition();
739
- });
798
+
799
+ fetchRecords(searchTerm, initialLimit, 1)
800
+ .then(function (result) {
801
+ allRecords = result.records;
802
+ filteredRecords = result.records;
803
+ hasMoreRecords = result.hasMore;
804
+ totalFetched = result.records.length;
805
+ currentPage = 1;
806
+
807
+ if (
808
+ value &&
809
+ !result.records.some(function (r) {
810
+ return (r.id || r.value) === value;
811
+ })
812
+ ) {
813
+ loadSelectedRecord();
814
+ } else if (value && result.records.length) {
815
+ var sel = result.records.find(function (r) {
816
+ return (r.id || r.value) === value;
817
+ });
818
+ if (sel) selectedRecord = sel;
819
+ updateTriggerDisplay();
820
+ }
821
+ if (filteredRecords.length === 0) {
822
+ showEmpty(searchTerm ? "No results found" : "No records available");
823
+ } else {
824
+ renderOptions();
825
+ }
826
+ scheduleUpdatePosition();
827
+ })
828
+ .catch(function () {
829
+ showEmpty("Failed to load records");
830
+ hasMoreRecords = false;
831
+ scheduleUpdatePosition();
832
+ });
740
833
  }
741
-
834
+
742
835
  function loadMoreRecords() {
743
836
  if (isFetchingMore || !hasMoreRecords) return;
744
-
837
+
745
838
  isFetchingMore = true;
746
839
  currentPage += 1;
747
840
  showLoadingMore();
748
-
749
- fetchRecords(searchTerm, initialLimit, currentPage).then(function (result) {
750
- isFetchingMore = false;
751
- removeLoadingMore();
752
-
753
- if (result.records.length > 0) {
754
- allRecords = allRecords.concat(result.records);
755
- filteredRecords = filteredRecords.concat(result.records);
756
- totalFetched += result.records.length;
757
- hasMoreRecords = result.hasMore;
758
- renderOptions();
759
- } else {
841
+
842
+ fetchRecords(searchTerm, initialLimit, currentPage)
843
+ .then(function (result) {
844
+ isFetchingMore = false;
845
+ removeLoadingMore();
846
+
847
+ if (result.records.length > 0) {
848
+ allRecords = allRecords.concat(result.records);
849
+ filteredRecords = filteredRecords.concat(result.records);
850
+ totalFetched += result.records.length;
851
+ hasMoreRecords = result.hasMore;
852
+ renderOptions();
853
+ } else {
854
+ hasMoreRecords = false;
855
+ }
856
+ })
857
+ .catch(function (err) {
858
+ console.error("[RecordSelect] loadMoreRecords error:", err);
859
+ isFetchingMore = false;
860
+ removeLoadingMore();
760
861
  hasMoreRecords = false;
761
- }
762
- }).catch(function (err) {
763
- console.error("[RecordSelect] loadMoreRecords error:", err);
764
- isFetchingMore = false;
765
- removeLoadingMore();
766
- hasMoreRecords = false;
767
- });
862
+ });
768
863
  }
769
864
 
770
865
  function debouncedSearch() {
@@ -775,24 +870,26 @@
775
870
  currentPage = 1;
776
871
  hasMoreRecords = true;
777
872
  totalFetched = 0;
778
-
779
- fetchRecords(searchTerm, initialLimit, 1).then(function (result) {
780
- allRecords = result.records;
781
- filteredRecords = result.records;
782
- hasMoreRecords = result.hasMore;
783
- totalFetched = result.records.length;
784
-
785
- if (result.records.length === 0) {
786
- showEmpty("No results found");
787
- } else {
788
- renderOptions();
789
- }
790
- scheduleUpdatePosition();
791
- }).catch(function () {
792
- showEmpty("Search failed");
793
- hasMoreRecords = false;
794
- scheduleUpdatePosition();
795
- });
873
+
874
+ fetchRecords(searchTerm, initialLimit, 1)
875
+ .then(function (result) {
876
+ allRecords = result.records;
877
+ filteredRecords = result.records;
878
+ hasMoreRecords = result.hasMore;
879
+ totalFetched = result.records.length;
880
+
881
+ if (result.records.length === 0) {
882
+ showEmpty("No results found");
883
+ } else {
884
+ renderOptions();
885
+ }
886
+ scheduleUpdatePosition();
887
+ })
888
+ .catch(function () {
889
+ showEmpty("Search failed");
890
+ hasMoreRecords = false;
891
+ scheduleUpdatePosition();
892
+ });
796
893
  }, 500);
797
894
  }
798
895
 
@@ -842,7 +939,7 @@
842
939
  size,
843
940
  disabled,
844
941
  !value,
845
- canClear && !!value && !disabled
942
+ canClear && !!value && !disabled,
846
943
  );
847
944
  if (disabled && isOpen) closeDropdown();
848
945
  };
package/core/flow.js CHANGED
@@ -700,6 +700,7 @@
700
700
  size,
701
701
  canClear,
702
702
  initialLimit,
703
+ initialFilter,
703
704
  helpText = null,
704
705
  } = config;
705
706
 
@@ -719,6 +720,7 @@
719
720
  size: size || "default",
720
721
  canClear: !!canClear,
721
722
  initialLimit,
723
+ initialFilter,
722
724
  onChange: (value, record) => {
723
725
  set(fieldId, value);
724
726
  if (onChange) onChange(value, record);
@@ -768,6 +770,7 @@
768
770
  variant,
769
771
  size,
770
772
  initialLimit,
773
+ initialFilter,
771
774
  displayFields,
772
775
  helpText = null,
773
776
  } = config;
@@ -786,6 +789,7 @@
786
789
  variant: variant || "default",
787
790
  size: size || "default",
788
791
  initialLimit,
792
+ initialFilter,
789
793
  displayFields: displayFields || [],
790
794
  onValuesChange: (values, records) => {
791
795
  set(fieldId, values);