@bigbinary/neeto-fields-frontend 1.1.1 → 1.1.2

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
@@ -5286,8 +5286,8 @@ var titles = {
5286
5286
  addField: "Add new field",
5287
5287
  editField: "Edit field",
5288
5288
  deleteField: "Delete field ?",
5289
- name: "Name",
5290
- kind: "Kind",
5289
+ fieldName: "Field name",
5290
+ fieldKind: "Field type",
5291
5291
  required: "Required",
5292
5292
  dropdownOptions: "Dropdown options",
5293
5293
  regexOptions: "Regex options",
@@ -5299,7 +5299,7 @@ var labels = {
5299
5299
  edit: "Edit",
5300
5300
  "delete": "Delete",
5301
5301
  fieldName: "Field name",
5302
- fieldKind: "Field kind",
5302
+ fieldKind: "Field type",
5303
5303
  createField: "Create field",
5304
5304
  updateField: "Update field",
5305
5305
  addMoreOption: "Add more option",
@@ -5316,7 +5316,8 @@ var placeholders = {
5316
5316
  enterFieldName: "Enter field name",
5317
5317
  enterAnOption: "Enter an option",
5318
5318
  regexExample: "Example: /^[0-9]{5}$/",
5319
- enterErrorMessage: "Message to show on error"
5319
+ enterErrorMessage: "Message to show on error",
5320
+ searchFields: "Search fields"
5320
5321
  };
5321
5322
  var fields = {
5322
5323
  kinds: {
@@ -5982,7 +5983,7 @@ var validateField = /*#__PURE__*/function () {
5982
5983
  case 7:
5983
5984
  _context.prev = 7;
5984
5985
  _context.t0 = _context["catch"](1);
5985
- return _context.abrupt("return", _context.t0.errors);
5986
+ return _context.abrupt("return", _context.t0.errors[0]);
5986
5987
  case 10:
5987
5988
  case "end":
5988
5989
  return _context.stop();
@@ -6061,7 +6062,7 @@ var useFormikFields = function useFormikFields(_ref) {
6061
6062
  handleSubmit: handleSubmit,
6062
6063
  fieldProps: _objectSpread$a(_objectSpread$a({}, formikFieldProps), {}, {
6063
6064
  required: props[isRequiredColumnName],
6064
- error: meta.touched && meta.error,
6065
+ error: individualSubmit ? meta.error : meta.touched && meta.error,
6065
6066
  options: isDropdown ? buildOptionsToLabelAndValue(fieldData) : undefined,
6066
6067
  value: getValueForField(formikFieldProps.value),
6067
6068
  dirty: dirty,
@@ -6366,12 +6367,14 @@ var fieldUrl = function fieldUrl(fieldId) {
6366
6367
  var fetch$1 = function fetch(_ref) {
6367
6368
  var resourceType = _ref.resourceType,
6368
6369
  ownerId = _ref.ownerId,
6369
- state = _ref.state;
6370
+ state = _ref.state,
6371
+ searchTerm = _ref.searchTerm;
6370
6372
  return axios__default["default"].get(FIELDS_URL, {
6371
6373
  params: {
6372
6374
  resourceType: resourceType,
6373
6375
  ownerId: ownerId,
6374
- state: state
6376
+ state: state,
6377
+ searchTerm: searchTerm
6375
6378
  }
6376
6379
  });
6377
6380
  };
@@ -6428,12 +6431,14 @@ var useFetchFields = function useFetchFields(_ref, options) {
6428
6431
  ownerId = _ref.ownerId,
6429
6432
  state = _ref.state,
6430
6433
  _ref$prefixQueryKeys = _ref.prefixQueryKeys,
6431
- prefixQueryKeys = _ref$prefixQueryKeys === void 0 ? [] : _ref$prefixQueryKeys;
6432
- return reactQuery.useQuery([FIELDS].concat(_toConsumableArray(prefixQueryKeys), [resourceType, ownerId, state]), function () {
6434
+ prefixQueryKeys = _ref$prefixQueryKeys === void 0 ? [] : _ref$prefixQueryKeys,
6435
+ searchTerm = _ref.searchTerm;
6436
+ return reactQuery.useQuery([FIELDS].concat(_toConsumableArray(prefixQueryKeys), [resourceType, ownerId, state, searchTerm]), function () {
6433
6437
  return fieldsApi.fetch({
6434
6438
  resourceType: resourceType,
6435
6439
  ownerId: ownerId,
6436
- state: state
6440
+ state: state,
6441
+ searchTerm: searchTerm
6437
6442
  });
6438
6443
  }, _objectSpread$7({
6439
6444
  staleTime: DEFAULT_STALE_TIME
@@ -6674,7 +6679,7 @@ var DEFAULT_OPTION = {
6674
6679
  };
6675
6680
  var DEFAULT_OPTIONS_DATA = [DEFAULT_OPTION];
6676
6681
  var DEFAULT_REGEX_DATA = {
6677
- regex: "",
6682
+ condition: "",
6678
6683
  helpMessage: ""
6679
6684
  };
6680
6685
  var BASIC_FIELD_FORM_VALIDATIONS = {
@@ -6974,7 +6979,7 @@ var buildDefaultColumns = function buildDefaultColumns(_ref) {
6974
6979
  return [{
6975
6980
  key: "name",
6976
6981
  dataIndex: "name",
6977
- title: t$1("titles.name"),
6982
+ title: t$1("titles.fieldName"),
6978
6983
  render: function render(name, field) {
6979
6984
  return /*#__PURE__*/React__default["default"].createElement("div", {
6980
6985
  className: "flex items-center justify-between gap-x-3"
@@ -7000,7 +7005,7 @@ var buildDefaultColumns = function buildDefaultColumns(_ref) {
7000
7005
  }, {
7001
7006
  key: "kind",
7002
7007
  dataIndex: "kind",
7003
- title: t$1("titles.kind"),
7008
+ title: t$1("titles.fieldKind"),
7004
7009
  render: function render(kind) {
7005
7010
  return DISPLAY_KINDS[kind];
7006
7011
  }
@@ -7120,7 +7125,9 @@ function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if
7120
7125
  function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
7121
7126
  var useFieldsDashboard = function useFieldsDashboard(_ref) {
7122
7127
  var buildColumnData = _ref.buildColumnData,
7123
- showOwnersInMenu = _ref.showOwnersInMenu;
7128
+ showOwnersInMenu = _ref.showOwnersInMenu,
7129
+ fieldStatesTaxonomy = _ref.fieldStatesTaxonomy,
7130
+ nameAliases = _ref.nameAliases;
7124
7131
  var _useState = React.useState(false),
7125
7132
  _useState2 = _slicedToArray(_useState, 2),
7126
7133
  isPaneOpen = _useState2[0],
@@ -7141,11 +7148,18 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7141
7148
  _useState10 = _slicedToArray(_useState9, 2),
7142
7149
  selectedField = _useState10[0],
7143
7150
  setSelectedField = _useState10[1];
7151
+ var _useState11 = React.useState(""),
7152
+ _useState12 = _slicedToArray(_useState11, 2),
7153
+ searchTerm = _useState12[0],
7154
+ setSearchTerm = _useState12[1];
7144
7155
  var _getQueryParams = utils.getQueryParams(),
7145
7156
  resource = _getQueryParams.resource,
7146
7157
  state = _getQueryParams.state;
7147
7158
  var ownerId = showOwnersInMenu ? resource : undefined;
7159
+ var debouncedSearchTerm = reactUtils.useDebounce(searchTerm.trim());
7148
7160
  var history = reactRouterDom.useHistory();
7161
+ var _useTranslation = useTranslation(),
7162
+ t = _useTranslation.t;
7149
7163
  var _useFetchConfigs = useFetchConfigs(),
7150
7164
  _useFetchConfigs$data = _useFetchConfigs.data,
7151
7165
  _useFetchConfigs$data2 = _useFetchConfigs$data === void 0 ? {} : _useFetchConfigs$data,
@@ -7157,10 +7171,12 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7157
7171
  var fieldParams = {
7158
7172
  resourceType: !showOwnersInMenu ? resource : undefined,
7159
7173
  ownerId: ownerId,
7160
- state: state || FIELD_STATES.active
7174
+ state: state || FIELD_STATES.active,
7175
+ searchTerm: debouncedSearchTerm
7161
7176
  };
7162
7177
  var _useFetchFields = useFetchFields(fieldParams, {
7163
- enabled: !!resource
7178
+ enabled: !!resource,
7179
+ keepPreviousData: true
7164
7180
  }),
7165
7181
  _useFetchFields$data = _useFetchFields.data,
7166
7182
  _useFetchFields$data2 = _useFetchFields$data === void 0 ? {} : _useFetchFields$data,
@@ -7171,6 +7187,16 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7171
7187
  inactiveFieldsCount = _useFetchFields$data2.inactiveFieldsCount,
7172
7188
  isFieldsLoading = _useFetchFields.isLoading,
7173
7189
  isFieldsFetching = _useFetchFields.isFetching;
7190
+ var _useFetchFields2 = useFetchFields(_objectSpread$2(_objectSpread$2({}, fieldParams), {}, {
7191
+ state: FIELD_STATES.active,
7192
+ searchTerm: ""
7193
+ }), {
7194
+ enabled: !!resource
7195
+ }),
7196
+ _useFetchFields2$data = _useFetchFields2.data,
7197
+ _useFetchFields2$data2 = _useFetchFields2$data === void 0 ? {} : _useFetchFields2$data,
7198
+ _useFetchFields2$data3 = _useFetchFields2$data2.fields,
7199
+ allFields = _useFetchFields2$data3 === void 0 ? [] : _useFetchFields2$data3;
7174
7200
  var _useDestroyField = useDestroyField({
7175
7201
  onSuccess: function onSuccess() {
7176
7202
  setIsDeleteAlertOpen(false);
@@ -7238,6 +7264,31 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7238
7264
  var menuItems = showOwnersInMenu ? owners : resourceTypes;
7239
7265
  var isScreenLoading = isFieldsLoading || isConfigsLoading;
7240
7266
  var showCountSubheader = count > 0;
7267
+ var searchProps = {
7268
+ onChange: function onChange(e) {
7269
+ return setSearchTerm(e.target.value);
7270
+ },
7271
+ value: searchTerm,
7272
+ placeholder: t("placeholders.searchFields")
7273
+ };
7274
+ var menuBarFilters = React.useMemo(function () {
7275
+ return renderMenuBarFilters({
7276
+ selectedState: state,
7277
+ fieldStatesTaxonomy: fieldStatesTaxonomy,
7278
+ activeFieldsCount: activeFieldsCount,
7279
+ inactiveFieldsCount: inactiveFieldsCount,
7280
+ handleBlockClick: handleBlockClick
7281
+ });
7282
+ }, [activeFieldsCount, inactiveFieldsCount, state]);
7283
+ var menuBarItems = React.useMemo(function () {
7284
+ return renderMenuBarItems({
7285
+ isOwnerBased: showOwnersInMenu,
7286
+ items: menuItems,
7287
+ selectedMenu: resource,
7288
+ handleBlockClick: handleBlockClick,
7289
+ nameAliases: nameAliases
7290
+ });
7291
+ }, [menuItems, resource]);
7241
7292
  React.useEffect(function () {
7242
7293
  handleURLWithDefaultValues();
7243
7294
  }, [isConfigsLoading]);
@@ -7252,8 +7303,6 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7252
7303
  fields: fields,
7253
7304
  owners: owners,
7254
7305
  count: count,
7255
- activeFieldsCount: activeFieldsCount,
7256
- inactiveFieldsCount: inactiveFieldsCount,
7257
7306
  menuItems: menuItems,
7258
7307
  columnData: columnData,
7259
7308
  selectedField: selectedField,
@@ -7270,7 +7319,10 @@ var useFieldsDashboard = function useFieldsDashboard(_ref) {
7270
7319
  handleAlertClose: handleAlertClose,
7271
7320
  handleClosePane: handleClosePane,
7272
7321
  handleReorderPaneClose: handleReorderPaneClose,
7273
- handleBlockClick: handleBlockClick
7322
+ searchProps: searchProps,
7323
+ menuBarFilters: menuBarFilters,
7324
+ menuBarItems: menuBarItems,
7325
+ allFields: allFields
7274
7326
  };
7275
7327
  };
7276
7328
 
@@ -11686,7 +11738,9 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
11686
11738
  t = _useTranslation.t;
11687
11739
  var _useFieldsDashboard = useFieldsDashboard({
11688
11740
  buildColumnData: buildColumnData,
11689
- showOwnersInMenu: showOwnersInMenu
11741
+ showOwnersInMenu: showOwnersInMenu,
11742
+ fieldStatesTaxonomy: fieldStatesTaxonomy,
11743
+ nameAliases: nameAliases
11690
11744
  }),
11691
11745
  isPaneOpen = _useFieldsDashboard.isPaneOpen,
11692
11746
  setIsPaneOpen = _useFieldsDashboard.setIsPaneOpen,
@@ -11698,8 +11752,6 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
11698
11752
  fields = _useFieldsDashboard.fields,
11699
11753
  owners = _useFieldsDashboard.owners,
11700
11754
  count = _useFieldsDashboard.count,
11701
- activeFieldsCount = _useFieldsDashboard.activeFieldsCount,
11702
- inactiveFieldsCount = _useFieldsDashboard.inactiveFieldsCount,
11703
11755
  menuItems = _useFieldsDashboard.menuItems,
11704
11756
  columnData = _useFieldsDashboard.columnData,
11705
11757
  selectedField = _useFieldsDashboard.selectedField,
@@ -11715,26 +11767,17 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
11715
11767
  handleAlertClose = _useFieldsDashboard.handleAlertClose,
11716
11768
  handleClosePane = _useFieldsDashboard.handleClosePane,
11717
11769
  handleReorderPaneClose = _useFieldsDashboard.handleReorderPaneClose,
11718
- handleBlockClick = _useFieldsDashboard.handleBlockClick;
11770
+ searchProps = _useFieldsDashboard.searchProps,
11771
+ menuBarFilters = _useFieldsDashboard.menuBarFilters,
11772
+ menuBarItems = _useFieldsDashboard.menuBarItems,
11773
+ allFields = _useFieldsDashboard.allFields;
11719
11774
  var isMenuBarNeeded = showStateFilter || menuItems.length > 1;
11720
11775
  return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, isMenuBarNeeded && /*#__PURE__*/React__default["default"].createElement(MenuBar__default["default"], {
11721
11776
  showMenu: isMenuBarOpen,
11722
11777
  title: t("titles.field", PLURAL)
11723
11778
  }, isConfigsLoading ? /*#__PURE__*/React__default["default"].createElement("div", {
11724
11779
  className: "flex items-center justify-center"
11725
- }, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null)) : renderMenuBarItems({
11726
- isOwnerBased: showOwnersInMenu,
11727
- items: menuItems,
11728
- selectedMenu: selectedMenu,
11729
- handleBlockClick: handleBlockClick,
11730
- nameAliases: nameAliases
11731
- }), showStateFilter && renderMenuBarFilters({
11732
- selectedState: selectedState,
11733
- fieldStatesTaxonomy: fieldStatesTaxonomy,
11734
- activeFieldsCount: activeFieldsCount,
11735
- inactiveFieldsCount: inactiveFieldsCount,
11736
- handleBlockClick: handleBlockClick
11737
- })), isScreenLoading ? /*#__PURE__*/React__default["default"].createElement("div", {
11780
+ }, /*#__PURE__*/React__default["default"].createElement(neetoui.Spinner, null)) : menuBarItems, showStateFilter && menuBarFilters), isScreenLoading && ramda.isEmpty(fields) ? /*#__PURE__*/React__default["default"].createElement("div", {
11738
11781
  className: "flex w-full flex-grow items-center justify-center"
11739
11782
  }, /*#__PURE__*/React__default["default"].createElement(PageLoader__default["default"], null)) : /*#__PURE__*/React__default["default"].createElement(Container__default["default"], null, /*#__PURE__*/React__default["default"].createElement(Header__default["default"], _extends({
11740
11783
  breadcrumbs: breadcrumbs
@@ -11746,10 +11789,10 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
11746
11789
  actionBlock: /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
11747
11790
  label: t("labels.reorder"),
11748
11791
  style: "secondary",
11749
- disabled: !pure.existsBy({
11792
+ disabled: selectedState === FIELD_STATES.inactive || !pure.existsBy({
11750
11793
  isSystem: false,
11751
11794
  state: "active"
11752
- }, fields),
11795
+ }, allFields),
11753
11796
  onClick: function onClick() {
11754
11797
  return setIsReorderPaneOpen(true);
11755
11798
  }
@@ -11771,6 +11814,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
11771
11814
  onClose: handleClosePane,
11772
11815
  onMutationSuccess: paneProps === null || paneProps === void 0 ? void 0 : paneProps.onMutationSuccess
11773
11816
  }, paneProps === null || paneProps === void 0 ? void 0 : paneProps.children)),
11817
+ searchProps: searchProps,
11774
11818
  title: pure.humanize(getDashBoardTitle({
11775
11819
  isOwnerBased: showOwnersInMenu,
11776
11820
  owners: owners,
@@ -11781,7 +11825,7 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
11781
11825
  leftActionBlock: /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
11782
11826
  className: "mr-4 font-semibold",
11783
11827
  style: "h4"
11784
- }, "".concat(count, " "), t("titles.field", count > 1 ? PLURAL : SINGULAR).toLocaleLowerCase())
11828
+ }, count, " ", selectedState, " ", t("titles.field", count > 1 ? PLURAL : SINGULAR).toLocaleLowerCase())
11785
11829
  }), /*#__PURE__*/React__default["default"].createElement(FieldsTable, {
11786
11830
  columnData: columnData,
11787
11831
  helpDocUrl: helpDocUrl,
@@ -11790,10 +11834,10 @@ var FieldsDashboard = function FieldsDashboard(_ref) {
11790
11834
  setIsPaneOpen: setIsPaneOpen,
11791
11835
  totalCount: count
11792
11836
  })), /*#__PURE__*/React__default["default"].createElement(ReorderPane, {
11793
- allFields: fields,
11794
11837
  isOpen: isReorderPaneOpen,
11795
11838
  ownerId: showOwnersInMenu ? selectedMenu : "",
11796
- onClose: handleReorderPaneClose
11839
+ onClose: handleReorderPaneClose,
11840
+ allFields: allFields
11797
11841
  }), /*#__PURE__*/React__default["default"].createElement(neetoui.Alert, {
11798
11842
  isOpen: isDeleteAlertOpen,
11799
11843
  isSubmitting: isDeleting,
@@ -11881,6 +11925,7 @@ var FieldValueInputWrapper = function FieldValueInputWrapper(_ref) {
11881
11925
  _ref$className = _ref.className,
11882
11926
  className = _ref$className === void 0 ? "" : _ref$className;
11883
11927
  return /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
11928
+ scrollToErrorField: true,
11884
11929
  className: classnames__default["default"]("flex w-full", className),
11885
11930
  formikProps: {
11886
11931
  initialValues: getInitialFieldValue(field, fieldValues),