@platox/pivot-table 0.0.34 → 0.0.35

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 (47) hide show
  1. package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/custome-data.js +72 -81
  2. package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/custome-data.js.map +1 -1
  3. package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/index.d.ts +1 -5
  4. package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/index.js +11 -20
  5. package/es/dashboard-workbench/components/add-module-modal/add-calendar-modal/index.js.map +1 -1
  6. package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.d.ts +4 -2
  7. package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.js.map +1 -1
  8. package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/index.d.ts +1 -8
  9. package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/index.js +11 -20
  10. package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/index.js.map +1 -1
  11. package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/index.d.ts +1 -7
  12. package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/index.js +11 -20
  13. package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/index.js.map +1 -1
  14. package/es/dashboard-workbench/components/module-content/calendar-module/index.js +5 -7
  15. package/es/dashboard-workbench/components/module-content/calendar-module/index.js.map +1 -1
  16. package/es/dashboard-workbench/components/module-content/calendar-module/locales/en.d.ts +7 -0
  17. package/es/dashboard-workbench/components/module-content/calendar-module/locales/en.js +10 -0
  18. package/es/dashboard-workbench/components/module-content/calendar-module/locales/en.js.map +1 -0
  19. package/es/dashboard-workbench/components/module-content/calendar-module/locales/zh.d.ts +22 -0
  20. package/es/dashboard-workbench/components/module-content/calendar-module/locales/zh.js +29 -0
  21. package/es/dashboard-workbench/components/module-content/calendar-module/locales/zh.js.map +1 -0
  22. package/es/dashboard-workbench/components/module-content/chart-module/Empty.d.ts +5 -0
  23. package/es/dashboard-workbench/components/module-content/chart-module/Empty.js +30 -0
  24. package/es/dashboard-workbench/components/module-content/chart-module/Empty.js.map +1 -0
  25. package/es/dashboard-workbench/components/module-content/chart-module/index.js +39 -17
  26. package/es/dashboard-workbench/components/module-content/chart-module/index.js.map +1 -1
  27. package/es/dashboard-workbench/components/module-content/utils.js.map +1 -1
  28. package/es/dashboard-workbench/components/ui/modal/editor-header.d.ts +12 -0
  29. package/es/dashboard-workbench/components/ui/modal/editor-header.js +59 -0
  30. package/es/dashboard-workbench/components/ui/modal/editor-header.js.map +1 -0
  31. package/es/dashboard-workbench/components/ui/modal/index.module.less.js +9 -0
  32. package/es/dashboard-workbench/components/ui/modal/index.module.less.js.map +1 -0
  33. package/es/dashboard-workbench/icon/icon-empty.d.ts +2 -0
  34. package/es/dashboard-workbench/icon/icon-empty.js +139 -0
  35. package/es/dashboard-workbench/icon/icon-empty.js.map +1 -0
  36. package/es/dashboard-workbench/index.js +34 -55
  37. package/es/dashboard-workbench/index.js.map +1 -1
  38. package/es/dashboard-workbench/lang/en-US.d.ts +1 -0
  39. package/es/dashboard-workbench/lang/en-US.js +3 -2
  40. package/es/dashboard-workbench/lang/en-US.js.map +1 -1
  41. package/es/dashboard-workbench/lang/zh-CN.d.ts +1 -0
  42. package/es/dashboard-workbench/lang/zh-CN.js +2 -1
  43. package/es/dashboard-workbench/lang/zh-CN.js.map +1 -1
  44. package/es/style.css +1 -1
  45. package/package.json +8 -2
  46. package/umd/pivot-table.umd.cjs +49 -49
  47. package/umd/style.css +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sources":["../../../../packages/dashboard-workbench/components/module-content/utils.ts"],"sourcesContent":["import dayjs from 'dayjs'\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ntype Condition = {\n field: string\n condition: string\n val?: string | number\n val2?: string | number\n rdate?: any\n type?: any\n}\n\ntype ConditionType = 'all' | 'any'\n\nexport interface FilterData {\n conditionList: Condition[]\n conditionType: ConditionType\n}\n\nfunction getRDate({ rdate, u, field, value }: any) {\n if (rdate) {\n switch (rdate) {\n case 'exactdate':\n return `${field}${u}eq.${value}`\n case 'today':\n return `${field}${u}eq.${dayjs().format('YYYY-MM-DD')}`\n case 'yesterday':\n return `${field}${u}eq.${dayjs().subtract(1, 'day').format('YYYY-MM-DD')}`\n case 'thisweek':\n return `${field}${u}gte.${dayjs()\n .startOf('week')\n .add(1, 'day')\n .format('YYYY-MM-DD')}&${field}${u}lte.${dayjs()\n .endOf('week')\n .add(1, 'day')\n .format('YYYY-MM-DD')}`\n case 'lastweek': {\n const startOfLastWeek = dayjs().subtract(1, 'week').startOf('week').add(1, 'day')\n const endOfLastWeek = dayjs().subtract(1, 'week').endOf('week').add(1, 'day')\n return `${field}${u}gte.${startOfLastWeek.format(\n 'YYYY-MM-DD'\n )}&${field}${u}lte.${endOfLastWeek.format('YYYY-MM-DD')}`\n }\n case 'thismonth':\n return `${field}${u}gte.${dayjs()\n .startOf('month')\n .format('YYYY-MM-DD')}&${field}${u}lte.${dayjs().endOf('month').format('YYYY-MM-DD')}`\n case 'lastmonth': {\n const startOfLastMonth = dayjs().subtract(1, 'month').startOf('month')\n const endOfLastMonth = dayjs().subtract(1, 'month').endOf('month')\n return `${field}${u}gte.${startOfLastMonth.format(\n 'YYYY-MM-DD'\n )}&${field}${u}lte.${endOfLastMonth.format('YYYY-MM-DD')}`\n }\n case 'last7days':\n return `${field}${u}gte.${dayjs()\n .subtract(7, 'days')\n .format('YYYY-MM-DD')}&${field}${u}lte.${dayjs().format('YYYY-MM-DD')}`\n case 'last30days':\n return `${field}${u}gte.${dayjs()\n .subtract(30, 'days')\n .format('YYYY-MM-DD')}&${field}${u}lte.${dayjs().format('YYYY-MM-DD')}`\n default:\n return '' // 对于未支持的 rdate 值返回空字符串\n }\n }\n}\n\nexport const mapConditionsToPostgrest = (filterData: FilterData): string => {\n const { conditionList, conditionType = 'all' } = filterData\n const u = conditionType === 'all' ? '=' : '.' // 拼接逻辑\n const conditionStrings = conditionList\n .map(condition => {\n const { field, condition: cond, val, val2, rdate, type } = condition\n\n const value = (val as any)?.value ? (val as any)?.value : val\n switch (cond) {\n case '=':\n if (type !== 'timestamp') {\n return `${field}${u}eq.${value}`\n } else {\n if (rdate === 'exactdate') {\n return `${field}${u}eq.${value}`\n } else {\n return getRDate({ rdate, u, field, value })\n }\n }\n case '!=':\n return `${field}${u}neq.${value}`\n case 'include':\n return `${field}${u}cs.{${value}}` // 包含值\n case 'notinclude':\n return `${field}${u}not.cs.{${value}}` // 不包含值\n case '>':\n if (rdate === 'today') {\n return `${field}${u}gt.${new Date().toISOString().split('T')[0]}`\n }\n if (rdate === 'yesterday') {\n const yesterday = new Date()\n yesterday.setDate(yesterday.getDate() - 1)\n return `${field}${u}gt.${yesterday.toISOString().split('T')[0]}`\n }\n return `${field}${u}gt.${value}`\n case '>=':\n return `${field}${u}gte.${value}`\n case '<':\n if (rdate === 'today') {\n return `${field}${u}lt.${new Date().toISOString().split('T')[0]}`\n }\n if (rdate === 'yesterday') {\n const yesterday = new Date()\n yesterday.setDate(yesterday.getDate() - 1)\n return `${field}${u}lt.${yesterday.toISOString().split('T')[0]}`\n }\n return `${field}${u}lt.${value}`\n case '<=':\n return `${field}${u}lte.${value}`\n case 'contain':\n if (value && val2) {\n return `${field}${u}gte.${value},${field}.lte.${val2}`\n }\n return ''\n case 'before':\n return `${field}${u}lt.${value}`\n case 'after':\n return `${field}${u}gt.${value}`\n case 'null':\n return `${field}${u}is.null`\n case 'notnull':\n return `${field}${u}not.is.null`\n default:\n return ''\n }\n })\n .filter(Boolean) // 过滤掉空字符串\n\n let joinedCondition\n if (conditionType === 'all' || conditionStrings.length === 1) {\n joinedCondition = conditionStrings.join('&')\n } else {\n joinedCondition = `or=(${conditionStrings.join(',')})`\n }\n return joinedCondition\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sources":["../../../../packages/dashboard-workbench/components/module-content/utils.ts"],"sourcesContent":["import dayjs from 'dayjs'\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\ntype Condition = {\n field: string\n condition: string\n val?: string | number\n val2?: string | number\n rdate?: any\n type?: any\n}\n\ntype ConditionType = 'all' | 'any'\n\nexport interface FilterData {\n conditionList: Condition[]\n conditionType: ConditionType\n}\n\nfunction getRDate({ rdate, u, field, value }: any) {\n if (rdate) {\n switch (rdate) {\n case 'exactdate':\n return `${field}${u}eq.${value}`\n case 'today':\n return `${field}${u}eq.${dayjs().format('YYYY-MM-DD')}`\n case 'yesterday':\n return `${field}${u}eq.${dayjs().subtract(1, 'day').format('YYYY-MM-DD')}`\n case 'thisweek':\n return `${field}${u}gte.${dayjs()\n .startOf('week')\n .add(1, 'day')\n .format('YYYY-MM-DD')}&${field}${u}lte.${dayjs()\n .endOf('week')\n .add(1, 'day')\n .format('YYYY-MM-DD')}`\n case 'lastweek': {\n const startOfLastWeek = dayjs().subtract(1, 'week').startOf('week').add(1, 'day')\n const endOfLastWeek = dayjs().subtract(1, 'week').endOf('week').add(1, 'day')\n return `${field}${u}gte.${startOfLastWeek.format(\n 'YYYY-MM-DD'\n )}&${field}${u}lte.${endOfLastWeek.format('YYYY-MM-DD')}`\n }\n case 'thismonth':\n return `${field}${u}gte.${dayjs()\n .startOf('month')\n .format('YYYY-MM-DD')}&${field}${u}lte.${dayjs().endOf('month').format('YYYY-MM-DD')}`\n case 'lastmonth': {\n const startOfLastMonth = dayjs().subtract(1, 'month').startOf('month')\n const endOfLastMonth = dayjs().subtract(1, 'month').endOf('month')\n return `${field}${u}gte.${startOfLastMonth.format(\n 'YYYY-MM-DD'\n )}&${field}${u}lte.${endOfLastMonth.format('YYYY-MM-DD')}`\n }\n case 'last7days':\n return `${field}${u}gte.${dayjs()\n .subtract(7, 'days')\n .format('YYYY-MM-DD')}&${field}${u}lte.${dayjs().format('YYYY-MM-DD')}`\n case 'last30days':\n return `${field}${u}gte.${dayjs()\n .subtract(30, 'days')\n .format('YYYY-MM-DD')}&${field}${u}lte.${dayjs().format('YYYY-MM-DD')}`\n default:\n return '' // 对于未支持的 rdate 值返回空字符串\n }\n }\n}\n\nexport const mapConditionsToPostgrest = (filterData: FilterData): string => {\n const { conditionList, conditionType = 'all' } = filterData\n const u = conditionType === 'all' ? '=' : '.' // 拼接逻辑\n const conditionStrings = conditionList\n .map(condition => {\n const { field, condition: cond, val, val2, rdate, type } = condition\n const value = (val as any)?.value ? (val as any)?.value : val\n switch (cond) {\n case '=':\n if (type !== 'timestamp') {\n return `${field}${u}eq.${value}`\n } else {\n if (rdate === 'exactdate') {\n return `${field}${u}eq.${value}`\n } else {\n return getRDate({ rdate, u, field, value })\n }\n }\n case '!=':\n return `${field}${u}neq.${value}`\n case 'include':\n return `${field}${u}cs.{${value}}` // 包含值\n case 'notinclude':\n return `${field}${u}not.cs.{${value}}` // 不包含值\n case '>':\n if (rdate === 'today') {\n return `${field}${u}gt.${new Date().toISOString().split('T')[0]}`\n }\n if (rdate === 'yesterday') {\n const yesterday = new Date()\n yesterday.setDate(yesterday.getDate() - 1)\n return `${field}${u}gt.${yesterday.toISOString().split('T')[0]}`\n }\n return `${field}${u}gt.${value}`\n case '>=':\n return `${field}${u}gte.${value}`\n case '<':\n if (rdate === 'today') {\n return `${field}${u}lt.${new Date().toISOString().split('T')[0]}`\n }\n if (rdate === 'yesterday') {\n const yesterday = new Date()\n yesterday.setDate(yesterday.getDate() - 1)\n return `${field}${u}lt.${yesterday.toISOString().split('T')[0]}`\n }\n return `${field}${u}lt.${value}`\n case '<=':\n return `${field}${u}lte.${value}`\n case 'contain':\n if (value && val2) {\n return `${field}${u}gte.${value},${field}.lte.${val2}`\n }\n return ''\n case 'before':\n return `${field}${u}lt.${value}`\n case 'after':\n return `${field}${u}gt.${value}`\n case 'null':\n return `${field}${u}is.null`\n case 'notnull':\n return `${field}${u}not.is.null`\n default:\n return ''\n }\n })\n .filter(Boolean) // 过滤掉空字符串\n\n let joinedCondition\n if (conditionType === 'all' || conditionStrings.length === 1) {\n joinedCondition = conditionStrings.join('&')\n } else {\n joinedCondition = `or=(${conditionStrings.join(',')})`\n }\n return joinedCondition\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CSSProperties } from 'react';
2
+ export type EditorHeaderProps = {
3
+ style?: CSSProperties;
4
+ className?: string;
5
+ value?: string;
6
+ onChange?: (value: string) => void;
7
+ };
8
+ export declare const EditorHeader: {
9
+ (props: EditorHeaderProps): import("react/jsx-runtime").JSX.Element;
10
+ displayName: string;
11
+ };
12
+ export default EditorHeader;
@@ -0,0 +1,59 @@
1
+ import { jsx, jsxs, Fragment } from "react/jsx-runtime";
2
+ import { useControllableValue } from "ahooks";
3
+ import clsx from "clsx";
4
+ import { useRef, useState, useEffect } from "react";
5
+ import { Input, Button } from "antd";
6
+ import styles from "./index.module.less.js";
7
+ import { EditOutlined } from "@ant-design/icons";
8
+ const componentName = "editor-header";
9
+ const EditorHeader = (props) => {
10
+ const { style, className } = props;
11
+ const [value, setValue] = useControllableValue(props);
12
+ const inputRef = useRef(null);
13
+ const [isEdit, setIsEdit] = useState(false);
14
+ useEffect(() => {
15
+ if (isEdit) {
16
+ setTimeout(() => {
17
+ var _a;
18
+ (_a = inputRef.current) == null ? void 0 : _a.focus();
19
+ }, 16);
20
+ }
21
+ }, [isEdit]);
22
+ return /* @__PURE__ */ jsx("div", { className: clsx(styles[`${componentName}`], className), style, children: isEdit ? /* @__PURE__ */ jsx(
23
+ Input,
24
+ {
25
+ className: clsx(styles[`${componentName}__input`]),
26
+ ref: inputRef,
27
+ value,
28
+ onChange: (e) => {
29
+ setValue(e.target.value.trim());
30
+ },
31
+ onBlur: () => {
32
+ setIsEdit(false);
33
+ },
34
+ onKeyDown: (e) => {
35
+ if (e.key == "Enter") {
36
+ setIsEdit(false);
37
+ }
38
+ }
39
+ }
40
+ ) : /* @__PURE__ */ jsxs(Fragment, { children: [
41
+ /* @__PURE__ */ jsx("span", { children: value }),
42
+ /* @__PURE__ */ jsx(
43
+ Button,
44
+ {
45
+ className: clsx(styles[`${componentName}__edit`]),
46
+ onClick: () => setIsEdit(true),
47
+ type: "text",
48
+ size: "small",
49
+ children: /* @__PURE__ */ jsx(EditOutlined, {})
50
+ }
51
+ )
52
+ ] }) });
53
+ };
54
+ EditorHeader.displayName = "EditorHeader";
55
+ export {
56
+ EditorHeader,
57
+ EditorHeader as default
58
+ };
59
+ //# sourceMappingURL=editor-header.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-header.js","sources":["../../../../../packages/dashboard-workbench/components/ui/modal/editor-header.tsx"],"sourcesContent":["import { useControllableValue } from 'ahooks'\nimport clsx from 'clsx'\nimport { useState, type CSSProperties, useRef, useEffect } from 'react'\nimport { Button, Input, InputRef } from 'antd'\n\nimport styles from './index.module.less'\nimport { EditOutlined } from '@ant-design/icons'\n\nconst componentName = 'editor-header'\n\nexport type EditorHeaderProps = {\n style?: CSSProperties\n className?: string\n\n value?: string\n onChange?: (value: string) => void\n}\n\nexport const EditorHeader = (props: EditorHeaderProps) => {\n const { style, className } = props\n\n /* ============================== split =============================== */\n const [value, setValue] = useControllableValue(props)\n\n const inputRef = useRef<InputRef>(null)\n const [isEdit, setIsEdit] = useState<boolean>(false)\n useEffect(() => {\n if (isEdit) {\n setTimeout(() => {\n inputRef.current?.focus()\n }, 16)\n }\n }, [isEdit])\n\n return (\n <div className={clsx(styles[`${componentName}`], className)} style={style}>\n {isEdit ? (\n <Input\n className={clsx(styles[`${componentName}__input`])}\n ref={inputRef}\n value={value}\n onChange={e => {\n setValue(e.target.value.trim())\n }}\n onBlur={() => {\n setIsEdit(false)\n }}\n onKeyDown={e => {\n if (e.key == 'Enter') {\n setIsEdit(false)\n }\n }}\n />\n ) : (\n <>\n <span>{value}</span>\n <Button\n className={clsx(styles[`${componentName}__edit`])}\n onClick={() => setIsEdit(true)}\n type=\"text\"\n size=\"small\"\n >\n <EditOutlined />\n </Button>\n </>\n )}\n </div>\n )\n}\n\nEditorHeader.displayName = 'EditorHeader'\n\nexport default EditorHeader\n"],"names":[],"mappings":";;;;;;;AAQA,MAAM,gBAAgB;AAUT,MAAA,eAAe,CAAC,UAA6B;AAClD,QAAA,EAAE,OAAO,UAAA,IAAc;AAG7B,QAAM,CAAC,OAAO,QAAQ,IAAI,qBAAqB,KAAK;AAE9C,QAAA,WAAW,OAAiB,IAAI;AACtC,QAAM,CAAC,QAAQ,SAAS,IAAI,SAAkB,KAAK;AACnD,YAAU,MAAM;AACd,QAAI,QAAQ;AACV,iBAAW,MAAM;;AACf,uBAAS,YAAT,mBAAkB;AAAA,SACjB,EAAE;AAAA,IAAA;AAAA,EACP,GACC,CAAC,MAAM,CAAC;AAEX,SACG,oBAAA,OAAA,EAAI,WAAW,KAAK,OAAO,GAAG,aAAa,EAAE,GAAG,SAAS,GAAG,OAC1D,UACC,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,KAAK,OAAO,GAAG,aAAa,SAAS,CAAC;AAAA,MACjD,KAAK;AAAA,MACL;AAAA,MACA,UAAU,CAAK,MAAA;AACb,iBAAS,EAAE,OAAO,MAAM,KAAA,CAAM;AAAA,MAChC;AAAA,MACA,QAAQ,MAAM;AACZ,kBAAU,KAAK;AAAA,MACjB;AAAA,MACA,WAAW,CAAK,MAAA;AACV,YAAA,EAAE,OAAO,SAAS;AACpB,oBAAU,KAAK;AAAA,QAAA;AAAA,MACjB;AAAA,IACF;AAAA,EAAA,IAIA,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA,oBAAC,UAAM,UAAM,MAAA,CAAA;AAAA,IACb;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAW,KAAK,OAAO,GAAG,aAAa,QAAQ,CAAC;AAAA,QAChD,SAAS,MAAM,UAAU,IAAI;AAAA,QAC7B,MAAK;AAAA,QACL,MAAK;AAAA,QAEL,8BAAC,cAAa,CAAA,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAChB,EAAA,CACF,EAEJ,CAAA;AAEJ;AAEA,aAAa,cAAc;"}
@@ -0,0 +1,9 @@
1
+ const styles = {
2
+ "editor-header": "_editor-header_qzbp3_1",
3
+ "editor-header__edit": "_editor-header__edit_qzbp3_13",
4
+ "editor-header__input": "_editor-header__input_qzbp3_24"
5
+ };
6
+ export {
7
+ styles as default
8
+ };
9
+ //# sourceMappingURL=index.module.less.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.module.less.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
@@ -0,0 +1,2 @@
1
+ declare const IconEmpty: () => import("react/jsx-runtime").JSX.Element;
2
+ export default IconEmpty;
@@ -0,0 +1,139 @@
1
+ import { jsxs, jsx } from "react/jsx-runtime";
2
+ const IconEmpty = () => {
3
+ return /* @__PURE__ */ jsxs(
4
+ "svg",
5
+ {
6
+ width: "139",
7
+ height: "118",
8
+ viewBox: "0 0 139 118",
9
+ fill: "none",
10
+ xmlns: "http://www.w3.org/2000/svg",
11
+ children: [
12
+ /* @__PURE__ */ jsx(
13
+ "path",
14
+ {
15
+ d: "M124.987 58.7265C124.987 71.9542 120.785 84.3837 113.783 94.1904C109.904 99.5499 105.272 104.225 99.8855 107.874C91.267 113.918 80.8172 117.339 69.7209 117.339C39.2331 117.453 14.4551 91.2256 14.4551 58.7265C14.4551 26.3414 39.1254 0 69.7209 0C80.8172 0 91.1593 3.42096 99.8855 9.46466C105.272 13.1137 109.904 17.789 113.783 23.1485C120.785 33.0693 124.987 45.3847 124.987 58.7265Z",
16
+ fill: "#F4F4F5"
17
+ }
18
+ ),
19
+ /* @__PURE__ */ jsx(
20
+ "path",
21
+ {
22
+ d: "M2 102.569H132.77",
23
+ stroke: "#D0D0D4",
24
+ "stroke-width": "2",
25
+ "stroke-miterlimit": "10",
26
+ "stroke-linecap": "round",
27
+ "stroke-linejoin": "round"
28
+ }
29
+ ),
30
+ /* @__PURE__ */ jsx(
31
+ "path",
32
+ {
33
+ d: "M93.8497 50.0537V102.569H23.2214C20.4353 102.569 18.3457 100.209 18.3457 97.4062V50.0537H93.8497Z",
34
+ fill: "white",
35
+ stroke: "#D0D0D4",
36
+ "stroke-width": "2",
37
+ "stroke-miterlimit": "10"
38
+ }
39
+ ),
40
+ /* @__PURE__ */ jsx(
41
+ "path",
42
+ {
43
+ d: "M121.874 50.0537V97.4062C121.874 100.356 119.551 102.569 116.792 102.569H93.8516V50.0537H121.874Z",
44
+ fill: "#DAE1ED"
45
+ }
46
+ ),
47
+ /* @__PURE__ */ jsx(
48
+ "path",
49
+ {
50
+ d: "M121.874 50.0537V97.4062C121.874 100.356 119.551 102.569 116.792 102.569H93.8516V50.0537H121.874Z",
51
+ fill: "#F4F4F5",
52
+ stroke: "#D0D0D4",
53
+ "stroke-width": "2",
54
+ "stroke-miterlimit": "10"
55
+ }
56
+ ),
57
+ /* @__PURE__ */ jsx("path", { d: "M45.5898 50.0541L60.4416 25.4375H136.662L121.39 50.0541H45.5898Z", fill: "#C5CDDB" }),
58
+ /* @__PURE__ */ jsx(
59
+ "path",
60
+ {
61
+ d: "M45.5898 50.0541L60.4416 25.4375H136.662L121.39 50.0541H45.5898Z",
62
+ fill: "#F4F4F5",
63
+ stroke: "#D0D0D4",
64
+ "stroke-width": "2",
65
+ "stroke-miterlimit": "10"
66
+ }
67
+ ),
68
+ /* @__PURE__ */ jsx(
69
+ "path",
70
+ {
71
+ opacity: "0.3",
72
+ d: "M121.874 50.1975V77.9526H101.441C99.5435 77.9526 98.23 76.6583 97.9381 74.7888L93.8516 50.0537L121.874 50.1975Z",
73
+ fill: "url(#paint0_linear_48562_199773)"
74
+ }
75
+ ),
76
+ /* @__PURE__ */ jsx(
77
+ "path",
78
+ {
79
+ d: "M121.287 50.0537H93.8516L107.782 72.3119C108.777 73.7859 110.341 74.6704 111.905 74.6704H133.227C134.649 74.6704 135.644 72.9015 134.791 71.7223L121.287 50.0537Z",
80
+ fill: "white",
81
+ stroke: "#D0D0D4",
82
+ "stroke-width": "2",
83
+ "stroke-miterlimit": "10"
84
+ }
85
+ ),
86
+ /* @__PURE__ */ jsx(
87
+ "path",
88
+ {
89
+ d: "M93.8502 50.0541L78.8946 25.4375H2L17.52 50.0541H93.8502Z",
90
+ fill: "white",
91
+ stroke: "#D0D0D4",
92
+ "stroke-width": "2",
93
+ "stroke-miterlimit": "10"
94
+ }
95
+ ),
96
+ /* @__PURE__ */ jsx(
97
+ "path",
98
+ {
99
+ d: "M56.0276 80.4148H26.5896C25.9018 80.4148 25.3516 79.8678 25.3516 79.184C25.3516 78.5002 25.9018 77.9531 26.5896 77.9531H56.0276C56.7154 77.9531 57.2656 78.5002 57.2656 79.184C57.1281 79.8678 56.7154 80.4148 56.0276 80.4148Z",
100
+ fill: "#D0D0D4"
101
+ }
102
+ ),
103
+ /* @__PURE__ */ jsx(
104
+ "path",
105
+ {
106
+ d: "M56.0276 86.1587H26.5896C25.9018 86.1587 25.3516 85.794 25.3516 85.3381C25.3516 84.8823 25.9018 84.5176 26.5896 84.5176H56.0276C56.7154 84.5176 57.2656 84.8823 57.2656 85.3381C57.1281 85.794 56.7154 86.1587 56.0276 86.1587Z",
107
+ fill: "#D0D0D4"
108
+ }
109
+ ),
110
+ /* @__PURE__ */ jsx(
111
+ "path",
112
+ {
113
+ d: "M40.4404 92.7231H26.609C25.9104 92.7231 25.3516 92.3584 25.3516 91.9026C25.3516 91.4467 25.9104 91.082 26.609 91.082H40.4404C41.1389 91.082 41.6978 91.4467 41.6978 91.9026C41.5581 92.3584 40.9992 92.7231 40.4404 92.7231Z",
114
+ fill: "#D0D0D4"
115
+ }
116
+ ),
117
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
118
+ "linearGradient",
119
+ {
120
+ id: "paint0_linear_48562_199773",
121
+ x1: "107.869",
122
+ y1: "78.5252",
123
+ x2: "107.869",
124
+ y2: "53.1127",
125
+ gradientUnits: "userSpaceOnUse",
126
+ children: [
127
+ /* @__PURE__ */ jsx("stop", { offset: "0.00289017", "stop-color": "#606673", "stop-opacity": "0" }),
128
+ /* @__PURE__ */ jsx("stop", { offset: "1", "stop-color": "#AAB2C5" })
129
+ ]
130
+ }
131
+ ) })
132
+ ]
133
+ }
134
+ );
135
+ };
136
+ export {
137
+ IconEmpty as default
138
+ };
139
+ //# sourceMappingURL=icon-empty.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"icon-empty.js","sources":["../../../packages/dashboard-workbench/icon/icon-empty.tsx"],"sourcesContent":["const IconEmpty = () => {\n return (\n <svg\n width=\"139\"\n height=\"118\"\n viewBox=\"0 0 139 118\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M124.987 58.7265C124.987 71.9542 120.785 84.3837 113.783 94.1904C109.904 99.5499 105.272 104.225 99.8855 107.874C91.267 113.918 80.8172 117.339 69.7209 117.339C39.2331 117.453 14.4551 91.2256 14.4551 58.7265C14.4551 26.3414 39.1254 0 69.7209 0C80.8172 0 91.1593 3.42096 99.8855 9.46466C105.272 13.1137 109.904 17.789 113.783 23.1485C120.785 33.0693 124.987 45.3847 124.987 58.7265Z\"\n fill=\"#F4F4F5\"\n />\n <path\n d=\"M2 102.569H132.77\"\n stroke=\"#D0D0D4\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n />\n <path\n d=\"M93.8497 50.0537V102.569H23.2214C20.4353 102.569 18.3457 100.209 18.3457 97.4062V50.0537H93.8497Z\"\n fill=\"white\"\n stroke=\"#D0D0D4\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M121.874 50.0537V97.4062C121.874 100.356 119.551 102.569 116.792 102.569H93.8516V50.0537H121.874Z\"\n fill=\"#DAE1ED\"\n />\n <path\n d=\"M121.874 50.0537V97.4062C121.874 100.356 119.551 102.569 116.792 102.569H93.8516V50.0537H121.874Z\"\n fill=\"#F4F4F5\"\n stroke=\"#D0D0D4\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\"\n />\n <path d=\"M45.5898 50.0541L60.4416 25.4375H136.662L121.39 50.0541H45.5898Z\" fill=\"#C5CDDB\" />\n <path\n d=\"M45.5898 50.0541L60.4416 25.4375H136.662L121.39 50.0541H45.5898Z\"\n fill=\"#F4F4F5\"\n stroke=\"#D0D0D4\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\"\n />\n <path\n opacity=\"0.3\"\n d=\"M121.874 50.1975V77.9526H101.441C99.5435 77.9526 98.23 76.6583 97.9381 74.7888L93.8516 50.0537L121.874 50.1975Z\"\n fill=\"url(#paint0_linear_48562_199773)\"\n />\n <path\n d=\"M121.287 50.0537H93.8516L107.782 72.3119C108.777 73.7859 110.341 74.6704 111.905 74.6704H133.227C134.649 74.6704 135.644 72.9015 134.791 71.7223L121.287 50.0537Z\"\n fill=\"white\"\n stroke=\"#D0D0D4\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M93.8502 50.0541L78.8946 25.4375H2L17.52 50.0541H93.8502Z\"\n fill=\"white\"\n stroke=\"#D0D0D4\"\n stroke-width=\"2\"\n stroke-miterlimit=\"10\"\n />\n <path\n d=\"M56.0276 80.4148H26.5896C25.9018 80.4148 25.3516 79.8678 25.3516 79.184C25.3516 78.5002 25.9018 77.9531 26.5896 77.9531H56.0276C56.7154 77.9531 57.2656 78.5002 57.2656 79.184C57.1281 79.8678 56.7154 80.4148 56.0276 80.4148Z\"\n fill=\"#D0D0D4\"\n />\n <path\n d=\"M56.0276 86.1587H26.5896C25.9018 86.1587 25.3516 85.794 25.3516 85.3381C25.3516 84.8823 25.9018 84.5176 26.5896 84.5176H56.0276C56.7154 84.5176 57.2656 84.8823 57.2656 85.3381C57.1281 85.794 56.7154 86.1587 56.0276 86.1587Z\"\n fill=\"#D0D0D4\"\n />\n <path\n d=\"M40.4404 92.7231H26.609C25.9104 92.7231 25.3516 92.3584 25.3516 91.9026C25.3516 91.4467 25.9104 91.082 26.609 91.082H40.4404C41.1389 91.082 41.6978 91.4467 41.6978 91.9026C41.5581 92.3584 40.9992 92.7231 40.4404 92.7231Z\"\n fill=\"#D0D0D4\"\n />\n <defs>\n <linearGradient\n id=\"paint0_linear_48562_199773\"\n x1=\"107.869\"\n y1=\"78.5252\"\n x2=\"107.869\"\n y2=\"53.1127\"\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset=\"0.00289017\" stop-color=\"#606673\" stop-opacity=\"0\" />\n <stop offset=\"1\" stop-color=\"#AAB2C5\" />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n\nexport default IconEmpty\n"],"names":[],"mappings":";AAAA,MAAM,YAAY,MAAM;AAEpB,SAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,OAAM;AAAA,MACN,QAAO;AAAA,MACP,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,OAAM;AAAA,MAEN,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA,UAAA;AAAA,QACP;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,QAAO;AAAA,YACP,gBAAa;AAAA,YACb,qBAAkB;AAAA,YAClB,kBAAe;AAAA,YACf,mBAAgB;AAAA,UAAA;AAAA,QAClB;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA,YACL,QAAO;AAAA,YACP,gBAAa;AAAA,YACb,qBAAkB;AAAA,UAAA;AAAA,QACpB;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA,UAAA;AAAA,QACP;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA,YACL,QAAO;AAAA,YACP,gBAAa;AAAA,YACb,qBAAkB;AAAA,UAAA;AAAA,QACpB;AAAA,QACC,oBAAA,QAAA,EAAK,GAAE,oEAAmE,MAAK,WAAU;AAAA,QAC1F;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA,YACL,QAAO;AAAA,YACP,gBAAa;AAAA,YACb,qBAAkB;AAAA,UAAA;AAAA,QACpB;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,SAAQ;AAAA,YACR,GAAE;AAAA,YACF,MAAK;AAAA,UAAA;AAAA,QACP;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA,YACL,QAAO;AAAA,YACP,gBAAa;AAAA,YACb,qBAAkB;AAAA,UAAA;AAAA,QACpB;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA,YACL,QAAO;AAAA,YACP,gBAAa;AAAA,YACb,qBAAkB;AAAA,UAAA;AAAA,QACpB;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA,UAAA;AAAA,QACP;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA,UAAA;AAAA,QACP;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,GAAE;AAAA,YACF,MAAK;AAAA,UAAA;AAAA,QACP;AAAA,4BACC,QACC,EAAA,UAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,IAAG;AAAA,YACH,eAAc;AAAA,YAEd,UAAA;AAAA,cAAA,oBAAC,UAAK,QAAO,cAAa,cAAW,WAAU,gBAAa,KAAI;AAAA,cAC/D,oBAAA,QAAA,EAAK,QAAO,KAAI,cAAW,UAAU,CAAA;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA,EAE1C,CAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAEJ;"}
@@ -15,6 +15,7 @@ import { Modal, message } from "antd";
15
15
  import { ExclamationCircleOutlined } from "@ant-design/icons";
16
16
  import ModuleHeader from "./components/module-header/index.js";
17
17
  import { findChangedItems } from "./utils/index.js";
18
+ import { omit } from "lodash-es";
18
19
  const ResponsiveReactGridLayout = WidthProvider(Responsive);
19
20
  const DashboardWorkbench = ({
20
21
  sourceData,
@@ -41,7 +42,6 @@ const DashboardWorkbench = ({
41
42
  }, [i18n, lang]);
42
43
  const [modules, setModules] = useState([]);
43
44
  const [activeId, setActiveId] = useState();
44
- const [selectModuleData, setSelectModuleData] = useState();
45
45
  useEffect(() => {
46
46
  setModules(
47
47
  (moduleConfigData == null ? void 0 : moduleConfigData.map((item) => ({
@@ -143,10 +143,11 @@ const DashboardWorkbench = ({
143
143
  onDragResizeStop(newLayout || []);
144
144
  }
145
145
  };
146
+ const [selectModuleData, setSelectModuleData] = useState();
146
147
  const [isShowAddStatisticsModal, setIsShowAddStatisticsModal] = useState(false);
147
148
  const [isShowAddCalendarModal, setIsShowAddCalendarModal] = useState(false);
148
149
  const [isShowAddChartModal, setIsShowAddChartModal] = useState(false);
149
- const onAddModule = (val) => {
150
+ const handleOpenCreateModal = (val) => {
150
151
  if (val === "text") {
151
152
  const data = {
152
153
  type: val,
@@ -181,6 +182,18 @@ const DashboardWorkbench = ({
181
182
  y: 0
182
183
  });
183
184
  };
185
+ const commonModalProps = {
186
+ moduleDataApi,
187
+ enumDataApi,
188
+ selectModuleData
189
+ };
190
+ const handleModalSubmit = (data) => {
191
+ if (data.id) {
192
+ updateModule(data.id, omit(data, "id"));
193
+ } else {
194
+ addModule(data);
195
+ }
196
+ };
184
197
  const title = {
185
198
  text: t("pb.text"),
186
199
  calendar: t("calendarText"),
@@ -192,7 +205,7 @@ const DashboardWorkbench = ({
192
205
  AddModuleBtn,
193
206
  {
194
207
  onOk: (val) => {
195
- onAddModule(val);
208
+ handleOpenCreateModal(val);
196
209
  }
197
210
  }
198
211
  ) }) }),
@@ -345,83 +358,49 @@ const DashboardWorkbench = ({
345
358
  /* @__PURE__ */ jsx(
346
359
  AddStatisticsModal,
347
360
  {
361
+ ...commonModalProps,
348
362
  open: isShowAddStatisticsModal,
349
- selectModuleData,
350
363
  onClose: () => {
351
364
  setIsShowAddStatisticsModal(false);
352
365
  },
353
- onOk: ({ id, customData, customeStyle }) => {
354
- if (id) {
355
- updateModule(id, {
356
- type: "statistics",
357
- customData,
358
- customeStyle
359
- });
360
- } else {
361
- addModule({
362
- type: "statistics",
363
- customData,
364
- customeStyle
365
- });
366
- }
366
+ onOk: (data) => {
367
+ handleModalSubmit({
368
+ ...data,
369
+ type: "statistics"
370
+ });
367
371
  setIsShowAddStatisticsModal(false);
368
- },
369
- moduleDataApi,
370
- enumDataApi
372
+ }
371
373
  }
372
374
  ),
373
375
  /* @__PURE__ */ jsx(
374
376
  AddStatisticsModal$1,
375
377
  {
378
+ ...commonModalProps,
376
379
  open: isShowAddCalendarModal,
377
- selectModuleData,
378
380
  onClose: () => {
379
381
  setIsShowAddCalendarModal(false);
380
382
  },
381
- onOk: ({ id, customData }) => {
382
- if (id) {
383
- updateModule(id, {
384
- type: "calendar",
385
- customData
386
- });
387
- } else {
388
- addModule({
389
- type: "calendar",
390
- customData
391
- });
392
- }
383
+ onOk: (data) => {
384
+ handleModalSubmit({
385
+ ...data,
386
+ type: "calendar"
387
+ });
393
388
  setIsShowAddCalendarModal(false);
394
- },
395
- moduleDataApi,
396
- enumDataApi
389
+ }
397
390
  }
398
391
  ),
399
392
  /* @__PURE__ */ jsx(
400
393
  AddStatisticsModal$2,
401
394
  {
395
+ ...commonModalProps,
402
396
  open: isShowAddChartModal,
403
- selectModuleData,
404
397
  onClose: () => {
405
398
  setIsShowAddChartModal(false);
406
399
  },
407
- onOk: ({ id, type, customData, customeStyle }) => {
408
- if (id) {
409
- updateModule(id, {
410
- type,
411
- customData,
412
- customeStyle
413
- });
414
- } else {
415
- addModule({
416
- type,
417
- customData,
418
- customeStyle
419
- });
420
- }
400
+ onOk: (data) => {
401
+ handleModalSubmit(data);
421
402
  setIsShowAddChartModal(false);
422
- },
423
- moduleDataApi,
424
- enumDataApi
403
+ }
425
404
  }
426
405
  )
427
406
  ] });
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../packages/dashboard-workbench/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useState, useEffect } from 'react'\nimport { WidthProvider, Responsive, Layout } from 'react-grid-layout'\nimport ModuleContent, { ModuleData } from './components/module-content'\nimport AddModuleBtn, { ModuleValueType } from './components/add-module-btn'\nimport './styles/index.less'\nimport { EnumDataApi, ModuleConfigDataTypes, ModuleDataApi, SourceDataTypes } from './types'\nimport { AppProvider, useAppContext } from './context'\nimport AddStatisticsModal from './components/add-module-modal/add-statistics-modal'\nimport AddCalendarModal from './components/add-module-modal/add-calendar-modal'\nimport AddChartModal from './components/add-module-modal/add-chart-modal'\nimport './lang/index'\nimport { useTranslation } from 'react-i18next'\nimport '/node_modules/react-grid-layout/css/styles.css'\n\nimport { message, Modal } from 'antd'\nimport { ExclamationCircleOutlined } from '@ant-design/icons'\n\nimport ModuleHeader from './components/module-header'\nimport { findChangedItems } from './utils'\n\nconst ResponsiveReactGridLayout = WidthProvider(Responsive)\n\ninterface DashboardWorkbenchProps {\n sourceData?: SourceDataTypes[]\n moduleConfigData?: ModuleConfigDataTypes\n fieldMap?: Record<string, string>\n lang?: 'zh-CN' | 'en-US'\n moduleDataApi?: ModuleDataApi\n enumDataApi?: EnumDataApi\n onCreateModule?: (val: ModuleData) => Promise<{ data: ModuleData }>\n onUpdateModule?: (val: ModuleData) => Promise<{ data: ModuleData }>\n onDeleteModule?: (val: string) => Promise<{ data: ModuleData }>\n onLayoutChange?: (layout: Layout[]) => void\n className?: string\n cols?: { lg: number; md: number; sm: number; xs: number; xxs: number }\n rowHeight?: number\n}\n\nconst DashboardWorkbench: React.FC<DashboardWorkbenchProps> = ({\n sourceData,\n moduleConfigData,\n fieldMap,\n moduleDataApi,\n enumDataApi,\n onCreateModule,\n onUpdateModule,\n onDeleteModule,\n lang,\n // onLayoutChange,\n className = 'layout',\n cols = { lg: 12, md: 12, sm: 12, xs: 12, xxs: 12 },\n rowHeight = 79,\n}) => {\n /* ============================== global =============================== */\n const { setGlobalData } = useAppContext()\n\n useEffect(() => {\n setGlobalData({ fieldMap, sourceData })\n }, [fieldMap, setGlobalData, sourceData])\n\n /* ============================== i18n =============================== */\n\n const { i18n, t } = useTranslation()\n\n useEffect(() => {\n i18n.changeLanguage(lang || 'zh_CN')\n }, [i18n, lang])\n\n /* ============================== modules =============================== */\n\n const [modules, setModules] = useState<ModuleData[] | undefined>([])\n const [activeId, setActiveId] = useState<ModuleData['id']>()\n const [selectModuleData, setSelectModuleData] = useState<ModuleData>()\n\n useEffect(() => {\n setModules(\n moduleConfigData?.map(item => ({\n ...item,\n i: item.i ? item.i : item.id,\n })) || []\n )\n }, [moduleConfigData])\n\n const addModule = async (data: ModuleValueType) => {\n const wMultiple = data.type === 'calendar' ? 5 : 4\n const hMultiple = data.type === 'calendar' ? 5 : 3\n\n if (Array.isArray(modules) && data.type) {\n const newModuleData = {\n x: 0,\n y: 0,\n w: wMultiple,\n h: hMultiple,\n title: data.type.includes('chart') ? t('chartText') : title[data.type],\n ...data,\n type: data.type,\n }\n await onCreateModule?.(newModuleData).then((res: any) => {\n if (!res.success) {\n message.error(res.message)\n return\n }\n setModules([...modules, { ...newModuleData, i: res.data?.id, id: res.data?.id }])\n })\n }\n }\n\n // 单个\n const updateModule = async (id: ModuleData['id'], updatedProps: Partial<ModuleData>) => {\n if (modules?.length) {\n const oldData = modules.find(m => m.id === id)\n const updatedModule = {\n ...oldData!,\n ...updatedProps,\n }\n const modulesData = modules.map(m => (m.id === id ? updatedModule : m))\n setModules(modulesData)\n await onUpdateModule?.(updatedModule).then((res: any) => {\n if (!res.success) {\n message.error(res.message)\n return\n }\n })\n }\n }\n\n // 批量\n const updateModules = async (updatedItems: Partial<ModuleData>[]) => {\n if (!modules?.length || !updatedItems?.length) return\n const updatedModules = modules.map(module => {\n const update = updatedItems.find(item => item.id === module.id)\n return update ? { ...module, ...update } : module\n })\n setModules(updatedModules)\n try {\n for (const updatedItem of updatedItems) {\n const res: any = await onUpdateModule?.(updatedItem as ModuleData)\n if (!res?.success) {\n throw new Error(res?.message || `Failed to update module: ${updatedItem.id}`)\n }\n }\n } catch (error: any) {\n setModules(modules)\n message.error(error.message || 'Failed to update modules')\n }\n }\n\n const deleteModule = async (id: ModuleData['id']) => {\n if (modules?.length) {\n setModules(modules.filter(m => m.id !== id))\n await onDeleteModule?.(id || '')\n }\n }\n\n /* ============================== drag =============================== */\n\n const margins: [number, number] = [10, 10]\n const [rowWidth, setRowWidth] = useState(0)\n const [, setCurrentCols] = useState<number>(cols.lg)\n\n const [isDragOrResize, setIsDragOrResize] = useState(false)\n const [isDragOrResizeEnd, setIsDragOrResizeEnd] = useState(false)\n\n const onBreakpointChange = (_breakpoint: string, cols: number) => {\n setCurrentCols(cols)\n }\n\n const onDragResizeStop = (newLayout: Layout[]) => {\n const changedItems = findChangedItems(newLayout, modules as any)\n const newChangedItems = changedItems.map(item => {\n const module = modules?.find(module => module.i === item.i)\n return { ...module, ...item }\n })\n updateModules(newChangedItems)\n }\n\n const onDragStartOrEnd = (type: 'start' | 'end', newLayout?: Layout[]) => {\n if (type === 'start') {\n setIsDragOrResize(true)\n setIsDragOrResizeEnd(true)\n } else {\n setIsDragOrResize(false)\n setTimeout(() => {\n setIsDragOrResizeEnd(false)\n }, 500)\n onDragResizeStop(newLayout || [])\n }\n }\n\n /* ============================== split =============================== */\n\n const [isShowAddStatisticsModal, setIsShowAddStatisticsModal] = useState<boolean>(false)\n const [isShowAddCalendarModal, setIsShowAddCalendarModal] = useState<boolean>(false)\n const [isShowAddChartModal, setIsShowAddChartModal] = useState<boolean>(false)\n\n const onAddModule = (val: any) => {\n if (val === 'text') {\n const data = {\n type: val,\n customData: {\n title: t('text'),\n editor: [\n {\n type: 'paragraph',\n children: [\n {\n text: '',\n },\n ],\n },\n ],\n },\n }\n addModule(data)\n } else if (val === 'statistics') {\n setIsShowAddStatisticsModal(true)\n } else if (val === 'calendar') {\n setIsShowAddCalendarModal(true)\n } else if (val?.includes('chart')) {\n setIsShowAddChartModal(true)\n }\n setSelectModuleData({\n title: '',\n type: val,\n w: 0,\n h: 0,\n x: 0,\n y: 0,\n })\n }\n\n /* ============================== split =============================== */\n\n const title: any = {\n text: t('pb.text'),\n calendar: t('calendarText'),\n statistics: t('chartText'),\n }\n\n return (\n <div className=\"pivot-table\">\n <div className=\"bitable-block-dashboard\">\n <div className=\"bitable-block-dashboard-toolbar bitable-toolbar\">\n <div className=\"bitable-block-dashboard-toolbar--left\">\n <AddModuleBtn\n onOk={val => {\n onAddModule(val)\n }}\n />\n </div>\n </div>\n <div className=\"bitable-block-dashboard__mount\">\n <div className=\"dashboard-container\">\n <div\n className={`dashboard-content-container ${isDragOrResize ? 'isDragOrResize' : ''} ${\n isDragOrResizeEnd ? 'isDragOrResizeEnd' : ''\n }`}\n >\n <ResponsiveReactGridLayout\n onBreakpointChange={onBreakpointChange}\n className={className}\n compactType=\"vertical\"\n preventCollision={false}\n cols={cols}\n margin={margins}\n rowHeight={rowHeight}\n measureBeforeMount={false}\n draggableHandle=\".isCanDrag\"\n // draggableCancel=\".isNoCanDrag\"\n onWidthChange={(containerWidth, _margin, cols) => {\n setRowWidth(containerWidth / cols - 1)\n }}\n onDragStart={() => {\n onDragStartOrEnd('start')\n }}\n onDragStop={newLayout => {\n onDragStartOrEnd('end', newLayout)\n }}\n onResizeStart={() => {\n onDragStartOrEnd('start')\n }}\n onResizeStop={newLayout => {\n onDragStartOrEnd('end', newLayout)\n }}\n style={{\n backgroundSize: `${rowWidth}px ${rowHeight + margins[0]}px`,\n backgroundPosition: `${margins[0]}px ${margins[0]}px`,\n minHeight: '100vh',\n }}\n >\n {modules?.map(module => (\n <div\n className={`box-dashboard ${activeId === module.id ? 'active' : ''}`}\n onClick={() => {\n setActiveId(module.id)\n }}\n key={module.id}\n data-grid={{\n i: module.id,\n x: module.x || 0,\n y: module.y || 0, // puts it at the bottom\n w: module.w || 2,\n h: module.h || 2,\n minW: 2,\n minH: 2,\n }}\n >\n <ModuleHeader\n module={module}\n defaultValue={module.title}\n onChange={val =>\n updateModule(module.id, {\n title: val,\n })\n }\n onDropdownItem={key => {\n if (key === 'edit') {\n setActiveId(module.id)\n setSelectModuleData(module)\n if (module.type === 'statistics') {\n setIsShowAddStatisticsModal(true)\n }\n if (module.type?.includes('chart')) {\n setIsShowAddChartModal(true)\n }\n if (module.type === 'calendar') {\n setIsShowAddCalendarModal(true)\n }\n } else if (key === 'delete') {\n Modal.confirm({\n title: t('promptTitle'),\n icon: <ExclamationCircleOutlined />,\n content: t('promptContentDeleteComponents'),\n onOk() {\n deleteModule(module.id)\n },\n })\n } else if (key === 'copy') {\n const data = JSON.parse(JSON.stringify(module))\n delete data.id\n delete data.i\n addModule(data)\n }\n }}\n />\n\n <ModuleContent\n module={module}\n onUpdate={updateModule}\n moduleDataApi={moduleDataApi}\n activeId={activeId}\n onClick={() => {\n setActiveId(module.id)\n }}\n rowWidth={rowWidth}\n rowHeight={rowHeight}\n onEdit={() => {\n setActiveId(module.id)\n setSelectModuleData(module)\n if (module.type === 'statistics') {\n setIsShowAddStatisticsModal(true)\n }\n if (module.type?.includes('chart')) {\n setIsShowAddChartModal(true)\n }\n if (module.type === 'calendar') {\n setIsShowAddCalendarModal(true)\n }\n }}\n onDelete={() => {\n deleteModule(module.id)\n }}\n onCopy={() => {\n const data = JSON.parse(JSON.stringify(module))\n delete data.id\n delete data.i\n addModule(data)\n }}\n onStartDragOrResize={() => {\n setIsDragOrResize(true)\n }}\n onStopDragOrResize={() => {\n setIsDragOrResize(false)\n }}\n />\n </div>\n ))}\n </ResponsiveReactGridLayout>\n </div>\n </div>\n </div>\n </div>\n\n <AddStatisticsModal\n open={isShowAddStatisticsModal}\n selectModuleData={selectModuleData}\n onClose={() => {\n setIsShowAddStatisticsModal(false)\n }}\n onOk={({ id, customData, customeStyle }) => {\n if (id) {\n updateModule(id, {\n type: 'statistics',\n customData: customData,\n customeStyle: customeStyle,\n })\n } else {\n addModule({\n type: 'statistics',\n customData: customData,\n customeStyle: customeStyle,\n })\n }\n setIsShowAddStatisticsModal(false)\n }}\n moduleDataApi={moduleDataApi}\n enumDataApi={enumDataApi}\n />\n\n <AddCalendarModal\n open={isShowAddCalendarModal}\n selectModuleData={selectModuleData}\n onClose={() => {\n setIsShowAddCalendarModal(false)\n }}\n onOk={({ id, customData }) => {\n if (id) {\n updateModule(id, {\n type: 'calendar',\n customData: customData,\n })\n } else {\n addModule({\n type: 'calendar',\n customData: customData,\n })\n }\n setIsShowAddCalendarModal(false)\n }}\n moduleDataApi={moduleDataApi}\n enumDataApi={enumDataApi}\n />\n\n <AddChartModal\n open={isShowAddChartModal}\n selectModuleData={selectModuleData}\n onClose={() => {\n setIsShowAddChartModal(false)\n }}\n onOk={({ id, type, customData, customeStyle }) => {\n if (id) {\n updateModule(id, {\n type,\n customData: customData,\n customeStyle: customeStyle,\n })\n } else {\n addModule({\n type,\n customData: customData,\n customeStyle: customeStyle,\n })\n }\n setIsShowAddChartModal(false)\n }}\n moduleDataApi={moduleDataApi}\n enumDataApi={enumDataApi}\n />\n </div>\n )\n}\n\nexport default React.memo((props: DashboardWorkbenchProps) => {\n return (\n <AppProvider>\n <DashboardWorkbench {...props} />\n </AppProvider>\n )\n})\n"],"names":["cols","module","AddCalendarModal","AddChartModal"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../../packages/dashboard-workbench/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useState, useEffect, useMemo } from 'react'\nimport { WidthProvider, Responsive, Layout } from 'react-grid-layout'\nimport ModuleContent, { ModuleData } from './components/module-content'\nimport AddModuleBtn, { ModuleValueType } from './components/add-module-btn'\nimport './styles/index.less'\nimport { EnumDataApi, ModuleConfigDataTypes, ModuleDataApi, SourceDataTypes } from './types'\nimport { AppProvider, useAppContext } from './context'\nimport AddStatisticsModal from './components/add-module-modal/add-statistics-modal'\nimport AddCalendarModal from './components/add-module-modal/add-calendar-modal'\nimport AddChartModal from './components/add-module-modal/add-chart-modal'\nimport './lang/index'\nimport { useTranslation } from 'react-i18next'\nimport '/node_modules/react-grid-layout/css/styles.css'\n\nimport { message, Modal } from 'antd'\nimport { ExclamationCircleOutlined } from '@ant-design/icons'\n\nimport ModuleHeader from './components/module-header'\nimport { findChangedItems } from './utils'\nimport { omit } from 'lodash-es'\n\nconst ResponsiveReactGridLayout = WidthProvider(Responsive)\n\ninterface DashboardWorkbenchProps {\n sourceData?: SourceDataTypes[]\n moduleConfigData?: ModuleConfigDataTypes\n fieldMap?: Record<string, string>\n lang?: 'zh-CN' | 'en-US'\n moduleDataApi?: ModuleDataApi\n enumDataApi?: EnumDataApi\n onCreateModule?: (val: ModuleData) => Promise<{ data: ModuleData }>\n onUpdateModule?: (val: ModuleData) => Promise<{ data: ModuleData }>\n onDeleteModule?: (val: string) => Promise<{ data: ModuleData }>\n onLayoutChange?: (layout: Layout[]) => void\n className?: string\n cols?: { lg: number; md: number; sm: number; xs: number; xxs: number }\n rowHeight?: number\n}\n\nconst DashboardWorkbench: React.FC<DashboardWorkbenchProps> = ({\n sourceData,\n moduleConfigData,\n fieldMap,\n moduleDataApi,\n enumDataApi,\n onCreateModule,\n onUpdateModule,\n onDeleteModule,\n lang,\n // onLayoutChange,\n className = 'layout',\n cols = { lg: 12, md: 12, sm: 12, xs: 12, xxs: 12 },\n rowHeight = 79,\n}) => {\n /* ============================== global =============================== */\n const { setGlobalData } = useAppContext()\n\n useEffect(() => {\n setGlobalData({ fieldMap, sourceData })\n }, [fieldMap, setGlobalData, sourceData])\n\n /* ============================== i18n =============================== */\n\n const { i18n, t } = useTranslation()\n useEffect(() => {\n i18n.changeLanguage(lang || 'zh_CN')\n }, [i18n, lang])\n\n /* ============================== modules =============================== */\n const [modules, setModules] = useState<ModuleData[] | undefined>([])\n const [activeId, setActiveId] = useState<ModuleData['id']>()\n\n useEffect(() => {\n setModules(\n moduleConfigData?.map(item => ({\n ...item,\n i: item.i ? item.i : item.id,\n })) || []\n )\n }, [moduleConfigData])\n\n const addModule = async (data: ModuleValueType) => {\n const wMultiple = data.type === 'calendar' ? 5 : 4\n const hMultiple = data.type === 'calendar' ? 5 : 3\n\n if (Array.isArray(modules) && data.type) {\n const newModuleData = {\n x: 0,\n y: 0,\n w: wMultiple,\n h: hMultiple,\n title: data.type.includes('chart') ? t('chartText') : title[data.type],\n ...data,\n type: data.type,\n }\n await onCreateModule?.(newModuleData).then((res: any) => {\n if (!res.success) {\n message.error(res.message)\n return\n }\n setModules([...modules, { ...newModuleData, i: res.data?.id, id: res.data?.id }])\n })\n }\n }\n\n // 单个\n const updateModule = async (id: ModuleData['id'], updatedProps: Partial<ModuleData>) => {\n if (modules?.length) {\n const oldData = modules.find(m => m.id === id)\n const updatedModule = {\n ...oldData!,\n ...updatedProps,\n }\n const modulesData = modules.map(m => (m.id === id ? updatedModule : m))\n setModules(modulesData)\n await onUpdateModule?.(updatedModule).then((res: any) => {\n if (!res.success) {\n message.error(res.message)\n return\n }\n })\n }\n }\n\n // 批量\n const updateModules = async (updatedItems: Partial<ModuleData>[]) => {\n if (!modules?.length || !updatedItems?.length) return\n const updatedModules = modules.map(module => {\n const update = updatedItems.find(item => item.id === module.id)\n return update ? { ...module, ...update } : module\n })\n setModules(updatedModules)\n try {\n for (const updatedItem of updatedItems) {\n const res: any = await onUpdateModule?.(updatedItem as ModuleData)\n if (!res?.success) {\n throw new Error(res?.message || `Failed to update module: ${updatedItem.id}`)\n }\n }\n } catch (error: any) {\n setModules(modules)\n message.error(error.message || 'Failed to update modules')\n }\n }\n\n const deleteModule = async (id: ModuleData['id']) => {\n if (modules?.length) {\n setModules(modules.filter(m => m.id !== id))\n await onDeleteModule?.(id || '')\n }\n }\n\n /* ============================== drag =============================== */\n\n const margins: [number, number] = [10, 10]\n const [rowWidth, setRowWidth] = useState(0)\n const [, setCurrentCols] = useState<number>(cols.lg)\n\n const [isDragOrResize, setIsDragOrResize] = useState(false)\n const [isDragOrResizeEnd, setIsDragOrResizeEnd] = useState(false)\n\n const onBreakpointChange = (_breakpoint: string, cols: number) => {\n setCurrentCols(cols)\n }\n\n const onDragResizeStop = (newLayout: Layout[]) => {\n const changedItems = findChangedItems(newLayout, modules as any)\n const newChangedItems = changedItems.map(item => {\n const module = modules?.find(module => module.i === item.i)\n return { ...module, ...item }\n })\n updateModules(newChangedItems)\n }\n\n const onDragStartOrEnd = (type: 'start' | 'end', newLayout?: Layout[]) => {\n if (type === 'start') {\n setIsDragOrResize(true)\n setIsDragOrResizeEnd(true)\n } else {\n setIsDragOrResize(false)\n setTimeout(() => {\n setIsDragOrResizeEnd(false)\n }, 500)\n onDragResizeStop(newLayout || [])\n }\n }\n\n /* ============================== split =============================== */\n\n const [selectModuleData, setSelectModuleData] = useState<ModuleData>()\n\n const [isShowAddStatisticsModal, setIsShowAddStatisticsModal] = useState<boolean>(false)\n const [isShowAddCalendarModal, setIsShowAddCalendarModal] = useState<boolean>(false)\n const [isShowAddChartModal, setIsShowAddChartModal] = useState<boolean>(false)\n\n const handleOpenCreateModal = (val: any) => {\n if (val === 'text') {\n const data = {\n type: val,\n customData: {\n title: t('text'),\n editor: [\n {\n type: 'paragraph',\n children: [\n {\n text: '',\n },\n ],\n },\n ],\n },\n }\n addModule(data)\n } else if (val === 'statistics') {\n setIsShowAddStatisticsModal(true)\n } else if (val === 'calendar') {\n setIsShowAddCalendarModal(true)\n } else if (val?.includes('chart')) {\n setIsShowAddChartModal(true)\n }\n\n setSelectModuleData({\n title: '',\n type: val,\n w: 0,\n h: 0,\n x: 0,\n y: 0,\n })\n }\n\n const commonModalProps = {\n moduleDataApi: moduleDataApi,\n enumDataApi: enumDataApi,\n selectModuleData: selectModuleData,\n }\n const handleModalSubmit = (data: Partial<ModuleData>) => {\n if (data.id) {\n updateModule(data.id, omit(data, 'id'))\n } else {\n addModule(data)\n }\n }\n\n /* ============================== split =============================== */\n\n const title: any = {\n text: t('pb.text'),\n calendar: t('calendarText'),\n statistics: t('chartText'),\n }\n\n return (\n <div className=\"pivot-table\">\n <div className=\"bitable-block-dashboard\">\n <div className=\"bitable-block-dashboard-toolbar bitable-toolbar\">\n <div className=\"bitable-block-dashboard-toolbar--left\">\n <AddModuleBtn\n onOk={val => {\n handleOpenCreateModal(val)\n }}\n />\n </div>\n </div>\n <div className=\"bitable-block-dashboard__mount\">\n <div className=\"dashboard-container\">\n <div\n className={`dashboard-content-container ${isDragOrResize ? 'isDragOrResize' : ''} ${\n isDragOrResizeEnd ? 'isDragOrResizeEnd' : ''\n }`}\n >\n <ResponsiveReactGridLayout\n onBreakpointChange={onBreakpointChange}\n className={className}\n compactType=\"vertical\"\n preventCollision={false}\n cols={cols}\n margin={margins}\n rowHeight={rowHeight}\n measureBeforeMount={false}\n draggableHandle=\".isCanDrag\"\n // draggableCancel=\".isNoCanDrag\"\n onWidthChange={(containerWidth, _margin, cols) => {\n setRowWidth(containerWidth / cols - 1)\n }}\n onDragStart={() => {\n onDragStartOrEnd('start')\n }}\n onDragStop={newLayout => {\n onDragStartOrEnd('end', newLayout)\n }}\n onResizeStart={() => {\n onDragStartOrEnd('start')\n }}\n onResizeStop={newLayout => {\n onDragStartOrEnd('end', newLayout)\n }}\n style={{\n backgroundSize: `${rowWidth}px ${rowHeight + margins[0]}px`,\n backgroundPosition: `${margins[0]}px ${margins[0]}px`,\n minHeight: '100vh',\n }}\n >\n {modules?.map(module => (\n <div\n className={`box-dashboard ${activeId === module.id ? 'active' : ''}`}\n onClick={() => {\n setActiveId(module.id)\n }}\n key={module.id}\n data-grid={{\n i: module.id,\n x: module.x || 0,\n y: module.y || 0, // puts it at the bottom\n w: module.w || 2,\n h: module.h || 2,\n minW: 2,\n minH: 2,\n }}\n >\n <ModuleHeader\n module={module}\n defaultValue={module.title}\n onChange={val =>\n updateModule(module.id, {\n title: val,\n })\n }\n onDropdownItem={key => {\n if (key === 'edit') {\n setActiveId(module.id)\n setSelectModuleData(module)\n if (module.type === 'statistics') {\n setIsShowAddStatisticsModal(true)\n }\n if (module.type?.includes('chart')) {\n setIsShowAddChartModal(true)\n }\n if (module.type === 'calendar') {\n setIsShowAddCalendarModal(true)\n }\n } else if (key === 'delete') {\n Modal.confirm({\n title: t('promptTitle'),\n icon: <ExclamationCircleOutlined />,\n content: t('promptContentDeleteComponents'),\n onOk() {\n deleteModule(module.id)\n },\n })\n } else if (key === 'copy') {\n const data = JSON.parse(JSON.stringify(module))\n delete data.id\n delete data.i\n addModule(data)\n }\n }}\n />\n\n <ModuleContent\n module={module}\n onUpdate={updateModule}\n moduleDataApi={moduleDataApi}\n activeId={activeId}\n onClick={() => {\n setActiveId(module.id)\n }}\n rowWidth={rowWidth}\n rowHeight={rowHeight}\n onEdit={() => {\n setActiveId(module.id)\n setSelectModuleData(module)\n if (module.type === 'statistics') {\n setIsShowAddStatisticsModal(true)\n }\n if (module.type?.includes('chart')) {\n setIsShowAddChartModal(true)\n }\n if (module.type === 'calendar') {\n setIsShowAddCalendarModal(true)\n }\n }}\n onDelete={() => {\n deleteModule(module.id)\n }}\n onCopy={() => {\n const data = JSON.parse(JSON.stringify(module))\n delete data.id\n delete data.i\n addModule(data)\n }}\n onStartDragOrResize={() => {\n setIsDragOrResize(true)\n }}\n onStopDragOrResize={() => {\n setIsDragOrResize(false)\n }}\n />\n </div>\n ))}\n </ResponsiveReactGridLayout>\n </div>\n </div>\n </div>\n </div>\n\n <AddStatisticsModal\n {...commonModalProps}\n open={isShowAddStatisticsModal}\n onClose={() => {\n setIsShowAddStatisticsModal(false)\n }}\n onOk={data => {\n handleModalSubmit({\n ...data,\n type: 'statistics',\n })\n setIsShowAddStatisticsModal(false)\n }}\n />\n\n <AddCalendarModal\n {...commonModalProps}\n open={isShowAddCalendarModal}\n onClose={() => {\n setIsShowAddCalendarModal(false)\n }}\n onOk={data => {\n handleModalSubmit({\n ...data,\n type: 'calendar',\n })\n setIsShowAddCalendarModal(false)\n }}\n />\n\n <AddChartModal\n {...commonModalProps}\n open={isShowAddChartModal}\n onClose={() => {\n setIsShowAddChartModal(false)\n }}\n onOk={data => {\n handleModalSubmit(data)\n setIsShowAddChartModal(false)\n }}\n />\n </div>\n )\n}\n\nexport default React.memo((props: DashboardWorkbenchProps) => {\n return (\n <AppProvider>\n <DashboardWorkbench {...props} />\n </AppProvider>\n )\n})\n"],"names":["cols","module","AddCalendarModal","AddChartModal"],"mappings":"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"}
@@ -142,5 +142,6 @@ declare const _default: {
142
142
  maxVal: string;
143
143
  minVal: string;
144
144
  averageVal: string;
145
+ empty: string;
145
146
  };
146
147
  export default _default;
@@ -39,7 +39,8 @@ const common = {
39
39
  sumVal: "Sum",
40
40
  maxVal: "Maximum Value",
41
41
  minVal: "Minimum Value",
42
- averageVal: "Average Value"
42
+ averageVal: "Average Value",
43
+ empty: "No Data"
43
44
  };
44
45
  const pb = {
45
46
  text: "text",
@@ -117,7 +118,7 @@ const add = {
117
118
  add7: "Statistics",
118
119
  add8: "Text",
119
120
  add9: "Calendar",
120
- add10: "Add Component",
121
+ add10: "Add Block",
121
122
  add11: "Equal to",
122
123
  add12: "Not Equal to",
123
124
  add13: "Equal to",