@nocobase/client-v2 2.2.0-beta.16 → 2.2.0-beta.17

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 (51) hide show
  1. package/es/flow/actions/linkageRules.d.ts +24 -0
  2. package/es/flow/components/FieldAssignValueInput.d.ts +4 -30
  3. package/es/flow/components/field-value-variable/DateVariableEditor.d.ts +24 -0
  4. package/es/flow/components/field-value-variable/FieldValueVariableInput.d.ts +31 -0
  5. package/es/flow/components/field-value-variable/dateValue.d.ts +36 -0
  6. package/es/flow/components/field-value-variable/index.d.ts +11 -0
  7. package/es/flow/models/actions/UpdateRecordActionUtils.d.ts +8 -2
  8. package/es/flow/models/blocks/form/FormBlockModel.d.ts +6 -0
  9. package/es/flow/models/blocks/form/FormGridModel.d.ts +6 -0
  10. package/es/flow/models/blocks/form/value-runtime/rules.d.ts +1 -0
  11. package/es/flow/models/blocks/table/JSColumnModel.d.ts +2 -0
  12. package/es/index.d.ts +1 -0
  13. package/es/index.mjs +87 -96
  14. package/es/ui-operation/index.d.ts +15 -0
  15. package/es/ui-operation/ui-operation-codec.d.ts +10 -0
  16. package/lib/index.js +93 -102
  17. package/package.json +7 -7
  18. package/src/flow/actions/__tests__/linkageRules.actionStates.test.ts +33 -0
  19. package/src/flow/actions/linkageRules.tsx +25 -7
  20. package/src/flow/components/FieldAssignValueInput.tsx +38 -621
  21. package/src/flow/components/field-value-variable/DateVariableEditor.tsx +181 -0
  22. package/src/flow/components/field-value-variable/FieldValueVariableInput.tsx +326 -0
  23. package/src/flow/components/field-value-variable/__tests__/FieldValueVariableInput.test.tsx +380 -0
  24. package/src/flow/components/field-value-variable/dateValue.ts +223 -0
  25. package/src/flow/components/field-value-variable/index.ts +12 -0
  26. package/src/flow/models/actions/UpdateRecordActionModel.tsx +18 -1
  27. package/src/flow/models/actions/UpdateRecordActionUtils.ts +18 -6
  28. package/src/flow/models/actions/__tests__/UpdateRecordActionModel.test.ts +76 -4
  29. package/src/flow/models/base/CollectionBlockModel.tsx +9 -0
  30. package/src/flow/models/base/__tests__/CollectionBlockModel.initialBeforeRenderRefresh.test.ts +60 -0
  31. package/src/flow/models/blocks/assign-form/AssignFormItemModel.tsx +28 -53
  32. package/src/flow/models/blocks/form/FormBlockModel.tsx +4 -0
  33. package/src/flow/models/blocks/form/FormGridModel.tsx +4 -0
  34. package/src/flow/models/blocks/form/__tests__/FormBlockModel.test.tsx +8 -2
  35. package/src/flow/models/blocks/form/value-runtime/__tests__/runtime.test.ts +435 -0
  36. package/src/flow/models/blocks/form/value-runtime/rules.ts +67 -14
  37. package/src/flow/models/blocks/form/value-runtime/runtime.ts +43 -19
  38. package/src/flow/models/blocks/table/JSColumnModel.tsx +10 -1
  39. package/src/flow/models/blocks/table/__tests__/JSColumnModel.test.tsx +52 -5
  40. package/src/flow/models/fields/AssociationFieldModel/PopupSubTableFieldModel/PopupSubTableFieldModel.tsx +8 -0
  41. package/src/flow/models/fields/AssociationFieldModel/PopupSubTableFieldModel/__tests__/popupContext.test.ts +120 -0
  42. package/src/flow/models/fields/AssociationFieldModel/PopupSubTableFieldModel/actions/PopupSubTableEditActionModel.tsx +10 -2
  43. package/src/flow/models/fields/AssociationFieldModel/__tests__/RecordPickerFieldModel.itemContext.test.ts +46 -0
  44. package/src/flow/models/fields/mobile-components/MobileLazySelect.tsx +1 -0
  45. package/src/flow/models/fields/mobile-components/__tests__/MobileSelect.test.tsx +20 -2
  46. package/src/index.ts +1 -0
  47. package/src/layout-manager/LayoutContentRoute.tsx +2 -1
  48. package/src/layout-manager/LayoutRoute.tsx +2 -1
  49. package/src/layout-manager/__tests__/LayoutRoute.test.tsx +87 -1
  50. package/src/ui-operation/index.ts +33 -0
  51. package/src/ui-operation/ui-operation-codec.ts +54 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/client-v2",
3
- "version": "2.2.0-beta.16",
3
+ "version": "2.2.0-beta.17",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.mjs",
@@ -27,11 +27,11 @@
27
27
  "@formily/antd-v5": "1.2.3",
28
28
  "@formily/react": "^2.2.27",
29
29
  "@formily/shared": "^2.2.27",
30
- "@nocobase/evaluators": "2.2.0-beta.16",
31
- "@nocobase/flow-engine": "2.2.0-beta.16",
32
- "@nocobase/sdk": "2.2.0-beta.16",
33
- "@nocobase/shared": "2.2.0-beta.16",
34
- "@nocobase/utils": "2.2.0-beta.16",
30
+ "@nocobase/evaluators": "2.2.0-beta.17",
31
+ "@nocobase/flow-engine": "2.2.0-beta.17",
32
+ "@nocobase/sdk": "2.2.0-beta.17",
33
+ "@nocobase/shared": "2.2.0-beta.17",
34
+ "@nocobase/utils": "2.2.0-beta.17",
35
35
  "ahooks": "^3.7.2",
36
36
  "antd": "5.24.2",
37
37
  "antd-style": "3.7.1",
@@ -48,5 +48,5 @@
48
48
  "react-i18next": "^11.15.1",
49
49
  "react-router-dom": "^6.30.1"
50
50
  },
51
- "gitHead": "49d9bd2e21122eab9435f128375828b8c5bb4c07"
51
+ "gitHead": "d7a69c4f47fe38b17a2ce1408258902cf64f6c83"
52
52
  }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * This file is part of the NocoBase (R) project.
3
+ * Copyright (c) 2020-2024 NocoBase Co., Ltd.
4
+ * Authors: NocoBase Team.
5
+ *
6
+ * This project is dual-licensed under AGPL-3.0 and NocoBase Commercial License.
7
+ * For more information, please refer to: https://www.nocobase.com/agreement.
8
+ */
9
+
10
+ import { describe, expect, it } from 'vitest';
11
+ import { getActionLinkageStateOptions } from '../linkageRules';
12
+
13
+ describe('getActionLinkageStateOptions', () => {
14
+ const t = (key: string) => key;
15
+
16
+ it('returns all states for regular action models', () => {
17
+ expect(getActionLinkageStateOptions({}, t).map((option) => option.value)).toEqual([
18
+ 'visible',
19
+ 'hidden',
20
+ 'hiddenText',
21
+ 'enabled',
22
+ 'disabled',
23
+ ]);
24
+ });
25
+
26
+ it('filters states declared unsupported by the action model', () => {
27
+ expect(
28
+ getActionLinkageStateOptions({ supportedActionLinkageStates: ['visible', 'hidden'] }, t).map(
29
+ (option) => option.value,
30
+ ),
31
+ ).toEqual(['visible', 'hidden']);
32
+ });
33
+ });
@@ -660,6 +660,30 @@ export const linkageSetBlockProps = defineAction({
660
660
  },
661
661
  });
662
662
 
663
+ const ACTION_LINKAGE_STATE_OPTIONS = [
664
+ { label: 'Visible', value: 'visible' },
665
+ { label: 'Hidden', value: 'hidden' },
666
+ { label: 'Hidden text', value: 'hiddenText' },
667
+ { label: 'Enabled', value: 'enabled' },
668
+ { label: 'Disabled', value: 'disabled' },
669
+ ] as const;
670
+
671
+ type ActionLinkageState = (typeof ACTION_LINKAGE_STATE_OPTIONS)[number]['value'];
672
+
673
+ export function getActionLinkageStateOptions(
674
+ model: { supportedActionLinkageStates?: readonly ActionLinkageState[] },
675
+ t: (key: string) => string,
676
+ ) {
677
+ const supportedStates = model.supportedActionLinkageStates ? new Set(model.supportedActionLinkageStates) : undefined;
678
+
679
+ return ACTION_LINKAGE_STATE_OPTIONS.filter((option) => !supportedStates || supportedStates.has(option.value)).map(
680
+ (option) => ({
681
+ label: t(option.label),
682
+ value: option.value,
683
+ }),
684
+ );
685
+ }
686
+
663
687
  export const linkageSetActionProps = defineAction({
664
688
  name: 'linkageSetActionProps',
665
689
  title: tExpr('Set button state'),
@@ -680,13 +704,7 @@ export const linkageSetActionProps = defineAction({
680
704
  onChange={onChange}
681
705
  placeholder={t('Please select state')}
682
706
  style={{ width: '100%' }}
683
- options={[
684
- { label: t('Visible'), value: 'visible' },
685
- { label: t('Hidden'), value: 'hidden' },
686
- { label: t('Hidden text'), value: 'hiddenText' },
687
- { label: t('Enabled'), value: 'enabled' },
688
- { label: t('Disabled'), value: 'disabled' },
689
- ]}
707
+ options={getActionLinkageStateOptions(ctx.model, t)}
690
708
  allowClear
691
709
  />
692
710
  );