@bigbinary/neeto-filters-frontend 2.11.20 → 2.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/README.md CHANGED
@@ -188,6 +188,35 @@ const [filters, setFilters] = useState(() => buildFiltersFromURL([...SAMPLE_FIL
188
188
  const [selectors, setSelectors] = useState(() => buildSelectorsFromURL(FILTER_COLUMNS));
189
189
  ```
190
190
 
191
+ ### 5. `buildFilterColumnsFromFields` function
192
+
193
+ The `buildFilterColumnsFromFields` function is used to generate an array of filter columns based on the provided fields and selected field names.
194
+
195
+ #### Parameters
196
+
197
+ - `fields` (array): An array of field objects representing the available fields.
198
+ - `selectedFields` (array, optional): An array of strings representing the selected field names. Defaults to an empty array.
199
+
200
+ ```js
201
+ const fields = [
202
+ {
203
+ id: '1',
204
+ name: 'name',
205
+ kind: 'text',
206
+ },
207
+ {
208
+ id: '2',
209
+ name: 'age',
210
+ kind: 'number',
211
+ },
212
+ // Add more field objects as needed
213
+ ];
214
+
215
+ const selectedFields = ['name', 'age'];
216
+
217
+ const filterColumns = buildFilterColumnsFromFields(fields, selectedFields);
218
+ ```
219
+
191
220
  ## Development
192
221
 
193
222
  Install all the dependencies by executing the following command
package/dist/index.cjs.js CHANGED
@@ -3545,28 +3545,28 @@ var groupByGroup = ramda.groupBy(function (_ref) {
3545
3545
  return group || "individual";
3546
3546
  });
3547
3547
  var isBoolean = function isBoolean(type) {
3548
- return type === "boolean";
3548
+ return type === "boolean" || type === "custom.boolean";
3549
3549
  };
3550
3550
  var isDate = function isDate(type) {
3551
- return type === "date";
3551
+ return type === "date" || type === "custom.date";
3552
3552
  };
3553
3553
  var isSingleDate = function isSingleDate(type) {
3554
- return type === "single_date";
3554
+ return type === "single_date" || type === "custom.single_date";
3555
3555
  };
3556
3556
  var isSingleTime = function isSingleTime(type) {
3557
- return type === "single_time";
3557
+ return type === "single_time" || type === "custom.single_time";
3558
3558
  };
3559
3559
  var isTime = function isTime(type) {
3560
- return type === "time";
3560
+ return type === "time" || type === "custom.time";
3561
3561
  };
3562
3562
  var isMulti = function isMulti(type) {
3563
- return type === "multi_option";
3563
+ return type === "multi_option" || type === "custom.multi_option";
3564
3564
  };
3565
3565
  var isText = function isText(type) {
3566
- return type === "text";
3566
+ return type === "text" || type === "custom.text";
3567
3567
  };
3568
3568
  var isDigit = function isDigit(type) {
3569
- return type === "number" || type === "decimal";
3569
+ return type === "number" || type === "decimal" || type === "custom.number";
3570
3570
  };
3571
3571
  var isCustomDateRange = function isCustomDateRange(value) {
3572
3572
  return !ramda.pluck("value", DATE_OPTIONS).includes(value);
@@ -4079,6 +4079,36 @@ var buildUrlFromSegment = function buildUrlFromSegment(_ref19) {
4079
4079
  var getKeywordValueFromUrl = function getKeywordValueFromUrl() {
4080
4080
  return utils.getQueryParams()["keyword"] || "";
4081
4081
  };
4082
+ var buildFilterColumnsFromFields = function buildFilterColumnsFromFields(fields) {
4083
+ var selectedFields = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
4084
+ if (ramda.isEmpty(selectedFields)) {
4085
+ return fields.map(function (field) {
4086
+ var id = field.id,
4087
+ name = field.name,
4088
+ kind = field.kind;
4089
+ return {
4090
+ key: name,
4091
+ node: "".concat(name, ":").concat(id),
4092
+ label: pure.capitalize(name),
4093
+ type: "custom.".concat(kind)
4094
+ };
4095
+ });
4096
+ }
4097
+ return fields.reduce(function (columns, field) {
4098
+ if (selectedFields.includes(field.name)) {
4099
+ var id = field.id,
4100
+ name = field.name,
4101
+ kind = field.kind;
4102
+ columns.push({
4103
+ key: name,
4104
+ node: "".concat(name, ":").concat(id),
4105
+ label: pure.capitalize(name),
4106
+ type: "custom.".concat(kind)
4107
+ });
4108
+ }
4109
+ return columns;
4110
+ }, []);
4111
+ };
4082
4112
 
4083
4113
  var buildCustomDateValue = function buildCustomDateValue(value) {
4084
4114
  var isBeforeOrAfter = Math.abs(dayjs__default["default"](value[1]).diff(dayjs__default["default"](value[0]), "year")) >= 90;
@@ -7594,7 +7624,7 @@ var Text = function Text(_ref) {
7594
7624
  var ruleOptions = buildRuleOptions({
7595
7625
  defaultType: defaultType
7596
7626
  });
7597
- var inputType = defaultType === "text" ? "text" : "number";
7627
+ var inputType = defaultType === "text" || defaultType === "custom.text" ? "text" : "number";
7598
7628
  var _useState = React.useState(filter === null || filter === void 0 ? void 0 : filter.value),
7599
7629
  _useState2 = _slicedToArray(_useState, 2),
7600
7630
  inputValue = _useState2[0],
@@ -8452,6 +8482,7 @@ instance.use(initReactI18next).init({
8452
8482
  exports.Bar = Bar;
8453
8483
  exports.Filters = Filters;
8454
8484
  exports.Segments = index;
8485
+ exports.buildFilterColumnsFromFields = buildFilterColumnsFromFields;
8455
8486
  exports.buildFiltersFromURL = buildFiltersFromURL;
8456
8487
  exports.buildSelectorsFromURL = buildSelectorsFromURL;
8457
8488
  //# sourceMappingURL=index.cjs.js.map