@tachybase/client 0.23.41 → 0.23.47

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.
Files changed (87) hide show
  1. package/es/application/WebSocketClient.mjs +1 -1
  2. package/es/application/schema-settings/SchemaSettingsDefaults.mjs +10 -15
  3. package/es/block-provider/hooks/index.mjs +26 -7
  4. package/es/built-in/acl/Configuration/RolesResourcesActions.d.ts +1 -1
  5. package/es/built-in/acl/Configuration/StrategyActions.d.ts +1 -1
  6. package/es/data-source/collection-field/CollectionField.d.ts +1 -1
  7. package/es/data-source/data-source/DataSource.d.ts +3 -0
  8. package/es/modules/blocks/data-blocks/details-multi/__tests__/createDetailsBlockWithPagingUISchema.test.mjs +1 -1
  9. package/es/modules/blocks/data-blocks/details-single/__tests__/createDetailsBlockWithoutPagingUISchema.test.mjs +1 -1
  10. package/es/modules/blocks/data-blocks/form/__tests__/createCreateFormBlockUISchema.test.mjs +1 -1
  11. package/es/modules/blocks/data-blocks/form/__tests__/createEditFormBlockUISchema.test.mjs +1 -1
  12. package/es/modules/blocks/data-blocks/table/__tests__/createTableBLockSchema.test.mjs +1 -1
  13. package/es/modules/blocks/data-blocks/table-selector/__tests__/createTableSelectorSchema.test.mjs +1 -1
  14. package/es/modules/blocks/filter-blocks/collapse/__tests__/createCollapseBlockSchema.test.mjs +1 -1
  15. package/es/modules/blocks/filter-blocks/form/__tests__/createFilterFormBlockSchema.test.mjs +1 -1
  16. package/es/modules/fields/component/CustomTitle/customTitleComponentFieldSettings.d.ts +2 -0
  17. package/es/modules/fields/component/CustomTitle/customTitleComponentFieldSettings.mjs +65 -0
  18. package/es/modules/fields/component/Select/selectComponentFieldSettings.d.ts +30 -0
  19. package/es/modules/fields/component/Select/selectComponentFieldSettings.mjs +62 -6
  20. package/es/schema-component/antd/action/Action.Designer.mjs +5 -7
  21. package/es/schema-component/antd/association-cascader/AssociationCascader.d.ts +1 -1
  22. package/es/schema-component/antd/association-cascader/AssociationCascader.mjs +1 -1
  23. package/es/schema-component/antd/association-field/AssociationSelect.d.ts +1 -1
  24. package/es/schema-component/antd/association-field/Editable.mjs +1 -1
  25. package/es/schema-component/antd/association-field/FileManager.d.ts +1 -1
  26. package/es/schema-component/antd/association-field/InternalCascader.mjs +2 -2
  27. package/es/schema-component/antd/association-field/InternalViewer.mjs +59 -4
  28. package/es/schema-component/antd/association-field/ReadPretty.mjs +2 -1
  29. package/es/schema-component/antd/association-field/SubTabs/InternalCollapse.mjs +2 -2
  30. package/es/schema-component/antd/auto-complete/AutoComplete.d.ts +1 -1
  31. package/es/schema-component/antd/auto-complete/AutoComplete.mjs +1 -1
  32. package/es/schema-component/antd/cascader/Cascader.d.ts +1 -1
  33. package/es/schema-component/antd/checkbox/Checkbox.d.ts +1 -1
  34. package/es/schema-component/antd/collection-select/CollectionSelect.d.ts +5 -5
  35. package/es/schema-component/antd/color-picker/ColorPicker.d.ts +1 -1
  36. package/es/schema-component/antd/color-select/ColorSelect.d.ts +1 -1
  37. package/es/schema-component/antd/cron/CronSet.d.ts +1 -1
  38. package/es/schema-component/antd/custom-cascader/CustomCascader.d.ts +1 -1
  39. package/es/schema-component/antd/filter/FilterGroup.d.ts +1 -1
  40. package/es/schema-component/antd/form-item/FormItem.Settings.mjs +83 -2
  41. package/es/schema-component/antd/icon-picker/IconPicker.d.ts +1 -1
  42. package/es/schema-component/antd/nanoIDInput/NanoIDInput.d.ts +1 -1
  43. package/es/schema-component/antd/password/Password.d.ts +1 -1
  44. package/es/schema-component/antd/percent/Percent.d.ts +1 -1
  45. package/es/schema-component/antd/preview/Preview.d.ts +1 -1
  46. package/es/schema-component/antd/remote-select/RemoteSelect.d.ts +4 -4
  47. package/es/schema-component/antd/remote-select/RemoteSelect.mjs +7 -5
  48. package/es/schema-component/antd/rich-text/RichText.d.ts +1 -1
  49. package/es/schema-component/antd/select/FormulaSelect.mjs +3 -3
  50. package/es/schema-component/antd/select/Select.mjs +3 -1
  51. package/es/schema-component/antd/unixTimestamp/UnixTimestamp.d.ts +1 -1
  52. package/es/schema-component/antd/variable/TextArea.mjs +3 -1
  53. package/es/schema-component/antd/variable/Variable.d.ts +5 -5
  54. package/es/schema-component/hooks/useFieldModeOptions.mjs +8 -0
  55. package/es/schema-settings/DateFormat/ExpiresRadio.d.ts +1 -1
  56. package/es/schema-settings/EditFormulaTitleField.mjs +7 -2
  57. package/es/schema-settings/SchemaSettingsPlugin.mjs +2 -0
  58. package/lib/application/WebSocketClient.js +1 -1
  59. package/lib/application/schema-settings/SchemaSettingsDefaults.js +10 -15
  60. package/lib/block-provider/hooks/index.js +26 -7
  61. package/lib/modules/blocks/data-blocks/details-multi/__tests__/createDetailsBlockWithPagingUISchema.test.js +1 -1
  62. package/lib/modules/blocks/data-blocks/details-single/__tests__/createDetailsBlockWithoutPagingUISchema.test.js +1 -1
  63. package/lib/modules/blocks/data-blocks/form/__tests__/createCreateFormBlockUISchema.test.js +1 -1
  64. package/lib/modules/blocks/data-blocks/form/__tests__/createEditFormBlockUISchema.test.js +1 -1
  65. package/lib/modules/blocks/data-blocks/table/__tests__/createTableBLockSchema.test.js +1 -1
  66. package/lib/modules/blocks/data-blocks/table-selector/__tests__/createTableSelectorSchema.test.js +1 -1
  67. package/lib/modules/blocks/filter-blocks/collapse/__tests__/createCollapseBlockSchema.test.js +1 -1
  68. package/lib/modules/blocks/filter-blocks/form/__tests__/createFilterFormBlockSchema.test.js +1 -1
  69. package/lib/modules/fields/component/CustomTitle/customTitleComponentFieldSettings.js +99 -0
  70. package/lib/modules/fields/component/Select/selectComponentFieldSettings.js +69 -6
  71. package/lib/schema-component/antd/action/Action.Designer.js +5 -7
  72. package/lib/schema-component/antd/association-cascader/AssociationCascader.js +1 -1
  73. package/lib/schema-component/antd/association-field/Editable.js +1 -1
  74. package/lib/schema-component/antd/association-field/InternalCascader.js +2 -2
  75. package/lib/schema-component/antd/association-field/InternalViewer.js +59 -4
  76. package/lib/schema-component/antd/association-field/ReadPretty.js +2 -1
  77. package/lib/schema-component/antd/association-field/SubTabs/InternalCollapse.js +2 -2
  78. package/lib/schema-component/antd/auto-complete/AutoComplete.js +1 -1
  79. package/lib/schema-component/antd/form-item/FormItem.Settings.js +83 -2
  80. package/lib/schema-component/antd/remote-select/RemoteSelect.js +7 -5
  81. package/lib/schema-component/antd/select/FormulaSelect.js +3 -3
  82. package/lib/schema-component/antd/select/Select.js +3 -1
  83. package/lib/schema-component/antd/variable/TextArea.js +3 -1
  84. package/lib/schema-component/hooks/useFieldModeOptions.js +8 -0
  85. package/lib/schema-settings/EditFormulaTitleField.js +7 -2
  86. package/lib/schema-settings/SchemaSettingsPlugin.js +2 -0
  87. package/package.json +8 -8
@@ -66,6 +66,7 @@ const external_data_source_index_js_namespaceObject = require("../../../data-sou
66
66
  const external_record_provider_index_js_namespaceObject = require("../../../record-provider/index.js");
67
67
  const Table_Column_Decorator_js_namespaceObject = require("../table-v2/Table.Column.Decorator.js");
68
68
  const GeneralSettings_js_namespaceObject = require("../../../schema-items/GeneralSettings.js");
69
+ const external_schema_settings_index_js_namespaceObject = require("../../../schema-settings/index.js");
69
70
  const useIsAllowToSetDefaultValue_js_namespaceObject = require("../../../schema-settings/hooks/useIsAllowToSetDefaultValue.js");
70
71
  const useIsShowMultipleSwitch_js_namespaceObject = require("../../../schema-settings/hooks/useIsShowMultipleSwitch.js");
71
72
  const isPatternDisabled_js_namespaceObject = require("../../../schema-settings/isPatternDisabled.js");
@@ -623,6 +624,86 @@ const formItemSettings = new index_js_namespaceObject.SchemaSettings({
623
624
  },
624
625
  useVisible: useShowFieldMode
625
626
  },
627
+ {
628
+ name: 'customTitle',
629
+ type: 'modal',
630
+ useComponentProps () {
631
+ var _fieldSchema_xcomponentprops_fieldNames, _fieldSchema_xcomponentprops;
632
+ const schema = (0, schema_namespaceObject.useFieldSchema)();
633
+ const { fieldSchema: tableColumnSchema } = (0, Table_Column_Decorator_js_namespaceObject.useColumnSchema)();
634
+ const fieldSchema = tableColumnSchema || schema;
635
+ const { t } = (0, external_react_i18next_namespaceObject.useTranslation)();
636
+ const { dn } = (0, external_hooks_index_js_namespaceObject.useDesignable)();
637
+ const options = (0, external_schema_settings_index_js_namespaceObject.useFormulaTitleOptions)();
638
+ const def = null === (_fieldSchema_xcomponentprops = fieldSchema['x-component-props']) || void 0 === _fieldSchema_xcomponentprops ? void 0 : null === (_fieldSchema_xcomponentprops_fieldNames = _fieldSchema_xcomponentprops.fieldNames) || void 0 === _fieldSchema_xcomponentprops_fieldNames ? void 0 : _fieldSchema_xcomponentprops_fieldNames.formula;
639
+ const field = (0, schema_namespaceObject.useField)();
640
+ return {
641
+ title: t('Custom option label'),
642
+ schema: {
643
+ type: 'object',
644
+ title: t('Custom option label'),
645
+ properties: {
646
+ formula: {
647
+ required: true,
648
+ 'x-decorator': 'FormItem',
649
+ 'x-component': 'Variable.TextArea',
650
+ 'x-component-props': {
651
+ scope: options
652
+ },
653
+ default: def || ''
654
+ }
655
+ }
656
+ },
657
+ onSubmit: (param)=>{
658
+ let { formula } = param;
659
+ if (formula) {
660
+ var _fieldSchema_xcomponentprops, _field_componentProps;
661
+ const componentProps = {
662
+ ...fieldSchema['x-component-props'],
663
+ fieldNames: {
664
+ ...null === (_fieldSchema_xcomponentprops = fieldSchema['x-component-props']) || void 0 === _fieldSchema_xcomponentprops ? void 0 : _fieldSchema_xcomponentprops['fieldNames'],
665
+ formula
666
+ },
667
+ appends: [
668
+ fieldSchema['name']
669
+ ]
670
+ };
671
+ const regex = /{{(.*?)}}/g;
672
+ let match;
673
+ while(match = regex.exec(formula))if (match[1].includes('.')) {
674
+ const matchList = match[1].split('.');
675
+ let appendsValue = fieldSchema['name'];
676
+ matchList.forEach((item, index)=>{
677
+ if (index === matchList.length - 1) return;
678
+ appendsValue += '.' + item;
679
+ componentProps.appends.push(appendsValue);
680
+ });
681
+ }
682
+ field.componentProps = {
683
+ ...field.componentProps,
684
+ fieldNames: {
685
+ ...null === (_field_componentProps = field.componentProps) || void 0 === _field_componentProps ? void 0 : _field_componentProps.fieldNames,
686
+ formula
687
+ }
688
+ };
689
+ fieldSchema['x-component-props'] = componentProps;
690
+ dn.emit('patch', {
691
+ schema: {
692
+ 'x-uid': fieldSchema['x-uid'],
693
+ 'x-component-props': componentProps
694
+ }
695
+ });
696
+ }
697
+ dn.refresh();
698
+ }
699
+ };
700
+ },
701
+ useVisible: ()=>{
702
+ const fieldSchema = (0, schema_namespaceObject.useFieldSchema)();
703
+ const formula = 'CustomTitle' === fieldSchema['x-component-props'].mode;
704
+ return useShowFieldMode() && formula;
705
+ }
706
+ },
626
707
  {
627
708
  name: 'popupSize',
628
709
  type: 'select',
@@ -989,7 +1070,7 @@ const formItemSettings = new index_js_namespaceObject.SchemaSettings({
989
1070
  const options = useTitleFieldOptions();
990
1071
  const isAssociationField = useIsAssociationField();
991
1072
  const fieldMode = useFieldMode();
992
- return options.length > 0 && isAssociationField && 'SubTable' !== fieldMode;
1073
+ return options.length > 0 && isAssociationField && 'SubTable' !== fieldMode && 'CustomTitle' !== fieldMode;
993
1074
  },
994
1075
  useComponentProps () {
995
1076
  var _field_componentProps_fieldNames, _field_componentProps;
@@ -1234,7 +1315,7 @@ function useFieldMode() {
1234
1315
  function useIsSelectFieldMode() {
1235
1316
  const fieldMode = useFieldMode();
1236
1317
  const isAssociationField = useIsAssociationField();
1237
- const isSelectFieldMode = isAssociationField && 'Select' === fieldMode;
1318
+ const isSelectFieldMode = isAssociationField && ('Select' === fieldMode || 'CustomTitle' === fieldMode);
1238
1319
  return isSelectFieldMode;
1239
1320
  }
1240
1321
  function useValidateSchema() {
@@ -136,15 +136,17 @@ const InternalRemoteSelect = (0, schema_namespaceObject.connect)((props)=>{
136
136
  null == targetField ? void 0 : targetField.uiSchema,
137
137
  fieldNames
138
138
  ]);
139
+ const params = {
140
+ ...null == service ? void 0 : service.params,
141
+ filter: null == service ? void 0 : null === (_service_params = service.params) || void 0 === _service_params ? void 0 : _service_params.filter
142
+ };
143
+ if (fieldNames['formula']) params['paginate'] = false;
144
+ else params['pageSize'] = 200;
139
145
  const { data, run, loading } = (0, index_js_namespaceObject.useRequest)({
140
146
  action: 'list',
141
147
  ...service,
142
148
  headers,
143
- params: {
144
- pageSize: fieldNames['formula'] ? 9999 : 200,
145
- ...null == service ? void 0 : service.params,
146
- filter: null == service ? void 0 : null === (_service_params = service.params) || void 0 === _service_params ? void 0 : _service_params.filter
147
- }
149
+ params
148
150
  }, {
149
151
  manual,
150
152
  debounceWait: wait
@@ -137,7 +137,7 @@ const useLabelOptions = (others)=>{
137
137
  resource: (null == collectionField ? void 0 : collectionField.target) || fieldSchema['collectionName'],
138
138
  action: 'list',
139
139
  params: {
140
- pageSize: 99999
140
+ paginate: false
141
141
  }
142
142
  };
143
143
  const regex = /{{(.*?)}}/g;
@@ -172,7 +172,7 @@ const useLabelOptions = (others)=>{
172
172
  const opvalue = opValue[match[1].split('.')[0]];
173
173
  const value = opvalue ? opValue[match[1].split('.')[0]][match[1].split('.')[1]] : '';
174
174
  valueOject[match[1]] = null != value ? value : '';
175
- } else valueOject[match[1]] = op[match[1]] || '';
175
+ } else valueOject[match[1]] = opValue[match[1]] || '';
176
176
  outputStr = replacePlaceholders(formula, valueOject);
177
177
  }
178
178
  });
@@ -199,7 +199,7 @@ const FormulaSelect = (props)=>{
199
199
  api.request({
200
200
  url: others.collection + ':list',
201
201
  params: {
202
- pageSize: 99999,
202
+ paginate: false,
203
203
  filter: filterField ? {
204
204
  ...filterField.filter
205
205
  } : {}
@@ -128,7 +128,9 @@ const InternalSelect = (0, schema_namespaceObject.connect)((props)=>{
128
128
  'multiple',
129
129
  'tags'
130
130
  ].includes(mode)) mode = void 0;
131
- if ('formula' in others.fieldNames || 'collection' in props) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_FormulaSelect_js_default(), {
131
+ if ([
132
+ 'CustomTitle'
133
+ ].includes(props.mode) && ('formula' in others.fieldNames || 'collection' in props)) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(external_FormulaSelect_js_default(), {
132
134
  ...props
133
135
  });
134
136
  if (objectValue) return /*#__PURE__*/ (0, jsx_runtime_namespaceObject.jsx)(ObjectSelect, {
@@ -185,7 +185,9 @@ function getCurrentRange(element) {
185
185
  return result;
186
186
  }
187
187
  function TextArea(props) {
188
- const { value = '', scope, onChange, multiline = true, changeOnSelect } = props;
188
+ const { value: propsValue, scope, onChange, multiline = true, changeOnSelect } = props;
189
+ const fieldSchema = (0, schema_namespaceObject.useFieldSchema)();
190
+ const value = propsValue || fieldSchema.default || '';
189
191
  const { styles } = (0, external_style_js_namespaceObject.useStyles)({
190
192
  multiline
191
193
  });
@@ -236,6 +236,10 @@ const useFieldModeOptions = (props)=>{
236
236
  label: t('Tag'),
237
237
  value: 'Tag'
238
238
  },
239
+ {
240
+ label: t('Custom Title'),
241
+ value: 'CustomTitle'
242
+ },
239
243
  !isTableField && {
240
244
  label: t('Sub-details'),
241
245
  value: 'Nester'
@@ -264,6 +268,10 @@ const useFieldModeOptions = (props)=>{
264
268
  {
265
269
  label: t('Cascader'),
266
270
  value: 'Cascader'
271
+ },
272
+ {
273
+ label: t('Custom Title'),
274
+ value: 'CustomTitle'
267
275
  }
268
276
  ];
269
277
  default:
@@ -41,7 +41,9 @@ function useFormulaTitleOptions() {
41
41
  const compile = (0, external_schema_component_index_js_namespaceObject.useCompile)();
42
42
  const { getCollectionJoinField, getCollectionFields } = (0, index_js_namespaceObject.useCollectionManager_deprecated)();
43
43
  const { getField } = (0, index_js_namespaceObject.useCollection_deprecated)();
44
- const fieldSchema = (0, schema_namespaceObject.useFieldSchema)();
44
+ const { fieldSchema: tableColumnSchema } = (0, external_schema_component_index_js_namespaceObject.useColumnSchema)();
45
+ const schema = (0, schema_namespaceObject.useFieldSchema)();
46
+ const fieldSchema = tableColumnSchema || schema;
45
47
  const collectionManage = (0, index_js_namespaceObject.useCollectionManager_deprecated)();
46
48
  const collectionManageField = collectionManage.collections.filter((value)=>value.name === fieldSchema['x-decorator-props'])[0];
47
49
  const collectionField = getField(fieldSchema['name']) || getCollectionJoinField(fieldSchema['x-collection-field']);
@@ -50,7 +52,10 @@ function useFormulaTitleOptions() {
50
52
  else if (collectionManageField) fields = collectionManageField['fields'];
51
53
  const options = [];
52
54
  null == fields || fields.forEach((field)=>{
53
- if ('m2m' !== field.interface) {
55
+ if (![
56
+ 'm2m',
57
+ 'o2m'
58
+ ].includes(field.interface)) {
54
59
  if (field.uiSchema) {
55
60
  var _getCollectionFields;
56
61
  var _getCollectionFields_filter_map;
@@ -66,6 +66,7 @@ const markdownBlockSettings_js_namespaceObject = require("../modules/blocks/othe
66
66
  const cascaderComponentFieldSettings_js_namespaceObject = require("../modules/fields/component/Cascader/cascaderComponentFieldSettings.js");
67
67
  const cascadeSelectComponentFieldSettings_js_namespaceObject = require("../modules/fields/component/CascadeSelect/cascadeSelectComponentFieldSettings.js");
68
68
  const checkboxComponentFieldSettings_js_namespaceObject = require("../modules/fields/component/Checkbox/checkboxComponentFieldSettings.js");
69
+ const customTitleComponentFieldSettings_js_namespaceObject = require("../modules/fields/component/CustomTitle/customTitleComponentFieldSettings.js");
69
70
  const datePickerComponentFieldSettings_js_namespaceObject = require("../modules/fields/component/DatePicker/datePickerComponentFieldSettings.js");
70
71
  const drawerSubTableComponentFieldSettings_js_namespaceObject = require("../modules/fields/component/DrawerSubTable/drawerSubTableComponentFieldSettings.js");
71
72
  const fileManagerComponentFieldSettings_js_namespaceObject = require("../modules/fields/component/FileManager/fileManagerComponentFieldSettings.js");
@@ -130,6 +131,7 @@ class SchemaSettingsPlugin extends Plugin_js_namespaceObject.Plugin {
130
131
  this.schemaSettingsManager.add(inputNumberComponentFieldSettings_js_namespaceObject.inputNumberComponentFieldSettings);
131
132
  this.schemaSettingsManager.add(checkboxComponentFieldSettings_js_namespaceObject.checkboxComponentFieldSettings);
132
133
  this.schemaSettingsManager.add(radioComponentFieldSettings_js_namespaceObject.radioComponentFieldSettings);
134
+ this.schemaSettingsManager.add(customTitleComponentFieldSettings_js_namespaceObject.CustomTitleComponentFieldSettings);
133
135
  this.schemaSettingsManager.add(fileManagerComponentFieldSettings_js_namespaceObject.fileManagerComponentFieldSettings);
134
136
  this.schemaSettingsManager.add(tagComponentFieldSettings_js_namespaceObject.tagComponentFieldSettings);
135
137
  this.schemaSettingsManager.add(cascadeSelectComponentFieldSettings_js_namespaceObject.cascadeSelectComponentFieldSettings);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tachybase/client",
3
- "version": "0.23.41",
3
+ "version": "0.23.47",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.mjs",
@@ -64,15 +64,15 @@
64
64
  "react-zoom-pan-pinch": "^3.6.1",
65
65
  "sanitize-html": "2.14.0",
66
66
  "use-deep-compare-effect": "^1.8.1",
67
- "@tachybase/components": "0.23.41",
68
- "@tachybase/evaluators": "0.23.41",
69
- "@tachybase/requirejs": "0.23.41",
70
- "@tachybase/sdk": "0.23.41",
71
- "@tachybase/utils": "0.23.41",
72
- "@tachybase/schema": "0.23.41"
67
+ "@tachybase/components": "0.23.47",
68
+ "@tachybase/requirejs": "0.23.47",
69
+ "@tachybase/evaluators": "0.23.47",
70
+ "@tachybase/schema": "0.23.47",
71
+ "@tachybase/sdk": "0.23.47",
72
+ "@tachybase/utils": "0.23.47"
73
73
  },
74
74
  "devDependencies": {
75
- "@testing-library/react": "^14.3.1",
75
+ "@testing-library/react": "^16.2.0",
76
76
  "@types/flat": "^5.0.5",
77
77
  "@types/lodash": "^4.17.13",
78
78
  "@types/markdown-it": "12.2.3",