@nocobase/client 0.18.0-alpha.9 → 0.19.0-alpha.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.
@@ -1,4 +1,4 @@
1
- import { ButtonProps } from 'antd';
1
+ import type { ButtonProps } from 'antd';
2
2
  import { SchemaInitializerItemType, SchemaInitializerItemTypeWithoutName, SchemaInitializerOptions } from './types';
3
3
  export declare class SchemaInitializer<P1 = ButtonProps, P2 = {}> {
4
4
  options: SchemaInitializerOptions<P1, P2>;
@@ -13,11 +13,17 @@ export declare const useCollection: () => {
13
13
  name: string;
14
14
  title?: string;
15
15
  namespace?: string;
16
- duplicator?: ("optional" | "required" | "skip") | {
17
- dumpable: "optional" | "required" | "skip";
16
+ duplicator?: ("optional" | "required" | "skip") | ({
17
+ dumpable?: "optional" | "required" | "skip";
18
+ } & {
18
19
  with?: string | string[];
19
20
  delayRestore?: any;
20
- };
21
+ }) | ({
22
+ dataType?: "meta" | "config" | "business";
23
+ } & {
24
+ with?: string | string[];
25
+ delayRestore?: any;
26
+ });
21
27
  tableName?: string;
22
28
  inherits?: string | string[];
23
29
  viewName?: string;
@@ -1,10 +1,23 @@
1
1
  import { ISchema } from '@formily/react';
2
2
  import { ReactNode } from 'react';
3
- type dumpable = 'required' | 'optional' | 'skip';
4
3
  type CollectionSortable = string | boolean | {
5
4
  name?: string;
6
5
  scopeKey?: string;
7
6
  };
7
+ type MetaDataType = 'meta';
8
+ type ConfigDataType = 'config';
9
+ type BusinessDataType = 'business';
10
+ type DumpDataType = MetaDataType | ConfigDataType | BusinessDataType;
11
+ type Dumpable = 'required' | 'optional' | 'skip';
12
+ type BaseDuplicatorObject = {
13
+ with?: string[] | string;
14
+ delayRestore?: any;
15
+ };
16
+ type Duplicator = Dumpable | ({
17
+ dumpable?: Dumpable;
18
+ } & BaseDuplicatorObject) | ({
19
+ dataType?: DumpDataType;
20
+ } & BaseDuplicatorObject);
8
21
  export interface CollectionOptions {
9
22
  name: string;
10
23
  title?: string;
@@ -17,11 +30,7 @@ export interface CollectionOptions {
17
30
  * @prop {string[] | string} [with] - Collections dumped with this collection
18
31
  * @prop {any} [delayRestore] - A function to execute after all collections are restored
19
32
  */
20
- duplicator?: dumpable | {
21
- dumpable: dumpable;
22
- with?: string[] | string;
23
- delayRestore?: any;
24
- };
33
+ duplicator?: Duplicator;
25
34
  tableName?: string;
26
35
  inherits?: string[] | string;
27
36
  viewName?: string;
@@ -1,5 +1,4 @@
1
- import { MappingAlgorithm } from 'antd-style';
2
- import { OverrideToken } from 'antd/es/theme/interface';
1
+ import type { ThemeConfig as _ThemeConfig } from 'antd';
3
2
  import { AliasToken } from 'antd/es/theme/internal';
4
3
  export interface CustomToken extends AliasToken {
5
4
  /** 顶部导航栏主色 */
@@ -23,11 +22,7 @@ export interface CustomToken extends AliasToken {
23
22
  /** 鼠标悬浮时显示的边框色 */
24
23
  colorBorderSettingsHover: string;
25
24
  }
26
- export interface ThemeConfig {
25
+ export interface ThemeConfig extends _ThemeConfig {
27
26
  name?: string;
28
27
  token?: Partial<CustomToken>;
29
- components?: OverrideToken;
30
- algorithm?: MappingAlgorithm | MappingAlgorithm[];
31
- hashed?: boolean;
32
- inherit?: boolean;
33
28
  }
package/es/index.mjs CHANGED
@@ -107,7 +107,7 @@ import set from "lodash/set";
107
107
  import { createRoot as createRoot$1 } from "react-dom/client";
108
108
  import { TinyColor } from "@ctrl/tinycolor";
109
109
  import * as antIcons from "@ant-design/icons";
110
- import antIcons__default, { createFromIconfontCN, CopyOutlined, HighlightOutlined, CloseCircleOutlined, RightOutlined, MenuOutlined, PlusOutlined, DragOutlined, CloseCircleFilled, CloseOutlined, LoadingOutlined, DownOutlined, DownloadOutlined as DownloadOutlined$1, DeleteOutlined, EditOutlined, CheckOutlined, InboxOutlined, RightSquareOutlined, SyncOutlined, ExclamationCircleFilled, ApiOutlined, SettingOutlined, ReadOutlined, ReloadOutlined, SearchOutlined, FormOutlined, TableOutlined, OrderedListOutlined, DisconnectOutlined } from "@ant-design/icons";
110
+ import antIcons__default, { createFromIconfontCN, CopyOutlined, HighlightOutlined, CloseCircleOutlined, RightOutlined, MenuOutlined, PlusOutlined, DragOutlined, CloseCircleFilled, CloseOutlined, LoadingOutlined, DownOutlined, DownloadOutlined, DeleteOutlined, EditOutlined, CheckOutlined, InboxOutlined, RightSquareOutlined, SyncOutlined, ExclamationCircleFilled, ApiOutlined, SettingOutlined, ReadOutlined, ReloadOutlined, SearchOutlined, FormOutlined, TableOutlined, OrderedListOutlined, DisconnectOutlined } from "@ant-design/icons";
111
111
  import * as formilyReactiveReact from "@formily/reactive-react";
112
112
  import { observer as observer$1 } from "@formily/reactive-react";
113
113
  import { ErrorBoundary, useErrorBoundary } from "react-error-boundary";
@@ -153,7 +153,6 @@ import { Line, Area, Column, Bar, Pie, Rose, WordCloud, Scatter, Radar, DualAxes
153
153
  import { saveAs } from "file-saver";
154
154
  import Lightbox from "react-image-lightbox";
155
155
  import "react-image-lightbox/style.css";
156
- import DownloadOutlined from "@ant-design/icons/DownloadOutlined";
157
156
  import useUploadStyle from "antd/es/upload/style";
158
157
  import ReactQuill from "react-quill";
159
158
  import ReactDragListView from "react-drag-listview";
@@ -9319,7 +9318,21 @@ const useMemoizedSchema = (schema3) => {
9319
9318
  };
9320
9319
  const RecursionSchemaComponent = (props) => {
9321
9320
  const _a = props, { components: components2, scope, schema: schema3 } = _a, others = __objRest(_a, ["components", "scope", "schema"]);
9322
- return /* @__PURE__ */ jsx(SchemaComponentOptions, { inherit: true, components: components2, scope, children: /* @__PURE__ */ jsx(RecursionField, __spreadProps(__spreadValues({}, others), { schema: toSchema(schema3) })) });
9321
+ const ctx = useContext(SchemaComponentContext);
9322
+ const s2 = useMemo(() => toSchema(schema3), [schema3]);
9323
+ return /* @__PURE__ */ jsx(
9324
+ SchemaComponentContext.Provider,
9325
+ {
9326
+ value: __spreadProps(__spreadValues({}, ctx), {
9327
+ refresh: () => {
9328
+ var _a2, _b;
9329
+ (_a2 = ctx.refresh) == null ? void 0 : _a2.call(ctx);
9330
+ (_b = props.onChange) == null ? void 0 : _b.call(props, s2);
9331
+ }
9332
+ }),
9333
+ children: /* @__PURE__ */ jsx(SchemaComponentOptions, { inherit: true, components: components2, scope, children: /* @__PURE__ */ jsx(RecursionField, __spreadProps(__spreadValues({}, others), { schema: s2 })) })
9334
+ }
9335
+ );
9323
9336
  };
9324
9337
  const MemoizedSchemaComponent = (props) => {
9325
9338
  const _a = props, { schema: schema3 } = _a, others = __objRest(_a, ["schema"]);
@@ -15522,17 +15535,18 @@ class Application {
15522
15535
  }
15523
15536
  load() {
15524
15537
  return __async(this, null, function* () {
15538
+ var _a, _b, _c, _d, _e;
15525
15539
  let loadFailed = false;
15526
15540
  this.ws.on("message", (event) => {
15527
- var _a, _b, _c;
15541
+ var _a2, _b2, _c2;
15528
15542
  const data = JSON.parse(event.data);
15529
15543
  console.log(data.payload);
15530
- if ((_a = data == null ? void 0 : data.payload) == null ? void 0 : _a.refresh) {
15544
+ if ((_a2 = data == null ? void 0 : data.payload) == null ? void 0 : _a2.refresh) {
15531
15545
  window.location.reload();
15532
15546
  return;
15533
15547
  }
15534
15548
  if (data.type === "notification") {
15535
- this.notification[((_b = data.payload) == null ? void 0 : _b.type) || "info"]({ message: (_c = data.payload) == null ? void 0 : _c.message });
15549
+ this.notification[((_b2 = data.payload) == null ? void 0 : _b2.type) || "info"]({ message: (_c2 = data.payload) == null ? void 0 : _c2.message });
15536
15550
  return;
15537
15551
  }
15538
15552
  const maintaining = data.type === "maintaining" && data.payload.code !== "APP_RUNNING";
@@ -15564,10 +15578,10 @@ class Application {
15564
15578
  });
15565
15579
  }
15566
15580
  loadFailed = true;
15581
+ const others = ((_b = (_a = error2 == null ? void 0 : error2.response) == null ? void 0 : _a.data) == null ? void 0 : _b.error) || ((_e = (_d = (_c = error2 == null ? void 0 : error2.response) == null ? void 0 : _c.data) == null ? void 0 : _d.errors) == null ? void 0 : _e[0]) || error2;
15567
15582
  this.error = __spreadValues({
15568
- code: "LOAD_ERROR",
15569
- message: error2.message
15570
- }, error2);
15583
+ code: "LOAD_ERROR"
15584
+ }, others);
15571
15585
  console.error(this.error);
15572
15586
  }
15573
15587
  this.loading = false;
@@ -21777,8 +21791,6 @@ const useStyles$f = genStyleHook("nb-action-drawer", (token) => {
21777
21791
  const { componentCls } = token;
21778
21792
  return {
21779
21793
  [componentCls]: {
21780
- zIndex: "1150 !important",
21781
- // fix https://nocobase.height.app/T-2797
21782
21794
  overflow: "hidden",
21783
21795
  "&.reset": {
21784
21796
  "&.nb-action-popup": {
@@ -22993,7 +23005,10 @@ function WorkflowConfig() {
22993
23005
  const description = {
22994
23006
  submit: t("Workflow will be triggered after submitting succeeded.", { ns: "workflow" }),
22995
23007
  "customize:save": t("Workflow will be triggered after saving succeeded.", { ns: "workflow" }),
22996
- "customize:triggerWorkflows": t("Workflow will be triggered directly once the button clicked.", { ns: "workflow" })
23008
+ "customize:triggerWorkflows": t(
23009
+ "Workflow will be triggered directly once the button clicked, without data saving.",
23010
+ { ns: "workflow" }
23011
+ )
22997
23012
  }[fieldSchema == null ? void 0 : fieldSchema["x-action"]];
22998
23013
  return /* @__PURE__ */ jsx(
22999
23014
  SchemaSettingsModalItem,
@@ -24959,7 +24974,7 @@ const FileSelector = (props) => {
24959
24974
  {
24960
24975
  size: "small",
24961
24976
  type: "text",
24962
- icon: /* @__PURE__ */ jsx(DownloadOutlined$1, {}),
24977
+ icon: /* @__PURE__ */ jsx(DownloadOutlined, {}),
24963
24978
  onClick: () => {
24964
24979
  saveAs(file.url, `${file.title}${file.extname}`);
24965
24980
  }
@@ -25104,7 +25119,7 @@ const FileSelector = (props) => {
25104
25119
  const file = fileList[photoIndex];
25105
25120
  saveAs(file.url, `${file.title}${file.extname}`);
25106
25121
  },
25107
- children: /* @__PURE__ */ jsx(DownloadOutlined$1, {})
25122
+ children: /* @__PURE__ */ jsx(DownloadOutlined, {})
25108
25123
  },
25109
25124
  "preview-img"
25110
25125
  )
@@ -29015,10 +29030,10 @@ const Cascader = connect(
29015
29030
  const displayRender = (labels, selectedOptions) => {
29016
29031
  return /* @__PURE__ */ jsx(Space$1, { split: "/", children: labels.map((label, index2) => {
29017
29032
  if (selectedOptions[index2]) {
29018
- return /* @__PURE__ */ jsx("span", { children: label }, label);
29033
+ return /* @__PURE__ */ jsx("span", { children: label }, index2);
29019
29034
  }
29020
29035
  const item = toArr$3(value).filter(Boolean).find((item2) => item2[fieldNames.value] === label);
29021
- return /* @__PURE__ */ jsx("span", { children: (item == null ? void 0 : item[fieldNames.label]) || label }, label);
29036
+ return /* @__PURE__ */ jsx("span", { children: (item == null ? void 0 : item[fieldNames.label]) || label }, index2);
29022
29037
  }) });
29023
29038
  };
29024
29039
  const handelDropDownVisible = (value2) => {
@@ -30766,26 +30781,31 @@ function FormDialog(title, id2, renderer, theme2) {
30766
30781
  const { form } = env;
30767
30782
  if (!form)
30768
30783
  return null;
30769
- return /* @__PURE__ */ jsx(GlobalThemeProvider, { theme: theme2, children: /* @__PURE__ */ jsx(Observer, { children: () => /* @__PURE__ */ jsx(
30770
- Modal,
30771
- __spreadProps(__spreadValues({}, modal), {
30772
- open,
30773
- confirmLoading: form.submitting,
30774
- onCancel: (e) => {
30775
- var _a;
30776
- if (((_a = modal == null ? void 0 : modal.onCancel) == null ? void 0 : _a.call(modal, e)) !== false) {
30777
- reject == null ? void 0 : reject();
30778
- }
30779
- },
30780
- onOk: (e) => __async(this, null, function* () {
30781
- var _a;
30782
- if (((_a = modal == null ? void 0 : modal.onOk) == null ? void 0 : _a.call(modal, e)) !== false) {
30783
- resolve == null ? void 0 : resolve();
30784
- }
30785
- }),
30786
- children: /* @__PURE__ */ jsx(FormProvider$1, { form, children: /* @__PURE__ */ jsx(DialogContent, {}) })
30787
- })
30788
- ) }) });
30784
+ return /* @__PURE__ */ jsx(GlobalThemeProvider, { theme: theme2, children: /* @__PURE__ */ jsx(Observer, { children: () => {
30785
+ const { token } = useToken();
30786
+ return /* @__PURE__ */ jsx(
30787
+ Modal,
30788
+ __spreadProps(__spreadValues({
30789
+ zIndex: token.zIndexPopupBase + 1e3
30790
+ }, modal), {
30791
+ open,
30792
+ confirmLoading: form.submitting,
30793
+ onCancel: (e) => {
30794
+ var _a;
30795
+ if (((_a = modal == null ? void 0 : modal.onCancel) == null ? void 0 : _a.call(modal, e)) !== false) {
30796
+ reject == null ? void 0 : reject();
30797
+ }
30798
+ },
30799
+ onOk: (e) => __async(this, null, function* () {
30800
+ var _a;
30801
+ if (((_a = modal == null ? void 0 : modal.onOk) == null ? void 0 : _a.call(modal, e)) !== false) {
30802
+ resolve == null ? void 0 : resolve();
30803
+ }
30804
+ }),
30805
+ children: /* @__PURE__ */ jsx(FormProvider$1, { form, children: /* @__PURE__ */ jsx(DialogContent, {}) })
30806
+ })
30807
+ );
30808
+ } }) });
30789
30809
  };
30790
30810
  document.body.appendChild(env.host);
30791
30811
  const formDialog = {
@@ -33699,7 +33719,7 @@ const InternalListBlockProvider = (props) => {
33699
33719
  line-height: 34px;
33700
33720
  }
33701
33721
  .ant-formily-item-feedback-layout-loose {
33702
- margin-bottom: 12px;
33722
+ margin-bottom: 0;
33703
33723
  }
33704
33724
  `),
33705
33725
  children: props.children
@@ -33720,6 +33740,9 @@ const ListBlockProvider = (props) => {
33720
33740
  filter: parsedFilter
33721
33741
  });
33722
33742
  }, [parsedFilter, params]);
33743
+ if (_.isEmpty(parsedFilter) && !_.isEmpty(params == null ? void 0 : params.filter)) {
33744
+ return null;
33745
+ }
33723
33746
  return /* @__PURE__ */ jsx(BlockProvider, __spreadProps(__spreadValues({ name: "list" }, props), { params: paramsWithFilter, children: /* @__PURE__ */ jsx(InternalListBlockProvider, __spreadValues({}, props)) }));
33724
33747
  };
33725
33748
  const useListBlockContext = () => {
@@ -33902,7 +33925,7 @@ const ListDesigner = () => {
33902
33925
  };
33903
33926
  const ListItem = (props) => {
33904
33927
  const field = useField();
33905
- return /* @__PURE__ */ jsx("div", { className: "itemCss", children: /* @__PURE__ */ jsx(RecordProvider, { record: field.value, children: props.children }) });
33928
+ return /* @__PURE__ */ jsx("div", { className: cls("itemCss", props.className), children: /* @__PURE__ */ jsx(RecordProvider, { record: field.value, children: props.children }) });
33906
33929
  };
33907
33930
  const useStyles$9 = genStyleHook("nb-list", (token) => {
33908
33931
  const { componentCls } = token;
@@ -33910,7 +33933,7 @@ const useStyles$9 = genStyleHook("nb-list", (token) => {
33910
33933
  [componentCls]: {
33911
33934
  width: "100%",
33912
33935
  marginBottom: token.marginLG,
33913
- ".nb-action-bar": { marginTop: token.marginXS },
33936
+ ".nb-action-bar:not(:empty)": { marginTop: token.marginXS },
33914
33937
  "&:hover": { "> .general-schema-designer": { display: "block" } },
33915
33938
  "> .general-schema-designer": {
33916
33939
  position: "absolute",
@@ -33942,8 +33965,13 @@ const useStyles$9 = genStyleHook("nb-list", (token) => {
33942
33965
  display: "flex",
33943
33966
  width: "100%",
33944
33967
  flexDirection: "column",
33945
- padding: "4px 5px 0",
33946
- borderBottom: `1px solid ${token.colorBorderSecondary}`
33968
+ "&:not(:first-child)": {
33969
+ paddingTop: token.paddingContentVertical
33970
+ },
33971
+ "&:not(:last-child)": {
33972
+ paddingBottom: token.paddingContentVertical,
33973
+ borderBottom: `1px solid ${token.colorBorderSecondary}`
33974
+ }
33947
33975
  }
33948
33976
  }
33949
33977
  };
@@ -34004,7 +34032,7 @@ const InternalList = (props) => {
34004
34032
  children: /* @__PURE__ */ jsxs(SortableItem, { className: cx("nb-list", componentCls, hashId), children: [
34005
34033
  /* @__PURE__ */ jsx(
34006
34034
  List$1,
34007
- {
34035
+ __spreadProps(__spreadValues({}, props), {
34008
34036
  pagination: !meta || meta.count <= meta.pageSize ? false : {
34009
34037
  onChange: onPaginationChange,
34010
34038
  total: (meta == null ? void 0 : meta.count) || 0,
@@ -34012,7 +34040,7 @@ const InternalList = (props) => {
34012
34040
  current: (meta == null ? void 0 : meta.page) || 1
34013
34041
  },
34014
34042
  loading: service == null ? void 0 : service.loading,
34015
- children: (_b = field.value) == null ? void 0 : _b.map((item, index2) => {
34043
+ children: ((_b = field.value) == null ? void 0 : _b.length) ? field.value.map((item, index2) => {
34016
34044
  return /* @__PURE__ */ jsx(
34017
34045
  RecursionField,
34018
34046
  {
@@ -34023,8 +34051,8 @@ const InternalList = (props) => {
34023
34051
  },
34024
34052
  index2
34025
34053
  );
34026
- })
34027
- }
34054
+ }) : null
34055
+ })
34028
34056
  ),
34029
34057
  /* @__PURE__ */ jsx(Designer4, {})
34030
34058
  ] })
@@ -39641,7 +39669,7 @@ Upload.Attachment = connect((props) => {
39641
39669
  {
39642
39670
  size: "small",
39643
39671
  type: "text",
39644
- icon: /* @__PURE__ */ jsx(DownloadOutlined$1, {}),
39672
+ icon: /* @__PURE__ */ jsx(DownloadOutlined, {}),
39645
39673
  onClick: () => {
39646
39674
  saveAs(file.url, `${file.title}${file.extname}`);
39647
39675
  }
@@ -39741,7 +39769,7 @@ Upload.Attachment = connect((props) => {
39741
39769
  const file = images[fileIndex];
39742
39770
  saveAs(file.url, `${file.title}${file.extname}`);
39743
39771
  },
39744
- children: /* @__PURE__ */ jsx(DownloadOutlined$1, {})
39772
+ children: /* @__PURE__ */ jsx(DownloadOutlined, {})
39745
39773
  },
39746
39774
  "preview-img"
39747
39775
  )
@@ -46191,9 +46219,10 @@ const PreviewCom = (props) => {
46191
46219
  const fieldsData = (_b = Object.values((_a = data == null ? void 0 : data.data) == null ? void 0 : _a.fields)) == null ? void 0 : _b.map((v) => {
46192
46220
  if (v.source) {
46193
46221
  const option = (fields2 == null ? void 0 : fields2.data.find((h) => h.name === v.name)) || v;
46194
- return __spreadProps(__spreadValues({}, v), { uiSchema: option.uiSchema });
46222
+ return __spreadProps(__spreadValues({}, v), { uiSchema: omit$1(option.uiSchema, "rawTitle") });
46195
46223
  } else {
46196
- return (fields2 == null ? void 0 : fields2.data.find((h) => h.name === v.name)) || v;
46224
+ const option = (fields2 == null ? void 0 : fields2.data.find((h) => h.name === v.name)) || v;
46225
+ return __spreadProps(__spreadValues({}, option), { uiSchema: omit$1(option.uiSchema, "rawTitle") });
46197
46226
  }
46198
46227
  });
46199
46228
  field.value = fieldsData;
@@ -46306,7 +46335,7 @@ const PreviewCom = (props) => {
46306
46335
  {
46307
46336
  defaultValue: ((_a = item == null ? void 0 : item.uiSchema) == null ? void 0 : _a.title) || text2,
46308
46337
  onChange: (e) => handleFieldChange(
46309
- __spreadProps(__spreadValues({}, item), { uiSchema: __spreadProps(__spreadValues({}, item == null ? void 0 : item.uiSchema), { title: e.target.value, rawTitle: e.target.value }) }),
46338
+ __spreadProps(__spreadValues({}, item), { uiSchema: __spreadProps(__spreadValues({}, omit$1(item == null ? void 0 : item.uiSchema, "rawTitle")), { title: e.target.value }) }),
46310
46339
  index2
46311
46340
  )
46312
46341
  }
@@ -1,6 +1,4 @@
1
1
  /// <reference types="react" />
2
2
  export declare const AutoComplete: import("react").ForwardRefExoticComponent<Omit<Partial<import("antd").AutoCompleteProps<unknown, import("rc-select/lib/Select").BaseOptionType | import("rc-select/lib/Select").DefaultOptionType> & {
3
3
  children?: import("react").ReactNode;
4
- } & {
5
- ref?: import("react").Ref<import("antd").RefSelectProps>;
6
- }>, "ref"> & import("react").RefAttributes<unknown>>;
4
+ } & import("react").RefAttributes<import("antd").RefSelectProps>>, "ref"> & import("react").RefAttributes<unknown>>;
@@ -1,5 +1,9 @@
1
- import { IRecursionFieldProps, ISchemaFieldProps } from '@formily/react';
1
+ import { IRecursionFieldProps, ISchemaFieldProps, Schema } from '@formily/react';
2
2
  import React from 'react';
3
+ type SchemaComponentOnChange = {
4
+ onChange?: (s: Schema) => void;
5
+ };
3
6
  export declare const SchemaComponent: (props: (ISchemaFieldProps | IRecursionFieldProps) & {
4
7
  memoized?: boolean;
5
- }) => React.JSX.Element;
8
+ } & SchemaComponentOnChange) => React.JSX.Element;
9
+ export {};
package/lib/index.js CHANGED
@@ -832,7 +832,6 @@ var import_g2plot = require("@antv/g2plot");
832
832
  var import_file_saver = require("file-saver");
833
833
  var import_react_image_lightbox = __toESM(require("react-image-lightbox"));
834
834
  require("react-image-lightbox/style.css");
835
- var import_DownloadOutlined = __toESM(require("@ant-design/icons/DownloadOutlined"));
836
835
  var import_style2 = __toESM(require("antd/es/upload/style"));
837
836
  var import_react_quill = __toESM(require("react-quill"));
838
837
  var import_react_drag_listview = __toESM(require("react-drag-listview"));
@@ -10056,7 +10055,21 @@ const useMemoizedSchema = (schema3) => {
10056
10055
  };
10057
10056
  const RecursionSchemaComponent = (props) => {
10058
10057
  const _a = props, { components: components2, scope, schema: schema3 } = _a, others = __objRest(_a, ["components", "scope", "schema"]);
10059
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SchemaComponentOptions, { inherit: true, components: components2, scope, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.RecursionField, __spreadProps(__spreadValues({}, others), { schema: toSchema(schema3) })) });
10058
+ const ctx = (0, import_react2.useContext)(SchemaComponentContext);
10059
+ const s2 = (0, import_react2.useMemo)(() => toSchema(schema3), [schema3]);
10060
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
10061
+ SchemaComponentContext.Provider,
10062
+ {
10063
+ value: __spreadProps(__spreadValues({}, ctx), {
10064
+ refresh: () => {
10065
+ var _a2, _b;
10066
+ (_a2 = ctx.refresh) == null ? void 0 : _a2.call(ctx);
10067
+ (_b = props.onChange) == null ? void 0 : _b.call(props, s2);
10068
+ }
10069
+ }),
10070
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SchemaComponentOptions, { inherit: true, components: components2, scope, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.RecursionField, __spreadProps(__spreadValues({}, others), { schema: s2 })) })
10071
+ }
10072
+ );
10060
10073
  };
10061
10074
  const MemoizedSchemaComponent = (props) => {
10062
10075
  const _a = props, { schema: schema3 } = _a, others = __objRest(_a, ["schema"]);
@@ -16259,17 +16272,18 @@ class Application {
16259
16272
  }
16260
16273
  load() {
16261
16274
  return __async(this, null, function* () {
16275
+ var _a, _b, _c, _d, _e;
16262
16276
  let loadFailed = false;
16263
16277
  this.ws.on("message", (event) => {
16264
- var _a, _b, _c;
16278
+ var _a2, _b2, _c2;
16265
16279
  const data = JSON.parse(event.data);
16266
16280
  console.log(data.payload);
16267
- if ((_a = data == null ? void 0 : data.payload) == null ? void 0 : _a.refresh) {
16281
+ if ((_a2 = data == null ? void 0 : data.payload) == null ? void 0 : _a2.refresh) {
16268
16282
  window.location.reload();
16269
16283
  return;
16270
16284
  }
16271
16285
  if (data.type === "notification") {
16272
- this.notification[((_b = data.payload) == null ? void 0 : _b.type) || "info"]({ message: (_c = data.payload) == null ? void 0 : _c.message });
16286
+ this.notification[((_b2 = data.payload) == null ? void 0 : _b2.type) || "info"]({ message: (_c2 = data.payload) == null ? void 0 : _c2.message });
16273
16287
  return;
16274
16288
  }
16275
16289
  const maintaining = data.type === "maintaining" && data.payload.code !== "APP_RUNNING";
@@ -16301,10 +16315,10 @@ class Application {
16301
16315
  });
16302
16316
  }
16303
16317
  loadFailed = true;
16318
+ const others = ((_b = (_a = error2 == null ? void 0 : error2.response) == null ? void 0 : _a.data) == null ? void 0 : _b.error) || ((_e = (_d = (_c = error2 == null ? void 0 : error2.response) == null ? void 0 : _c.data) == null ? void 0 : _d.errors) == null ? void 0 : _e[0]) || error2;
16304
16319
  this.error = __spreadValues({
16305
- code: "LOAD_ERROR",
16306
- message: error2.message
16307
- }, error2);
16320
+ code: "LOAD_ERROR"
16321
+ }, others);
16308
16322
  console.error(this.error);
16309
16323
  }
16310
16324
  this.loading = false;
@@ -22514,8 +22528,6 @@ const useStyles$f = genStyleHook("nb-action-drawer", (token) => {
22514
22528
  const { componentCls } = token;
22515
22529
  return {
22516
22530
  [componentCls]: {
22517
- zIndex: "1150 !important",
22518
- // fix https://nocobase.height.app/T-2797
22519
22531
  overflow: "hidden",
22520
22532
  "&.reset": {
22521
22533
  "&.nb-action-popup": {
@@ -23730,7 +23742,10 @@ function WorkflowConfig() {
23730
23742
  const description = {
23731
23743
  submit: t("Workflow will be triggered after submitting succeeded.", { ns: "workflow" }),
23732
23744
  "customize:save": t("Workflow will be triggered after saving succeeded.", { ns: "workflow" }),
23733
- "customize:triggerWorkflows": t("Workflow will be triggered directly once the button clicked.", { ns: "workflow" })
23745
+ "customize:triggerWorkflows": t(
23746
+ "Workflow will be triggered directly once the button clicked, without data saving.",
23747
+ { ns: "workflow" }
23748
+ )
23734
23749
  }[fieldSchema == null ? void 0 : fieldSchema["x-action"]];
23735
23750
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
23736
23751
  SchemaSettingsModalItem,
@@ -25491,7 +25506,7 @@ ReadPretty$b.File = function File(props) {
25491
25506
  {
25492
25507
  size: "small",
25493
25508
  type: "text",
25494
- icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DownloadOutlined.default, {}),
25509
+ icon: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DownloadOutlined, {}),
25495
25510
  onClick: (e) => {
25496
25511
  e.preventDefault();
25497
25512
  e.stopPropagation();
@@ -25537,7 +25552,7 @@ ReadPretty$b.File = function File(props) {
25537
25552
  const file = images[fileIndex];
25538
25553
  (0, import_file_saver.saveAs)(file.url, `${file.title}${file.extname}`);
25539
25554
  },
25540
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_DownloadOutlined.default, {})
25555
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icons.DownloadOutlined, {})
25541
25556
  },
25542
25557
  "download"
25543
25558
  )
@@ -29752,10 +29767,10 @@ const Cascader = (0, import_react.connect)(
29752
29767
  const displayRender = (labels, selectedOptions) => {
29753
29768
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_antd.Space, { split: "/", children: labels.map((label, index2) => {
29754
29769
  if (selectedOptions[index2]) {
29755
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: label }, label);
29770
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: label }, index2);
29756
29771
  }
29757
29772
  const item = (0, import_shared.toArr)(value).filter(Boolean).find((item2) => item2[fieldNames.value] === label);
29758
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: (item == null ? void 0 : item[fieldNames.label]) || label }, label);
29773
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: (item == null ? void 0 : item[fieldNames.label]) || label }, index2);
29759
29774
  }) });
29760
29775
  };
29761
29776
  const handelDropDownVisible = (value2) => {
@@ -31503,26 +31518,31 @@ function FormDialog(title, id2, renderer, theme2) {
31503
31518
  const { form } = env;
31504
31519
  if (!form)
31505
31520
  return null;
31506
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GlobalThemeProvider, { theme: theme2, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Observer, { children: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
31507
- import_antd.Modal,
31508
- __spreadProps(__spreadValues({}, modal), {
31509
- open,
31510
- confirmLoading: form.submitting,
31511
- onCancel: (e) => {
31512
- var _a;
31513
- if (((_a = modal == null ? void 0 : modal.onCancel) == null ? void 0 : _a.call(modal, e)) !== false) {
31514
- reject == null ? void 0 : reject();
31515
- }
31516
- },
31517
- onOk: (e) => __async(this, null, function* () {
31518
- var _a;
31519
- if (((_a = modal == null ? void 0 : modal.onOk) == null ? void 0 : _a.call(modal, e)) !== false) {
31520
- resolve == null ? void 0 : resolve();
31521
- }
31522
- }),
31523
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.FormProvider, { form, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogContent, {}) })
31524
- })
31525
- ) }) });
31521
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(GlobalThemeProvider, { theme: theme2, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.Observer, { children: () => {
31522
+ const { token } = useToken();
31523
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
31524
+ import_antd.Modal,
31525
+ __spreadProps(__spreadValues({
31526
+ zIndex: token.zIndexPopupBase + 1e3
31527
+ }, modal), {
31528
+ open,
31529
+ confirmLoading: form.submitting,
31530
+ onCancel: (e) => {
31531
+ var _a;
31532
+ if (((_a = modal == null ? void 0 : modal.onCancel) == null ? void 0 : _a.call(modal, e)) !== false) {
31533
+ reject == null ? void 0 : reject();
31534
+ }
31535
+ },
31536
+ onOk: (e) => __async(this, null, function* () {
31537
+ var _a;
31538
+ if (((_a = modal == null ? void 0 : modal.onOk) == null ? void 0 : _a.call(modal, e)) !== false) {
31539
+ resolve == null ? void 0 : resolve();
31540
+ }
31541
+ }),
31542
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_react.FormProvider, { form, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(DialogContent, {}) })
31543
+ })
31544
+ );
31545
+ } }) });
31526
31546
  };
31527
31547
  document.body.appendChild(env.host);
31528
31548
  const formDialog = {
@@ -34436,7 +34456,7 @@ const InternalListBlockProvider = (props) => {
34436
34456
  line-height: 34px;
34437
34457
  }
34438
34458
  .ant-formily-item-feedback-layout-loose {
34439
- margin-bottom: 12px;
34459
+ margin-bottom: 0;
34440
34460
  }
34441
34461
  `),
34442
34462
  children: props.children
@@ -34457,6 +34477,9 @@ const ListBlockProvider = (props) => {
34457
34477
  filter: parsedFilter
34458
34478
  });
34459
34479
  }, [parsedFilter, params]);
34480
+ if (import_lodash.default.isEmpty(parsedFilter) && !import_lodash.default.isEmpty(params == null ? void 0 : params.filter)) {
34481
+ return null;
34482
+ }
34460
34483
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(BlockProvider, __spreadProps(__spreadValues({ name: "list" }, props), { params: paramsWithFilter, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(InternalListBlockProvider, __spreadValues({}, props)) }));
34461
34484
  };
34462
34485
  const useListBlockContext = () => {
@@ -34639,7 +34662,7 @@ const ListDesigner = () => {
34639
34662
  };
34640
34663
  const ListItem = (props) => {
34641
34664
  const field = (0, import_react.useField)();
34642
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "itemCss", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RecordProvider, { record: field.value, children: props.children }) });
34665
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: (0, import_classnames.default)("itemCss", props.className), children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(RecordProvider, { record: field.value, children: props.children }) });
34643
34666
  };
34644
34667
  const useStyles$9 = genStyleHook("nb-list", (token) => {
34645
34668
  const { componentCls } = token;
@@ -34647,7 +34670,7 @@ const useStyles$9 = genStyleHook("nb-list", (token) => {
34647
34670
  [componentCls]: {
34648
34671
  width: "100%",
34649
34672
  marginBottom: token.marginLG,
34650
- ".nb-action-bar": { marginTop: token.marginXS },
34673
+ ".nb-action-bar:not(:empty)": { marginTop: token.marginXS },
34651
34674
  "&:hover": { "> .general-schema-designer": { display: "block" } },
34652
34675
  "> .general-schema-designer": {
34653
34676
  position: "absolute",
@@ -34679,8 +34702,13 @@ const useStyles$9 = genStyleHook("nb-list", (token) => {
34679
34702
  display: "flex",
34680
34703
  width: "100%",
34681
34704
  flexDirection: "column",
34682
- padding: "4px 5px 0",
34683
- borderBottom: `1px solid ${token.colorBorderSecondary}`
34705
+ "&:not(:first-child)": {
34706
+ paddingTop: token.paddingContentVertical
34707
+ },
34708
+ "&:not(:last-child)": {
34709
+ paddingBottom: token.paddingContentVertical,
34710
+ borderBottom: `1px solid ${token.colorBorderSecondary}`
34711
+ }
34684
34712
  }
34685
34713
  }
34686
34714
  };
@@ -34741,7 +34769,7 @@ const InternalList = (props) => {
34741
34769
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(SortableItem, { className: (0, import_css.cx)("nb-list", componentCls, hashId), children: [
34742
34770
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
34743
34771
  import_antd.List,
34744
- {
34772
+ __spreadProps(__spreadValues({}, props), {
34745
34773
  pagination: !meta || meta.count <= meta.pageSize ? false : {
34746
34774
  onChange: onPaginationChange,
34747
34775
  total: (meta == null ? void 0 : meta.count) || 0,
@@ -34749,7 +34777,7 @@ const InternalList = (props) => {
34749
34777
  current: (meta == null ? void 0 : meta.page) || 1
34750
34778
  },
34751
34779
  loading: service == null ? void 0 : service.loading,
34752
- children: (_b = field.value) == null ? void 0 : _b.map((item, index2) => {
34780
+ children: ((_b = field.value) == null ? void 0 : _b.length) ? field.value.map((item, index2) => {
34753
34781
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
34754
34782
  import_react.RecursionField,
34755
34783
  {
@@ -34760,8 +34788,8 @@ const InternalList = (props) => {
34760
34788
  },
34761
34789
  index2
34762
34790
  );
34763
- })
34764
- }
34791
+ }) : null
34792
+ })
34765
34793
  ),
34766
34794
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Designer4, {})
34767
34795
  ] })
@@ -46928,9 +46956,10 @@ const PreviewCom = (props) => {
46928
46956
  const fieldsData = (_b = Object.values((_a = data == null ? void 0 : data.data) == null ? void 0 : _a.fields)) == null ? void 0 : _b.map((v) => {
46929
46957
  if (v.source) {
46930
46958
  const option = (fields2 == null ? void 0 : fields2.data.find((h) => h.name === v.name)) || v;
46931
- return __spreadProps(__spreadValues({}, v), { uiSchema: option.uiSchema });
46959
+ return __spreadProps(__spreadValues({}, v), { uiSchema: (0, import_lodash.omit)(option.uiSchema, "rawTitle") });
46932
46960
  } else {
46933
- return (fields2 == null ? void 0 : fields2.data.find((h) => h.name === v.name)) || v;
46961
+ const option = (fields2 == null ? void 0 : fields2.data.find((h) => h.name === v.name)) || v;
46962
+ return __spreadProps(__spreadValues({}, option), { uiSchema: (0, import_lodash.omit)(option.uiSchema, "rawTitle") });
46934
46963
  }
46935
46964
  });
46936
46965
  field.value = fieldsData;
@@ -47043,7 +47072,7 @@ const PreviewCom = (props) => {
47043
47072
  {
47044
47073
  defaultValue: ((_a = item == null ? void 0 : item.uiSchema) == null ? void 0 : _a.title) || text2,
47045
47074
  onChange: (e) => handleFieldChange(
47046
- __spreadProps(__spreadValues({}, item), { uiSchema: __spreadProps(__spreadValues({}, item == null ? void 0 : item.uiSchema), { title: e.target.value, rawTitle: e.target.value }) }),
47075
+ __spreadProps(__spreadValues({}, item), { uiSchema: __spreadProps(__spreadValues({}, (0, import_lodash.omit)(item == null ? void 0 : item.uiSchema, "rawTitle")), { title: e.target.value }) }),
47047
47076
  index2
47048
47077
  )
47049
47078
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nocobase/client",
3
- "version": "0.18.0-alpha.9",
3
+ "version": "0.19.0-alpha.2",
4
4
  "license": "Apache-2.0",
5
5
  "main": "lib/index.js",
6
6
  "module": "es/index.mjs",
@@ -25,11 +25,11 @@
25
25
  "@formily/reactive-react": "^2.2.27",
26
26
  "@formily/shared": "^2.2.27",
27
27
  "@formily/validator": "^2.2.27",
28
- "@nocobase/evaluators": "0.18.0-alpha.9",
29
- "@nocobase/sdk": "0.18.0-alpha.9",
30
- "@nocobase/utils": "0.18.0-alpha.9",
28
+ "@nocobase/evaluators": "0.19.0-alpha.2",
29
+ "@nocobase/sdk": "0.19.0-alpha.2",
30
+ "@nocobase/utils": "0.19.0-alpha.2",
31
31
  "ahooks": "^3.7.2",
32
- "antd": "^5.12.2",
32
+ "antd": "^5.12.8",
33
33
  "antd-style": "3.4.5",
34
34
  "axios": "^0.26.1",
35
35
  "classnames": "^2.3.1",
@@ -72,5 +72,5 @@
72
72
  "dumi": "^2.2.0",
73
73
  "dumi-theme-nocobase": "^0.2.19"
74
74
  },
75
- "gitHead": "34ca0df4eede2e83fc86297b0fe19eba970e2b1b"
75
+ "gitHead": "cff5b77ecf12ccdb450d50d505b3aa44a68478c8"
76
76
  }