@platox/pivot-table 0.0.39 → 0.0.41

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 (31) hide show
  1. package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.js +5 -4
  2. package/es/dashboard-workbench/components/add-module-modal/add-chart-modal/custome-data.js.map +1 -1
  3. package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/custome-styles.js +1 -1
  4. package/es/dashboard-workbench/components/add-module-modal/add-statistics-modal/custome-styles.js.map +1 -1
  5. package/es/dashboard-workbench/components/global-filter-condition/ConditionSymbolAndValuePicker.d.ts +5 -0
  6. package/es/dashboard-workbench/components/global-filter-condition/ConditionSymbolAndValuePicker.js +24 -5
  7. package/es/dashboard-workbench/components/global-filter-condition/ConditionSymbolAndValuePicker.js.map +1 -1
  8. package/es/dashboard-workbench/components/global-filter-condition/index.js +3 -6
  9. package/es/dashboard-workbench/components/global-filter-condition/index.js.map +1 -1
  10. package/es/dashboard-workbench/components/global-filter-condition/index.module.less.js +3 -2
  11. package/es/dashboard-workbench/components/global-filter-condition/index.module.less.js.map +1 -1
  12. package/es/dashboard-workbench/components/module-content/calendar-module/index.js +9 -5
  13. package/es/dashboard-workbench/components/module-content/calendar-module/index.js.map +1 -1
  14. package/es/dashboard-workbench/components/module-content/chart-module/index.js +14 -14
  15. package/es/dashboard-workbench/components/module-content/chart-module/index.js.map +1 -1
  16. package/es/dashboard-workbench/components/module-content/statistics-module/index.js +10 -5
  17. package/es/dashboard-workbench/components/module-content/statistics-module/index.js.map +1 -1
  18. package/es/dashboard-workbench/components/module-content/utils.d.ts +1 -1
  19. package/es/dashboard-workbench/components/module-content/utils.js +291 -95
  20. package/es/dashboard-workbench/components/module-content/utils.js.map +1 -1
  21. package/es/dashboard-workbench/icon/icon-empty.js +98 -132
  22. package/es/dashboard-workbench/icon/icon-empty.js.map +1 -1
  23. package/es/dashboard-workbench/index.d.ts +7 -1
  24. package/es/dashboard-workbench/index.js +5 -3
  25. package/es/dashboard-workbench/index.js.map +1 -1
  26. package/es/dashboard-workbench/utils/index.js +7 -2
  27. package/es/dashboard-workbench/utils/index.js.map +1 -1
  28. package/es/style.css +1 -1
  29. package/package.json +1 -1
  30. package/umd/pivot-table.umd.cjs +45 -45
  31. package/umd/style.css +1 -1
@@ -1,137 +1,103 @@
1
1
  import { jsxs, jsx } from "react/jsx-runtime";
2
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
- );
3
+ return /* @__PURE__ */ jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: 139, height: 118, fill: "none", children: [
4
+ /* @__PURE__ */ jsx(
5
+ "path",
6
+ {
7
+ fill: "#F4F4F5",
8
+ d: "M124.987 58.727c0 13.227-4.202 25.657-11.204 35.463-3.879 5.36-8.511 10.035-13.898 13.684-8.618 6.044-19.068 9.465-30.164 9.465-30.488.114-55.266-26.113-55.266-58.612C14.455 26.34 39.125 0 69.721 0c11.096 0 21.438 3.421 30.164 9.465 5.387 3.649 10.019 8.324 13.898 13.683 7.002 9.921 11.204 22.237 11.204 35.579Z"
9
+ }
10
+ ),
11
+ /* @__PURE__ */ jsx(
12
+ "path",
13
+ {
14
+ stroke: "#D0D0D4",
15
+ strokeLinecap: "round",
16
+ strokeLinejoin: "round",
17
+ strokeMiterlimit: 10,
18
+ strokeWidth: 2,
19
+ d: "M2 102.569h130.77"
20
+ }
21
+ ),
22
+ /* @__PURE__ */ jsx(
23
+ "path",
24
+ {
25
+ fill: "#fff",
26
+ stroke: "#D0D0D4",
27
+ strokeMiterlimit: 10,
28
+ strokeWidth: 2,
29
+ d: "M93.85 50.054v52.515H23.22c-2.786 0-4.875-2.36-4.875-5.163V50.054H93.85Z"
30
+ }
31
+ ),
32
+ /* @__PURE__ */ jsx(
33
+ "path",
34
+ {
35
+ fill: "#DAE1ED",
36
+ d: "M121.874 50.054v47.352c0 2.95-2.323 5.163-5.082 5.163h-22.94V50.054h28.022Z"
37
+ }
38
+ ),
39
+ /* @__PURE__ */ jsx(
40
+ "path",
41
+ {
42
+ fill: "#F4F4F5",
43
+ stroke: "#D0D0D4",
44
+ strokeMiterlimit: 10,
45
+ strokeWidth: 2,
46
+ d: "M121.874 50.054v47.352c0 2.95-2.323 5.163-5.082 5.163h-22.94V50.054h28.022Z"
47
+ }
48
+ ),
49
+ /* @__PURE__ */ jsx("path", { fill: "#C5CDDB", d: "m45.59 50.054 14.852-24.617h76.22L121.39 50.055h-75.8Z" }),
50
+ /* @__PURE__ */ jsx(
51
+ "path",
52
+ {
53
+ fill: "#F4F4F5",
54
+ stroke: "#D0D0D4",
55
+ strokeMiterlimit: 10,
56
+ strokeWidth: 2,
57
+ d: "m45.59 50.054 14.852-24.617h76.22L121.39 50.055h-75.8Z"
58
+ }
59
+ ),
60
+ /* @__PURE__ */ jsx(
61
+ "path",
62
+ {
63
+ fill: "url(#a)",
64
+ d: "M121.874 50.197v27.756h-20.433c-1.898 0-3.211-1.295-3.503-3.164l-4.086-24.735 28.022.143Z",
65
+ opacity: 0.3
66
+ }
67
+ ),
68
+ /* @__PURE__ */ jsx(
69
+ "path",
70
+ {
71
+ fill: "#fff",
72
+ stroke: "#D0D0D4",
73
+ strokeMiterlimit: 10,
74
+ strokeWidth: 2,
75
+ d: "M121.287 50.054H93.852l13.93 22.258c.995 1.474 2.559 2.358 4.123 2.358h21.322c1.422 0 2.417-1.769 1.564-2.948l-13.504-21.668ZM93.85 50.054 78.895 25.437H2l15.52 24.617h76.33Z"
76
+ }
77
+ ),
78
+ /* @__PURE__ */ jsx(
79
+ "path",
80
+ {
81
+ fill: "#D0D0D4",
82
+ d: "M56.028 80.415H26.59a1.23 1.23 0 0 1-1.238-1.231c0-.684.55-1.23 1.238-1.23h29.438a1.23 1.23 0 0 1 1.238 1.23c-.138.684-.55 1.23-1.238 1.23ZM56.028 86.159H26.59c-.688 0-1.238-.365-1.238-.82 0-.457.55-.821 1.238-.821h29.438c.687 0 1.238.364 1.238.82-.138.456-.55.82-1.238.82ZM40.44 92.723H26.61c-.699 0-1.257-.365-1.257-.82 0-.456.558-.821 1.257-.821H40.44c.699 0 1.258.365 1.258.82-.14.456-.699.821-1.258.821Z"
83
+ }
84
+ ),
85
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
86
+ "linearGradient",
87
+ {
88
+ id: "a",
89
+ x1: 107.869,
90
+ x2: 107.869,
91
+ y1: 78.525,
92
+ y2: 53.113,
93
+ gradientUnits: "userSpaceOnUse",
94
+ children: [
95
+ /* @__PURE__ */ jsx("stop", { offset: 3e-3, stopColor: "#606673", stopOpacity: 0 }),
96
+ /* @__PURE__ */ jsx("stop", { offset: 1, stopColor: "#AAB2C5" })
97
+ ]
98
+ }
99
+ ) })
100
+ ] });
135
101
  };
136
102
  export {
137
103
  IconEmpty as default
@@ -1 +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;"}
1
+ {"version":3,"file":"icon-empty.js","sources":["../../../packages/dashboard-workbench/icon/icon-empty.tsx"],"sourcesContent":["const IconEmpty = () => {\n return (\n <svg xmlns=\"http://www.w3.org/2000/svg\" width={139} height={118} fill=\"none\">\n <path\n fill=\"#F4F4F5\"\n d=\"M124.987 58.727c0 13.227-4.202 25.657-11.204 35.463-3.879 5.36-8.511 10.035-13.898 13.684-8.618 6.044-19.068 9.465-30.164 9.465-30.488.114-55.266-26.113-55.266-58.612C14.455 26.34 39.125 0 69.721 0c11.096 0 21.438 3.421 30.164 9.465 5.387 3.649 10.019 8.324 13.898 13.683 7.002 9.921 11.204 22.237 11.204 35.579Z\"\n />\n <path\n stroke=\"#D0D0D4\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeMiterlimit={10}\n strokeWidth={2}\n d=\"M2 102.569h130.77\"\n />\n <path\n fill=\"#fff\"\n stroke=\"#D0D0D4\"\n strokeMiterlimit={10}\n strokeWidth={2}\n d=\"M93.85 50.054v52.515H23.22c-2.786 0-4.875-2.36-4.875-5.163V50.054H93.85Z\"\n />\n <path\n fill=\"#DAE1ED\"\n d=\"M121.874 50.054v47.352c0 2.95-2.323 5.163-5.082 5.163h-22.94V50.054h28.022Z\"\n />\n <path\n fill=\"#F4F4F5\"\n stroke=\"#D0D0D4\"\n strokeMiterlimit={10}\n strokeWidth={2}\n d=\"M121.874 50.054v47.352c0 2.95-2.323 5.163-5.082 5.163h-22.94V50.054h28.022Z\"\n />\n <path fill=\"#C5CDDB\" d=\"m45.59 50.054 14.852-24.617h76.22L121.39 50.055h-75.8Z\" />\n <path\n fill=\"#F4F4F5\"\n stroke=\"#D0D0D4\"\n strokeMiterlimit={10}\n strokeWidth={2}\n d=\"m45.59 50.054 14.852-24.617h76.22L121.39 50.055h-75.8Z\"\n />\n <path\n fill=\"url(#a)\"\n d=\"M121.874 50.197v27.756h-20.433c-1.898 0-3.211-1.295-3.503-3.164l-4.086-24.735 28.022.143Z\"\n opacity={0.3}\n />\n <path\n fill=\"#fff\"\n stroke=\"#D0D0D4\"\n strokeMiterlimit={10}\n strokeWidth={2}\n d=\"M121.287 50.054H93.852l13.93 22.258c.995 1.474 2.559 2.358 4.123 2.358h21.322c1.422 0 2.417-1.769 1.564-2.948l-13.504-21.668ZM93.85 50.054 78.895 25.437H2l15.52 24.617h76.33Z\"\n />\n <path\n fill=\"#D0D0D4\"\n d=\"M56.028 80.415H26.59a1.23 1.23 0 0 1-1.238-1.231c0-.684.55-1.23 1.238-1.23h29.438a1.23 1.23 0 0 1 1.238 1.23c-.138.684-.55 1.23-1.238 1.23ZM56.028 86.159H26.59c-.688 0-1.238-.365-1.238-.82 0-.457.55-.821 1.238-.821h29.438c.687 0 1.238.364 1.238.82-.138.456-.55.82-1.238.82ZM40.44 92.723H26.61c-.699 0-1.257-.365-1.257-.82 0-.456.558-.821 1.257-.821H40.44c.699 0 1.258.365 1.258.82-.14.456-.699.821-1.258.821Z\"\n />\n <defs>\n <linearGradient\n id=\"a\"\n x1={107.869}\n x2={107.869}\n y1={78.525}\n y2={53.113}\n gradientUnits=\"userSpaceOnUse\"\n >\n <stop offset={0.003} stopColor=\"#606673\" stopOpacity={0} />\n <stop offset={1} stopColor=\"#AAB2C5\" />\n </linearGradient>\n </defs>\n </svg>\n )\n}\n\nexport default IconEmpty\n"],"names":[],"mappings":";AAAA,MAAM,YAAY,MAAM;AAEpB,SAAA,qBAAC,SAAI,OAAM,8BAA6B,OAAO,KAAK,QAAQ,KAAK,MAAK,QACpE,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACJ;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,QAAO;AAAA,QACP,eAAc;AAAA,QACd,gBAAe;AAAA,QACf,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,GAAE;AAAA,MAAA;AAAA,IACJ;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,GAAE;AAAA,MAAA;AAAA,IACJ;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACJ;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,GAAE;AAAA,MAAA;AAAA,IACJ;AAAA,IACC,oBAAA,QAAA,EAAK,MAAK,WAAU,GAAE,0DAAyD;AAAA,IAChF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,GAAE;AAAA,MAAA;AAAA,IACJ;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,GAAE;AAAA,QACF,SAAS;AAAA,MAAA;AAAA,IACX;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,QAAO;AAAA,QACP,kBAAkB;AAAA,QAClB,aAAa;AAAA,QACb,GAAE;AAAA,MAAA;AAAA,IACJ;AAAA,IACA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAK;AAAA,QACL,GAAE;AAAA,MAAA;AAAA,IACJ;AAAA,wBACC,QACC,EAAA,UAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAG;AAAA,QACH,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,eAAc;AAAA,QAEd,UAAA;AAAA,UAAA,oBAAC,UAAK,QAAQ,MAAO,WAAU,WAAU,aAAa,GAAG;AAAA,UACxD,oBAAA,QAAA,EAAK,QAAQ,GAAG,WAAU,UAAU,CAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA,EAEzC,CAAA;AAAA,EAAA,GACF;AAEJ;"}
@@ -1,5 +1,6 @@
1
1
  import { default as React } from 'react';
2
2
  import { Layout } from 'react-grid-layout';
3
+ import { ConditionBlockWrapper } from './components/global-filter-condition/interface';
3
4
  import { ModuleData } from './components/module-content';
4
5
  import { EnumDataApi, ModuleConfigDataTypes, ModuleDataApi, SourceDataItem } from './types';
5
6
  interface DashboardWorkbenchProps {
@@ -29,5 +30,10 @@ interface DashboardWorkbenchProps {
29
30
  };
30
31
  rowHeight?: number;
31
32
  }
32
- declare const _default: React.MemoExoticComponent<(props: DashboardWorkbenchProps) => import("react/jsx-runtime").JSX.Element>;
33
+ export type { ConditionBlockWrapper };
34
+ export type GlobalProps = {
35
+ globalFilterCondition: ConditionBlockWrapper[];
36
+ onGlobalFilterConditionChange: (condition: ConditionBlockWrapper[]) => void;
37
+ };
38
+ declare const _default: React.MemoExoticComponent<(props: DashboardWorkbenchProps & GlobalProps) => import("react/jsx-runtime").JSX.Element>;
33
39
  export default _default;
@@ -4,7 +4,7 @@ import { Modal, message } from "antd";
4
4
  import { ExclamationCircleOutlined } from "@ant-design/icons";
5
5
  import { WidthProvider, Responsive } from "react-grid-layout";
6
6
  import { useTranslation } from "react-i18next";
7
- import { useLocalStorageState } from "ahooks";
7
+ import { useControllableValue } from "ahooks";
8
8
  import { pick, omit } from "lodash-es";
9
9
  import AddModuleBtn from "./components/add-module-btn/index.js";
10
10
  import AddStatisticsModal$1 from "./components/add-module-modal/add-calendar-modal/index.js";
@@ -406,6 +406,7 @@ const DashboardWorkbench = ({
406
406
  )
407
407
  ] });
408
408
  };
409
+ const Empty = [];
409
410
  const index = React.memo((props) => {
410
411
  const { i18n } = useTranslation();
411
412
  useEffect(() => {
@@ -422,8 +423,9 @@ const index = React.memo((props) => {
422
423
  "onUpdateModule",
423
424
  "onDeleteModule"
424
425
  ]);
425
- const [globalFilterCondition, setGlobalFilterCondition] = useLocalStorageState("test", {
426
- defaultValue: []
426
+ const [globalFilterCondition = Empty, setGlobalFilterCondition] = useControllableValue(props, {
427
+ valuePropName: "globalFilterCondition",
428
+ trigger: "onGlobalFilterConditionChange"
427
429
  });
428
430
  return /* @__PURE__ */ jsx(
429
431
  AppContext.Provider,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../packages/dashboard-workbench/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\nimport { message, Modal } from 'antd'\nimport { ExclamationCircleOutlined } from '@ant-design/icons'\nimport { Layout, Responsive, WidthProvider } from 'react-grid-layout'\nimport { useTranslation } from 'react-i18next'\nimport { useLatest, useLocalStorageState, useMemoizedFn } from 'ahooks'\nimport { omit, pick } from 'lodash-es'\nimport AddModuleBtn, { ModuleValueType } from './components/add-module-btn'\nimport AddCalendarModal from './components/add-module-modal/add-calendar-modal'\nimport AddChartModal from './components/add-module-modal/add-chart-modal'\nimport AddStatisticsModal from './components/add-module-modal/add-statistics-modal'\nimport { GlobalFilterCondition } from './components/global-filter-condition'\nimport { ConditionBlockWrapper } from './components/global-filter-condition/interface'\nimport ModuleContent, { ModuleData } from './components/module-content'\nimport ModuleHeader from './components/module-header'\nimport { AppContext } from './context'\nimport { EnumDataApi, ModuleConfigDataTypes, ModuleDataApi, SourceDataItem } from './types'\nimport { findChangedItems } from './utils'\nimport './lang/index'\nimport '/node_modules/react-grid-layout/css/styles.css'\nimport './styles/index.less'\n\nconst ResponsiveReactGridLayout = WidthProvider(Responsive)\n\ninterface DashboardWorkbenchProps {\n sourceData?: SourceDataItem[]\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 moduleConfigData,\n moduleDataApi,\n enumDataApi,\n onCreateModule,\n onUpdateModule,\n onDeleteModule,\n className = 'layout',\n cols = { lg: 12, md: 12, sm: 12, xs: 12, xxs: 12 },\n rowHeight = 79,\n}) => {\n const { t } = useTranslation()\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 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 /* ============================== split =============================== */\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 <GlobalFilterCondition\n style={{\n marginLeft: 10,\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 // open={true}\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 /* ============================== i18n =============================== */\n const { i18n } = useTranslation()\n useEffect(() => {\n i18n.changeLanguage(props?.lang || 'zh_CN')\n }, [i18n, props?.lang])\n\n const globalData = {\n fieldMap: props.fieldMap,\n sourceData: props?.sourceData,\n }\n\n const service = pick(props, [\n 'moduleDataApi',\n 'enumDataApi',\n 'onCreateModule',\n 'onUpdateModule',\n 'onDeleteModule',\n ])\n\n /* ============================== 全局筛选条件 =============================== */\n const [globalFilterCondition, setGlobalFilterCondition] = useLocalStorageState<\n ConditionBlockWrapper[]\n >('test', {\n defaultValue: [],\n })\n\n return (\n <AppContext.Provider\n value={{\n globalData,\n service,\n globalFilterCondition,\n setGlobalFilterCondition: setGlobalFilterCondition as React.Dispatch<\n React.SetStateAction<ConditionBlockWrapper[]>\n >,\n }}\n >\n <DashboardWorkbench {...props} />\n </AppContext.Provider>\n )\n})\n"],"names":["cols","module","AddCalendarModal","AddChartModal"],"mappings":";;;;;;;;;;;;;;;;;;;;AAuBA,MAAM,4BAA4B,cAAc,UAAU;AAkB1D,MAAM,qBAAwD,CAAC;AAAA,EAC7D;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,YAAY;AAAA,EACZ,OAAO,EAAE,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK,GAAG;AAAA,EACjD,YAAY;AACd,MAAM;AACE,QAAA,EAAE,EAAE,IAAI,eAAe;AAG7B,QAAM,CAAC,SAAS,UAAU,IAAI,SAAmC,CAAA,CAAE;AACnE,QAAM,CAAC,UAAU,WAAW,IAAI,SAA2B;AAE3D,YAAU,MAAM;AACd;AAAA,OACE,qDAAkB,IAAI,CAAS,UAAA;AAAA,QAC7B,GAAG;AAAA,QACH,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK;AAAA,MAC5B,QAAO,CAAA;AAAA,IACT;AAAA,EAAA,GACC,CAAC,gBAAgB,CAAC;AAEf,QAAA,YAAY,OAAO,SAA0B;AACjD,UAAM,YAAY,KAAK,SAAS,aAAa,IAAI;AACjD,UAAM,YAAY,KAAK,SAAS,aAAa,IAAI;AAEjD,QAAI,MAAM,QAAQ,OAAO,KAAK,KAAK,MAAM;AACvC,YAAM,gBAAgB;AAAA,QACpB,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,QACH,GAAG;AAAA,QACH,OAAO,KAAK,KAAK,SAAS,OAAO,IAAI,EAAE,WAAW,IAAI,MAAM,KAAK,IAAI;AAAA,QACrE,GAAG;AAAA,QACH,MAAM,KAAK;AAAA,MACb;AACA,aAAM,iDAAiB,eAAe,KAAK,CAAC,QAAa;;AACnD,YAAA,CAAC,IAAI,SAAS;AACR,kBAAA,MAAM,IAAI,OAAO;AACzB;AAAA,QAAA;AAEF,mBAAW,CAAC,GAAG,SAAS,EAAE,GAAG,eAAe,IAAG,SAAI,SAAJ,mBAAU,IAAI,KAAI,SAAI,SAAJ,mBAAU,GAAI,CAAA,CAAC;AAAA,MAAA;AAAA,IACjF;AAAA,EAEL;AAGM,QAAA,eAAe,OAAO,IAAsB,iBAAsC;AACtF,QAAI,mCAAS,QAAQ;AACnB,YAAM,UAAU,QAAQ,KAAK,CAAK,MAAA,EAAE,OAAO,EAAE;AAC7C,YAAM,gBAAgB;AAAA,QACpB,GAAG;AAAA,QACH,GAAG;AAAA,MACL;AACM,YAAA,cAAc,QAAQ,IAAI,CAAA,MAAM,EAAE,OAAO,KAAK,gBAAgB,CAAE;AACtE,iBAAW,WAAW;AACtB,aAAM,iDAAiB,eAAe,KAAK,CAAC,QAAa;AACnD,YAAA,CAAC,IAAI,SAAS;AACR,kBAAA,MAAM,IAAI,OAAO;AACzB;AAAA,QAAA;AAAA,MACF;AAAA,IACD;AAAA,EAEL;AAGM,QAAA,gBAAgB,OAAO,iBAAwC;AACnE,QAAI,EAAC,mCAAS,WAAU,EAAC,6CAAc,QAAQ;AACzC,UAAA,iBAAiB,QAAQ,IAAI,CAAU,WAAA;AAC3C,YAAM,SAAS,aAAa,KAAK,UAAQ,KAAK,OAAO,OAAO,EAAE;AAC9D,aAAO,SAAS,EAAE,GAAG,QAAQ,GAAG,OAAW,IAAA;AAAA,IAAA,CAC5C;AACD,eAAW,cAAc;AACrB,QAAA;AACF,iBAAW,eAAe,cAAc;AAChC,cAAA,MAAW,OAAM,iDAAiB;AACpC,YAAA,EAAC,2BAAK,UAAS;AACjB,gBAAM,IAAI,OAAM,2BAAK,YAAW,4BAA4B,YAAY,EAAE,EAAE;AAAA,QAAA;AAAA,MAC9E;AAAA,aAEK,OAAY;AACnB,iBAAW,OAAO;AACV,cAAA,MAAM,MAAM,WAAW,0BAA0B;AAAA,IAAA;AAAA,EAE7D;AAEM,QAAA,eAAe,OAAO,OAAyB;AACnD,QAAI,mCAAS,QAAQ;AACnB,iBAAW,QAAQ,OAAO,CAAA,MAAK,EAAE,OAAO,EAAE,CAAC;AACrC,aAAA,iDAAiB,MAAM;AAAA,IAAE;AAAA,EAEnC;AAIM,QAAA,UAA4B,CAAC,IAAI,EAAE;AACzC,QAAM,CAAC,UAAU,WAAW,IAAI,SAAS,CAAC;AAC1C,QAAM,CAAG,EAAA,cAAc,IAAI,SAAiB,KAAK,EAAE;AAEnD,QAAM,CAAC,gBAAgB,iBAAiB,IAAI,SAAS,KAAK;AAC1D,QAAM,CAAC,mBAAmB,oBAAoB,IAAI,SAAS,KAAK;AAE1D,QAAA,qBAAqB,CAAC,aAAqBA,UAAiB;AAChE,mBAAeA,KAAI;AAAA,EACrB;AAEM,QAAA,mBAAmB,CAAC,cAAwB;AAC1C,UAAA,eAAe,iBAAiB,WAAW,OAAc;AACzD,UAAA,kBAAkB,aAAa,IAAI,CAAQ,SAAA;AACzC,YAAA,SAAS,mCAAS,KAAK,CAAAC,YAAUA,QAAO,MAAM,KAAK;AACzD,aAAO,EAAE,GAAG,QAAQ,GAAG,KAAK;AAAA,IAAA,CAC7B;AACD,kBAAc,eAAe;AAAA,EAC/B;AAEM,QAAA,mBAAmB,CAAC,MAAuB,cAAyB;AACxE,QAAI,SAAS,SAAS;AACpB,wBAAkB,IAAI;AACtB,2BAAqB,IAAI;AAAA,IAAA,OACpB;AACL,wBAAkB,KAAK;AACvB,iBAAW,MAAM;AACf,6BAAqB,KAAK;AAAA,SACzB,GAAG;AACW,uBAAA,aAAa,EAAE;AAAA,IAAA;AAAA,EAEpC;AAGA,QAAM,CAAC,kBAAkB,mBAAmB,IAAI,SAAqB;AAErE,QAAM,CAAC,0BAA0B,2BAA2B,IAAI,SAAkB,KAAK;AACvF,QAAM,CAAC,wBAAwB,yBAAyB,IAAI,SAAkB,KAAK;AACnF,QAAM,CAAC,qBAAqB,sBAAsB,IAAI,SAAkB,KAAK;AAEvE,QAAA,wBAAwB,CAAC,QAAa;AAC1C,QAAI,QAAQ,QAAQ;AAClB,YAAM,OAAO;AAAA,QACX,MAAM;AAAA,QACN,YAAY;AAAA,UACV,OAAO,EAAE,MAAM;AAAA,UACf,QAAQ;AAAA,YACN;AAAA,cACE,MAAM;AAAA,cACN,UAAU;AAAA,gBACR;AAAA,kBACE,MAAM;AAAA,gBAAA;AAAA,cACR;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MAEJ;AACA,gBAAU,IAAI;AAAA,IAAA,WACL,QAAQ,cAAc;AAC/B,kCAA4B,IAAI;AAAA,IAAA,WACvB,QAAQ,YAAY;AAC7B,gCAA0B,IAAI;AAAA,IACrB,WAAA,2BAAK,SAAS,UAAU;AACjC,6BAAuB,IAAI;AAAA,IAAA;AAGT,wBAAA;AAAA,MAClB,OAAO;AAAA,MACP,MAAM;AAAA,MACN,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,MACH,GAAG;AAAA,IAAA,CACJ;AAAA,EACH;AAEA,QAAM,mBAAmB;AAAA,IACvB;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACM,QAAA,oBAAoB,CAAC,SAA8B;AACvD,QAAI,KAAK,IAAI;AACX,mBAAa,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;AAAA,IAAA,OACjC;AACL,gBAAU,IAAI;AAAA,IAAA;AAAA,EAElB;AAEA,QAAM,QAAa;AAAA,IACjB,MAAM,EAAE,SAAS;AAAA,IACjB,UAAU,EAAE,cAAc;AAAA,IAC1B,YAAY,EAAE,WAAW;AAAA,EAC3B;AAGE,SAAA,qBAAC,OAAI,EAAA,WAAU,eACb,UAAA;AAAA,IAAC,qBAAA,OAAA,EAAI,WAAU,2BACb,UAAA;AAAA,MAAA,oBAAC,SAAI,WAAU,mDACb,UAAC,qBAAA,OAAA,EAAI,WAAU,yCACb,UAAA;AAAA,QAAA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAM,CAAO,QAAA;AACX,oCAAsB,GAAG;AAAA,YAAA;AAAA,UAC3B;AAAA,QACF;AAAA,QACA;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,OAAO;AAAA,cACL,YAAY;AAAA,YAAA;AAAA,UACd;AAAA,QAAA;AAAA,MACF,EAAA,CACF,EACF,CAAA;AAAA,0BACC,OAAI,EAAA,WAAU,kCACb,UAAC,oBAAA,OAAA,EAAI,WAAU,uBACb,UAAA;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAW,+BAA+B,iBAAiB,mBAAmB,EAAE,KAC9E,oBAAoB,sBAAsB,EAC5C;AAAA,UAEA,UAAA;AAAA,YAAC;AAAA,YAAA;AAAA,cACC;AAAA,cACA;AAAA,cACA,aAAY;AAAA,cACZ,kBAAkB;AAAA,cAClB;AAAA,cACA,QAAQ;AAAA,cACR;AAAA,cACA,oBAAoB;AAAA,cACpB,iBAAgB;AAAA,cAEhB,eAAe,CAAC,gBAAgB,SAASD,UAAS;AACpC,4BAAA,iBAAiBA,QAAO,CAAC;AAAA,cACvC;AAAA,cACA,aAAa,MAAM;AACjB,iCAAiB,OAAO;AAAA,cAC1B;AAAA,cACA,YAAY,CAAa,cAAA;AACvB,iCAAiB,OAAO,SAAS;AAAA,cACnC;AAAA,cACA,eAAe,MAAM;AACnB,iCAAiB,OAAO;AAAA,cAC1B;AAAA,cACA,cAAc,CAAa,cAAA;AACzB,iCAAiB,OAAO,SAAS;AAAA,cACnC;AAAA,cACA,OAAO;AAAA,gBACL,gBAAgB,GAAG,QAAQ,MAAM,YAAY,QAAQ,CAAC,CAAC;AAAA,gBACvD,oBAAoB,GAAG,QAAQ,CAAC,CAAC,MAAM,QAAQ,CAAC,CAAC;AAAA,gBACjD,WAAW;AAAA,cACb;AAAA,cAEC,UAAA,mCAAS,IAAI,CACZ,WAAA;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,WAAW,iBAAiB,aAAa,OAAO,KAAK,WAAW,EAAE;AAAA,kBAClE,SAAS,MAAM;AACb,gCAAY,OAAO,EAAE;AAAA,kBACvB;AAAA,kBAEA,aAAW;AAAA,oBACT,GAAG,OAAO;AAAA,oBACV,GAAG,OAAO,KAAK;AAAA,oBACf,GAAG,OAAO,KAAK;AAAA;AAAA,oBACf,GAAG,OAAO,KAAK;AAAA,oBACf,GAAG,OAAO,KAAK;AAAA,oBACf,MAAM;AAAA,oBACN,MAAM;AAAA,kBACR;AAAA,kBAEA,UAAA;AAAA,oBAAA;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC;AAAA,wBACA,cAAc,OAAO;AAAA,wBACrB,UAAU,CAAA,QACR,aAAa,OAAO,IAAI;AAAA,0BACtB,OAAO;AAAA,wBAAA,CACR;AAAA,wBAEH,gBAAgB,CAAO,QAAA;;AACrB,8BAAI,QAAQ,QAAQ;AAClB,wCAAY,OAAO,EAAE;AACrB,gDAAoB,MAAM;AACtB,gCAAA,OAAO,SAAS,cAAc;AAChC,0DAA4B,IAAI;AAAA,4BAAA;AAElC,iCAAI,YAAO,SAAP,mBAAa,SAAS,UAAU;AAClC,qDAAuB,IAAI;AAAA,4BAAA;AAEzB,gCAAA,OAAO,SAAS,YAAY;AAC9B,wDAA0B,IAAI;AAAA,4BAAA;AAAA,0BAChC,WACS,QAAQ,UAAU;AAC3B,kCAAM,QAAQ;AAAA,8BACZ,OAAO,EAAE,aAAa;AAAA,8BACtB,0BAAO,2BAA0B,EAAA;AAAA,8BACjC,SAAS,EAAE,+BAA+B;AAAA,8BAC1C,OAAO;AACL,6CAAa,OAAO,EAAE;AAAA,8BAAA;AAAA,4BACxB,CACD;AAAA,0BAAA,WACQ,QAAQ,QAAQ;AACzB,kCAAM,OAAO,KAAK,MAAM,KAAK,UAAU,MAAM,CAAC;AAC9C,mCAAO,KAAK;AACZ,mCAAO,KAAK;AACZ,sCAAU,IAAI;AAAA,0BAAA;AAAA,wBAChB;AAAA,sBACF;AAAA,oBACF;AAAA,oBAEA;AAAA,sBAAC;AAAA,sBAAA;AAAA,wBACC;AAAA,wBACA,UAAU;AAAA,wBACV;AAAA,wBACA;AAAA,wBACA,SAAS,MAAM;AACb,sCAAY,OAAO,EAAE;AAAA,wBACvB;AAAA,wBACA;AAAA,wBACA;AAAA,wBACA,QAAQ,MAAM;;AACZ,sCAAY,OAAO,EAAE;AACrB,8CAAoB,MAAM;AACtB,8BAAA,OAAO,SAAS,cAAc;AAChC,wDAA4B,IAAI;AAAA,0BAAA;AAElC,+BAAI,YAAO,SAAP,mBAAa,SAAS,UAAU;AAClC,mDAAuB,IAAI;AAAA,0BAAA;AAEzB,8BAAA,OAAO,SAAS,YAAY;AAC9B,sDAA0B,IAAI;AAAA,0BAAA;AAAA,wBAElC;AAAA,wBACA,UAAU,MAAM;AACd,uCAAa,OAAO,EAAE;AAAA,wBACxB;AAAA,wBACA,QAAQ,MAAM;AACZ,gCAAM,OAAO,KAAK,MAAM,KAAK,UAAU,MAAM,CAAC;AAC9C,iCAAO,KAAK;AACZ,iCAAO,KAAK;AACZ,oCAAU,IAAI;AAAA,wBAChB;AAAA,wBACA,qBAAqB,MAAM;AACzB,4CAAkB,IAAI;AAAA,wBACxB;AAAA,wBACA,oBAAoB,MAAM;AACxB,4CAAkB,KAAK;AAAA,wBAAA;AAAA,sBACzB;AAAA,oBAAA;AAAA,kBACF;AAAA,gBAAA;AAAA,gBAxFK,OAAO;AAAA,cA0Ff;AAAA,YAAA;AAAA,UAAA;AAAA,QACH;AAAA,SAEJ,EACF,CAAA;AAAA,IAAA,GACF;AAAA,IAEA;AAAA,MAAC;AAAA,MAAA;AAAA,QACE,GAAG;AAAA,QACJ,MAAM;AAAA,QACN,SAAS,MAAM;AACb,sCAA4B,KAAK;AAAA,QACnC;AAAA,QACA,MAAM,CAAQ,SAAA;AACM,4BAAA;AAAA,YAChB,GAAG;AAAA,YACH,MAAM;AAAA,UAAA,CACP;AACD,sCAA4B,KAAK;AAAA,QAAA;AAAA,MACnC;AAAA,IACF;AAAA,IAEA;AAAA,MAACE;AAAAA,MAAA;AAAA,QACE,GAAG;AAAA,QACJ,MAAM;AAAA,QACN,SAAS,MAAM;AACb,oCAA0B,KAAK;AAAA,QACjC;AAAA,QACA,MAAM,CAAQ,SAAA;AACM,4BAAA;AAAA,YAChB,GAAG;AAAA,YACH,MAAM;AAAA,UAAA,CACP;AACD,oCAA0B,KAAK;AAAA,QAAA;AAAA,MACjC;AAAA,IACF;AAAA,IAEA;AAAA,MAACC;AAAAA,MAAA;AAAA,QACE,GAAG;AAAA,QACJ,MAAM;AAAA,QAEN,SAAS,MAAM;AACb,iCAAuB,KAAK;AAAA,QAC9B;AAAA,QACA,MAAM,CAAQ,SAAA;AACZ,4BAAkB,IAAI;AACtB,iCAAuB,KAAK;AAAA,QAAA;AAAA,MAC9B;AAAA,IAAA;AAAA,EACF,GACF;AAEJ;AAEA,MAAA,QAAe,MAAM,KAAK,CAAC,UAAmC;AAEtD,QAAA,EAAE,KAAK,IAAI,eAAe;AAChC,YAAU,MAAM;AACT,SAAA,gBAAe,+BAAO,SAAQ,OAAO;AAAA,EACzC,GAAA,CAAC,MAAM,+BAAO,IAAI,CAAC;AAEtB,QAAM,aAAa;AAAA,IACjB,UAAU,MAAM;AAAA,IAChB,YAAY,+BAAO;AAAA,EACrB;AAEM,QAAA,UAAU,KAAK,OAAO;AAAA,IAC1B;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA,CACD;AAGD,QAAM,CAAC,uBAAuB,wBAAwB,IAAI,qBAExD,QAAQ;AAAA,IACR,cAAc,CAAA;AAAA,EAAC,CAChB;AAGC,SAAA;AAAA,IAAC,WAAW;AAAA,IAAX;AAAA,MACC,OAAO;AAAA,QACL;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MAGF;AAAA,MAEA,UAAA,oBAAC,oBAAoB,EAAA,GAAG,MAAO,CAAA;AAAA,IAAA;AAAA,EACjC;AAEJ,CAAC;"}
1
+ {"version":3,"file":"index.js","sources":["../../packages/dashboard-workbench/index.tsx"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport React, { useEffect, useMemo, useRef, useState } from 'react'\nimport { message, Modal } from 'antd'\nimport { ExclamationCircleOutlined } from '@ant-design/icons'\nimport { Layout, Responsive, WidthProvider } from 'react-grid-layout'\nimport { useTranslation } from 'react-i18next'\nimport { useControllableValue, useLatest, useLocalStorageState, useMemoizedFn } from 'ahooks'\nimport { omit, pick } from 'lodash-es'\nimport AddModuleBtn, { ModuleValueType } from './components/add-module-btn'\nimport AddCalendarModal from './components/add-module-modal/add-calendar-modal'\nimport AddChartModal from './components/add-module-modal/add-chart-modal'\nimport AddStatisticsModal from './components/add-module-modal/add-statistics-modal'\nimport { GlobalFilterCondition } from './components/global-filter-condition'\nimport { ConditionBlockWrapper } from './components/global-filter-condition/interface'\nimport ModuleContent, { ModuleData } from './components/module-content'\nimport ModuleHeader from './components/module-header'\nimport { AppContext } from './context'\nimport { EnumDataApi, ModuleConfigDataTypes, ModuleDataApi, SourceDataItem } from './types'\nimport { findChangedItems } from './utils'\nimport './lang/index'\nimport '/node_modules/react-grid-layout/css/styles.css'\nimport './styles/index.less'\n\nconst ResponsiveReactGridLayout = WidthProvider(Responsive)\n\ninterface DashboardWorkbenchProps {\n sourceData?: SourceDataItem[]\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 moduleConfigData,\n moduleDataApi,\n enumDataApi,\n onCreateModule,\n onUpdateModule,\n onDeleteModule,\n className = 'layout',\n cols = { lg: 12, md: 12, sm: 12, xs: 12, xxs: 12 },\n rowHeight = 79,\n}) => {\n const { t } = useTranslation()\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 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 /* ============================== split =============================== */\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 <GlobalFilterCondition\n style={{\n marginLeft: 10,\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 // open={true}\n onClose={() => {\n setIsShowAddChartModal(false)\n }}\n onOk={data => {\n handleModalSubmit(data)\n setIsShowAddChartModal(false)\n }}\n />\n </div>\n )\n}\n\n/* ============================== split =============================== */\n\nexport type { ConditionBlockWrapper }\nexport type GlobalProps = {\n globalFilterCondition: ConditionBlockWrapper[]\n onGlobalFilterConditionChange: (condition: ConditionBlockWrapper[]) => void\n}\n\nconst Empty: unknown = []\n\nexport default React.memo((props: DashboardWorkbenchProps & GlobalProps) => {\n /* ============================== i18n =============================== */\n const { i18n } = useTranslation()\n useEffect(() => {\n i18n.changeLanguage(props?.lang || 'zh_CN')\n }, [i18n, props?.lang])\n\n const globalData = {\n fieldMap: props.fieldMap,\n sourceData: props?.sourceData,\n }\n\n const service = pick(props, [\n 'moduleDataApi',\n 'enumDataApi',\n 'onCreateModule',\n 'onUpdateModule',\n 'onDeleteModule',\n ])\n\n /* ============================== 全局筛选条件 =============================== */\n const [globalFilterCondition = Empty as ConditionBlockWrapper[], setGlobalFilterCondition] =\n useControllableValue<ConditionBlockWrapper[]>(props, {\n valuePropName: 'globalFilterCondition',\n trigger: 'onGlobalFilterConditionChange',\n })\n\n return (\n <AppContext.Provider\n value={{\n globalData,\n service,\n globalFilterCondition,\n setGlobalFilterCondition: setGlobalFilterCondition as React.Dispatch<\n React.SetStateAction<ConditionBlockWrapper[]>\n >,\n }}\n >\n <DashboardWorkbench {...props} />\n </AppContext.Provider>\n )\n})\n"],"names":["cols","module","AddCalendarModal","AddChartModal"],"mappings":"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"}
@@ -20,21 +20,26 @@ const getTransformValue = ({
20
20
  switch (timeGroupInterval) {
21
21
  case "day":
22
22
  format = "YYYY-MM-DD";
23
+ newVal = val ? dayjs(val).format(format) : "";
23
24
  break;
24
25
  case "week":
25
- format = "YYYY-WW";
26
+ const startDate = val ? dayjs(val).startOf("week").format("YYYY-MM-DD") : "";
27
+ const endDate = val ? dayjs(val).endOf("week").format("YYYY-MM-DD") : "";
28
+ newVal = val ? `${startDate}~${endDate}` : "";
26
29
  break;
27
30
  case "month":
28
31
  format = "YYYY-MM";
32
+ newVal = val ? dayjs(val).format(format) : "";
29
33
  break;
30
34
  case "year":
31
35
  format = "YYYY";
36
+ newVal = val ? dayjs(val).format(format) : "";
32
37
  break;
33
38
  default:
34
39
  format = "YYYY-MM-DD";
40
+ newVal = val ? dayjs(val).format(format) : "";
35
41
  break;
36
42
  }
37
- newVal = val ? dayjs(val).format(format) : "";
38
43
  }
39
44
  return newVal;
40
45
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../packages/dashboard-workbench/utils/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Layout } from 'react-grid-layout'\nimport dayjs from 'dayjs'\nimport isoWeek from 'dayjs/plugin/isoWeek'\nimport { TimeGroupInterval } from '../components/add-module-modal/add-chart-modal/interface'\nimport { FieldItem } from '../types'\n\ndayjs.extend(isoWeek)\n\nexport const getTransformValue = ({\n val,\n field,\n fieldOptions,\n fieldMap,\n timeGroupInterval,\n}: {\n val: any\n field: any\n fieldOptions?: FieldItem[]\n fieldMap?: Record<string, string> //枚举的翻译\n timeGroupInterval?: TimeGroupInterval // 时间汇总 xAxis 是time的时候有效\n}) => {\n const fieldData = fieldOptions?.find(item => item.value === field)\n let newVal = val\n if (fieldData?.type === 'enum' && fieldData?.enum && fieldData?.enum?.length > 0) {\n const label = fieldData?.enum?.find(enumItem => enumItem.value === val)?.label\n newVal = label ? fieldMap?.[label] || label : val\n }\n if (fieldData?.type === 'timestamp') {\n let format = 'YYYY-MM-DD'\n\n switch (timeGroupInterval) {\n case 'day':\n format = 'YYYY-MM-DD'\n break\n case 'week':\n format = 'YYYY-WW'\n break\n case 'month':\n format = 'YYYY-MM'\n break\n case 'year':\n format = 'YYYY'\n break\n default:\n format = 'YYYY-MM-DD'\n break\n }\n newVal = val ? dayjs(val).format(format) : ''\n }\n return newVal\n}\n\nexport const findChangedItems = (newLayout: Layout[], oldLayout: Layout[]) => {\n return newLayout.filter(newItem => {\n const oldItem = oldLayout.find(item => item.i === newItem.i)\n return (\n oldItem &&\n (oldItem.x !== newItem.x ||\n oldItem.y !== newItem.y ||\n oldItem.w !== newItem.w ||\n oldItem.h !== newItem.h)\n )\n })\n}\n"],"names":[],"mappings":";;AAOA,MAAM,OAAO,OAAO;AAEb,MAAM,oBAAoB,CAAC;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAMM;;AACJ,QAAM,YAAY,6CAAc,KAAK,CAAQ,SAAA,KAAK,UAAU;AAC5D,MAAI,SAAS;AACT,OAAA,uCAAW,UAAS,WAAU,uCAAW,WAAQ,4CAAW,SAAX,mBAAiB,UAAS,GAAG;AAC1E,UAAA,SAAQ,kDAAW,SAAX,mBAAiB,KAAK,cAAY,SAAS,UAAU,SAArD,mBAA2D;AACzE,aAAS,SAAQ,qCAAW,WAAU,QAAQ;AAAA,EAAA;AAE5C,OAAA,uCAAW,UAAS,aAAa;AACnC,QAAI,SAAS;AAEb,YAAQ,mBAAmB;AAAA,MACzB,KAAK;AACM,iBAAA;AACT;AAAA,MACF,KAAK;AACM,iBAAA;AACT;AAAA,MACF,KAAK;AACM,iBAAA;AACT;AAAA,MACF,KAAK;AACM,iBAAA;AACT;AAAA,MACF;AACW,iBAAA;AACT;AAAA,IAAA;AAEJ,aAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAAA,EAAA;AAEtC,SAAA;AACT;AAEa,MAAA,mBAAmB,CAAC,WAAqB,cAAwB;AACrE,SAAA,UAAU,OAAO,CAAW,YAAA;AACjC,UAAM,UAAU,UAAU,KAAK,UAAQ,KAAK,MAAM,QAAQ,CAAC;AAC3D,WACE,YACC,QAAQ,MAAM,QAAQ,KACrB,QAAQ,MAAM,QAAQ,KACtB,QAAQ,MAAM,QAAQ,KACtB,QAAQ,MAAM,QAAQ;AAAA,EAAA,CAE3B;AACH;"}
1
+ {"version":3,"file":"index.js","sources":["../../../packages/dashboard-workbench/utils/index.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { Layout } from 'react-grid-layout'\nimport dayjs from 'dayjs'\nimport isoWeek from 'dayjs/plugin/isoWeek'\nimport { TimeGroupInterval } from '../components/add-module-modal/add-chart-modal/interface'\nimport { FieldItem } from '../types'\n\ndayjs.extend(isoWeek)\n\nexport const getTransformValue = ({\n val,\n field,\n fieldOptions,\n fieldMap,\n timeGroupInterval,\n}: {\n val: any\n field: any\n fieldOptions?: FieldItem[]\n fieldMap?: Record<string, string> //枚举的翻译\n timeGroupInterval?: TimeGroupInterval // 时间汇总 xAxis 是time的时候有效\n}) => {\n const fieldData = fieldOptions?.find(item => item.value === field)\n let newVal = val\n if (fieldData?.type === 'enum' && fieldData?.enum && fieldData?.enum?.length > 0) {\n const label = fieldData?.enum?.find(enumItem => enumItem.value === val)?.label\n newVal = label ? fieldMap?.[label] || label : val\n }\n if (fieldData?.type === 'timestamp') {\n let format = 'YYYY-MM-DD'\n switch (timeGroupInterval) {\n case 'day':\n format = 'YYYY-MM-DD'\n newVal = val ? dayjs(val).format(format) : ''\n break\n case 'week':\n const startDate = val ? dayjs(val).startOf('week').format('YYYY-MM-DD') : ''\n const endDate = val ? dayjs(val).endOf('week').format('YYYY-MM-DD') : ''\n newVal = val ? `${startDate}~${endDate}` : ''\n break\n case 'month':\n format = 'YYYY-MM'\n newVal = val ? dayjs(val).format(format) : ''\n break\n case 'year':\n format = 'YYYY'\n newVal = val ? dayjs(val).format(format) : ''\n break\n default:\n format = 'YYYY-MM-DD'\n newVal = val ? dayjs(val).format(format) : ''\n break\n }\n }\n return newVal\n}\n\nexport const findChangedItems = (newLayout: Layout[], oldLayout: Layout[]) => {\n return newLayout.filter(newItem => {\n const oldItem = oldLayout.find(item => item.i === newItem.i)\n return (\n oldItem &&\n (oldItem.x !== newItem.x ||\n oldItem.y !== newItem.y ||\n oldItem.w !== newItem.w ||\n oldItem.h !== newItem.h)\n )\n })\n}\n"],"names":[],"mappings":";;AAOA,MAAM,OAAO,OAAO;AAEb,MAAM,oBAAoB,CAAC;AAAA,EAChC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAMM;;AACJ,QAAM,YAAY,6CAAc,KAAK,CAAQ,SAAA,KAAK,UAAU;AAC5D,MAAI,SAAS;AACT,OAAA,uCAAW,UAAS,WAAU,uCAAW,WAAQ,4CAAW,SAAX,mBAAiB,UAAS,GAAG;AAC1E,UAAA,SAAQ,kDAAW,SAAX,mBAAiB,KAAK,cAAY,SAAS,UAAU,SAArD,mBAA2D;AACzE,aAAS,SAAQ,qCAAW,WAAU,QAAQ;AAAA,EAAA;AAE5C,OAAA,uCAAW,UAAS,aAAa;AACnC,QAAI,SAAS;AACb,YAAQ,mBAAmB;AAAA,MACzB,KAAK;AACM,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,MACF,KAAK;AACG,cAAA,YAAY,MAAM,MAAM,GAAG,EAAE,QAAQ,MAAM,EAAE,OAAO,YAAY,IAAI;AACpE,cAAA,UAAU,MAAM,MAAM,GAAG,EAAE,MAAM,MAAM,EAAE,OAAO,YAAY,IAAI;AACtE,iBAAS,MAAM,GAAG,SAAS,IAAI,OAAO,KAAK;AAC3C;AAAA,MACF,KAAK;AACM,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,MACF,KAAK;AACM,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,MACF;AACW,iBAAA;AACT,iBAAS,MAAM,MAAM,GAAG,EAAE,OAAO,MAAM,IAAI;AAC3C;AAAA,IAAA;AAAA,EACJ;AAEK,SAAA;AACT;AAEa,MAAA,mBAAmB,CAAC,WAAqB,cAAwB;AACrE,SAAA,UAAU,OAAO,CAAW,YAAA;AACjC,UAAM,UAAU,UAAU,KAAK,UAAQ,KAAK,MAAM,QAAQ,CAAC;AAC3D,WACE,YACC,QAAQ,MAAM,QAAQ,KACrB,QAAQ,MAAM,QAAQ,KACtB,QAAQ,MAAM,QAAQ,KACtB,QAAQ,MAAM,QAAQ;AAAA,EAAA,CAE3B;AACH;"}