@bigbinary/neeto-fields-frontend 1.0.7 → 1.1.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/dist/index.cjs.js CHANGED
@@ -4,20 +4,20 @@ Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var React = require('react');
6
6
  var neetoui = require('@bigbinary/neetoui');
7
- var ramda = require('ramda');
8
- var formik = require('@bigbinary/neetoui/formik');
9
- var reactQuery = require('react-query');
10
- var axios = require('axios');
11
- var utils = require('@bigbinary/neeto-commons-frontend/utils');
12
7
  var pure = require('@bigbinary/neeto-commons-frontend/pure');
8
+ var ramda = require('ramda');
9
+ var formik = require('formik');
13
10
  var yup = require('yup');
14
- var formik$1 = require('formik');
15
11
  var neetoIcons = require('@bigbinary/neeto-icons');
12
+ var formik$1 = require('@bigbinary/neetoui/formik');
16
13
  var Container = require('@bigbinary/neeto-molecules/Container');
17
14
  var Header = require('@bigbinary/neeto-molecules/Header');
18
15
  var MenuBar = require('@bigbinary/neeto-molecules/MenuBar');
19
16
  var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
20
17
  var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
18
+ var reactQuery = require('react-query');
19
+ var axios = require('axios');
20
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
21
21
  var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
22
22
  var reactRouterDom = require('react-router-dom');
23
23
  var TableWrapper = require('@bigbinary/neeto-molecules/TableWrapper');
@@ -45,13 +45,13 @@ function _interopNamespace(e) {
45
45
  }
46
46
 
47
47
  var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
48
- var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
49
48
  var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
50
49
  var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container);
51
50
  var Header__default = /*#__PURE__*/_interopDefaultLegacy(Header);
52
51
  var MenuBar__default = /*#__PURE__*/_interopDefaultLegacy(MenuBar);
53
52
  var PageLoader__default = /*#__PURE__*/_interopDefaultLegacy(PageLoader);
54
53
  var SubHeader__default = /*#__PURE__*/_interopDefaultLegacy(SubHeader);
54
+ var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
55
55
  var TableWrapper__default = /*#__PURE__*/_interopDefaultLegacy(TableWrapper);
56
56
  var classnames__default = /*#__PURE__*/_interopDefaultLegacy(classnames);
57
57
 
@@ -5064,6 +5064,33 @@ instance.services.formatter.addCached("boldList", function (lng, options) {
5064
5064
  };
5065
5065
  });
5066
5066
 
5067
+ function _extends() {
5068
+ _extends = Object.assign ? Object.assign.bind() : function (target) {
5069
+ for (var i = 1; i < arguments.length; i++) {
5070
+ var source = arguments[i];
5071
+ for (var key in source) {
5072
+ if (Object.prototype.hasOwnProperty.call(source, key)) {
5073
+ target[key] = source[key];
5074
+ }
5075
+ }
5076
+ }
5077
+ return target;
5078
+ };
5079
+ return _extends.apply(this, arguments);
5080
+ }
5081
+
5082
+ function _arrayWithoutHoles(arr) {
5083
+ if (Array.isArray(arr)) return _arrayLikeToArray(arr);
5084
+ }
5085
+
5086
+ function _nonIterableSpread() {
5087
+ throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
5088
+ }
5089
+
5090
+ function _toConsumableArray(arr) {
5091
+ return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
5092
+ }
5093
+
5067
5094
  var KINDS = {
5068
5095
  text: "text",
5069
5096
  number: "number",
@@ -5112,708 +5139,59 @@ var DEFAULT_FIELD_STATE_TAXONOMY = {
5112
5139
  };
5113
5140
  var ALL_KINDS = ramda.values(KINDS);
5114
5141
 
5115
- function _extends() {
5116
- _extends = Object.assign ? Object.assign.bind() : function (target) {
5117
- for (var i = 1; i < arguments.length; i++) {
5118
- var source = arguments[i];
5119
- for (var key in source) {
5120
- if (Object.prototype.hasOwnProperty.call(source, key)) {
5121
- target[key] = source[key];
5122
- }
5142
+ function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
5143
+ try {
5144
+ var info = gen[key](arg);
5145
+ var value = info.value;
5146
+ } catch (error) {
5147
+ reject(error);
5148
+ return;
5149
+ }
5150
+ if (info.done) {
5151
+ resolve(value);
5152
+ } else {
5153
+ Promise.resolve(value).then(_next, _throw);
5154
+ }
5155
+ }
5156
+ function _asyncToGenerator(fn) {
5157
+ return function () {
5158
+ var self = this,
5159
+ args = arguments;
5160
+ return new Promise(function (resolve, reject) {
5161
+ var gen = fn.apply(self, args);
5162
+ function _next(value) {
5163
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
5123
5164
  }
5124
- }
5125
- return target;
5165
+ function _throw(err) {
5166
+ asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
5167
+ }
5168
+ _next(undefined);
5169
+ });
5126
5170
  };
5127
- return _extends.apply(this, arguments);
5128
5171
  }
5129
5172
 
5130
- function _arrayWithoutHoles(arr) {
5131
- if (Array.isArray(arr)) return _arrayLikeToArray(arr);
5132
- }
5173
+ var regeneratorRuntime$1 = {exports: {}};
5133
5174
 
5134
- function _nonIterableSpread() {
5135
- throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
5136
- }
5175
+ var _typeof = {exports: {}};
5137
5176
 
5138
- function _toConsumableArray(arr) {
5139
- return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
5140
- }
5177
+ _typeof.exports;
5141
5178
 
5142
- var NEETO_FIELDS_URL = "/neeto_fields_engine/api/v1";
5143
- var FIELDS_URL = "".concat(NEETO_FIELDS_URL, "/fields");
5144
- var FIELD_VALUES_URL = "".concat(NEETO_FIELDS_URL, "/field_values");
5145
- var FIELD_VALUE_URL = "".concat(NEETO_FIELDS_URL, "/field_values/:fieldValueId");
5146
- var FIELD_URL = "".concat(NEETO_FIELDS_URL, "/fields/:fieldId");
5147
- var FIELDS_REORDER_URL = "".concat(FIELDS_URL, "/reorder");
5148
- var CONFIGS_URL = "".concat(NEETO_FIELDS_URL, "/configs");
5149
- var SINGULAR = {
5150
- count: 1
5151
- };
5152
- var PLURAL = {
5153
- count: 2
5154
- };
5179
+ (function (module) {
5180
+ function _typeof(obj) {
5181
+ "@babel/helpers - typeof";
5155
5182
 
5156
- var fieldUrl = function fieldUrl(fieldId) {
5157
- return utils.buildUrl(FIELD_URL, {
5158
- fieldId: fieldId
5159
- });
5160
- };
5161
- var fetch$1 = function fetch(_ref) {
5162
- var resourceType = _ref.resourceType,
5163
- ownerId = _ref.ownerId,
5164
- state = _ref.state;
5165
- return axios__default["default"].get(FIELDS_URL, {
5166
- params: {
5167
- resourceType: resourceType,
5168
- ownerId: ownerId,
5169
- state: state
5170
- }
5171
- });
5172
- };
5173
- var create$1 = function create(field) {
5174
- return axios__default["default"].post(FIELDS_URL, {
5175
- field: field
5176
- });
5177
- };
5178
- var show = function show(fieldId) {
5179
- return axios__default["default"].get(fieldUrl(fieldId));
5180
- };
5181
- var destroy$1 = function destroy(fieldId) {
5182
- return axios__default["default"]["delete"](fieldUrl(fieldId));
5183
- };
5184
- var update$1 = function update(_ref2) {
5185
- var fieldId = _ref2.fieldId,
5186
- payload = _ref2.payload;
5187
- return axios__default["default"].put(fieldUrl(fieldId), {
5188
- field: payload
5189
- });
5190
- };
5191
- var reorder = function reorder(payload) {
5192
- return axios__default["default"].patch(FIELDS_REORDER_URL, payload);
5193
- };
5194
- var fieldsApi = {
5195
- fetch: fetch$1,
5196
- create: create$1,
5197
- show: show,
5198
- destroy: destroy$1,
5199
- update: update$1,
5200
- reorder: reorder
5201
- };
5183
+ return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
5184
+ return typeof obj;
5185
+ } : function (obj) {
5186
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
5187
+ }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
5188
+ }
5189
+ module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
5190
+ } (_typeof));
5202
5191
 
5203
- var QUERY_KEYS = {
5204
- FIELDS: "fields",
5205
- FIELD_VALUES: "field_values",
5206
- CONFIGS: "configurations"
5207
- };
5208
- var DEFAULT_STALE_TIME = 3600000; // 1 hour
5192
+ var _typeofExports = _typeof.exports;
5209
5193
 
5210
- function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5211
- function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$a(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5212
- var FIELDS = QUERY_KEYS.FIELDS;
5213
- var useFetchFields = function useFetchFields(_ref, options) {
5214
- var resourceType = _ref.resourceType,
5215
- ownerId = _ref.ownerId,
5216
- state = _ref.state,
5217
- _ref$prefixQueryKeys = _ref.prefixQueryKeys,
5218
- prefixQueryKeys = _ref$prefixQueryKeys === void 0 ? [] : _ref$prefixQueryKeys;
5219
- return reactQuery.useQuery([FIELDS].concat(_toConsumableArray(prefixQueryKeys), [resourceType, ownerId, state]), function () {
5220
- return fieldsApi.fetch({
5221
- resourceType: resourceType,
5222
- ownerId: ownerId,
5223
- state: state
5224
- });
5225
- }, _objectSpread$a({
5226
- staleTime: DEFAULT_STALE_TIME
5227
- }, options));
5228
- };
5229
- var useCreateField = function useCreateField(options) {
5230
- var queryClient = reactQuery.useQueryClient();
5231
- return reactQuery.useMutation(fieldsApi.create, _objectSpread$a(_objectSpread$a({}, options), {}, {
5232
- onSuccess: function onSuccess() {
5233
- var _options$onSuccess;
5234
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
5235
- args[_key] = arguments[_key];
5236
- }
5237
- options === null || options === void 0 ? void 0 : (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 ? void 0 : _options$onSuccess.call.apply(_options$onSuccess, [options].concat(args));
5238
- queryClient.invalidateQueries(FIELDS);
5239
- }
5240
- }));
5241
- };
5242
- var useShowField = function useShowField(fieldId, options) {
5243
- var queryKey = [FIELDS, fieldId];
5244
- return reactQuery.useQuery(queryKey, function () {
5245
- return fieldsApi.show(fieldId);
5246
- }, options);
5247
- };
5248
- var useUpdateField = function useUpdateField(options) {
5249
- var queryClient = reactQuery.useQueryClient();
5250
- return reactQuery.useMutation(fieldsApi.update, _objectSpread$a(_objectSpread$a({}, options), {}, {
5251
- onSuccess: function onSuccess() {
5252
- var _options$onSuccess2;
5253
- for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
5254
- args[_key2] = arguments[_key2];
5255
- }
5256
- options === null || options === void 0 ? void 0 : (_options$onSuccess2 = options.onSuccess) === null || _options$onSuccess2 === void 0 ? void 0 : _options$onSuccess2.call.apply(_options$onSuccess2, [options].concat(args));
5257
- queryClient.invalidateQueries(FIELDS);
5258
- }
5259
- }));
5260
- };
5261
- var useDestroyField = function useDestroyField(options) {
5262
- var queryClient = reactQuery.useQueryClient();
5263
- return reactQuery.useMutation(fieldsApi.destroy, _objectSpread$a(_objectSpread$a({}, options), {}, {
5264
- onSuccess: function onSuccess() {
5265
- var _options$onSuccess3;
5266
- for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
5267
- args[_key3] = arguments[_key3];
5268
- }
5269
- options === null || options === void 0 ? void 0 : (_options$onSuccess3 = options.onSuccess) === null || _options$onSuccess3 === void 0 ? void 0 : _options$onSuccess3.call.apply(_options$onSuccess3, [options].concat(args));
5270
- queryClient.invalidateQueries(FIELDS);
5271
- }
5272
- }));
5273
- };
5274
- var useReorderFields = function useReorderFields() {
5275
- var queryClient = reactQuery.useQueryClient();
5276
- return reactQuery.useMutation(fieldsApi.reorder, {
5277
- onSuccess: function onSuccess() {
5278
- queryClient.invalidateQueries(FIELDS);
5279
- }
5280
- });
5281
- };
5282
-
5283
- function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5284
- function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$9(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5285
- var arrangeOptionsDisplayOrder = function arrangeOptionsDisplayOrder(options) {
5286
- return options.map(function (option, index) {
5287
- return _objectSpread$9(_objectSpread$9({}, option), {}, {
5288
- displayOrder: index
5289
- });
5290
- });
5291
- };
5292
- var buildPayload = function buildPayload(_ref) {
5293
- var formValues = _ref.formValues,
5294
- _ref$resourceType = _ref.resourceType,
5295
- resourceType = _ref$resourceType === void 0 ? "" : _ref$resourceType,
5296
- _ref$ownerId = _ref.ownerId,
5297
- ownerId = _ref$ownerId === void 0 ? "" : _ref$ownerId;
5298
- var kind = formValues.kind.value;
5299
- var name = formValues.name.trim();
5300
- return _objectSpread$9(_objectSpread$9({}, ramda.omit(["createdAt", "id", "ownerId", "ownerType", "updatedAt"], formValues)), {}, {
5301
- kind: kind,
5302
- name: name,
5303
- resourceType: ramda.isEmpty(resourceType) ? undefined : resourceType,
5304
- ownerId: ramda.isEmpty(ownerId) ? undefined : ownerId,
5305
- data: isDropdown(kind) ? arrangeOptionsDisplayOrder(formValues.data) : formValues.data
5306
- });
5307
- };
5308
- var isDropdown = function isDropdown(kind) {
5309
- return ["single_option", "multi_option"].includes(kind);
5310
- };
5311
- var isRegex = function isRegex(kind) {
5312
- return kind === "regex";
5313
- };
5314
- var isAdditionalDataNeeded = function isAdditionalDataNeeded(kind) {
5315
- return ADDITIONAL_DATA_NEEDED_FIELD_KINDS.includes(kind);
5316
- };
5317
- var getPermittedKinds = function getPermittedKinds(_ref2) {
5318
- var allowedKinds = _ref2.allowedKinds,
5319
- selectedKind = _ref2.selectedKind;
5320
- var filteredKinds = ramda.pick(allowedKinds, FIELD_KINDS);
5321
- var permittedKinds = pure.filterBy({
5322
- group: selectedKind === null || selectedKind === void 0 ? void 0 : selectedKind.group
5323
- }, ramda.values(filteredKinds));
5324
- return permittedKinds;
5325
- };
5326
- var generateValidationSchema = function generateValidationSchema(additionalValidations) {
5327
- return yup__namespace.object().shape(_objectSpread$9(_objectSpread$9({}, BASIC_FIELD_FORM_VALIDATIONS), additionalValidations));
5328
- };
5329
- var renderFormFooter = function renderFormFooter(_ref3) {
5330
- var onClose = _ref3.onClose,
5331
- loading = _ref3.loading,
5332
- _ref3$dirty = _ref3.dirty,
5333
- dirty = _ref3$dirty === void 0 ? true : _ref3$dirty;
5334
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, null, /*#__PURE__*/React__default["default"].createElement(formik.ActionBlock, {
5335
- cancelButtonProps: {
5336
- onClick: onClose,
5337
- style: "text",
5338
- disabled: loading
5339
- },
5340
- submitButtonProps: {
5341
- label: t("labels.saveChanges"),
5342
- className: "mr-2",
5343
- type: "submit",
5344
- disabled: !dirty,
5345
- loading: loading
5346
- }
5347
- }));
5348
- };
5349
-
5350
- var regexValidationSchema = yup__namespace.object().shape({
5351
- condition: yup__namespace.string().required(t("validations.regexConditionIsRequired")),
5352
- helpMessage: yup__namespace.string().required(t("validations.regexHelpMessageIsRequired"))
5353
- });
5354
- var dropDownOptionsValidationSchema = yup__namespace.array().of(yup__namespace.object().shape({
5355
- label: yup__namespace.string().trim().required(t("validations.fieldOptionIsRequired")),
5356
- displayOrder: yup__namespace.number()
5357
- })).min(1, t("validations.atLeastFieldOptionIsRequired"));
5358
- var FIELD_KINDS = {
5359
- text: {
5360
- value: "text",
5361
- label: t("fields.kinds.text"),
5362
- group: 1
5363
- },
5364
- number: {
5365
- value: "number",
5366
- label: t("fields.kinds.number"),
5367
- group: 2
5368
- },
5369
- monetary: {
5370
- value: "monetary",
5371
- label: t("fields.kinds.monetary"),
5372
- group: 2
5373
- },
5374
- single_option: {
5375
- value: "single_option",
5376
- label: t("fields.kinds.singleOption"),
5377
- group: 3
5378
- },
5379
- multi_option: {
5380
- value: "multi_option",
5381
- label: t("fields.kinds.multiOption"),
5382
- group: 3
5383
- },
5384
- date: {
5385
- value: "date",
5386
- label: t("fields.kinds.date"),
5387
- group: 4
5388
- },
5389
- time: {
5390
- value: "time",
5391
- label: t("fields.kinds.time"),
5392
- group: 5
5393
- },
5394
- date_range: {
5395
- value: "date_range",
5396
- label: t("fields.kinds.dateRange"),
5397
- group: 6
5398
- },
5399
- time_range: {
5400
- value: "time_range",
5401
- label: t("fields.kinds.timeRange"),
5402
- group: 7
5403
- },
5404
- text_area: {
5405
- value: "text_area",
5406
- label: t("fields.kinds.textArea"),
5407
- group: 1
5408
- },
5409
- textarea: {
5410
- value: "textarea",
5411
- label: t("fields.kinds.textarea"),
5412
- group: 1
5413
- },
5414
- person: {
5415
- value: "person",
5416
- label: t("fields.kinds.person"),
5417
- group: 8
5418
- },
5419
- checkbox: {
5420
- value: "checkbox",
5421
- label: t("fields.kinds.checkbox"),
5422
- group: 9
5423
- },
5424
- regex: {
5425
- value: "regex",
5426
- label: t("fields.kinds.regex"),
5427
- group: 10
5428
- },
5429
- integer: {
5430
- value: "integer",
5431
- label: t("fields.kinds.integer"),
5432
- group: 2
5433
- },
5434
- decimal: {
5435
- value: "decimal",
5436
- label: t("fields.kinds.decimal"),
5437
- group: 2
5438
- },
5439
- datetime: {
5440
- value: "datetime",
5441
- label: t("fields.kinds.datetime"),
5442
- group: 11
5443
- }
5444
- };
5445
- var ADDITIONAL_DATA_NEEDED_FIELD_KINDS = ["single_option", "multi_option", "regex"];
5446
- var INITIAL_FIELDS = {
5447
- name: "",
5448
- kind: pure.toLabelAndValue("text"),
5449
- isRequired: false
5450
- };
5451
- var DEFAULT_OPTION = {
5452
- label: "",
5453
- displayOrder: 0
5454
- };
5455
- var DEFAULT_OPTIONS_DATA = [DEFAULT_OPTION];
5456
- var DEFAULT_REGEX_DATA = {
5457
- regex: "",
5458
- helpMessage: ""
5459
- };
5460
- var BASIC_FIELD_FORM_VALIDATIONS = {
5461
- name: yup__namespace.string().trim().required(t("validations.fieldNameIsRequired")),
5462
- isRequired: yup__namespace["boolean"](),
5463
- kind: yup__namespace.object().shape({
5464
- value: yup__namespace.string().required()
5465
- }).required(t("validations.kindIsRequired")),
5466
- data: yup__namespace.mixed().when("kind", {
5467
- is: function is(kind) {
5468
- return isRegex(kind === null || kind === void 0 ? void 0 : kind.value);
5469
- },
5470
- then: regexValidationSchema
5471
- }).when("kind", {
5472
- is: function is(kind) {
5473
- return isDropdown(kind === null || kind === void 0 ? void 0 : kind.value);
5474
- },
5475
- then: dropDownOptionsValidationSchema
5476
- })
5477
- };
5478
-
5479
- var AdditionalInputs = function AdditionalInputs() {
5480
- var _useTranslation = useTranslation(),
5481
- t = _useTranslation.t;
5482
- var _useFormikContext = formik$1.useFormikContext(),
5483
- _useFormikContext$val = _useFormikContext.values,
5484
- kind = _useFormikContext$val.kind,
5485
- options = _useFormikContext$val.data,
5486
- isSystem = _useFormikContext$val.isSystem;
5487
- var removeOption = function removeOption(arrayHelpers, index) {
5488
- return arrayHelpers.remove(index);
5489
- };
5490
- var addOption = function addOption(arrayHelpers) {
5491
- return arrayHelpers.push(DEFAULT_OPTION);
5492
- };
5493
- if (isDropdown(kind.value)) {
5494
- return /*#__PURE__*/React__default["default"].createElement(formik$1.FieldArray, {
5495
- name: "data"
5496
- }, function (arrayHelpers) {
5497
- return /*#__PURE__*/React__default["default"].createElement("div", {
5498
- className: "flex w-full flex-col gap-y-4"
5499
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
5500
- required: true
5501
- }, t("titles.dropdownOptions")), pure.isNotEmpty(options) && Array.isArray(options) && options.map(function (_, index) {
5502
- return /*#__PURE__*/React__default["default"].createElement("div", {
5503
- className: "flex w-full space-x-3",
5504
- key: index
5505
- }, /*#__PURE__*/React__default["default"].createElement("div", {
5506
- className: "w-full"
5507
- }, /*#__PURE__*/React__default["default"].createElement(formik.Input, {
5508
- disabled: isSystem,
5509
- name: "data.".concat(index, ".label"),
5510
- placeholder: t("placeholders.enterAnOption"),
5511
- suffix: options.length > 1 && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
5512
- icon: neetoIcons.Delete,
5513
- style: "text",
5514
- onClick: function onClick() {
5515
- return removeOption(arrayHelpers, index);
5516
- }
5517
- })
5518
- })));
5519
- }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
5520
- fullWidth: true,
5521
- className: "mb-6 border-dashed text-xs uppercase",
5522
- label: t("labels.addMoreOption"),
5523
- style: "secondary",
5524
- onClick: function onClick() {
5525
- return addOption(arrayHelpers);
5526
- }
5527
- }));
5528
- });
5529
- } else if (isRegex(kind.value)) {
5530
- return /*#__PURE__*/React__default["default"].createElement("div", {
5531
- className: "flex w-full flex-col gap-y-4"
5532
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
5533
- required: true
5534
- }, t("titles.regexOptions")), /*#__PURE__*/React__default["default"].createElement(formik.Input, {
5535
- disabled: isSystem,
5536
- label: t("labels.regexCondition"),
5537
- name: "data.condition",
5538
- placeholder: t("placeholders.regexExample")
5539
- }), /*#__PURE__*/React__default["default"].createElement(formik.Input, {
5540
- disabled: isSystem,
5541
- label: t("labels.helpMessage"),
5542
- name: "data.helpMessage",
5543
- placeholder: t("placeholders.enterErrorMessage")
5544
- }));
5545
- }
5546
- return null;
5547
- };
5548
-
5549
- /** @type {React.FC<import("types").FieldFormProps>} */
5550
-
5551
- var FieldForm = function FieldForm(_ref) {
5552
- var chosenKind = _ref.chosenKind,
5553
- _ref$kindSelectOption = _ref.kindSelectOptions,
5554
- kindSelectOptions = _ref$kindSelectOption === void 0 ? [] : _ref$kindSelectOption,
5555
- _ref$isSystem = _ref.isSystem,
5556
- isSystem = _ref$isSystem === void 0 ? false : _ref$isSystem,
5557
- _ref$hideRequiredSwit = _ref.hideRequiredSwitch,
5558
- hideRequiredSwitch = _ref$hideRequiredSwit === void 0 ? false : _ref$hideRequiredSwit,
5559
- children = _ref.children;
5560
- var _useTranslation = useTranslation(),
5561
- t = _useTranslation.t;
5562
- var _useFormikContext = formik$1.useFormikContext(),
5563
- options = _useFormikContext.values.data,
5564
- setFieldValue = _useFormikContext.setFieldValue;
5565
- var handleKindChange = function handleKindChange(kind) {
5566
- setFieldValue("kind", kind);
5567
- if (isDropdown(kind.value)) {
5568
- setFieldValue("data", options !== null && options !== void 0 ? options : DEFAULT_OPTIONS_DATA);
5569
- } else if (isRegex(kind.value)) {
5570
- setFieldValue("data", options !== null && options !== void 0 ? options : DEFAULT_REGEX_DATA);
5571
- }
5572
- };
5573
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
5574
- className: "w-full space-y-4"
5575
- }, /*#__PURE__*/React__default["default"].createElement(formik.Input, {
5576
- required: true,
5577
- disabled: isSystem,
5578
- label: t("labels.fieldName"),
5579
- name: "name",
5580
- placeholder: t("placeholders.enterFieldName")
5581
- }), /*#__PURE__*/React__default["default"].createElement(formik.Select, {
5582
- isSearchable: true,
5583
- isDisabled: isSystem,
5584
- label: t("labels.fieldKind"),
5585
- name: "kind",
5586
- options: kindSelectOptions,
5587
- onChange: handleKindChange
5588
- }), isAdditionalDataNeeded(chosenKind) && /*#__PURE__*/React__default["default"].createElement(AdditionalInputs, null), !hideRequiredSwitch && /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
5589
- className: "flex items-center gap-2"
5590
- }, /*#__PURE__*/React__default["default"].createElement(formik.Switch, {
5591
- name: "isRequired"
5592
- }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
5593
- className: "leading-4",
5594
- component: "span",
5595
- style: "body2"
5596
- }, t("labels.isRequired"))), children));
5597
- };
5598
-
5599
- var _excluded$3 = ["resourceType", "allowedKinds", "additionalValidations", "initialValues", "onClose"];
5600
- function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5601
- function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5602
-
5603
- /** @type {React.FC<import("types").AddProps>} */
5604
-
5605
- var Add = function Add(_ref) {
5606
- var resourceType = _ref.resourceType,
5607
- allowedKinds = _ref.allowedKinds,
5608
- additionalValidations = _ref.additionalValidations,
5609
- initialValues = _ref.initialValues,
5610
- onClose = _ref.onClose,
5611
- props = _objectWithoutProperties(_ref, _excluded$3);
5612
- var _useTranslation = useTranslation(),
5613
- t = _useTranslation.t;
5614
- var _useCreateField = useCreateField(),
5615
- createField = _useCreateField.mutate,
5616
- isSubmitting = _useCreateField.isLoading;
5617
- var filteredKinds = ramda.values(ramda.pick(allowedKinds, FIELD_KINDS));
5618
- var handleSubmit = function handleSubmit(formValues) {
5619
- var payload = buildPayload({
5620
- formValues: formValues,
5621
- resourceType: resourceType
5622
- });
5623
- createField(payload, {
5624
- onSuccess: onClose
5625
- });
5626
- };
5627
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
5628
- style: "h2"
5629
- }, t("titles.addField"))), /*#__PURE__*/React__default["default"].createElement(formik.Form, {
5630
- formikProps: {
5631
- initialValues: _objectSpread$8(_objectSpread$8({}, initialValues), INITIAL_FIELDS),
5632
- validationSchema: generateValidationSchema(additionalValidations),
5633
- onSubmit: handleSubmit
5634
- }
5635
- }, function (_ref2) {
5636
- var dirty = _ref2.dirty,
5637
- kind = _ref2.values.kind;
5638
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FieldForm, _extends({
5639
- chosenKind: kind.value,
5640
- kindSelectOptions: filteredKinds
5641
- }, props)), renderFormFooter({
5642
- onClose: onClose,
5643
- loading: isSubmitting,
5644
- dirty: dirty
5645
- }));
5646
- }));
5647
- };
5648
-
5649
- var _excluded$2 = ["fieldId", "allowedKinds", "additionalValidations", "initialValues", "onClose"];
5650
- function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5651
- function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5652
-
5653
- /** @type {React.FC<import("types").EditProps>} */
5654
-
5655
- var Edit = function Edit(_ref) {
5656
- var fieldId = _ref.fieldId,
5657
- allowedKinds = _ref.allowedKinds,
5658
- _ref$additionalValida = _ref.additionalValidations,
5659
- additionalValidations = _ref$additionalValida === void 0 ? {} : _ref$additionalValida,
5660
- _ref$initialValues = _ref.initialValues,
5661
- initialValues = _ref$initialValues === void 0 ? {} : _ref$initialValues,
5662
- onClose = _ref.onClose,
5663
- props = _objectWithoutProperties(_ref, _excluded$2);
5664
- var _useTranslation = useTranslation(),
5665
- t = _useTranslation.t;
5666
- var _useShowField = useShowField(fieldId),
5667
- _useShowField$data = _useShowField.data,
5668
- _useShowField$data2 = _useShowField$data === void 0 ? {} : _useShowField$data,
5669
- _useShowField$data2$f = _useShowField$data2.field,
5670
- field = _useShowField$data2$f === void 0 ? {} : _useShowField$data2$f;
5671
- var _useUpdateField = useUpdateField(),
5672
- updateField = _useUpdateField.mutate,
5673
- isSubmitting = _useUpdateField.isLoading;
5674
- var handleSubmit = function handleSubmit(formValues) {
5675
- var payload = buildPayload({
5676
- formValues: formValues
5677
- });
5678
- updateField({
5679
- fieldId: fieldId,
5680
- payload: payload
5681
- }, {
5682
- onSuccess: onClose
5683
- });
5684
- };
5685
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
5686
- style: "h2"
5687
- }, t("titles.editField"))), /*#__PURE__*/React__default["default"].createElement(formik.Form, {
5688
- formikProps: {
5689
- initialValues: _objectSpread$7(_objectSpread$7({}, initialValues), ramda.assoc("kind", FIELD_KINDS[field.kind], field)),
5690
- validationSchema: generateValidationSchema(additionalValidations),
5691
- enableReinitialize: true,
5692
- onSubmit: handleSubmit
5693
- }
5694
- }, function (_ref2) {
5695
- var kind = _ref2.values.kind,
5696
- dirty = _ref2.dirty;
5697
- var permittedKinds = getPermittedKinds({
5698
- allowedKinds: allowedKinds,
5699
- selectedKind: kind
5700
- });
5701
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FieldForm, _extends({
5702
- chosenKind: kind === null || kind === void 0 ? void 0 : kind.value,
5703
- isSystem: field.isSystem,
5704
- kindSelectOptions: permittedKinds
5705
- }, props)), renderFormFooter({
5706
- onClose: onClose,
5707
- loading: isSubmitting,
5708
- dirty: dirty
5709
- }));
5710
- }));
5711
- };
5712
-
5713
- var _excluded$1 = ["isOpen", "selectedField"];
5714
-
5715
- /** @type {React.FC<import("types").FieldsPaneProps>} */
5716
-
5717
- var FieldsPane = function FieldsPane(_ref) {
5718
- var isOpen = _ref.isOpen,
5719
- _ref$selectedField = _ref.selectedField,
5720
- selectedField = _ref$selectedField === void 0 ? {} : _ref$selectedField,
5721
- props = _objectWithoutProperties(_ref, _excluded$1);
5722
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
5723
- isOpen: isOpen,
5724
- onClose: props.onClose
5725
- }, ramda.isEmpty(selectedField) ? /*#__PURE__*/React__default["default"].createElement(Add, props) : /*#__PURE__*/React__default["default"].createElement(Edit, _extends({
5726
- fieldId: selectedField === null || selectedField === void 0 ? void 0 : selectedField.id
5727
- }, props)));
5728
- };
5729
-
5730
- /** @type {React.FC<import("types").AddFieldProps>} */
5731
-
5732
- var AddField = function AddField(_ref) {
5733
- var resourceType = _ref.resourceType,
5734
- _ref$allowedKinds = _ref.allowedKinds,
5735
- allowedKinds = _ref$allowedKinds === void 0 ? ALL_KINDS : _ref$allowedKinds,
5736
- additionalValidations = _ref.additionalValidations,
5737
- initialValues = _ref.initialValues,
5738
- hideRequiredSwitch = _ref.hideRequiredSwitch,
5739
- children = _ref.children;
5740
- var _useState = React.useState(false),
5741
- _useState2 = _slicedToArray(_useState, 2),
5742
- isOpen = _useState2[0],
5743
- setIsOpen = _useState2[1];
5744
- var _useTranslation = useTranslation(),
5745
- t = _useTranslation.t;
5746
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
5747
- label: t("labels.addField"),
5748
- onClick: function onClick() {
5749
- return setIsOpen(true);
5750
- }
5751
- }), /*#__PURE__*/React__default["default"].createElement(FieldsPane, {
5752
- additionalValidations: additionalValidations,
5753
- allowedKinds: allowedKinds,
5754
- hideRequiredSwitch: hideRequiredSwitch,
5755
- initialValues: initialValues,
5756
- isOpen: isOpen,
5757
- resourceType: resourceType,
5758
- onClose: function onClose() {
5759
- return setIsOpen(false);
5760
- }
5761
- }, children));
5762
- };
5763
-
5764
- function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
5765
- try {
5766
- var info = gen[key](arg);
5767
- var value = info.value;
5768
- } catch (error) {
5769
- reject(error);
5770
- return;
5771
- }
5772
- if (info.done) {
5773
- resolve(value);
5774
- } else {
5775
- Promise.resolve(value).then(_next, _throw);
5776
- }
5777
- }
5778
- function _asyncToGenerator(fn) {
5779
- return function () {
5780
- var self = this,
5781
- args = arguments;
5782
- return new Promise(function (resolve, reject) {
5783
- var gen = fn.apply(self, args);
5784
- function _next(value) {
5785
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
5786
- }
5787
- function _throw(err) {
5788
- asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
5789
- }
5790
- _next(undefined);
5791
- });
5792
- };
5793
- }
5794
-
5795
- var regeneratorRuntime$1 = {exports: {}};
5796
-
5797
- var _typeof = {exports: {}};
5798
-
5799
- _typeof.exports;
5800
-
5801
- (function (module) {
5802
- function _typeof(obj) {
5803
- "@babel/helpers - typeof";
5804
-
5805
- return (module.exports = _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
5806
- return typeof obj;
5807
- } : function (obj) {
5808
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
5809
- }, module.exports.__esModule = true, module.exports["default"] = module.exports), _typeof(obj);
5810
- }
5811
- module.exports = _typeof, module.exports.__esModule = true, module.exports["default"] = module.exports;
5812
- } (_typeof));
5813
-
5814
- var _typeofExports = _typeof.exports;
5815
-
5816
- regeneratorRuntime$1.exports;
5194
+ regeneratorRuntime$1.exports;
5817
5195
 
5818
5196
  (function (module) {
5819
5197
  var _typeof = _typeofExports["default"];
@@ -6121,481 +5499,1110 @@ regeneratorRuntime$1.exports;
6121
5499
  module.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports["default"] = module.exports;
6122
5500
  } (regeneratorRuntime$1));
6123
5501
 
6124
- var regeneratorRuntimeExports = regeneratorRuntime$1.exports;
5502
+ var regeneratorRuntimeExports = regeneratorRuntime$1.exports;
5503
+
5504
+ // TODO(Babel 8): Remove this file.
5505
+
5506
+ var runtime = regeneratorRuntimeExports();
5507
+ var regenerator = runtime;
5508
+
5509
+ // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
5510
+ try {
5511
+ regeneratorRuntime = runtime;
5512
+ } catch (accidentalStrictMode) {
5513
+ if (typeof globalThis === "object") {
5514
+ globalThis.regeneratorRuntime = runtime;
5515
+ } else {
5516
+ Function("r", "regeneratorRuntime = r")(runtime);
5517
+ }
5518
+ }
5519
+
5520
+ var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator);
5521
+
5522
+ var dayjs_min = {exports: {}};
5523
+
5524
+ dayjs_min.exports;
5525
+
5526
+ (function (module, exports) {
5527
+ !function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",f="month",h="quarter",c="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p=function(t){return t instanceof _},S=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t);}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return O},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),l=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return O.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(h){case c:return r?l(1,0):l(31,11);case f:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h="set"+(this.$u?"UTC":""),l=(n={},n[a]=h+"Date",n[d]=h+"Date",n[f]=h+"Month",n[c]=h+"FullYear",n[u]=h+"Hours",n[s]=h+"Minutes",n[i]=h+"Seconds",n[r]=h+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,l=this;r=Number(r);var $=O.p(h),y=function(t){var e=w(l);return O.w(e.date(e.date()+Math.round(t*r)),l)};if($===f)return this.set(f,this.$M+r);if($===c)return this.set(c,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},c=function(t){return O.s(s%12||12,t,"0")},d=n.meridiem||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r},$={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,"0"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,"0"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,"0"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,"0"),s:String(this.$s),ss:O.s(this.$s,2,"0"),SSS:O.s(this.$ms,3,"0"),Z:i};return r.replace(y,(function(t,e){return e||$[t]||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,v=this-M,g=O.m(this,M);return g=($={},$[c]=g/12,$[f]=g,$[h]=g/3,$[o]=(v-m)/6048e5,$[a]=(v-m)/864e5,$[u]=v/n,$[s]=v/e,$[i]=v/t,$)[y]||v,l?g:O.a(g)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),T=_.prototype;return w.prototype=T,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",f],["$y",c],["$D",d]].forEach((function(t){T[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[g],w.Ls=D,w.p={},w}));
5528
+ } (dayjs_min, dayjs_min.exports));
5529
+
5530
+ var dayjs_minExports = dayjs_min.exports;
5531
+ var dayjs = /*@__PURE__*/getDefaultExportFromCjs(dayjs_minExports);
5532
+
5533
+ var dateSchema = yup__namespace.date().nullable();
5534
+ var buildFieldValidationSchema = function buildFieldValidationSchema(_ref) {
5535
+ var kind = _ref.kind,
5536
+ isRequired = _ref.isRequired,
5537
+ fieldData = _ref.fieldData;
5538
+ switch (kind) {
5539
+ case KINDS.singleOption:
5540
+ case KINDS.text:
5541
+ {
5542
+ var schema = yup__namespace.string().trim().nullable();
5543
+ return isRequired ? schema.required(t("validations.thisIsRequired")) : schema;
5544
+ }
5545
+ case KINDS.number:
5546
+ case KINDS.monetary:
5547
+ case KINDS.decimal:
5548
+ {
5549
+ var _schema = yup__namespace.number().nullable().typeError(t("validations.notAValidNumber"));
5550
+ return isRequired ? _schema.required(t("validations.thisIsRequired")) : _schema;
5551
+ }
5552
+ case KINDS.integer:
5553
+ {
5554
+ var _schema2 = yup__namespace.number().nullable().integer().typeError(t("validations.notAValidInteger"));
5555
+ return isRequired ? _schema2.required(t("validations.thisIsRequired")) : _schema2;
5556
+ }
5557
+ case KINDS.date:
5558
+ case KINDS.time:
5559
+ return isRequired ? dateSchema.required(t("validations.thisIsRequired")) : dateSchema;
5560
+ case KINDS.multiOption:
5561
+ {
5562
+ var _schema3 = yup__namespace.array().of(yup__namespace.string()).nullable();
5563
+ return isRequired ? _schema3.min(1, t("validations.minOneItem")).required(t("validations.thisIsRequired")) : _schema3;
5564
+ }
5565
+ case KINDS.dateRange:
5566
+ case KINDS.timeRange:
5567
+ {
5568
+ if (isRequired) {
5569
+ return yup__namespace.array().of(dateSchema).required(t("validations.thisIsRequired"));
5570
+ }
5571
+ return yup__namespace.array().of(dateSchema).nullable();
5572
+ }
5573
+ case KINDS.checkbox:
5574
+ return yup__namespace["boolean"]().nullable();
5575
+ case KINDS.regex:
5576
+ {
5577
+ var regexPattern = fieldData === null || fieldData === void 0 ? void 0 : fieldData.condition;
5578
+ var _schema4 = yup__namespace.string().nullable().matches(cleanedRegex(regexPattern), fieldData === null || fieldData === void 0 ? void 0 : fieldData.helpMessage);
5579
+ return isRequired ? _schema4.required(t("validations.thisIsRequired")) : _schema4;
5580
+ }
5581
+ default:
5582
+ return yup__namespace.mixed();
5583
+ }
5584
+ };
5585
+ var cleanedRegex = function cleanedRegex(expression) {
5586
+ if (expression.startsWith("/") && expression.endsWith("/")) {
5587
+ return expression.slice(1, -1);
5588
+ }
5589
+ return expression;
5590
+ };
5591
+ var buildOptionsToLabelAndValue = function buildOptionsToLabelAndValue() {
5592
+ var optionObjects = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
5593
+ return optionObjects.map(function (_ref2) {
5594
+ var label = _ref2.label,
5595
+ value = _ref2.value;
5596
+ return {
5597
+ label: label,
5598
+ value: value || label
5599
+ };
5600
+ });
5601
+ };
5602
+ var buildArrayToLabelAndValues = function buildArrayToLabelAndValues(value) {
5603
+ return ramda.map(pure.toLabelAndValue, value || []);
5604
+ };
5605
+ var validateField = /*#__PURE__*/function () {
5606
+ var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref3) {
5607
+ var fieldValue, fieldName, isRequired, kind, fieldData;
5608
+ return _regeneratorRuntime.wrap(function _callee$(_context) {
5609
+ while (1) switch (_context.prev = _context.next) {
5610
+ case 0:
5611
+ fieldValue = _ref3.fieldValue, fieldName = _ref3.fieldName, isRequired = _ref3.isRequired, kind = _ref3.kind, fieldData = _ref3.fieldData;
5612
+ _context.prev = 1;
5613
+ _context.next = 4;
5614
+ return yup__namespace.object().shape(_defineProperty({}, fieldName, buildFieldValidationSchema({
5615
+ kind: kind,
5616
+ isRequired: isRequired,
5617
+ fieldData: fieldData
5618
+ }))).validate(_defineProperty({}, fieldName, fieldValue));
5619
+ case 4:
5620
+ return _context.abrupt("return", false);
5621
+ case 7:
5622
+ _context.prev = 7;
5623
+ _context.t0 = _context["catch"](1);
5624
+ return _context.abrupt("return", _context.t0.errors);
5625
+ case 10:
5626
+ case "end":
5627
+ return _context.stop();
5628
+ }
5629
+ }, _callee, null, [[1, 7]]);
5630
+ }));
5631
+ return function validateField(_x) {
5632
+ return _ref4.apply(this, arguments);
5633
+ };
5634
+ }();
5635
+ var dateTimeToString = function dateTimeToString(dateTime) {
5636
+ return dayjs(dateTime).toString();
5637
+ };
5638
+
5639
+ var _excluded$3 = ["name", "id", "kind", "data", "individualSubmit", "formRef", "formRefs", "disabled", "isRequiredColumnName"];
5640
+ function ownKeys$a(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5641
+ function _objectSpread$a(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$a(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$a(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5642
+ var useFormikFields = function useFormikFields(_ref) {
5643
+ var name = _ref.name,
5644
+ fieldId = _ref.id,
5645
+ kind = _ref.kind,
5646
+ fieldData = _ref.data,
5647
+ individualSubmit = _ref.individualSubmit,
5648
+ formRef = _ref.formRef,
5649
+ formRefs = _ref.formRefs,
5650
+ disabled = _ref.disabled,
5651
+ _ref$isRequiredColumn = _ref.isRequiredColumnName,
5652
+ isRequiredColumnName = _ref$isRequiredColumn === void 0 ? "isRequired" : _ref$isRequiredColumn,
5653
+ props = _objectWithoutProperties(_ref, _excluded$3);
5654
+ var formikContext = formik.useFormikContext();
5655
+ var setFieldValue = formikContext.setFieldValue,
5656
+ submitForm = formikContext.submitForm,
5657
+ dirty = formikContext.dirty,
5658
+ isSubmitting = formikContext.isSubmitting;
5659
+ var fieldPath = escapeString("".concat(name, "-").concat(fieldId));
5660
+ var fieldName = kind === KINDS.multiOption ? "values" : "value";
5661
+ var fieldValuePath = "".concat(fieldPath, ".data.").concat(fieldName);
5662
+ if (ramda.isNil(formRef) && ramda.isNotNil(formRefs)) {
5663
+ formRefs.current[fieldValuePath] = formikContext;
5664
+ } else if (ramda.isNil(formRefs) && ramda.isNotNil(formRef)) {
5665
+ formRef.current = formikContext;
5666
+ }
5667
+ var _useField = formik.useField({
5668
+ name: fieldValuePath,
5669
+ validate: function validate(fieldValue) {
5670
+ return validateField({
5671
+ fieldValue: fieldValue,
5672
+ fieldName: name,
5673
+ isRequired: props[isRequiredColumnName],
5674
+ kind: kind,
5675
+ fieldData: fieldData
5676
+ });
5677
+ }
5678
+ }),
5679
+ _useField2 = _slicedToArray(_useField, 3),
5680
+ formikFieldProps = _useField2[0],
5681
+ meta = _useField2[1],
5682
+ helpers = _useField2[2];
5683
+ var handleSubmit = function handleSubmit(value) {
5684
+ ramda.isNotNil(value) && setFieldValue(fieldValuePath, value);
5685
+ individualSubmit && submitForm();
5686
+ };
5687
+ var getValueForField = function getValueForField(value) {
5688
+ if (kind === KINDS.singleOption) {
5689
+ value = pure.toLabelAndValue(value);
5690
+ } else if (kind === KINDS.multiOption) {
5691
+ value = buildArrayToLabelAndValues(value);
5692
+ }
5693
+ return value;
5694
+ };
5695
+ var isDropdown = ["single_option", "multi_option"].includes(kind);
5696
+ if (isSubmitting && !meta.touched) {
5697
+ helpers.setTouched(true);
5698
+ }
5699
+ return {
5700
+ handleSubmit: handleSubmit,
5701
+ fieldProps: _objectSpread$a(_objectSpread$a({}, formikFieldProps), {}, {
5702
+ required: props[isRequiredColumnName],
5703
+ error: meta.touched && meta.error,
5704
+ options: isDropdown ? buildOptionsToLabelAndValue(fieldData) : undefined,
5705
+ value: getValueForField(formikFieldProps.value),
5706
+ dirty: dirty,
5707
+ label: !individualSubmit && pure.capitalize(name),
5708
+ disabled: disabled
5709
+ })
5710
+ };
5711
+ };
6125
5712
 
6126
- // TODO(Babel 8): Remove this file.
5713
+ var Checkbox = function Checkbox(props) {
5714
+ var _useFormikFields = useFormikFields(props),
5715
+ handleSubmit = _useFormikFields.handleSubmit,
5716
+ fieldProps = _useFormikFields.fieldProps;
5717
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Switch, _extends({}, fieldProps, {
5718
+ checked: fieldProps.value,
5719
+ onChange: function onChange(_ref) {
5720
+ var checked = _ref.target.checked;
5721
+ return handleSubmit(checked);
5722
+ }
5723
+ }));
5724
+ };
6127
5725
 
6128
- var runtime = regeneratorRuntimeExports();
6129
- var regenerator = runtime;
5726
+ var DateOrTime = function DateOrTime(props) {
5727
+ var _useFormikFields = useFormikFields(props),
5728
+ handleSubmit = _useFormikFields.handleSubmit,
5729
+ fieldProps = _useFormikFields.fieldProps;
5730
+ if (props.kind === KINDS.time) {
5731
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.TimePicker, _extends({}, fieldProps, {
5732
+ use12Hours: true,
5733
+ format: "h:mm A",
5734
+ onChange: function onChange(dateTime) {
5735
+ return handleSubmit(dateTimeToString(dateTime));
5736
+ }
5737
+ }));
5738
+ } else if (props.kind === KINDS.date) {
5739
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({}, fieldProps, {
5740
+ onChange: function onChange(dateTime) {
5741
+ return handleSubmit(dateTimeToString(dateTime));
5742
+ }
5743
+ }));
5744
+ }
5745
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({
5746
+ showTime: true,
5747
+ timeFormat: "h:mm A"
5748
+ }, fieldProps, {
5749
+ onChange: function onChange(dateTime) {
5750
+ return handleSubmit(dateTimeToString(dateTime));
5751
+ }
5752
+ }));
5753
+ };
6130
5754
 
6131
- // Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=
6132
- try {
6133
- regeneratorRuntime = runtime;
6134
- } catch (accidentalStrictMode) {
6135
- if (typeof globalThis === "object") {
6136
- globalThis.regeneratorRuntime = runtime;
6137
- } else {
6138
- Function("r", "regeneratorRuntime = r")(runtime);
5755
+ var MultiOption = function MultiOption(props) {
5756
+ var _useFormikFields = useFormikFields(props),
5757
+ handleSubmit = _useFormikFields.handleSubmit,
5758
+ fieldProps = _useFormikFields.fieldProps;
5759
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
5760
+ isMulti: true,
5761
+ isSearchable: true
5762
+ }, fieldProps, {
5763
+ onChange: function onChange(selectedOptions) {
5764
+ return handleSubmit(ramda.pluck("value", selectedOptions));
5765
+ }
5766
+ }));
5767
+ };
5768
+
5769
+ var Number$1 = function Number(props) {
5770
+ var _useFormikFields = useFormikFields(props),
5771
+ handleSubmit = _useFormikFields.handleSubmit,
5772
+ fieldProps = _useFormikFields.fieldProps;
5773
+ var showSubmitButton = props.individualSubmit && fieldProps.dirty;
5774
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({}, fieldProps, {
5775
+ type: "number",
5776
+ suffix: showSubmitButton && /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
5777
+ icon: neetoIcons.Check,
5778
+ style: "text",
5779
+ onClick: function onClick() {
5780
+ return handleSubmit();
5781
+ }
5782
+ })
5783
+ }));
5784
+ };
5785
+
5786
+ var RangePicker = function RangePicker(props) {
5787
+ var _useFormikFields = useFormikFields(props),
5788
+ handleSubmit = _useFormikFields.handleSubmit,
5789
+ fieldProps = _useFormikFields.fieldProps;
5790
+ var handleChange = function handleChange(_ref) {
5791
+ var _ref2 = _slicedToArray(_ref, 2),
5792
+ begin = _ref2[0],
5793
+ end = _ref2[1];
5794
+ return handleSubmit([dateTimeToString(begin), dateTimeToString(end)]);
5795
+ };
5796
+ if (props.kind === KINDS.dateRange) {
5797
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({}, fieldProps, {
5798
+ type: "range",
5799
+ onChange: handleChange
5800
+ }));
6139
5801
  }
6140
- }
6141
5802
 
6142
- var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator);
5803
+ //time_range
5804
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.TimePicker, _extends({}, fieldProps, {
5805
+ use12Hours: true,
5806
+ format: "h:mm A",
5807
+ type: "range",
5808
+ onChange: handleChange
5809
+ }));
5810
+ };
5811
+
5812
+ var SingleOption = function SingleOption(props) {
5813
+ var _useFormikFields = useFormikFields(props),
5814
+ handleSubmit = _useFormikFields.handleSubmit,
5815
+ fieldProps = _useFormikFields.fieldProps;
5816
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
5817
+ isSearchable: true
5818
+ }, fieldProps, {
5819
+ onChange: function onChange(_ref) {
5820
+ var value = _ref.value;
5821
+ return handleSubmit(value);
5822
+ }
5823
+ }));
5824
+ };
5825
+
5826
+ var Text = function Text(props) {
5827
+ var _useFormikFields = useFormikFields(props),
5828
+ handleSubmit = _useFormikFields.handleSubmit,
5829
+ fieldProps = _useFormikFields.fieldProps;
5830
+ var showSubmitButton = props.individualSubmit && fieldProps.dirty;
5831
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({}, fieldProps, {
5832
+ suffix: showSubmitButton && /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
5833
+ icon: neetoIcons.Check,
5834
+ style: "text",
5835
+ onClick: function onClick() {
5836
+ return handleSubmit();
5837
+ }
5838
+ })
5839
+ }));
5840
+ };
5841
+
5842
+ var TextArea = function TextArea(props) {
5843
+ var _useTranslation = useTranslation(),
5844
+ t = _useTranslation.t;
5845
+ var _useFormikFields = useFormikFields(props),
5846
+ handleSubmit = _useFormikFields.handleSubmit,
5847
+ fieldProps = _useFormikFields.fieldProps;
5848
+ var showSubmitButton = props.individualSubmit && fieldProps.dirty;
5849
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Textarea, fieldProps), showSubmitButton && /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
5850
+ className: "m-auto mt-2",
5851
+ label: t("labels.submit"),
5852
+ size: "small",
5853
+ onClick: function onClick() {
5854
+ return handleSubmit();
5855
+ }
5856
+ }));
5857
+ };
5858
+
5859
+ function ownKeys$9(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5860
+ function _objectSpread$9(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$9(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$9(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5861
+ var standardComponents = {
5862
+ text: Text,
5863
+ regex: Text,
5864
+ textarea: TextArea,
5865
+ text_area: TextArea,
5866
+ // TODO: Remove text-area after integration in all hosts.
5867
+ number: Number$1,
5868
+ monetary: Number$1,
5869
+ integer: Number$1,
5870
+ decimal: Number$1,
5871
+ date: DateOrTime,
5872
+ time: DateOrTime,
5873
+ datetime: DateOrTime,
5874
+ single_option: SingleOption,
5875
+ multi_option: MultiOption,
5876
+ date_range: RangePicker,
5877
+ time_range: RangePicker,
5878
+ checkbox: Checkbox
5879
+ };
5880
+ var getFieldInput = function getFieldInput(_ref) {
5881
+ var field = _ref.field,
5882
+ _ref$customComponents = _ref.customComponents,
5883
+ customComponents = _ref$customComponents === void 0 ? {} : _ref$customComponents;
5884
+ var Component = customComponents[field.kind] || standardComponents[field.kind];
5885
+ if (Component) {
5886
+ return Component;
5887
+ }
5888
+ return null;
5889
+ };
5890
+ var removeItemsWithNullData = function removeItemsWithNullData(fieldValues) {
5891
+ return fieldValues.filter(function (item) {
5892
+ return !ramda.isNil(ramda.prop("data", item));
5893
+ });
5894
+ };
5895
+ var removeNoiseFromValues = function removeNoiseFromValues(fieldValues) {
5896
+ return ramda.map(ramda.pick(["id", "fieldId", "data"]), fieldValues);
5897
+ };
5898
+ var transformValues = function transformValues(_ref2) {
5899
+ var formikValues = _ref2.values,
5900
+ fields = _ref2.fields;
5901
+ var allFieldValues = ramda.clone(formikValues);
5902
+ var neetoFieldValues = [];
5903
+ fields.forEach(function (_ref3) {
5904
+ var id = _ref3.id,
5905
+ name = _ref3.name;
5906
+ var fieldPath = escapeString("".concat(name, "-").concat(id));
5907
+ neetoFieldValues.push(allFieldValues[fieldPath]);
5908
+ delete allFieldValues[fieldPath];
5909
+ });
5910
+ var cleanedFieldValues = ramda.pipe(removeItemsWithNullData, removeNoiseFromValues)(neetoFieldValues);
5911
+ return _objectSpread$9(_objectSpread$9({}, allFieldValues), {}, {
5912
+ fieldValuesAttributes: cleanedFieldValues
5913
+ });
5914
+ };
5915
+ var getInitialFieldValue = function getInitialFieldValue(field) {
5916
+ var fieldValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
5917
+ var existingFieldValueData = pure.findBy({
5918
+ fieldId: field.id
5919
+ }, fieldValues);
5920
+ var newFieldValueData = {
5921
+ fieldId: field.id,
5922
+ data: null
5923
+ };
5924
+ return _defineProperty({}, escapeString("".concat(field.name, "-").concat(field.id)), existingFieldValueData || newFieldValueData);
5925
+ };
5926
+ var getAllInitialFieldValues = function getAllInitialFieldValues(fields) {
5927
+ var fieldValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
5928
+ return getNonSystemFields(fields).map(function (field) {
5929
+ return getInitialFieldValue(field, fieldValues);
5930
+ });
5931
+ };
5932
+ var mergeInitialValues = function mergeInitialValues(_ref5) {
5933
+ var initialValues = _ref5.initialValues,
5934
+ fields = _ref5.fields;
5935
+ var initialValue = ramda.mergeAll([initialValues].concat(_toConsumableArray(getAllInitialFieldValues(fields, initialValues === null || initialValues === void 0 ? void 0 : initialValues.fieldValues))));
5936
+ return ramda.omit(["fieldValues"], initialValue);
5937
+ };
5938
+ var getNonSystemFields = function getNonSystemFields(fields) {
5939
+ return pure.filterBy({
5940
+ isSystem: false
5941
+ }, fields);
5942
+ };
5943
+ var escapeString = function escapeString(string) {
5944
+ return string.replace(/[^a-zA-Z0-9_]/g, function (match) {
5945
+ var charCode = match.charCodeAt(0);
5946
+ return "_".concat(charCode, "_");
5947
+ });
5948
+ };
5949
+ var neetoFieldsUtils = {
5950
+ mergeInitialValues: mergeInitialValues,
5951
+ transformValues: transformValues
5952
+ };
6143
5953
 
6144
- var dayjs_min = {exports: {}};
5954
+ function ownKeys$8(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
5955
+ function _objectSpread$8(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$8(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$8(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
5956
+ var FieldInputs = function FieldInputs(_ref) {
5957
+ var _ref$customComponents = _ref.customComponents,
5958
+ customComponents = _ref$customComponents === void 0 ? {} : _ref$customComponents,
5959
+ fields = _ref.fields,
5960
+ formRef = _ref.formRef,
5961
+ disabled = _ref.disabled,
5962
+ isRequiredColumnName = _ref.isRequiredColumnName;
5963
+ var _useTranslation = useTranslation(),
5964
+ t = _useTranslation.t;
5965
+ return getNonSystemFields(fields).map(function (field) {
5966
+ var Field = getFieldInput({
5967
+ field: field,
5968
+ customComponents: customComponents
5969
+ });
5970
+ if (Field) {
5971
+ return /*#__PURE__*/React__default["default"].createElement(Field, _extends({
5972
+ key: field.id
5973
+ }, _objectSpread$8(_objectSpread$8({}, field), {}, {
5974
+ formRef: formRef,
5975
+ disabled: disabled,
5976
+ isRequiredColumnName: isRequiredColumnName
5977
+ })));
5978
+ }
5979
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
5980
+ key: field.id,
5981
+ style: "body2"
5982
+ }, t("messages.invalidKind"));
5983
+ });
5984
+ };
6145
5985
 
6146
- dayjs_min.exports;
5986
+ var NEETO_FIELDS_URL = "/neeto_fields_engine/api/v1";
5987
+ var FIELDS_URL = "".concat(NEETO_FIELDS_URL, "/fields");
5988
+ var FIELD_VALUES_URL = "".concat(NEETO_FIELDS_URL, "/field_values");
5989
+ var FIELD_VALUE_URL = "".concat(NEETO_FIELDS_URL, "/field_values/:fieldValueId");
5990
+ var FIELD_URL = "".concat(NEETO_FIELDS_URL, "/fields/:fieldId");
5991
+ var FIELDS_REORDER_URL = "".concat(FIELDS_URL, "/reorder");
5992
+ var CONFIGS_URL = "".concat(NEETO_FIELDS_URL, "/configs");
5993
+ var SINGULAR = {
5994
+ count: 1
5995
+ };
5996
+ var PLURAL = {
5997
+ count: 2
5998
+ };
6147
5999
 
6148
- (function (module, exports) {
6149
- !function(t,e){module.exports=e();}(commonjsGlobal,(function(){var t=1e3,e=6e4,n=36e5,r="millisecond",i="second",s="minute",u="hour",a="day",o="week",f="month",h="quarter",c="year",d="date",l="Invalid Date",$=/^(\d{4})[-/]?(\d{1,2})?[-/]?(\d{0,2})[Tt\s]*(\d{1,2})?:?(\d{1,2})?:?(\d{1,2})?[.:]?(\d+)?$/,y=/\[([^\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:"en",weekdays:"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),months:"January_February_March_April_May_June_July_August_September_October_November_December".split("_"),ordinal:function(t){var e=["th","st","nd","rd"],n=t%100;return "["+t+(e[(n-20)%10]||e[n]||e[0])+"]"}},m=function(t,e,n){var r=String(t);return !r||r.length>=e?t:""+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return (e<=0?"+":"-")+m(r,2,"0")+":"+m(i,2,"0")},m:function t(e,n){if(e.date()<n.date())return -t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,f),s=n-i<0,u=e.clone().add(r+(s?-1:1),f);return +(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return {M:f,y:c,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:h}[t]||String(t||"").toLowerCase().replace(/s$/,"")},u:function(t){return void 0===t}},g="en",D={};D[g]=M;var p=function(t){return t instanceof _},S=function t(e,n,r){var i;if(!e)return g;if("string"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split("-");if(!i&&u.length>1)return t(u[0])}else {var a=e.name;D[a]=e,i=a;}return !r&&i&&(g=i),i||!r&&g},w=function(t,e){if(p(t))return t.clone();var n="object"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},O=v;O.l=S,O.i=p,O.w=function(t,e){return w(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=S(t.locale,null,!0),this.parse(t);}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(O.u(e))return new Date;if(e instanceof Date)return new Date(e);if("string"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||"0").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.$x=t.x||{},this.init();},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds();},m.$utils=function(){return O},m.isValid=function(){return !(this.$d.toString()===l)},m.isSame=function(t,e){var n=w(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return w(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<w(t)},m.$g=function(t,e,n){return O.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!O.u(e)||e,h=O.p(t),l=function(t,e){var i=O.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return O.w(n.toDate()[t].apply(n.toDate("s"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v="set"+(this.$u?"UTC":"");switch(h){case c:return r?l(1,0):l(31,11);case f:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+"Hours",0);case u:return $(v+"Minutes",1);case s:return $(v+"Seconds",2);case i:return $(v+"Milliseconds",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=O.p(t),h="set"+(this.$u?"UTC":""),l=(n={},n[a]=h+"Date",n[d]=h+"Date",n[f]=h+"Month",n[c]=h+"FullYear",n[u]=h+"Hours",n[s]=h+"Minutes",n[i]=h+"Seconds",n[r]=h+"Milliseconds",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===f||o===c){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d;}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[O.p(t)]()},m.add=function(r,h){var d,l=this;r=Number(r);var $=O.p(h),y=function(t){var e=w(l);return O.w(e.date(e.date()+Math.round(t*r)),l)};if($===f)return this.set(f,this.$M+r);if($===c)return this.set(c,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return O.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||"YYYY-MM-DDTHH:mm:ssZ",i=O.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,f=n.months,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},c=function(t){return O.s(s%12||12,t,"0")},d=n.meridiem||function(t,e,n){var r=t<12?"AM":"PM";return n?r.toLowerCase():r},$={YY:String(this.$y).slice(-2),YYYY:this.$y,M:a+1,MM:O.s(a+1,2,"0"),MMM:h(n.monthsShort,a,f,3),MMMM:h(f,a),D:this.$D,DD:O.s(this.$D,2,"0"),d:String(this.$W),dd:h(n.weekdaysMin,this.$W,o,2),ddd:h(n.weekdaysShort,this.$W,o,3),dddd:o[this.$W],H:String(s),HH:O.s(s,2,"0"),h:c(1),hh:c(2),a:d(s,u,!0),A:d(s,u,!1),m:String(u),mm:O.s(u,2,"0"),s:String(this.$s),ss:O.s(this.$s,2,"0"),SSS:O.s(this.$ms,3,"0"),Z:i};return r.replace(y,(function(t,e){return e||$[t]||i.replace(":","")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=O.p(d),M=w(r),m=(M.utcOffset()-this.utcOffset())*e,v=this-M,g=O.m(this,M);return g=($={},$[c]=g/12,$[f]=g,$[h]=g/3,$[o]=(v-m)/6048e5,$[a]=(v-m)/864e5,$[u]=v/n,$[s]=v/e,$[i]=v/t,$)[y]||v,l?g:O.a(g)},m.daysInMonth=function(){return this.endOf(f).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=S(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return O.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),T=_.prototype;return w.prototype=T,[["$ms",r],["$s",i],["$m",s],["$H",u],["$W",a],["$M",f],["$y",c],["$D",d]].forEach((function(t){T[t[1]]=function(e){return this.$g(e,t[0],t[1])};})),w.extend=function(t,e){return t.$i||(t(e,_,w),t.$i=!0),w},w.locale=S,w.isDayjs=p,w.unix=function(t){return w(1e3*t)},w.en=D[g],w.Ls=D,w.p={},w}));
6150
- } (dayjs_min, dayjs_min.exports));
6000
+ var fieldUrl = function fieldUrl(fieldId) {
6001
+ return utils.buildUrl(FIELD_URL, {
6002
+ fieldId: fieldId
6003
+ });
6004
+ };
6005
+ var fetch$1 = function fetch(_ref) {
6006
+ var resourceType = _ref.resourceType,
6007
+ ownerId = _ref.ownerId,
6008
+ state = _ref.state;
6009
+ return axios__default["default"].get(FIELDS_URL, {
6010
+ params: {
6011
+ resourceType: resourceType,
6012
+ ownerId: ownerId,
6013
+ state: state
6014
+ }
6015
+ });
6016
+ };
6017
+ var create$1 = function create(payload) {
6018
+ return axios__default["default"].post(FIELDS_URL, payload);
6019
+ };
6020
+ var show = function show(_ref2) {
6021
+ var fieldId = _ref2.fieldId,
6022
+ ownerId = _ref2.ownerId;
6023
+ return axios__default["default"].get(fieldUrl(fieldId), {
6024
+ params: {
6025
+ ownerId: ownerId
6026
+ }
6027
+ });
6028
+ };
6029
+ var destroy$1 = function destroy(_ref3) {
6030
+ var fieldId = _ref3.fieldId,
6031
+ ownerId = _ref3.ownerId;
6032
+ return axios__default["default"]["delete"](fieldUrl(fieldId), {
6033
+ data: {
6034
+ ownerId: ownerId
6035
+ }
6036
+ });
6037
+ };
6038
+ var update$1 = function update(_ref4) {
6039
+ var fieldId = _ref4.fieldId,
6040
+ payload = _ref4.payload;
6041
+ return axios__default["default"].put(fieldUrl(fieldId), payload);
6042
+ };
6043
+ var reorder = function reorder(payload) {
6044
+ return axios__default["default"].patch(FIELDS_REORDER_URL, payload);
6045
+ };
6046
+ var fieldsApi = {
6047
+ fetch: fetch$1,
6048
+ create: create$1,
6049
+ show: show,
6050
+ destroy: destroy$1,
6051
+ update: update$1,
6052
+ reorder: reorder
6053
+ };
6151
6054
 
6152
- var dayjs_minExports = dayjs_min.exports;
6153
- var dayjs = /*@__PURE__*/getDefaultExportFromCjs(dayjs_minExports);
6055
+ var QUERY_KEYS = {
6056
+ FIELDS: "fields",
6057
+ FIELD_VALUES: "field_values",
6058
+ CONFIGS: "configurations"
6059
+ };
6060
+ var DEFAULT_STALE_TIME = 3600000; // 1 hour
6154
6061
 
6155
- var dateSchema = yup__namespace.date().nullable();
6156
- var buildFieldValidationSchema = function buildFieldValidationSchema(_ref) {
6157
- var kind = _ref.kind,
6158
- isRequired = _ref.isRequired,
6159
- fieldData = _ref.fieldData;
6160
- switch (kind) {
6161
- case KINDS.singleOption:
6162
- case KINDS.text:
6163
- {
6164
- var schema = yup__namespace.string().trim().nullable();
6165
- return isRequired ? schema.required(t("validations.thisIsRequired")) : schema;
6166
- }
6167
- case KINDS.number:
6168
- case KINDS.monetary:
6169
- case KINDS.decimal:
6170
- {
6171
- var _schema = yup__namespace.number().nullable().typeError(t("validations.notAValidNumber"));
6172
- return isRequired ? _schema.required(t("validations.thisIsRequired")) : _schema;
6173
- }
6174
- case KINDS.integer:
6175
- {
6176
- var _schema2 = yup__namespace.number().nullable().integer().typeError(t("validations.notAValidInteger"));
6177
- return isRequired ? _schema2.required(t("validations.thisIsRequired")) : _schema2;
6178
- }
6179
- case KINDS.date:
6180
- case KINDS.time:
6181
- return isRequired ? dateSchema.required(t("validations.thisIsRequired")) : dateSchema;
6182
- case KINDS.multiOption:
6183
- {
6184
- var _schema3 = yup__namespace.array().of(yup__namespace.string()).nullable();
6185
- return isRequired ? _schema3.min(1, t("validations.minOneItem")).required(t("validations.thisIsRequired")) : _schema3;
6186
- }
6187
- case KINDS.dateRange:
6188
- case KINDS.timeRange:
6189
- {
6190
- if (isRequired) {
6191
- return yup__namespace.array().of(dateSchema).required(t("validations.thisIsRequired"));
6192
- }
6193
- return yup__namespace.array().of(dateSchema).nullable();
6194
- }
6195
- case KINDS.checkbox:
6196
- return yup__namespace["boolean"]().nullable();
6197
- case KINDS.regex:
6198
- {
6199
- var regexPattern = fieldData === null || fieldData === void 0 ? void 0 : fieldData.condition;
6200
- var _schema4 = yup__namespace.string().nullable().matches(cleanedRegex(regexPattern), fieldData === null || fieldData === void 0 ? void 0 : fieldData.helpMessage);
6201
- return isRequired ? _schema4.required(t("validations.thisIsRequired")) : _schema4;
6202
- }
6203
- default:
6204
- return yup__namespace.mixed();
6205
- }
6062
+ function ownKeys$7(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6063
+ function _objectSpread$7(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$7(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$7(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6064
+ var FIELDS = QUERY_KEYS.FIELDS;
6065
+ var useFetchFields = function useFetchFields(_ref, options) {
6066
+ var resourceType = _ref.resourceType,
6067
+ ownerId = _ref.ownerId,
6068
+ state = _ref.state,
6069
+ _ref$prefixQueryKeys = _ref.prefixQueryKeys,
6070
+ prefixQueryKeys = _ref$prefixQueryKeys === void 0 ? [] : _ref$prefixQueryKeys;
6071
+ return reactQuery.useQuery([FIELDS].concat(_toConsumableArray(prefixQueryKeys), [resourceType, ownerId, state]), function () {
6072
+ return fieldsApi.fetch({
6073
+ resourceType: resourceType,
6074
+ ownerId: ownerId,
6075
+ state: state
6076
+ });
6077
+ }, _objectSpread$7({
6078
+ staleTime: DEFAULT_STALE_TIME
6079
+ }, options));
6206
6080
  };
6207
- var cleanedRegex = function cleanedRegex(expression) {
6208
- if (expression.startsWith("/") && expression.endsWith("/")) {
6209
- return expression.slice(1, -1);
6210
- }
6211
- return expression;
6081
+ var useCreateField = function useCreateField(options) {
6082
+ var queryClient = reactQuery.useQueryClient();
6083
+ return reactQuery.useMutation(fieldsApi.create, _objectSpread$7(_objectSpread$7({}, options), {}, {
6084
+ onSuccess: function onSuccess() {
6085
+ var _options$onSuccess;
6086
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6087
+ args[_key] = arguments[_key];
6088
+ }
6089
+ options === null || options === void 0 ? void 0 : (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 ? void 0 : _options$onSuccess.call.apply(_options$onSuccess, [options].concat(args));
6090
+ queryClient.invalidateQueries(FIELDS);
6091
+ }
6092
+ }));
6212
6093
  };
6213
- var buildOptionsToLabelAndValue = function buildOptionsToLabelAndValue() {
6214
- var optionObjects = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
6215
- return optionObjects.map(function (_ref2) {
6216
- var label = _ref2.label,
6217
- value = _ref2.value;
6218
- return {
6219
- label: label,
6220
- value: value || label
6221
- };
6222
- });
6094
+ var useShowField = function useShowField(_ref2, options) {
6095
+ var fieldId = _ref2.fieldId,
6096
+ ownerId = _ref2.ownerId;
6097
+ var queryKey = [FIELDS, fieldId];
6098
+ return reactQuery.useQuery(queryKey, function () {
6099
+ return fieldsApi.show({
6100
+ fieldId: fieldId,
6101
+ ownerId: ownerId
6102
+ });
6103
+ }, options);
6223
6104
  };
6224
- var buildArrayToLabelAndValues = function buildArrayToLabelAndValues(value) {
6225
- return ramda.map(pure.toLabelAndValue, value || []);
6105
+ var useUpdateField = function useUpdateField(options) {
6106
+ var queryClient = reactQuery.useQueryClient();
6107
+ return reactQuery.useMutation(fieldsApi.update, _objectSpread$7(_objectSpread$7({}, options), {}, {
6108
+ onSuccess: function onSuccess() {
6109
+ var _options$onSuccess2;
6110
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
6111
+ args[_key2] = arguments[_key2];
6112
+ }
6113
+ options === null || options === void 0 ? void 0 : (_options$onSuccess2 = options.onSuccess) === null || _options$onSuccess2 === void 0 ? void 0 : _options$onSuccess2.call.apply(_options$onSuccess2, [options].concat(args));
6114
+ queryClient.invalidateQueries(FIELDS);
6115
+ }
6116
+ }));
6226
6117
  };
6227
- var validateField = /*#__PURE__*/function () {
6228
- var _ref4 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(_ref3) {
6229
- var fieldValue, fieldName, isRequired, kind, fieldData;
6230
- return _regeneratorRuntime.wrap(function _callee$(_context) {
6231
- while (1) switch (_context.prev = _context.next) {
6232
- case 0:
6233
- fieldValue = _ref3.fieldValue, fieldName = _ref3.fieldName, isRequired = _ref3.isRequired, kind = _ref3.kind, fieldData = _ref3.fieldData;
6234
- _context.prev = 1;
6235
- _context.next = 4;
6236
- return yup__namespace.object().shape(_defineProperty({}, fieldName, buildFieldValidationSchema({
6237
- kind: kind,
6238
- isRequired: isRequired,
6239
- fieldData: fieldData
6240
- }))).validate(_defineProperty({}, fieldName, fieldValue));
6241
- case 4:
6242
- return _context.abrupt("return", false);
6243
- case 7:
6244
- _context.prev = 7;
6245
- _context.t0 = _context["catch"](1);
6246
- return _context.abrupt("return", _context.t0.errors);
6247
- case 10:
6248
- case "end":
6249
- return _context.stop();
6118
+ var useDestroyField = function useDestroyField(options) {
6119
+ var queryClient = reactQuery.useQueryClient();
6120
+ return reactQuery.useMutation(fieldsApi.destroy, _objectSpread$7(_objectSpread$7({}, options), {}, {
6121
+ onSuccess: function onSuccess() {
6122
+ var _options$onSuccess3;
6123
+ for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
6124
+ args[_key3] = arguments[_key3];
6250
6125
  }
6251
- }, _callee, null, [[1, 7]]);
6126
+ options === null || options === void 0 ? void 0 : (_options$onSuccess3 = options.onSuccess) === null || _options$onSuccess3 === void 0 ? void 0 : _options$onSuccess3.call.apply(_options$onSuccess3, [options].concat(args));
6127
+ queryClient.invalidateQueries(FIELDS);
6128
+ }
6252
6129
  }));
6253
- return function validateField(_x) {
6254
- return _ref4.apply(this, arguments);
6255
- };
6256
- }();
6257
- var dateTimeToString = function dateTimeToString(dateTime) {
6258
- return dayjs(dateTime).toString();
6130
+ };
6131
+ var useReorderFields = function useReorderFields() {
6132
+ var queryClient = reactQuery.useQueryClient();
6133
+ return reactQuery.useMutation(fieldsApi.reorder, {
6134
+ onSuccess: function onSuccess() {
6135
+ queryClient.invalidateQueries(FIELDS);
6136
+ }
6137
+ });
6259
6138
  };
6260
6139
 
6261
- var _excluded = ["name", "id", "kind", "data", "individualSubmit", "formRef", "formRefs", "disabled", "isRequiredColumnName"];
6262
6140
  function ownKeys$6(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6263
6141
  function _objectSpread$6(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$6(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$6(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6264
- var useFormikFields = function useFormikFields(_ref) {
6265
- var name = _ref.name,
6266
- fieldId = _ref.id,
6267
- kind = _ref.kind,
6268
- fieldData = _ref.data,
6269
- individualSubmit = _ref.individualSubmit,
6270
- formRef = _ref.formRef,
6271
- formRefs = _ref.formRefs,
6272
- disabled = _ref.disabled,
6273
- _ref$isRequiredColumn = _ref.isRequiredColumnName,
6274
- isRequiredColumnName = _ref$isRequiredColumn === void 0 ? "isRequired" : _ref$isRequiredColumn,
6275
- props = _objectWithoutProperties(_ref, _excluded);
6276
- var formikContext = formik$1.useFormikContext();
6277
- var setFieldValue = formikContext.setFieldValue,
6278
- submitForm = formikContext.submitForm,
6279
- dirty = formikContext.dirty,
6280
- isSubmitting = formikContext.isSubmitting;
6281
- var fieldPath = "".concat(name, "-").concat(fieldId);
6282
- var fieldName = kind === KINDS.multiOption ? "values" : "value";
6283
- var fieldValuePath = "".concat(fieldPath, ".data.").concat(fieldName);
6284
- if (ramda.isNil(formRef) && ramda.isNotNil(formRefs)) {
6285
- formRefs.current[fieldValuePath] = formikContext;
6286
- } else if (ramda.isNil(formRefs) && ramda.isNotNil(formRef)) {
6287
- formRef.current = formikContext;
6288
- }
6289
- var _useField = formik$1.useField({
6290
- name: fieldValuePath,
6291
- validate: function validate(fieldValue) {
6292
- return validateField({
6293
- fieldValue: fieldValue,
6294
- fieldName: name,
6295
- isRequired: props[isRequiredColumnName],
6296
- kind: kind,
6297
- fieldData: fieldData
6298
- });
6299
- }
6300
- }),
6301
- _useField2 = _slicedToArray(_useField, 3),
6302
- formikFieldProps = _useField2[0],
6303
- meta = _useField2[1],
6304
- helpers = _useField2[2];
6305
- var handleSubmit = function handleSubmit(value) {
6306
- ramda.isNotNil(value) && setFieldValue(fieldValuePath, value);
6307
- individualSubmit && submitForm();
6142
+ var arrangeOptionsDisplayOrder = function arrangeOptionsDisplayOrder(options) {
6143
+ return options.map(function (option, index) {
6144
+ return _objectSpread$6(_objectSpread$6({}, option), {}, {
6145
+ displayOrder: index
6146
+ });
6147
+ });
6148
+ };
6149
+ var buildPayload = function buildPayload(_ref) {
6150
+ var formValues = _ref.formValues,
6151
+ _ref$resourceType = _ref.resourceType,
6152
+ resourceType = _ref$resourceType === void 0 ? "" : _ref$resourceType,
6153
+ _ref$ownerId = _ref.ownerId,
6154
+ ownerId = _ref$ownerId === void 0 ? "" : _ref$ownerId;
6155
+ var kind = formValues.kind.value;
6156
+ var name = formValues.name.trim();
6157
+ return {
6158
+ ownerId: ramda.isEmpty(ownerId) ? undefined : ownerId,
6159
+ field: _objectSpread$6(_objectSpread$6({}, ramda.omit(["createdAt", "id", "ownerId", "ownerType", "updatedAt"], formValues)), {}, {
6160
+ kind: kind,
6161
+ name: name,
6162
+ resourceType: ramda.isEmpty(resourceType) ? undefined : resourceType,
6163
+ data: isDropdown(kind) ? arrangeOptionsDisplayOrder(formValues.data) : formValues.data
6164
+ })
6308
6165
  };
6309
- var getValueForField = function getValueForField(value) {
6310
- if (kind === KINDS.singleOption) {
6311
- value = pure.toLabelAndValue(value);
6312
- } else if (kind === KINDS.multiOption) {
6313
- value = buildArrayToLabelAndValues(value);
6166
+ };
6167
+ var isDropdown = function isDropdown(kind) {
6168
+ return ["single_option", "multi_option"].includes(kind);
6169
+ };
6170
+ var isRegex = function isRegex(kind) {
6171
+ return kind === "regex";
6172
+ };
6173
+ var isAdditionalDataNeeded = function isAdditionalDataNeeded(kind) {
6174
+ return ADDITIONAL_DATA_NEEDED_FIELD_KINDS.includes(kind);
6175
+ };
6176
+ var getPermittedKinds = function getPermittedKinds(_ref2) {
6177
+ var allowedKinds = _ref2.allowedKinds,
6178
+ selectedKind = _ref2.selectedKind;
6179
+ var filteredKinds = ramda.pick(allowedKinds, FIELD_KINDS);
6180
+ var permittedKinds = pure.filterBy({
6181
+ group: selectedKind === null || selectedKind === void 0 ? void 0 : selectedKind.group
6182
+ }, ramda.values(filteredKinds));
6183
+ return permittedKinds;
6184
+ };
6185
+ var generateValidationSchema = function generateValidationSchema(additionalValidations) {
6186
+ return yup__namespace.object().shape(_objectSpread$6(_objectSpread$6({}, BASIC_FIELD_FORM_VALIDATIONS), additionalValidations));
6187
+ };
6188
+ var renderFormFooter = function renderFormFooter(_ref3) {
6189
+ var onClose = _ref3.onClose,
6190
+ loading = _ref3.loading,
6191
+ _ref3$dirty = _ref3.dirty,
6192
+ dirty = _ref3$dirty === void 0 ? true : _ref3$dirty;
6193
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, null, /*#__PURE__*/React__default["default"].createElement(formik$1.ActionBlock, {
6194
+ cancelButtonProps: {
6195
+ onClick: onClose,
6196
+ style: "text",
6197
+ disabled: loading
6198
+ },
6199
+ submitButtonProps: {
6200
+ label: t("labels.saveChanges"),
6201
+ className: "mr-2",
6202
+ type: "submit",
6203
+ disabled: !dirty,
6204
+ loading: loading
6314
6205
  }
6315
- return value;
6316
- };
6317
- var isDropdown = ["single_option", "multi_option"].includes(kind);
6318
- if (isSubmitting && !meta.touched) {
6319
- helpers.setTouched(true);
6206
+ }));
6207
+ };
6208
+
6209
+ var regexValidationSchema = yup__namespace.object().shape({
6210
+ condition: yup__namespace.string().required(t("validations.regexConditionIsRequired")),
6211
+ helpMessage: yup__namespace.string().required(t("validations.regexHelpMessageIsRequired"))
6212
+ });
6213
+ var dropDownOptionsValidationSchema = yup__namespace.array().of(yup__namespace.object().shape({
6214
+ label: yup__namespace.string().trim().required(t("validations.fieldOptionIsRequired")),
6215
+ displayOrder: yup__namespace.number()
6216
+ })).min(1, t("validations.atLeastFieldOptionIsRequired"));
6217
+ var FIELD_KINDS = {
6218
+ text: {
6219
+ value: "text",
6220
+ label: t("fields.kinds.text"),
6221
+ group: 1
6222
+ },
6223
+ number: {
6224
+ value: "number",
6225
+ label: t("fields.kinds.number"),
6226
+ group: 2
6227
+ },
6228
+ monetary: {
6229
+ value: "monetary",
6230
+ label: t("fields.kinds.monetary"),
6231
+ group: 2
6232
+ },
6233
+ single_option: {
6234
+ value: "single_option",
6235
+ label: t("fields.kinds.singleOption"),
6236
+ group: 3
6237
+ },
6238
+ multi_option: {
6239
+ value: "multi_option",
6240
+ label: t("fields.kinds.multiOption"),
6241
+ group: 3
6242
+ },
6243
+ date: {
6244
+ value: "date",
6245
+ label: t("fields.kinds.date"),
6246
+ group: 4
6247
+ },
6248
+ time: {
6249
+ value: "time",
6250
+ label: t("fields.kinds.time"),
6251
+ group: 5
6252
+ },
6253
+ date_range: {
6254
+ value: "date_range",
6255
+ label: t("fields.kinds.dateRange"),
6256
+ group: 6
6257
+ },
6258
+ time_range: {
6259
+ value: "time_range",
6260
+ label: t("fields.kinds.timeRange"),
6261
+ group: 7
6262
+ },
6263
+ text_area: {
6264
+ value: "text_area",
6265
+ label: t("fields.kinds.textArea"),
6266
+ group: 1
6267
+ },
6268
+ textarea: {
6269
+ value: "textarea",
6270
+ label: t("fields.kinds.textarea"),
6271
+ group: 1
6272
+ },
6273
+ person: {
6274
+ value: "person",
6275
+ label: t("fields.kinds.person"),
6276
+ group: 8
6277
+ },
6278
+ checkbox: {
6279
+ value: "checkbox",
6280
+ label: t("fields.kinds.checkbox"),
6281
+ group: 9
6282
+ },
6283
+ regex: {
6284
+ value: "regex",
6285
+ label: t("fields.kinds.regex"),
6286
+ group: 10
6287
+ },
6288
+ integer: {
6289
+ value: "integer",
6290
+ label: t("fields.kinds.integer"),
6291
+ group: 2
6292
+ },
6293
+ decimal: {
6294
+ value: "decimal",
6295
+ label: t("fields.kinds.decimal"),
6296
+ group: 2
6297
+ },
6298
+ datetime: {
6299
+ value: "datetime",
6300
+ label: t("fields.kinds.datetime"),
6301
+ group: 11
6320
6302
  }
6321
- return {
6322
- handleSubmit: handleSubmit,
6323
- fieldProps: _objectSpread$6(_objectSpread$6({}, formikFieldProps), {}, {
6324
- required: props[isRequiredColumnName],
6325
- error: meta.touched && meta.error,
6326
- options: isDropdown && buildOptionsToLabelAndValue(fieldData),
6327
- value: getValueForField(formikFieldProps.value),
6328
- dirty: dirty,
6329
- label: !individualSubmit && pure.capitalize(name),
6330
- disabled: disabled
6331
- })
6332
- };
6333
6303
  };
6334
-
6335
- var Checkbox = function Checkbox(props) {
6336
- var _useFormikFields = useFormikFields(props),
6337
- handleSubmit = _useFormikFields.handleSubmit,
6338
- fieldProps = _useFormikFields.fieldProps;
6339
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Switch, _extends({}, fieldProps, {
6340
- checked: fieldProps.value,
6341
- onChange: function onChange(_ref) {
6342
- var checked = _ref.target.checked;
6343
- return handleSubmit(checked);
6344
- }
6345
- }));
6304
+ var ADDITIONAL_DATA_NEEDED_FIELD_KINDS = ["single_option", "multi_option", "regex"];
6305
+ var INITIAL_FIELDS = {
6306
+ name: "",
6307
+ kind: pure.toLabelAndValue("text"),
6308
+ isRequired: false
6346
6309
  };
6347
-
6348
- var DateOrTime = function DateOrTime(props) {
6349
- var _useFormikFields = useFormikFields(props),
6350
- handleSubmit = _useFormikFields.handleSubmit,
6351
- fieldProps = _useFormikFields.fieldProps;
6352
- if (props.kind === KINDS.time) {
6353
- return /*#__PURE__*/React__default["default"].createElement(neetoui.TimePicker, _extends({}, fieldProps, {
6354
- use12Hours: true,
6355
- format: "h:mm A",
6356
- onChange: function onChange(dateTime) {
6357
- return handleSubmit(dateTimeToString(dateTime));
6358
- }
6359
- }));
6360
- } else if (props.kind === KINDS.date) {
6361
- return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({}, fieldProps, {
6362
- onChange: function onChange(dateTime) {
6363
- return handleSubmit(dateTimeToString(dateTime));
6364
- }
6365
- }));
6366
- }
6367
- return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({
6368
- showTime: true,
6369
- timeFormat: "h:mm A"
6370
- }, fieldProps, {
6371
- onChange: function onChange(dateTime) {
6372
- return handleSubmit(dateTimeToString(dateTime));
6373
- }
6374
- }));
6310
+ var DEFAULT_OPTION = {
6311
+ label: "",
6312
+ displayOrder: 0
6375
6313
  };
6376
-
6377
- var MultiOption = function MultiOption(props) {
6378
- var _useFormikFields = useFormikFields(props),
6379
- handleSubmit = _useFormikFields.handleSubmit,
6380
- fieldProps = _useFormikFields.fieldProps;
6381
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
6382
- isMulti: true,
6383
- isSearchable: true
6384
- }, fieldProps, {
6385
- onChange: function onChange(selectedOptions) {
6386
- return handleSubmit(ramda.pluck("value", selectedOptions));
6387
- }
6388
- }));
6314
+ var DEFAULT_OPTIONS_DATA = [DEFAULT_OPTION];
6315
+ var DEFAULT_REGEX_DATA = {
6316
+ regex: "",
6317
+ helpMessage: ""
6389
6318
  };
6390
-
6391
- var Number$1 = function Number(props) {
6392
- var _useFormikFields = useFormikFields(props),
6393
- handleSubmit = _useFormikFields.handleSubmit,
6394
- fieldProps = _useFormikFields.fieldProps;
6395
- var showSubmitButton = props.individualSubmit && fieldProps.dirty;
6396
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({}, fieldProps, {
6397
- type: "number",
6398
- suffix: showSubmitButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
6399
- icon: neetoIcons.Check,
6400
- style: "text",
6401
- onClick: function onClick() {
6402
- return handleSubmit();
6403
- }
6404
- })
6405
- }));
6319
+ var BASIC_FIELD_FORM_VALIDATIONS = {
6320
+ name: yup__namespace.string().trim().required(t("validations.fieldNameIsRequired")),
6321
+ isRequired: yup__namespace["boolean"](),
6322
+ kind: yup__namespace.object().shape({
6323
+ value: yup__namespace.string().required()
6324
+ }).required(t("validations.kindIsRequired")),
6325
+ data: yup__namespace.mixed().when("kind", {
6326
+ is: function is(kind) {
6327
+ return isRegex(kind === null || kind === void 0 ? void 0 : kind.value);
6328
+ },
6329
+ then: regexValidationSchema
6330
+ }).when("kind", {
6331
+ is: function is(kind) {
6332
+ return isDropdown(kind === null || kind === void 0 ? void 0 : kind.value);
6333
+ },
6334
+ then: dropDownOptionsValidationSchema
6335
+ })
6406
6336
  };
6407
6337
 
6408
- var RangePicker = function RangePicker(props) {
6409
- var _useFormikFields = useFormikFields(props),
6410
- handleSubmit = _useFormikFields.handleSubmit,
6411
- fieldProps = _useFormikFields.fieldProps;
6412
- var handleChange = function handleChange(_ref) {
6413
- var _ref2 = _slicedToArray(_ref, 2),
6414
- begin = _ref2[0],
6415
- end = _ref2[1];
6416
- return handleSubmit([dateTimeToString(begin), dateTimeToString(end)]);
6338
+ var AdditionalInputs = function AdditionalInputs() {
6339
+ var _useTranslation = useTranslation(),
6340
+ t = _useTranslation.t;
6341
+ var _useFormikContext = formik.useFormikContext(),
6342
+ _useFormikContext$val = _useFormikContext.values,
6343
+ kind = _useFormikContext$val.kind,
6344
+ options = _useFormikContext$val.data,
6345
+ isSystem = _useFormikContext$val.isSystem;
6346
+ var removeOption = function removeOption(arrayHelpers, index) {
6347
+ return arrayHelpers.remove(index);
6417
6348
  };
6418
- if (props.kind === KINDS.dateRange) {
6419
- return /*#__PURE__*/React__default["default"].createElement(neetoui.DatePicker, _extends({}, fieldProps, {
6420
- type: "range",
6421
- onChange: handleChange
6349
+ var addOption = function addOption(arrayHelpers) {
6350
+ return arrayHelpers.push(DEFAULT_OPTION);
6351
+ };
6352
+ if (isDropdown(kind.value)) {
6353
+ return /*#__PURE__*/React__default["default"].createElement(formik.FieldArray, {
6354
+ name: "data"
6355
+ }, function (arrayHelpers) {
6356
+ return /*#__PURE__*/React__default["default"].createElement("div", {
6357
+ className: "flex w-full flex-col gap-y-4"
6358
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
6359
+ required: true
6360
+ }, t("titles.dropdownOptions")), pure.isNotEmpty(options) && Array.isArray(options) && options.map(function (_, index) {
6361
+ return /*#__PURE__*/React__default["default"].createElement("div", {
6362
+ className: "flex w-full space-x-3",
6363
+ key: index
6364
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
6365
+ className: "w-full"
6366
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
6367
+ disabled: isSystem,
6368
+ name: "data.".concat(index, ".label"),
6369
+ placeholder: t("placeholders.enterAnOption"),
6370
+ suffix: options.length > 1 && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
6371
+ icon: neetoIcons.Delete,
6372
+ style: "text",
6373
+ onClick: function onClick() {
6374
+ return removeOption(arrayHelpers, index);
6375
+ }
6376
+ })
6377
+ })));
6378
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
6379
+ fullWidth: true,
6380
+ className: "mb-6 border-dashed text-xs uppercase",
6381
+ label: t("labels.addMoreOption"),
6382
+ style: "secondary",
6383
+ onClick: function onClick() {
6384
+ return addOption(arrayHelpers);
6385
+ }
6386
+ }));
6387
+ });
6388
+ } else if (isRegex(kind.value)) {
6389
+ return /*#__PURE__*/React__default["default"].createElement("div", {
6390
+ className: "flex w-full flex-col gap-y-4"
6391
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
6392
+ required: true
6393
+ }, t("titles.regexOptions")), /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
6394
+ disabled: isSystem,
6395
+ label: t("labels.regexCondition"),
6396
+ name: "data.condition",
6397
+ placeholder: t("placeholders.regexExample")
6398
+ }), /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
6399
+ disabled: isSystem,
6400
+ label: t("labels.helpMessage"),
6401
+ name: "data.helpMessage",
6402
+ placeholder: t("placeholders.enterErrorMessage")
6422
6403
  }));
6423
6404
  }
6424
-
6425
- //time_range
6426
- return /*#__PURE__*/React__default["default"].createElement(neetoui.TimePicker, _extends({}, fieldProps, {
6427
- use12Hours: true,
6428
- format: "h:mm A",
6429
- type: "range",
6430
- onChange: handleChange
6431
- }));
6405
+ return null;
6432
6406
  };
6433
6407
 
6434
- var SingleOption = function SingleOption(props) {
6435
- var _useFormikFields = useFormikFields(props),
6436
- handleSubmit = _useFormikFields.handleSubmit,
6437
- fieldProps = _useFormikFields.fieldProps;
6438
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Select, _extends({
6439
- isSearchable: true
6440
- }, fieldProps, {
6441
- onChange: function onChange(_ref) {
6442
- var value = _ref.value;
6443
- return handleSubmit(value);
6444
- }
6445
- }));
6446
- };
6408
+ /** @type {React.FC<import("types").FieldFormProps>} */
6447
6409
 
6448
- var Text = function Text(props) {
6449
- var _useFormikFields = useFormikFields(props),
6450
- handleSubmit = _useFormikFields.handleSubmit,
6451
- fieldProps = _useFormikFields.fieldProps;
6452
- var showSubmitButton = props.individualSubmit && fieldProps.dirty;
6453
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Input, _extends({}, fieldProps, {
6454
- suffix: showSubmitButton && /*#__PURE__*/React__default["default"].createElement(formik.Button, {
6455
- icon: neetoIcons.Check,
6456
- style: "text",
6457
- onClick: function onClick() {
6458
- return handleSubmit();
6459
- }
6460
- })
6461
- }));
6410
+ var FieldForm = function FieldForm(_ref) {
6411
+ var chosenKind = _ref.chosenKind,
6412
+ _ref$kindSelectOption = _ref.kindSelectOptions,
6413
+ kindSelectOptions = _ref$kindSelectOption === void 0 ? [] : _ref$kindSelectOption,
6414
+ _ref$isSystem = _ref.isSystem,
6415
+ isSystem = _ref$isSystem === void 0 ? false : _ref$isSystem,
6416
+ _ref$hideRequiredSwit = _ref.hideRequiredSwitch,
6417
+ hideRequiredSwitch = _ref$hideRequiredSwit === void 0 ? false : _ref$hideRequiredSwit,
6418
+ children = _ref.children;
6419
+ var _useTranslation = useTranslation(),
6420
+ t = _useTranslation.t;
6421
+ var _useFormikContext = formik.useFormikContext(),
6422
+ options = _useFormikContext.values.data,
6423
+ setFieldValue = _useFormikContext.setFieldValue;
6424
+ var handleKindChange = function handleKindChange(kind) {
6425
+ setFieldValue("kind", kind);
6426
+ if (isDropdown(kind.value)) {
6427
+ setFieldValue("data", options !== null && options !== void 0 ? options : DEFAULT_OPTIONS_DATA);
6428
+ } else if (isRegex(kind.value)) {
6429
+ setFieldValue("data", options !== null && options !== void 0 ? options : DEFAULT_REGEX_DATA);
6430
+ }
6431
+ };
6432
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement("div", {
6433
+ className: "w-full space-y-4"
6434
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
6435
+ required: true,
6436
+ disabled: isSystem,
6437
+ label: t("labels.fieldName"),
6438
+ name: "name",
6439
+ placeholder: t("placeholders.enterFieldName")
6440
+ }), /*#__PURE__*/React__default["default"].createElement(formik$1.Select, {
6441
+ isSearchable: true,
6442
+ isDisabled: isSystem,
6443
+ label: t("labels.fieldKind"),
6444
+ name: "kind",
6445
+ options: kindSelectOptions,
6446
+ onChange: handleKindChange
6447
+ }), isAdditionalDataNeeded(chosenKind) && /*#__PURE__*/React__default["default"].createElement(AdditionalInputs, null), !hideRequiredSwitch && /*#__PURE__*/React__default["default"].createElement(neetoui.Label, {
6448
+ className: "flex items-center gap-2"
6449
+ }, /*#__PURE__*/React__default["default"].createElement(formik$1.Switch, {
6450
+ name: "isRequired"
6451
+ }), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
6452
+ className: "leading-4",
6453
+ component: "span",
6454
+ style: "body2"
6455
+ }, t("labels.isRequired"))), children));
6462
6456
  };
6463
6457
 
6464
- var TextArea = function TextArea(props) {
6458
+ var _excluded$2 = ["resourceType", "allowedKinds", "ownerId", "additionalValidations", "initialValues", "onClose", "onMutationSuccess"];
6459
+ function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6460
+ function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6461
+
6462
+ /** @type {React.FC<import("types").AddProps>} */
6463
+
6464
+ var Add = function Add(_ref) {
6465
+ var resourceType = _ref.resourceType,
6466
+ _ref$allowedKinds = _ref.allowedKinds,
6467
+ allowedKinds = _ref$allowedKinds === void 0 ? ALL_KINDS : _ref$allowedKinds,
6468
+ ownerId = _ref.ownerId,
6469
+ additionalValidations = _ref.additionalValidations,
6470
+ initialValues = _ref.initialValues,
6471
+ onClose = _ref.onClose,
6472
+ onMutationSuccess = _ref.onMutationSuccess,
6473
+ props = _objectWithoutProperties(_ref, _excluded$2);
6465
6474
  var _useTranslation = useTranslation(),
6466
6475
  t = _useTranslation.t;
6467
- var _useFormikFields = useFormikFields(props),
6468
- handleSubmit = _useFormikFields.handleSubmit,
6469
- fieldProps = _useFormikFields.fieldProps;
6470
- var showSubmitButton = props.individualSubmit && fieldProps.dirty;
6471
- return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Textarea, fieldProps), showSubmitButton && /*#__PURE__*/React__default["default"].createElement(formik.Button, {
6472
- className: "m-auto mt-2",
6473
- label: t("labels.submit"),
6474
- size: "small",
6475
- onClick: function onClick() {
6476
- return handleSubmit();
6476
+ var _useCreateField = useCreateField({
6477
+ onSuccess: onMutationSuccess
6478
+ }),
6479
+ createField = _useCreateField.mutate,
6480
+ isSubmitting = _useCreateField.isLoading;
6481
+ var filteredKinds = ramda.values(ramda.pick(allowedKinds, FIELD_KINDS));
6482
+ var handleSubmit = function handleSubmit(formValues) {
6483
+ var payload = buildPayload({
6484
+ formValues: formValues,
6485
+ resourceType: resourceType,
6486
+ ownerId: ownerId
6487
+ });
6488
+ createField(payload, {
6489
+ onSuccess: onClose
6490
+ });
6491
+ };
6492
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
6493
+ style: "h2"
6494
+ }, t("titles.addField"))), /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
6495
+ formikProps: {
6496
+ initialValues: _objectSpread$5(_objectSpread$5({}, initialValues), INITIAL_FIELDS),
6497
+ validationSchema: generateValidationSchema(additionalValidations),
6498
+ onSubmit: handleSubmit
6477
6499
  }
6500
+ }, function (_ref2) {
6501
+ var dirty = _ref2.dirty,
6502
+ kind = _ref2.values.kind;
6503
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FieldForm, _extends({
6504
+ chosenKind: kind.value,
6505
+ kindSelectOptions: filteredKinds
6506
+ }, props)), renderFormFooter({
6507
+ onClose: onClose,
6508
+ loading: isSubmitting,
6509
+ dirty: dirty
6510
+ }));
6478
6511
  }));
6479
6512
  };
6480
6513
 
6481
- function ownKeys$5(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6482
- function _objectSpread$5(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$5(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$5(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6483
- var standardComponents = {
6484
- text: Text,
6485
- regex: Text,
6486
- textarea: TextArea,
6487
- text_area: TextArea,
6488
- // TODO: Remove text-area after integration in all hosts.
6489
- number: Number$1,
6490
- monetary: Number$1,
6491
- integer: Number$1,
6492
- decimal: Number$1,
6493
- date: DateOrTime,
6494
- time: DateOrTime,
6495
- datetime: DateOrTime,
6496
- single_option: SingleOption,
6497
- multi_option: MultiOption,
6498
- date_range: RangePicker,
6499
- time_range: RangePicker,
6500
- checkbox: Checkbox
6501
- };
6502
- var getFieldInput = function getFieldInput(_ref) {
6503
- var field = _ref.field,
6504
- _ref$customComponents = _ref.customComponents,
6505
- customComponents = _ref$customComponents === void 0 ? {} : _ref$customComponents;
6506
- var Component = customComponents[field.kind] || standardComponents[field.kind];
6507
- if (Component) {
6508
- return Component;
6509
- }
6510
- return null;
6511
- };
6512
- var removeItemsWithNullData = function removeItemsWithNullData(fieldValues) {
6513
- return fieldValues.filter(function (item) {
6514
- return !ramda.isNil(ramda.prop("data", item));
6515
- });
6516
- };
6517
- var removeNoiseFromValues = function removeNoiseFromValues(fieldValues) {
6518
- return ramda.map(ramda.pick(["id", "fieldId", "data"]), fieldValues);
6519
- };
6520
- var transformValues = function transformValues(_ref2) {
6521
- var formikValues = _ref2.values,
6522
- fields = _ref2.fields;
6523
- var allFieldValues = ramda.clone(formikValues);
6524
- var neetoFieldValues = [];
6525
- fields.forEach(function (_ref3) {
6526
- var id = _ref3.id,
6527
- name = _ref3.name;
6528
- neetoFieldValues.push(allFieldValues["".concat(name, "-").concat(id)]);
6529
- delete allFieldValues["".concat(name, "-").concat(id)];
6530
- });
6531
- var cleanedFieldValues = ramda.pipe(removeItemsWithNullData, removeNoiseFromValues)(neetoFieldValues);
6532
- return _objectSpread$5(_objectSpread$5({}, allFieldValues), {}, {
6533
- fieldValuesAttributes: cleanedFieldValues
6534
- });
6535
- };
6536
- var getInitialFieldValue = function getInitialFieldValue(field) {
6537
- var fieldValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
6538
- var existingFieldValueData = pure.findBy({
6539
- fieldId: field.id
6540
- }, fieldValues);
6541
- var newFieldValueData = {
6542
- fieldId: field.id,
6543
- data: null
6544
- };
6545
- return _defineProperty({}, "".concat(field.name, "-").concat(field.id), existingFieldValueData || newFieldValueData);
6546
- };
6547
- var getAllInitialFieldValues = function getAllInitialFieldValues(fields) {
6548
- var fieldValues = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
6549
- return getNonSystemFields(fields).map(function (field) {
6550
- return getInitialFieldValue(field, fieldValues);
6551
- });
6552
- };
6553
- var mergeInitialValues = function mergeInitialValues(_ref5) {
6554
- var initialValues = _ref5.initialValues,
6555
- fields = _ref5.fields;
6556
- var initialValue = ramda.mergeAll([initialValues].concat(_toConsumableArray(getAllInitialFieldValues(fields, initialValues === null || initialValues === void 0 ? void 0 : initialValues.fieldValues))));
6557
- return ramda.omit(["fieldValues"], initialValue);
6558
- };
6559
- var getNonSystemFields = function getNonSystemFields(fields) {
6560
- return pure.filterBy({
6561
- isSystem: false
6562
- }, fields);
6563
- };
6564
- var neetoFieldsUtils = {
6565
- mergeInitialValues: mergeInitialValues,
6566
- transformValues: transformValues
6567
- };
6568
-
6514
+ var _excluded$1 = ["fieldId", "allowedKinds", "ownerId", "additionalValidations", "initialValues", "onClose", "onMutationSuccess"];
6569
6515
  function ownKeys$4(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
6570
6516
  function _objectSpread$4(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$4(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$4(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6571
- var FieldInputs = function FieldInputs(_ref) {
6572
- var _ref$customComponents = _ref.customComponents,
6573
- customComponents = _ref$customComponents === void 0 ? {} : _ref$customComponents,
6574
- fields = _ref.fields,
6575
- formRef = _ref.formRef,
6576
- disabled = _ref.disabled,
6577
- isRequiredColumnName = _ref.isRequiredColumnName;
6517
+
6518
+ /** @type {React.FC<import("types").EditProps>} */
6519
+
6520
+ var Edit = function Edit(_ref) {
6521
+ var fieldId = _ref.fieldId,
6522
+ _ref$allowedKinds = _ref.allowedKinds,
6523
+ allowedKinds = _ref$allowedKinds === void 0 ? ALL_KINDS : _ref$allowedKinds,
6524
+ ownerId = _ref.ownerId,
6525
+ _ref$additionalValida = _ref.additionalValidations,
6526
+ additionalValidations = _ref$additionalValida === void 0 ? {} : _ref$additionalValida,
6527
+ _ref$initialValues = _ref.initialValues,
6528
+ initialValues = _ref$initialValues === void 0 ? {} : _ref$initialValues,
6529
+ onClose = _ref.onClose,
6530
+ onMutationSuccess = _ref.onMutationSuccess,
6531
+ props = _objectWithoutProperties(_ref, _excluded$1);
6578
6532
  var _useTranslation = useTranslation(),
6579
6533
  t = _useTranslation.t;
6580
- return getNonSystemFields(fields).map(function (field) {
6581
- var Field = getFieldInput({
6582
- field: field,
6583
- customComponents: customComponents
6534
+ var _useShowField = useShowField({
6535
+ fieldId: fieldId,
6536
+ ownerId: ownerId
6537
+ }),
6538
+ _useShowField$data = _useShowField.data,
6539
+ _useShowField$data2 = _useShowField$data === void 0 ? {} : _useShowField$data,
6540
+ _useShowField$data2$f = _useShowField$data2.field,
6541
+ field = _useShowField$data2$f === void 0 ? {} : _useShowField$data2$f;
6542
+ var _useUpdateField = useUpdateField({
6543
+ onSuccess: function onSuccess() {
6544
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
6545
+ args[_key] = arguments[_key];
6546
+ }
6547
+ onMutationSuccess === null || onMutationSuccess === void 0 ? void 0 : onMutationSuccess.apply(void 0, args);
6548
+ onClose();
6549
+ }
6550
+ }),
6551
+ updateField = _useUpdateField.mutate,
6552
+ isSubmitting = _useUpdateField.isLoading;
6553
+ var handleSubmit = function handleSubmit(formValues) {
6554
+ var payload = buildPayload({
6555
+ formValues: formValues,
6556
+ ownerId: ownerId
6584
6557
  });
6585
- if (Field) {
6586
- return /*#__PURE__*/React__default["default"].createElement(Field, _extends({
6587
- key: field.id
6588
- }, _objectSpread$4(_objectSpread$4({}, field), {}, {
6589
- formRef: formRef,
6590
- disabled: disabled,
6591
- isRequiredColumnName: isRequiredColumnName
6592
- })));
6558
+ updateField({
6559
+ fieldId: fieldId,
6560
+ payload: payload
6561
+ });
6562
+ };
6563
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
6564
+ style: "h2"
6565
+ }, t("titles.editField"))), /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
6566
+ formikProps: {
6567
+ initialValues: _objectSpread$4(_objectSpread$4({}, initialValues), ramda.assoc("kind", FIELD_KINDS[field.kind], field)),
6568
+ validationSchema: generateValidationSchema(additionalValidations),
6569
+ enableReinitialize: true,
6570
+ onSubmit: handleSubmit
6593
6571
  }
6594
- return /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
6595
- key: field.id,
6596
- style: "body2"
6597
- }, t("messages.invalidKind"));
6598
- });
6572
+ }, function (_ref2) {
6573
+ var kind = _ref2.values.kind,
6574
+ dirty = _ref2.dirty;
6575
+ var permittedKinds = getPermittedKinds({
6576
+ allowedKinds: allowedKinds,
6577
+ selectedKind: kind
6578
+ });
6579
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(FieldForm, _extends({
6580
+ chosenKind: kind === null || kind === void 0 ? void 0 : kind.value,
6581
+ isSystem: field.isSystem,
6582
+ kindSelectOptions: permittedKinds
6583
+ }, props)), renderFormFooter({
6584
+ onClose: onClose,
6585
+ loading: isSubmitting,
6586
+ dirty: dirty
6587
+ }));
6588
+ }));
6589
+ };
6590
+
6591
+ var _excluded = ["isOpen", "selectedField"];
6592
+
6593
+ /** @type {React.FC<import("types").FieldsPaneProps>} */
6594
+
6595
+ var FieldsPane = function FieldsPane(_ref) {
6596
+ var isOpen = _ref.isOpen,
6597
+ _ref$selectedField = _ref.selectedField,
6598
+ selectedField = _ref$selectedField === void 0 ? {} : _ref$selectedField,
6599
+ props = _objectWithoutProperties(_ref, _excluded);
6600
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
6601
+ isOpen: isOpen,
6602
+ onClose: props.onClose
6603
+ }, ramda.isEmpty(selectedField) ? /*#__PURE__*/React__default["default"].createElement(Add, props) : /*#__PURE__*/React__default["default"].createElement(Edit, _extends({
6604
+ fieldId: selectedField === null || selectedField === void 0 ? void 0 : selectedField.id
6605
+ }, props)));
6599
6606
  };
6600
6607
 
6601
6608
  var Menu = neetoui.Dropdown.Menu,
@@ -6760,6 +6767,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
6760
6767
  var _getQueryParams = utils.getQueryParams(),
6761
6768
  resource = _getQueryParams.resource,
6762
6769
  state = _getQueryParams.state;
6770
+ var ownerId = showOwnersInMenu ? resource : undefined;
6763
6771
  var history = reactRouterDom.useHistory();
6764
6772
  var _useFetchConfigs = useFetchConfigs(),
6765
6773
  _useFetchConfigs$data = _useFetchConfigs.data,
@@ -6771,7 +6779,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
6771
6779
  isConfigsLoading = _useFetchConfigs.isLoading;
6772
6780
  var fieldParams = {
6773
6781
  resourceType: !showOwnersInMenu ? resource : undefined,
6774
- ownerId: showOwnersInMenu ? resource : undefined,
6782
+ ownerId: ownerId,
6775
6783
  state: state || FIELD_STATES.active
6776
6784
  };
6777
6785
  var _useFetchFields = useFetchFields(fieldParams, {
@@ -6786,15 +6794,18 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
6786
6794
  inactiveFieldsCount = _useFetchFields$data2.inactiveFieldsCount,
6787
6795
  isFieldsLoading = _useFetchFields.isLoading,
6788
6796
  isFieldsFetching = _useFetchFields.isFetching;
6789
- var _useDestroyField = useDestroyField(),
6790
- deleteField = _useDestroyField.mutate,
6791
- isDeleting = _useDestroyField.isLoading;
6792
- var handleDelete = function handleDelete() {
6793
- deleteField(selectedField.id, {
6797
+ var _useDestroyField = useDestroyField({
6794
6798
  onSuccess: function onSuccess() {
6795
6799
  setIsDeleteAlertOpen(false);
6796
6800
  setSelectedField({});
6797
6801
  }
6802
+ }),
6803
+ deleteField = _useDestroyField.mutate,
6804
+ isDeleting = _useDestroyField.isLoading;
6805
+ var handleDelete = function handleDelete() {
6806
+ deleteField({
6807
+ fieldId: selectedField.id,
6808
+ ownerId: ownerId
6798
6809
  });
6799
6810
  };
6800
6811
  var handleClosePane = function handleClosePane() {
@@ -6871,6 +6882,7 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
6871
6882
  selectedField: selectedField,
6872
6883
  selectedState: state,
6873
6884
  selectedMenu: resource,
6885
+ // resource will be ownerId if showOwnersInMenu is true, else it will be resourceType
6874
6886
  isFieldsFetching: isFieldsFetching,
6875
6887
  isFieldsLoading: isFieldsLoading,
6876
6888
  isDeleting: isDeleting,
@@ -11184,7 +11196,8 @@ var FieldBlock$1 = /*#__PURE__*/React__default["default"].memo(FieldBlock);
11184
11196
  var ReorderPane = function ReorderPane(_ref) {
11185
11197
  var isOpen = _ref.isOpen,
11186
11198
  onClose = _ref.onClose,
11187
- allFields = _ref.allFields;
11199
+ allFields = _ref.allFields,
11200
+ ownerId = _ref.ownerId;
11188
11201
  var _useState = React.useState([]),
11189
11202
  _useState2 = _slicedToArray(_useState, 2),
11190
11203
  fields = _useState2[0],
@@ -11209,10 +11222,11 @@ var ReorderPane = function ReorderPane(_ref) {
11209
11222
  fields.map(function (field, index) {
11210
11223
  return field.id !== allFields[index].id && params.push({
11211
11224
  id: field.id,
11212
- displayOrder: index
11225
+ displayOrder: index + 1
11213
11226
  });
11214
11227
  });
11215
11228
  reorderField({
11229
+ ownerId: ramda.isEmpty(ownerId) ? undefined : ownerId,
11216
11230
  fields: params
11217
11231
  }, {
11218
11232
  onSuccess: onClose
@@ -11363,9 +11377,12 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
11363
11377
  hideRequiredSwitch: paneProps === null || paneProps === void 0 ? void 0 : paneProps.hideRequiredSwitch,
11364
11378
  initialValues: paneProps === null || paneProps === void 0 ? void 0 : paneProps.initialValues,
11365
11379
  isOpen: isPaneOpen,
11366
- resourceType: showOwnersInMenu ? resourceType : selectedMenu,
11380
+ ownerId: showOwnersInMenu ? selectedMenu : "",
11381
+ resourceType: showOwnersInMenu ? resourceType : selectedMenu //Currently we support only one resource type when fields are classified based on owners
11382
+ ,
11367
11383
  selectedField: selectedField,
11368
- onClose: handleClosePane
11384
+ onClose: handleClosePane,
11385
+ onMutationSuccess: paneProps === null || paneProps === void 0 ? void 0 : paneProps.onMutationSuccess
11369
11386
  }, paneProps === null || paneProps === void 0 ? void 0 : paneProps.children)),
11370
11387
  title: pure.humanize(getDashBoardTitle({
11371
11388
  isOwnerBased: showOwnersInMenu,
@@ -11386,6 +11403,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
11386
11403
  })), /*#__PURE__*/React__default["default"].createElement(ReorderPane, {
11387
11404
  allFields: fields,
11388
11405
  isOpen: isReorderPaneOpen,
11406
+ ownerId: showOwnersInMenu ? selectedMenu : "",
11389
11407
  onClose: handleReorderPaneClose
11390
11408
  }), /*#__PURE__*/React__default["default"].createElement(neetoui.Alert, {
11391
11409
  isOpen: isDeleteAlertOpen,
@@ -11431,8 +11449,11 @@ var useCreateFieldValue = function useCreateFieldValue(options) {
11431
11449
  var queryClient = reactQuery.useQueryClient();
11432
11450
  return reactQuery.useMutation(fieldValuesApi.create, _objectSpread$1(_objectSpread$1({}, options), {}, {
11433
11451
  onSuccess: function onSuccess() {
11452
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
11453
+ args[_key] = arguments[_key];
11454
+ }
11455
+ options === null || options === void 0 ? void 0 : options.onSuccess.apply(options, args);
11434
11456
  queryClient.invalidateQueries([QUERY_KEYS.FIELD_VALUES]);
11435
- options === null || options === void 0 ? void 0 : options.onSuccess();
11436
11457
  }
11437
11458
  }));
11438
11459
  };
@@ -11440,8 +11461,11 @@ var useUpdateFieldValue = function useUpdateFieldValue(options) {
11440
11461
  var queryClient = reactQuery.useQueryClient();
11441
11462
  return reactQuery.useMutation(fieldValuesApi.update, _objectSpread$1(_objectSpread$1({}, options), {}, {
11442
11463
  onSuccess: function onSuccess() {
11464
+ for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
11465
+ args[_key2] = arguments[_key2];
11466
+ }
11467
+ options === null || options === void 0 ? void 0 : options.onSuccess.apply(options, args);
11443
11468
  queryClient.invalidateQueries([QUERY_KEYS.FIELD_VALUES]);
11444
- options === null || options === void 0 ? void 0 : options.onSuccess();
11445
11469
  }
11446
11470
  }));
11447
11471
  };
@@ -11453,7 +11477,7 @@ var FieldValueInputWrapper = function FieldValueInputWrapper(_ref) {
11453
11477
  onSubmit = _ref.onSubmit,
11454
11478
  _ref$className = _ref.className,
11455
11479
  className = _ref$className === void 0 ? "" : _ref$className;
11456
- return /*#__PURE__*/React__default["default"].createElement(formik.Form, {
11480
+ return /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
11457
11481
  className: classnames__default["default"]("flex w-full", className),
11458
11482
  formikProps: {
11459
11483
  initialValues: getInitialFieldValue(field, fieldValues),
@@ -11469,11 +11493,10 @@ var FieldValuesContainer = function FieldValuesContainer(_ref) {
11469
11493
  var _ref$resourceType = _ref.resourceType,
11470
11494
  resourceType = _ref$resourceType === void 0 ? "" : _ref$resourceType,
11471
11495
  fieldValues = _ref.fieldValues,
11496
+ propFields = _ref.fields,
11472
11497
  _ref$ownerId = _ref.ownerId,
11473
11498
  ownerId = _ref$ownerId === void 0 ? "" : _ref$ownerId,
11474
11499
  resourceId = _ref.resourceId,
11475
- _ref$queryKeysToBeInv = _ref.queryKeysToBeInvalidatedOnSuccess,
11476
- queryKeysToBeInvalidatedOnSuccess = _ref$queryKeysToBeInv === void 0 ? [] : _ref$queryKeysToBeInv,
11477
11500
  _ref$customComponents = _ref.customComponents,
11478
11501
  customComponents = _ref$customComponents === void 0 ? {} : _ref$customComponents,
11479
11502
  _ref$className = _ref.className,
@@ -11486,24 +11509,25 @@ var FieldValuesContainer = function FieldValuesContainer(_ref) {
11486
11509
  isRequiredColumnName = _ref.isRequiredColumnName,
11487
11510
  fieldContainerClassName = _ref.fieldContainerClassName,
11488
11511
  fieldClassName = _ref.fieldClassName,
11489
- labelClassName = _ref.labelClassName;
11490
- var queryClient = reactQuery.useQueryClient();
11512
+ labelClassName = _ref.labelClassName,
11513
+ _ref$onMutationSucces = _ref.onMutationSuccess,
11514
+ onMutationSuccess = _ref$onMutationSucces === void 0 ? pure.noop : _ref$onMutationSucces;
11491
11515
  var _useTranslation = useTranslation(),
11492
11516
  t = _useTranslation.t;
11493
11517
  var queryOptions = {
11494
- onSuccess: function onSuccess() {
11495
- queryClient.invalidateQueries(queryKeysToBeInvalidatedOnSuccess);
11496
- }
11518
+ onSuccess: onMutationSuccess
11497
11519
  };
11498
11520
  var _useFetchFields = useFetchFields({
11499
11521
  resourceType: ramda.isEmpty(resourceType) ? undefined : resourceType,
11500
11522
  ownerId: ramda.isEmpty(ownerId) ? undefined : ownerId,
11501
11523
  state: "active"
11524
+ }, {
11525
+ enabled: ramda.isNil(propFields)
11502
11526
  }),
11503
11527
  _useFetchFields$data = _useFetchFields.data,
11504
11528
  _useFetchFields$data2 = _useFetchFields$data === void 0 ? {} : _useFetchFields$data,
11505
11529
  _useFetchFields$data3 = _useFetchFields$data2.fields,
11506
- fields = _useFetchFields$data3 === void 0 ? [] : _useFetchFields$data3,
11530
+ fetchedFields = _useFetchFields$data3 === void 0 ? [] : _useFetchFields$data3,
11507
11531
  isFieldsLoading = _useFetchFields.isLoading;
11508
11532
  var _useCreateFieldValue = useCreateFieldValue(queryOptions),
11509
11533
  createFieldValue = _useCreateFieldValue.mutate;
@@ -11522,6 +11546,7 @@ var FieldValuesContainer = function FieldValuesContainer(_ref) {
11522
11546
  payload: payload
11523
11547
  }) : createFieldValue(payload);
11524
11548
  };
11549
+ var fields = propFields || fetchedFields;
11525
11550
  return /*#__PURE__*/React__default["default"].createElement("div", {
11526
11551
  className: classnames__default["default"]("space-y-3", {
11527
11552
  "neeto-ui-border-gray-300 rounded-lg border bg-white px-4 py-2": showBorder
@@ -11561,10 +11586,10 @@ var FieldValuesContainer = function FieldValuesContainer(_ref) {
11561
11586
  }));
11562
11587
  };
11563
11588
 
11564
- exports.AddField = AddField;
11565
11589
  exports.FieldInputs = FieldInputs;
11566
11590
  exports.FieldValuesContainer = FieldValuesContainer;
11567
11591
  exports.FieldsDashboard = FieldsDashboard;
11592
+ exports.FieldsPane = FieldsPane;
11568
11593
  exports.neetoFieldsUtils = neetoFieldsUtils;
11569
11594
  exports.useCreateField = useCreateField;
11570
11595
  exports.useDestroyField = useDestroyField;